penguins-eggs 9.6.1 → 9.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oclif.manifest.json +1 -1
- package/README.md +33 -10
- package/addons/eggs/theme/calamares/branding/eggs-logo.png +0 -0
- package/conf/derivatives.yaml +2 -0
- package/conf/distros/buster/calamares/calamares-modules/bootloader-config/bootloader-config.sh +9 -1
- package/dist/classes/compressors.js +4 -8
- package/dist/classes/distro.js +2 -4
- package/dist/classes/family/debian.js +1 -1
- package/dist/classes/incubation/installer.js +2 -9
- package/dist/classes/ovary.js +37 -16
- package/dist/classes/pacman.js +3 -3
- package/dist/classes/settings.js +1 -1
- package/dist/classes/tools.js +2 -1
- package/dist/classes/utils.js +46 -46
- package/dist/classes/xdg.js +18 -4
- package/dist/classes/yolk.js +10 -6
- package/dist/commands/config.js +5 -5
- package/dist/commands/export/deb.js +1 -1
- package/dist/commands/update.js +3 -3
- package/dist/krill/modules/bootloader-config-ubuntu.js +1 -1
- package/dist/lib/cli-autologin.js +0 -1
- package/package.json +1 -1
package/.oclif.manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"9.6.1","commands":{"adapt":{"id":"adapt","description":"adapt monitor resolution for VM only","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs adapt"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[]},"analyze":{"id":"analyze","description":"analyze for syncto","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs analyze"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"calamares":{"id":"calamares","description":"configure calamares or install or configure it","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs calamares","sudo eggs calamares --install","sudo eggs calamares --install --theme=/path/to/theme","sudo eggs calamares --remove"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"install":{"name":"install","type":"boolean","char":"i","description":"install calamares and its dependencies","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"policies":{"name":"policies","type":"boolean","char":"p","description":"configure calamares policies","allowNo":false},"release":{"name":"release","type":"boolean","char":"r","description":"release: remove calamares and all its dependencies after the installation","allowNo":false},"remove":{"name":"remove","type":"boolean","description":"remove calamares and its dependencies","allowNo":false},"theme":{"name":"theme","type":"option","description":"theme/branding for eggs and calamares","multiple":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[]},"config":{"id":"config","description":"Configure and install prerequisites deb packages to run it","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs config","sudo eggs config --clean","sudo eggs config --clean --nointeractive"],"flags":{"clean":{"name":"clean","type":"boolean","char":"c","description":"remove old configuration before to create new one","allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"noicons":{"name":"noicons","type":"boolean","char":"N","description":"no icons","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"cuckoo":{"id":"cuckoo","description":"PXE start with proxy-dhcp","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs cuckoo"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false}},"args":[]},"dad":{"id":"dad","description":"ask help from daddy - TUI configuration helper","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo dad","sudo dad --clean","sudo dad --default"],"flags":{"clean":{"name":"clean","type":"boolean","char":"c","description":"remove old configuration before to create","allowNo":false},"default":{"name":"default","type":"boolean","char":"d","description":"remove old configuration and force default","allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[]},"install":{"id":"install","description":"krill: the CLI system installer - the egg became a penguin!","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs install","sudo eggs install --unattended --halt","sudo eggs install --custom it"],"flags":{"crypted":{"name":"crypted","type":"boolean","char":"k","description":"Crypted CLI installation","allowNo":false},"custom":{"name":"custom","type":"option","char":"c","description":"custom unattended configuration","multiple":false},"domain":{"name":"domain","type":"option","char":"d","description":"Domain name, defult: .local","multiple":false},"halt":{"name":"halt","type":"boolean","char":"H","description":"Halt the system after installation","allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"ip":{"name":"ip","type":"boolean","char":"i","description":"hostname as ip, eg: ip-192-168-1-33","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"none":{"name":"none","type":"boolean","char":"N","description":"Swap none: 256M","allowNo":false},"pve":{"name":"pve","type":"boolean","char":"p","description":"Proxmox VE install","allowNo":false},"random":{"name":"random","type":"boolean","char":"r","description":"Add random to hostname, eg: colibri-ay412dt","allowNo":false},"small":{"name":"small","type":"boolean","char":"s","description":"Swap small: RAM","allowNo":false},"suspend":{"name":"suspend","type":"boolean","char":"S","description":"Swap suspend: RAM x 2","allowNo":false},"unattended":{"name":"unattended","type":"boolean","char":"u","description":"Unattended installation","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"Verbose","allowNo":false}},"args":[]},"kill":{"id":"kill","description":"kill the eggs/free the nest","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs kill"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"mom":{"id":"mom","description":"ask help from mommy - TUI helper","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs mom"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false}},"args":[]},"produce":{"id":"produce","description":"produce a live image from your system whithout your data","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs produce","sudo eggs produce --standard","sudo eggs produce --max","sudo eggs produce --max --basename=colibri","sudo eggs produce --cryptedclone","sudo eggs produce --clone","sudo eggs produce --basename=colibri","sudo eggs produce --basename=colibri --theme theme --addons adapt"],"flags":{"addons":{"name":"addons","type":"option","description":"addons to be used: adapt, ichoice, pve, rsupport","multiple":true},"basename":{"name":"basename","type":"option","description":"basename","multiple":false},"clone":{"name":"clone","type":"boolean","char":"c","description":"clone","allowNo":false},"cryptedclone":{"name":"cryptedclone","type":"boolean","char":"C","description":"crypted clone","allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"max":{"name":"max","type":"boolean","char":"m","description":"max compression","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"noicons":{"name":"noicons","type":"boolean","char":"N","description":"no icons on desktop","allowNo":false},"prefix":{"name":"prefix","type":"option","char":"p","description":"prefix","multiple":false},"release":{"name":"release","type":"boolean","description":"release: max compression, remove penguins-eggs and calamares after installation","allowNo":false},"script":{"name":"script","type":"boolean","char":"s","description":"script mode. Generate scripts to manage iso build","allowNo":false},"standard":{"name":"standard","type":"boolean","char":"f","description":"standard compression","allowNo":false},"theme":{"name":"theme","type":"option","description":"theme for livecd, calamares branding and partitions","multiple":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false},"yolk":{"name":"yolk","type":"boolean","char":"y","description":"-y force yolk renew","allowNo":false}},"args":[]},"status":{"id":"status","description":"informations about eggs status","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs status"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[]},"syncfrom":{"id":"syncfrom","description":"restore users and user data from a LUKS volumes","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs syncfrom","sudo eggs syncfrom --file /path/to/fileLUKS"],"flags":{"delete":{"name":"delete","type":"option","description":"rsync --delete delete extraneous files from dest dirs","multiple":false},"file":{"name":"file","type":"option","char":"f","description":"file LUKS volume encrypted","multiple":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"rootdir":{"name":"rootdir","type":"option","char":"r","description":"rootdir of the installed system, when used from live","multiple":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"syncto":{"id":"syncto","description":"saves users and user data in a LUKS volume inside the iso","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs syncto","sudo eggs syncto --file /path/to/fileLUKS"],"flags":{"delete":{"name":"delete","type":"option","description":"rsync --delete delete extraneous files from dest dirs","multiple":false},"file":{"name":"file","type":"option","char":"f","description":"file LUKS volume encrypted","multiple":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"update":{"id":"update","description":"update the Penguins' eggs tool","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs update"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"export:deb":{"id":"export:deb","description":"export deb/docs/iso to the destination host","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs export deb","eggs export deb --clean","eggs export deb --all"],"flags":{"all":{"name":"all","type":"boolean","char":"a","description":"export all archs","allowNo":false},"clean":{"name":"clean","type":"boolean","char":"c","description":"remove old .deb before to copy","allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"export:iso":{"id":"export:iso","description":"export iso in the destination host","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs export iso","eggs export iso --clean"],"flags":{"clean":{"name":"clean","type":"boolean","char":"c","description":"delete old ISOs before to copy","allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"tools:clean":{"id":"tools:clean","description":"clean system log, apt, etc","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs tools clean"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"tools:ppa":{"id":"tools:ppa","description":"add/remove repo","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs tools ppa --add","sudo eggs tools ppa --remove"],"flags":{"add":{"name":"add","type":"boolean","char":"a","description":"add penguins-eggs PPA repository","allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"remove":{"name":"remove","type":"boolean","char":"r","description":"remove penguins-eggs PPA repository","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"tools:skel":{"id":"tools:skel","description":"update skel from home configuration","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs tools skel","sudo eggs tools skel --user user-to-be-copied"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"user":{"name":"user","type":"option","char":"u","description":"user to be used","multiple":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[]},"tools:stat":{"id":"tools:stat","description":"get statistics from sourceforge","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs tools stat","eggs tools stat --month","eggs tools stat --year"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"month":{"name":"month","type":"boolean","char":"m","description":"current month","allowNo":false},"year":{"name":"year","type":"boolean","char":"y","description":"current year","allowNo":false}},"args":[]},"tools:yolk":{"id":"tools:yolk","description":"configure eggs to install without internet","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs tools yolk"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[],"dir":"/var/local/yolk"},"wardrobe:get":{"id":"wardrobe:get","description":"get warorobe","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs wardrobe get","eggs wardrobe get your-wardrobe"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[{"name":"repo","description":"repository to get","required":false}]},"wardrobe:list":{"id":"wardrobe:list","description":"list costumes and accessoires in wardrobe","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs wardrobe list","eggs wardrobe list your-wardrobe","eggs wardrobe list --distro arch"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"distro":{"name":"distro","type":"option","char":"d","description":"distro","multiple":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[{"name":"wardrobe","description":"wardrobe","required":false}]},"wardrobe:show":{"id":"wardrobe:show","description":"show costumes/accessories in wardrobe","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs wardrobe show colibri","eggs wardrobe show accessories/firmwares","eggs wardrobe show accessories/"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"json":{"name":"json","type":"boolean","char":"j","description":"output JSON","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false},"wardrobe":{"name":"wardrobe","type":"option","char":"w","description":"wardrobe","multiple":false}},"args":[{"name":"costume","description":"costume","required":false}],"example":["eggs wardrobe show colibri","eggs wardrobe show accessories/firmwares","eggs wardrobe show accessories/"]},"wardrobe:wear":{"id":"wardrobe:wear","description":"wear costume/accessories from wardrobe","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs wardrobe wear duck","sudo eggs wardrobe wear accessories/firmwares","sudo eggs wardrobe wear wagtail/waydroid"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"no_accessories":{"name":"no_accessories","type":"boolean","char":"a","description":"not install accessories","allowNo":false},"no_firmwares":{"name":"no_firmwares","type":"boolean","char":"f","description":"not install firmwares","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false},"wardrobe":{"name":"wardrobe","type":"option","char":"w","description":"wardrobe","multiple":false}},"args":[{"name":"costume","description":"costume","required":false}]}}}
|
|
1
|
+
{"version":"9.6.4","commands":{"adapt":{"id":"adapt","description":"adapt monitor resolution for VM only","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs adapt"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[]},"analyze":{"id":"analyze","description":"analyze for syncto","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs analyze"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"calamares":{"id":"calamares","description":"configure calamares or install or configure it","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs calamares","sudo eggs calamares --install","sudo eggs calamares --install --theme=/path/to/theme","sudo eggs calamares --remove"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"install":{"name":"install","type":"boolean","char":"i","description":"install calamares and its dependencies","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"policies":{"name":"policies","type":"boolean","char":"p","description":"configure calamares policies","allowNo":false},"release":{"name":"release","type":"boolean","char":"r","description":"release: remove calamares and all its dependencies after the installation","allowNo":false},"remove":{"name":"remove","type":"boolean","description":"remove calamares and its dependencies","allowNo":false},"theme":{"name":"theme","type":"option","description":"theme/branding for eggs and calamares","multiple":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[]},"config":{"id":"config","description":"Configure and install prerequisites deb packages to run it","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs config","sudo eggs config --clean","sudo eggs config --clean --nointeractive"],"flags":{"clean":{"name":"clean","type":"boolean","char":"c","description":"remove old configuration before to create new one","allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"noicons":{"name":"noicons","type":"boolean","char":"N","description":"no icons","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"cuckoo":{"id":"cuckoo","description":"PXE start with proxy-dhcp","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs cuckoo"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false}},"args":[]},"dad":{"id":"dad","description":"ask help from daddy - TUI configuration helper","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo dad","sudo dad --clean","sudo dad --default"],"flags":{"clean":{"name":"clean","type":"boolean","char":"c","description":"remove old configuration before to create","allowNo":false},"default":{"name":"default","type":"boolean","char":"d","description":"remove old configuration and force default","allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[]},"install":{"id":"install","description":"krill: the CLI system installer - the egg became a penguin!","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs install","sudo eggs install --unattended --halt","sudo eggs install --custom it"],"flags":{"crypted":{"name":"crypted","type":"boolean","char":"k","description":"Crypted CLI installation","allowNo":false},"custom":{"name":"custom","type":"option","char":"c","description":"custom unattended configuration","multiple":false},"domain":{"name":"domain","type":"option","char":"d","description":"Domain name, defult: .local","multiple":false},"halt":{"name":"halt","type":"boolean","char":"H","description":"Halt the system after installation","allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"ip":{"name":"ip","type":"boolean","char":"i","description":"hostname as ip, eg: ip-192-168-1-33","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"none":{"name":"none","type":"boolean","char":"N","description":"Swap none: 256M","allowNo":false},"pve":{"name":"pve","type":"boolean","char":"p","description":"Proxmox VE install","allowNo":false},"random":{"name":"random","type":"boolean","char":"r","description":"Add random to hostname, eg: colibri-ay412dt","allowNo":false},"small":{"name":"small","type":"boolean","char":"s","description":"Swap small: RAM","allowNo":false},"suspend":{"name":"suspend","type":"boolean","char":"S","description":"Swap suspend: RAM x 2","allowNo":false},"unattended":{"name":"unattended","type":"boolean","char":"u","description":"Unattended installation","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"Verbose","allowNo":false}},"args":[]},"kill":{"id":"kill","description":"kill the eggs/free the nest","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs kill"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"mom":{"id":"mom","description":"ask help from mommy - TUI helper","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs mom"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false}},"args":[]},"produce":{"id":"produce","description":"produce a live image from your system whithout your data","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs produce","sudo eggs produce --standard","sudo eggs produce --max","sudo eggs produce --max --basename=colibri","sudo eggs produce --cryptedclone","sudo eggs produce --clone","sudo eggs produce --basename=colibri","sudo eggs produce --basename=colibri --theme theme --addons adapt"],"flags":{"addons":{"name":"addons","type":"option","description":"addons to be used: adapt, ichoice, pve, rsupport","multiple":true},"basename":{"name":"basename","type":"option","description":"basename","multiple":false},"clone":{"name":"clone","type":"boolean","char":"c","description":"clone","allowNo":false},"cryptedclone":{"name":"cryptedclone","type":"boolean","char":"C","description":"crypted clone","allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"max":{"name":"max","type":"boolean","char":"m","description":"max compression","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"noicons":{"name":"noicons","type":"boolean","char":"N","description":"no icons on desktop","allowNo":false},"prefix":{"name":"prefix","type":"option","char":"p","description":"prefix","multiple":false},"release":{"name":"release","type":"boolean","description":"release: max compression, remove penguins-eggs and calamares after installation","allowNo":false},"script":{"name":"script","type":"boolean","char":"s","description":"script mode. Generate scripts to manage iso build","allowNo":false},"standard":{"name":"standard","type":"boolean","char":"f","description":"standard compression","allowNo":false},"theme":{"name":"theme","type":"option","description":"theme for livecd, calamares branding and partitions","multiple":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false},"yolk":{"name":"yolk","type":"boolean","char":"y","description":"-y force yolk renew","allowNo":false}},"args":[]},"status":{"id":"status","description":"informations about eggs status","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs status"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[]},"syncfrom":{"id":"syncfrom","description":"restore users and user data from a LUKS volumes","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs syncfrom","sudo eggs syncfrom --file /path/to/fileLUKS"],"flags":{"delete":{"name":"delete","type":"option","description":"rsync --delete delete extraneous files from dest dirs","multiple":false},"file":{"name":"file","type":"option","char":"f","description":"file LUKS volume encrypted","multiple":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"rootdir":{"name":"rootdir","type":"option","char":"r","description":"rootdir of the installed system, when used from live","multiple":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"syncto":{"id":"syncto","description":"saves users and user data in a LUKS volume inside the iso","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs syncto","sudo eggs syncto --file /path/to/fileLUKS"],"flags":{"delete":{"name":"delete","type":"option","description":"rsync --delete delete extraneous files from dest dirs","multiple":false},"file":{"name":"file","type":"option","char":"f","description":"file LUKS volume encrypted","multiple":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"update":{"id":"update","description":"update the Penguins' eggs tool","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs update"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"export:deb":{"id":"export:deb","description":"export deb/docs/iso to the destination host","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs export deb","eggs export deb --clean","eggs export deb --all"],"flags":{"all":{"name":"all","type":"boolean","char":"a","description":"export all archs","allowNo":false},"clean":{"name":"clean","type":"boolean","char":"c","description":"remove old .deb before to copy","allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"export:iso":{"id":"export:iso","description":"export iso in the destination host","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs export iso","eggs export iso --clean"],"flags":{"clean":{"name":"clean","type":"boolean","char":"c","description":"delete old ISOs before to copy","allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"tools:clean":{"id":"tools:clean","description":"clean system log, apt, etc","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs tools clean"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"tools:ppa":{"id":"tools:ppa","description":"add/remove repo","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs tools ppa --add","sudo eggs tools ppa --remove"],"flags":{"add":{"name":"add","type":"boolean","char":"a","description":"add penguins-eggs PPA repository","allowNo":false},"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"remove":{"name":"remove","type":"boolean","char":"r","description":"remove penguins-eggs PPA repository","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"tools:skel":{"id":"tools:skel","description":"update skel from home configuration","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs tools skel","sudo eggs tools skel --user user-to-be-copied"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"user":{"name":"user","type":"option","char":"u","description":"user to be used","multiple":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[]},"tools:stat":{"id":"tools:stat","description":"get statistics from sourceforge","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs tools stat","eggs tools stat --month","eggs tools stat --year"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"month":{"name":"month","type":"boolean","char":"m","description":"current month","allowNo":false},"year":{"name":"year","type":"boolean","char":"y","description":"current year","allowNo":false}},"args":[]},"tools:yolk":{"id":"tools:yolk","description":"configure eggs to install without internet","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs tools yolk"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[],"dir":"/var/local/yolk"},"wardrobe:get":{"id":"wardrobe:get","description":"get warorobe","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs wardrobe get","eggs wardrobe get your-wardrobe"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[{"name":"repo","description":"repository to get","required":false}]},"wardrobe:list":{"id":"wardrobe:list","description":"list costumes and accessoires in wardrobe","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs wardrobe list","eggs wardrobe list your-wardrobe","eggs wardrobe list --distro arch"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"distro":{"name":"distro","type":"option","char":"d","description":"distro","multiple":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false}},"args":[{"name":"wardrobe","description":"wardrobe","required":false}]},"wardrobe:show":{"id":"wardrobe:show","description":"show costumes/accessories in wardrobe","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["eggs wardrobe show colibri","eggs wardrobe show accessories/firmwares","eggs wardrobe show accessories/"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"json":{"name":"json","type":"boolean","char":"j","description":"output JSON","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false},"wardrobe":{"name":"wardrobe","type":"option","char":"w","description":"wardrobe","multiple":false}},"args":[{"name":"costume","description":"costume","required":false}],"example":["eggs wardrobe show colibri","eggs wardrobe show accessories/firmwares","eggs wardrobe show accessories/"]},"wardrobe:wear":{"id":"wardrobe:wear","description":"wear costume/accessories from wardrobe","strict":true,"pluginName":"penguins-eggs","pluginAlias":"penguins-eggs","pluginType":"core","aliases":[],"examples":["sudo eggs wardrobe wear duck","sudo eggs wardrobe wear accessories/firmwares","sudo eggs wardrobe wear wagtail/waydroid"],"flags":{"help":{"name":"help","type":"boolean","char":"h","description":"Show CLI help.","allowNo":false},"no_accessories":{"name":"no_accessories","type":"boolean","char":"a","description":"not install accessories","allowNo":false},"no_firmwares":{"name":"no_firmwares","type":"boolean","char":"f","description":"not install firmwares","allowNo":false},"verbose":{"name":"verbose","type":"boolean","char":"v","allowNo":false},"wardrobe":{"name":"wardrobe","type":"option","char":"w","description":"wardrobe","multiple":false}},"args":[{"name":"costume","description":"costume","required":false}]}}}
|
package/README.md
CHANGED
|
@@ -44,7 +44,9 @@ eggs is written mostly in typescript and ideally can be used with different Linu
|
|
|
44
44
|
|
|
45
45
|
Currently eggs supports: [Debian](https://www.debian.org/), [Devuan](https://www.devuan.org/), [Ubuntu](https://ubuntu.com/), [Arch](https://archlinux.org/), [Manjaro](https://manjaro.org/) and [derivatives](./conf/derivatives.yaml).
|
|
46
46
|
|
|
47
|
-
You can read more on the [blog](https://penguins-eggs.net/blog/distros-that-can-be-remastered-with-eggs), some examples of iso images remastered with eggs are in the [sourceforge page of the project](https://sourceforge.net/projects/penguins-eggs/files/ISOS/).
|
|
47
|
+
You can read more on the [blog](https://penguins-eggs.net/blog/distros-that-can-be-remastered-with-eggs), some examples of iso images remastered with eggs are in the [sourceforge page of the project](https://sourceforge.net/projects/penguins-eggs/files/ISOS/).
|
|
48
|
+
|
|
49
|
+
Regarding architectures eggs currently support amd64, i386 and arm64. some informations can be found on the post: [Triple somersault!](https://penguins-eggs.net/blog/triple-somersault).
|
|
48
50
|
|
|
49
51
|
# Features
|
|
50
52
|
|
|
@@ -92,10 +94,14 @@ I added two built-in assistants with eggs: mom and dad. While mom is a script ba
|
|
|
92
94
|
yolk - so called staying on the subject of eggs - is a local repository included in the livecd that contains a minimum of indispensable packages during installation. Thanks to yolk, you can safely install your system without the need of an active internet connection.
|
|
93
95
|
|
|
94
96
|
# Packages
|
|
95
|
-
Supporting various distributions, we need to have different packages. Debian, Devuan and Ubuntu share the .deb packages
|
|
97
|
+
Supporting various distributions, we need to have different packages. Debian, Devuan and Ubuntu share the .deb packages for amd_64 and i386 architecture, while Arch and ManjaroLinux use their own PKGBUILDs.
|
|
96
98
|
|
|
97
99
|
## Debian families
|
|
98
|
-
eggs is released as a deb package for amd64,
|
|
100
|
+
eggs is released as a deb package for amd64, i386 and arm64 too.
|
|
101
|
+
|
|
102
|
+
Because of eggs' features, the packages can be installed in Debian, Devuan, or Ubuntu-based distros without worrying about exact version (buster, bullseye, bookworm, trixie, chimaera, daedalus, bionic, focal and jammy) are reported to work, of course respect the processor architecture.
|
|
103
|
+
|
|
104
|
+
The packages includes standard scripts for preinst, postinst, prerm and postrm and man pages.
|
|
99
105
|
|
|
100
106
|
### Install eggs
|
|
101
107
|
There are more than a way to install eggs as .deb package, the most practical is to add and use penguins-eggs-ppa.
|
|
@@ -105,19 +111,27 @@ There are more than a way to install eggs as .deb package, the most practical is
|
|
|
105
111
|
The simplest way to install eggs is download the [package eggs](https://sourceforge.net/projects/penguins-eggs/files/DEBS/) from [sourceforge page of the project](https://sourceforge.net/projects/penguins-eggs/) and install it
|
|
106
112
|
|
|
107
113
|
```
|
|
108
|
-
sudo dpkg -i eggs_9.6.
|
|
114
|
+
sudo dpkg -i eggs_9.6.4_amd64.deb
|
|
109
115
|
```
|
|
110
116
|
|
|
111
117
|
or, on a i386 system:
|
|
112
118
|
```
|
|
113
|
-
sudo dpkg -i eggs_9.6.
|
|
119
|
+
sudo dpkg -i eggs_9.6.4_i386.deb
|
|
114
120
|
```
|
|
115
121
|
|
|
116
122
|
Once eggs is installed you can add the [penguins-eggs-ppa](https://pieroproietti.github.io/penguins-eggs-ppa) repository with the command: ```sudo eggs tools ppa --install```
|
|
117
123
|
|
|
118
124
|
#### Using penguins-eggs-ppa (stable version)
|
|
119
125
|
|
|
120
|
-
|
|
126
|
+
You can use a little utility I wrote: `addaura`. Use it in this way:
|
|
127
|
+
|
|
128
|
+
* `git clone https://github.com/pieroproietti/addaura`
|
|
129
|
+
* `cd addaura`
|
|
130
|
+
* `sudo ./addaura`
|
|
131
|
+
|
|
132
|
+
On Debian, Devuan and Ubuntu addaura will add the ppa and install eggs.
|
|
133
|
+
|
|
134
|
+
For derivatives of Debian, Devuan and Ubuntu, like Linuxmint, LMDE, etc, addaura will refuce to work but You can again copy and paste the following two lines in a terminal:
|
|
121
135
|
|
|
122
136
|
```
|
|
123
137
|
curl -fsSL https://pieroproietti.github.io/penguins-eggs-ppa/KEY.gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/penguins-eggs.gpg
|
|
@@ -131,17 +145,24 @@ sudo apt update && sudo apt install eggs
|
|
|
131
145
|
```
|
|
132
146
|
|
|
133
147
|
### Upgrade eggs
|
|
134
|
-
If you are using penguins-eggs-ppa You can
|
|
135
|
-
|
|
148
|
+
If you are using penguins-eggs-ppa You can upgrade eggs as others packages just: **sudo apt upgrade**, else simply download new versions of eggs from [sourgeforge page](https://sourceforge.net/projects/penguins-eggs/files/DEBS/) and install it with the standard command **sudo dpkg -i eggs_9.6.4_amd64.deb** or **gdebi eggs_9.6.4_i386.deb**.
|
|
136
149
|
|
|
137
150
|
## Arch families
|
|
138
151
|
eggs has been present in [AUR](https://aur.archlinux.org/) for a long time, even without my knowledge thanks the support of Arch peoples. I am currently directly maintaining the AUR version of [penguins-eggs](https://aur.archlinux.org/packages/penguins-eggs) and I'm participating in the [Manjaro Community Repository](https://gitlab.manjaro.org/packages/community/penguins-eggs).
|
|
139
152
|
|
|
140
|
-
The development versions of penguins eggs and other PKGBUILDs are instead in my [
|
|
153
|
+
The development versions of penguins eggs and other PKGBUILDs are instead in my [eggs-pkgbuilds](https://github.com/pieroproietti/eggs-pkgbuilds) repository.
|
|
141
154
|
|
|
142
155
|
### Arch
|
|
143
156
|
It's possible to install penguins-eggs from [AUR](https://aur.archlinux.org/packages/penguins-eggs) adding repo [Chaotic-AUR](https://aur.chaotic.cx/) and using `sudo pacman -Sy penguins-eggs`.
|
|
144
157
|
|
|
158
|
+
You can use a little utility I wrote: `addaura`. Use it in this way:
|
|
159
|
+
|
|
160
|
+
* `git clone https://github.com/pieroproietti/addaura`
|
|
161
|
+
* `cd addaura`
|
|
162
|
+
* `sudo ./addaura`
|
|
163
|
+
|
|
164
|
+
Addaura will add AUR repository and install penguins-eggs.
|
|
165
|
+
|
|
145
166
|
Of course you can also use yay: `yay penguins-eggs` or download the sources and run makepkg:
|
|
146
167
|
|
|
147
168
|
```
|
|
@@ -150,7 +171,9 @@ cd penguins-eggs
|
|
|
150
171
|
makepkg -srcCi
|
|
151
172
|
```
|
|
152
173
|
### Manjaro
|
|
153
|
-
From penguins-eggs v9.4.3 the package is part of the [Manjaro community](https://gitlab.manjaro.org/packages/community/penguins-eggs) repo and can be installed with `pamac install penguins-eggs
|
|
174
|
+
From penguins-eggs v9.4.3 the package is part of the [Manjaro community](https://gitlab.manjaro.org/packages/community/penguins-eggs) repo and can be installed with `pamac install penguins-eggs`.
|
|
175
|
+
|
|
176
|
+
Alternatively you can clone the package, and:
|
|
154
177
|
```
|
|
155
178
|
git clone https://gitlab.manjaro.org/packages/community/penguins-eggs/
|
|
156
179
|
cd penguins-eggs
|
|
Binary file
|
package/conf/derivatives.yaml
CHANGED
package/conf/distros/buster/calamares/calamares-modules/bootloader-config/bootloader-config.sh
CHANGED
|
@@ -25,7 +25,15 @@ echo "Running bootloader-config..."
|
|
|
25
25
|
|
|
26
26
|
if [ -d /sys/firmware/efi/efivars ]; then
|
|
27
27
|
echo " * Installing grub-efi (uefi)..."
|
|
28
|
-
|
|
28
|
+
MACHINE=$(uname -m)
|
|
29
|
+
if [[ "$MACHINE" == x86_64* ]]; then
|
|
30
|
+
arch="amd64"
|
|
31
|
+
elif [[ "$MACHINE" == i*86 ]]; then
|
|
32
|
+
arch=""
|
|
33
|
+
elif [[ "$MACHINE" == arm* ]]; then
|
|
34
|
+
arch="arm64"
|
|
35
|
+
fi
|
|
36
|
+
DEBIAN_FRONTEND=nointeractive chroot $CHROOT apt-get -y --allow-unauthenticated install grub-efi-${arch} cryptsetup keyutils
|
|
29
37
|
else
|
|
30
38
|
echo " * install grub... (bios)"
|
|
31
39
|
DEBIAN_FRONTEND=nointeractive chroot $CHROOT apt-get -y --allow-unauthenticated install grub-pc cryptsetup
|
|
@@ -61,15 +61,11 @@ class Compressors {
|
|
|
61
61
|
* @returns
|
|
62
62
|
*/
|
|
63
63
|
max() {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const filter = 'ARM'; // to check
|
|
64
|
+
let comp = 'xz -b 256K -Xbcj x86';
|
|
65
|
+
if (process.arch === 'arm64') {
|
|
66
|
+
comp = 'xz -b 256K'; // -Xbcj arm NOT work
|
|
68
67
|
}
|
|
69
|
-
|
|
70
|
-
const filter = 'ARM64'; // to check
|
|
71
|
-
}
|
|
72
|
-
return comp + filter;
|
|
68
|
+
return comp;
|
|
73
69
|
}
|
|
74
70
|
async prepareCheck() {
|
|
75
71
|
shelljs_1.default.exec('rm -rf ' + this.source, { silent: true });
|
package/dist/classes/distro.js
CHANGED
|
@@ -13,6 +13,7 @@ const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
|
|
|
13
13
|
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
14
14
|
const shelljs_1 = tslib_1.__importDefault(require("shelljs"));
|
|
15
15
|
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
16
|
+
const utils_1 = tslib_1.__importDefault(require("./utils"));
|
|
16
17
|
/**
|
|
17
18
|
* Classe
|
|
18
19
|
*/
|
|
@@ -237,11 +238,8 @@ class Distro {
|
|
|
237
238
|
this.isolinuxPath = '/usr/lib/ISOLINUX/';
|
|
238
239
|
this.syslinuxPath = '/usr/lib/syslinux/modules/bios/';
|
|
239
240
|
this.pxelinuxPath = '/usr/lib/PXELINUX/';
|
|
240
|
-
this.usrLibPath = '/usr/lib/x86_64-linux-gnu/';
|
|
241
241
|
this.memdiskPath = '/usr/lib/syslinux/';
|
|
242
|
-
|
|
243
|
-
this.usrLibPath = '/usr/lib/i386-linux-gnu/';
|
|
244
|
-
}
|
|
242
|
+
this.usrLibPath = '/usr/lib/' + utils_1.default.usrLibPath();
|
|
245
243
|
break;
|
|
246
244
|
}
|
|
247
245
|
case 'archlinux': {
|
|
@@ -56,7 +56,7 @@ class Debian {
|
|
|
56
56
|
toRemove.push(elem);
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
const arch = utils_1.default.
|
|
59
|
+
const arch = utils_1.default.uefiArch();
|
|
60
60
|
for (const dep of dependencies_1.depArch) {
|
|
61
61
|
if (dep.arch.includes(arch)) {
|
|
62
62
|
if (!this.packageIsInstalled(dep.package)) {
|
|
@@ -15,12 +15,12 @@ function installer() {
|
|
|
15
15
|
if (pacman_1.default.calamaresExists()) {
|
|
16
16
|
installer.name = 'calamares';
|
|
17
17
|
installer.configRoot = '/etc/calamares/';
|
|
18
|
-
installer.multiarch =
|
|
18
|
+
installer.multiarch = pacman_1.default.distro().usrLibPath + '/calamares/';
|
|
19
19
|
}
|
|
20
20
|
else {
|
|
21
21
|
installer.name = 'krill';
|
|
22
22
|
installer.configRoot = '/etc/penguins-eggs.d/krill/';
|
|
23
|
-
installer.multiarch =
|
|
23
|
+
installer.multiarch = pacman_1.default.distro().usrLibPath + '/krill/';
|
|
24
24
|
}
|
|
25
25
|
installer.modules = installer.configRoot + 'modules/';
|
|
26
26
|
installer.multiarchModules = installer.multiarch + 'modules/';
|
|
@@ -46,10 +46,3 @@ function installer() {
|
|
|
46
46
|
return installer;
|
|
47
47
|
}
|
|
48
48
|
exports.installer = installer;
|
|
49
|
-
/**
|
|
50
|
-
*
|
|
51
|
-
* @returns
|
|
52
|
-
*/
|
|
53
|
-
function multiarch() {
|
|
54
|
-
return pacman_1.default.distro().usrLibPath;
|
|
55
|
-
}
|
package/dist/classes/ovary.js
CHANGED
|
@@ -286,7 +286,7 @@ class Ovary {
|
|
|
286
286
|
* Creo le directory di destinazione per boot, efi, isolinux e live
|
|
287
287
|
*/
|
|
288
288
|
if (!fs_1.default.existsSync(this.settings.iso_work)) {
|
|
289
|
-
cmd = `mkdir -p ${this.settings.iso_work}boot/grub/${utils_2.default.
|
|
289
|
+
cmd = `mkdir -p ${this.settings.iso_work}boot/grub/${utils_2.default.uefiFormat()}`;
|
|
290
290
|
this.tryCatch(cmd);
|
|
291
291
|
cmd = `mkdir -p ${this.settings.iso_work}efi/boot`;
|
|
292
292
|
this.tryCatch(cmd);
|
|
@@ -747,7 +747,17 @@ class Ovary {
|
|
|
747
747
|
fs_1.default.unlinkSync(`${this.settings.iso_work}/live/filesystem.squashfs`);
|
|
748
748
|
}
|
|
749
749
|
const compression = `-comp ${this.settings.config.compression}`;
|
|
750
|
-
|
|
750
|
+
/**
|
|
751
|
+
* limit: patch per Raspberry
|
|
752
|
+
*/
|
|
753
|
+
let limit = '';
|
|
754
|
+
if (utils_2.default.uefiArch() === 'arm64') {
|
|
755
|
+
limit = ' -processors 2 -mem 1024M';
|
|
756
|
+
}
|
|
757
|
+
// SYNTAX: mksquashfs source1 source2 ...
|
|
758
|
+
// FILESYSTEM [OPTIONS]
|
|
759
|
+
// [-e list of exclude dirs/files]
|
|
760
|
+
let cmd = `mksquashfs ${this.settings.work_dir.merged} ${this.settings.iso_work}live/filesystem.squashfs ${compression} ${limit} -wildcards -ef ${this.settings.config.snapshot_excludes} ${this.settings.session_excludes}`;
|
|
751
761
|
cmd = cmd.replace(/\s\s+/g, ' ');
|
|
752
762
|
utils_2.default.writeX(`${this.settings.work_dir.ovarium}mksquashfs`, cmd);
|
|
753
763
|
if (!scriptOnly) {
|
|
@@ -1092,7 +1102,7 @@ class Ovary {
|
|
|
1092
1102
|
*/
|
|
1093
1103
|
shelljs_1.default.cp(node_path_1.default.resolve(__dirname, '../../assets/penguins-eggs.desktop'), '/usr/share/applications/');
|
|
1094
1104
|
/**
|
|
1095
|
-
*
|
|
1105
|
+
* Scrivania/install-system.desktop
|
|
1096
1106
|
*/
|
|
1097
1107
|
let installerUrl = 'install-system.desktop';
|
|
1098
1108
|
let installerIcon = 'install-system.sh';
|
|
@@ -1200,6 +1210,11 @@ class Ovary {
|
|
|
1200
1210
|
text += `test -f "$DESKTOP"/${installerUrl} && chmod a+x "$DESKTOP"/${installerUrl}\n`;
|
|
1201
1211
|
text += `test -f "$DESKTOP"/${installerUrl} && gio set "$DESKTOP"/${installerUrl} metadata::trusted true\n`;
|
|
1202
1212
|
}
|
|
1213
|
+
else if (pacman_1.default.packageIsInstalled('xfce4-session')) {
|
|
1214
|
+
// f=FILE; gio set -t string $f metadata::xfce-exe-checksum "$(sha256sum $f | awk '{print $1}')"
|
|
1215
|
+
text += 'chmod +x "$DESKTOP"/*.desktop';
|
|
1216
|
+
// await exec(`f="$DESKTOP"/*.desktop; gio set -t string $f metadata::xfce-exe-checksum "$(sha256sum $f | awk '{print $1}')"`)
|
|
1217
|
+
}
|
|
1203
1218
|
else {
|
|
1204
1219
|
// OTHERS: CINNAMON/KDE/ETC
|
|
1205
1220
|
text += 'chmod +x "$DESKTOP"/*.desktop';
|
|
@@ -1287,7 +1302,7 @@ class Ovary {
|
|
|
1287
1302
|
let text = '';
|
|
1288
1303
|
text += 'search --file --set=root /.disk/info\n';
|
|
1289
1304
|
text += 'set prefix=($root)/boot/grub\n';
|
|
1290
|
-
text += `source $prefix/${utils_2.default.
|
|
1305
|
+
text += `source $prefix/${utils_2.default.uefiFormat()}/grub.cfg\n`;
|
|
1291
1306
|
utils_2.default.write(grubCfg, text);
|
|
1292
1307
|
// #################################
|
|
1293
1308
|
/**
|
|
@@ -1300,7 +1315,7 @@ class Ovary {
|
|
|
1300
1315
|
await (0, utils_1.exec)(`mkdir ${efiWorkDir}`, this.echo);
|
|
1301
1316
|
await (0, utils_1.exec)(`mkdir ${efiWorkDir}boot`, this.echo);
|
|
1302
1317
|
await (0, utils_1.exec)(`mkdir ${efiWorkDir}boot/grub`, this.echo);
|
|
1303
|
-
await (0, utils_1.exec)(`mkdir ${efiWorkDir}boot/grub/${utils_2.default.
|
|
1318
|
+
await (0, utils_1.exec)(`mkdir ${efiWorkDir}boot/grub/${utils_2.default.uefiFormat()}`, this.echo);
|
|
1304
1319
|
await (0, utils_1.exec)(`mkdir ${efiWorkDir}efi`, this.echo);
|
|
1305
1320
|
await (0, utils_1.exec)(`mkdir ${efiWorkDir}efi/boot`, this.echo);
|
|
1306
1321
|
/**
|
|
@@ -1333,12 +1348,12 @@ class Ovary {
|
|
|
1333
1348
|
* second grub.cfg file in efiWork
|
|
1334
1349
|
*/
|
|
1335
1350
|
// for i in $(ls /usr/lib/grub/x86_64-efi |grep part_|grep \.mod|sed 's/.mod//'); do echo "insmod $i" >> boot/grub/x86_64-efi/grub.cfg; done
|
|
1336
|
-
let cmd = `for i in $(ls /usr/lib/grub/${utils_2.default.
|
|
1351
|
+
let cmd = `for i in $(ls /usr/lib/grub/${utils_2.default.uefiFormat()}|grep part_|grep \.mod|sed 's/.mod//'); do echo "insmod $i" >> ${efiWorkDir}boot/grub/${utils_2.default.uefiFormat()}/grub.cfg; done`;
|
|
1337
1352
|
await (0, utils_1.exec)(cmd, this.echo);
|
|
1338
|
-
//cmd = `for i in efi_gop efi_uga ieee1275_fb vbe vga video_bochs video_cirrus jpeg png gfxterm ; do echo "insmod $i" >> ${efiWorkDir}boot/grub/${Utils.
|
|
1339
|
-
cmd = `for i in efi_gop efi_uga ieee1275_fb vbe vga video_bochs video_cirrus jpeg png gfxterm ; do echo "insmod $i" >> ${efiWorkDir}boot/grub/${utils_2.default.
|
|
1353
|
+
//cmd = `for i in efi_gop efi_uga ieee1275_fb vbe vga video_bochs video_cirrus jpeg png gfxterm ; do echo "insmod $i" >> ${efiWorkDir}boot/grub/${Utils.uefiFormat()}/grub.cfg ; done`
|
|
1354
|
+
cmd = `for i in efi_gop efi_uga ieee1275_fb vbe vga video_bochs video_cirrus jpeg png gfxterm ; do echo "insmod $i" >> ${efiWorkDir}boot/grub/${utils_2.default.uefiFormat()}/grub.cfg ; done`;
|
|
1340
1355
|
await (0, utils_1.exec)(cmd, this.echo);
|
|
1341
|
-
await (0, utils_1.exec)(`echo "source /boot/grub/grub.cfg" >> ${efiWorkDir}boot/grub/${utils_2.default.
|
|
1356
|
+
await (0, utils_1.exec)(`echo "source /boot/grub/grub.cfg" >> ${efiWorkDir}boot/grub/${utils_2.default.uefiFormat()}/grub.cfg`, this.echo);
|
|
1342
1357
|
/**
|
|
1343
1358
|
* andiamo in memdiskDir
|
|
1344
1359
|
*/
|
|
@@ -1351,17 +1366,21 @@ class Ovary {
|
|
|
1351
1366
|
process.chdir(memdiskDir);
|
|
1352
1367
|
await (0, utils_1.exec)('tar -cvf memdisk boot', this.echo);
|
|
1353
1368
|
process.chdir(currentDir);
|
|
1354
|
-
// make the grub image
|
|
1355
1369
|
// -O, --format=FORMAT
|
|
1356
1370
|
// -m --memdisk=FILE embed FILE as a memdisk image
|
|
1357
1371
|
// -o, --output=FILE embed FILE as a memdisk image
|
|
1358
1372
|
// -p, --prefix=DIR set prefix directory
|
|
1359
1373
|
// --format=x86_64-efi --memdisk=memdisk --output=bootx64.efi --prefix?DIR set prefix directory
|
|
1360
1374
|
// grub-mkimage -O "x86_64-efi" -m "memdisk" -o "bootx64.efi" -p '(memdisk)/boot/grub' search iso9660 configfile normal memdisk tar cat part_msdos part_gpt fat ext2 ntfs ntfscomp hfsplus chain boot linux
|
|
1361
|
-
|
|
1375
|
+
// arm64-efi
|
|
1376
|
+
await (0, utils_1.exec)(`${grubName}-mkimage -O "${utils_2.default.uefiFormat()}" \
|
|
1377
|
+
-m "${memdiskDir}/memdisk" \
|
|
1378
|
+
-o "${memdiskDir}/${utils_2.default.uefiBN()}" \
|
|
1379
|
+
-p '(memdisk)/boot/grub' \
|
|
1380
|
+
search iso9660 configfile normal memdisk tar cat part_msdos part_gpt fat ext2 ntfs ntfscomp hfsplus chain boot linux`, this.echo);
|
|
1362
1381
|
// popd torna in efiWorkDir
|
|
1363
1382
|
// copy the grub image to efi/boot (to go later in the device's root)
|
|
1364
|
-
await (0, utils_1.exec)(`cp ${memdiskDir}
|
|
1383
|
+
await (0, utils_1.exec)(`cp ${memdiskDir}/${utils_2.default.uefiBN()} ${efiWorkDir}efi/boot`, this.echo);
|
|
1365
1384
|
// #######################
|
|
1366
1385
|
// Do the boot image "boot/grub/efiboot.img"
|
|
1367
1386
|
await (0, utils_1.exec)(`dd if=/dev/zero of=${efiWorkDir}boot/grub/efiboot.img bs=1K count=1440`, this.echo);
|
|
@@ -1371,10 +1390,10 @@ class Ovary {
|
|
|
1371
1390
|
await (0, utils_1.exec)(`mkdir ${efiWorkDir}img-mnt/efi`, this.echo);
|
|
1372
1391
|
await (0, utils_1.exec)(`mkdir ${efiWorkDir}img-mnt/efi/boot`, this.echo);
|
|
1373
1392
|
// era cp -r
|
|
1374
|
-
await (0, utils_1.exec)(`cp ${memdiskDir}
|
|
1393
|
+
await (0, utils_1.exec)(`cp ${memdiskDir}/${utils_2.default.uefiBN()} ${efiWorkDir}img-mnt/efi/boot`, this.echo);
|
|
1375
1394
|
// #######################
|
|
1376
1395
|
// copy modules and font
|
|
1377
|
-
await (0, utils_1.exec)(`cp -r /usr/lib/grub/${utils_2.default.
|
|
1396
|
+
await (0, utils_1.exec)(`cp -r /usr/lib/grub/${utils_2.default.uefiFormat()}/* ${efiWorkDir}boot/grub/${utils_2.default.uefiFormat()}/`, this.echo);
|
|
1378
1397
|
// if this doesn't work try another font from the same place (grub's default, unicode.pf2, is much larger)
|
|
1379
1398
|
// Either of these will work, and they look the same to me. Unicode seems to work with qemu. -fsr
|
|
1380
1399
|
if (fs_1.default.existsSync('/usr/share/grub/font.pf2')) {
|
|
@@ -1431,6 +1450,8 @@ class Ovary {
|
|
|
1431
1450
|
* loopback.cfg
|
|
1432
1451
|
*/
|
|
1433
1452
|
fs_1.default.writeFileSync(`${isoDir}/boot/grub/loopback.cfg`, 'source /boot/grub/grub.cfg\n');
|
|
1453
|
+
// console.log('end makeEfi')
|
|
1454
|
+
// process.exit()
|
|
1434
1455
|
}
|
|
1435
1456
|
// #######################################################################################
|
|
1436
1457
|
/**
|
|
@@ -1470,7 +1491,7 @@ class Ovary {
|
|
|
1470
1491
|
}
|
|
1471
1492
|
let typology = '';
|
|
1472
1493
|
// typology is applied only with standard egg-of
|
|
1473
|
-
if (prefix.slice(0, 7) === 'egg-
|
|
1494
|
+
if (prefix.slice(0, 7) === 'egg-of_') {
|
|
1474
1495
|
if (clone) {
|
|
1475
1496
|
typology = '_clone';
|
|
1476
1497
|
}
|
|
@@ -1482,7 +1503,7 @@ class Ovary {
|
|
|
1482
1503
|
}
|
|
1483
1504
|
}
|
|
1484
1505
|
const postfix = utils_2.default.getPostfix();
|
|
1485
|
-
this.settings.isoFilename = prefix + volid + typology + postfix;
|
|
1506
|
+
this.settings.isoFilename = prefix + volid + '_' + utils_2.default.uefiArch() + typology + postfix;
|
|
1486
1507
|
//
|
|
1487
1508
|
const output = this.settings.config.snapshot_mnt + this.settings.isoFilename;
|
|
1488
1509
|
let command = '';
|
package/dist/classes/pacman.js
CHANGED
|
@@ -121,7 +121,7 @@ class Pacman {
|
|
|
121
121
|
static isUefi() {
|
|
122
122
|
let isUefi = false;
|
|
123
123
|
if (this.distro().familyId === 'debian') {
|
|
124
|
-
if (utils_1.default.
|
|
124
|
+
if (utils_1.default.uefiArch() !== 'i386' && this.packageIsInstalled('grub-efi-' + utils_1.default.uefiArch() + '-bin')) {
|
|
125
125
|
isUefi = true;
|
|
126
126
|
}
|
|
127
127
|
}
|
|
@@ -352,9 +352,9 @@ class Pacman {
|
|
|
352
352
|
config.force_installer = false;
|
|
353
353
|
console.log('Due the lacks of calamares package set force_installer = false');
|
|
354
354
|
}
|
|
355
|
-
if (!Pacman.isUefi()) {
|
|
355
|
+
if (!Pacman.isUefi() && utils_1.default.uefiArch() !== "i386") {
|
|
356
356
|
config.make_efi = false;
|
|
357
|
-
console.log('Due the lacks of grub-efi-' + utils_1.default.
|
|
357
|
+
console.log('Due the lacks of grub-efi-' + utils_1.default.uefiArch() + '-bin package set make_efi = false');
|
|
358
358
|
}
|
|
359
359
|
/**
|
|
360
360
|
* Salvo la configurazione di eggs.yaml
|
package/dist/classes/settings.js
CHANGED
|
@@ -175,7 +175,7 @@ class Settings {
|
|
|
175
175
|
this.remix.branding = theme === '' ? 'eggs' : this.remix.branding = theme.slice(Math.max(0, theme.lastIndexOf('/') + 1));
|
|
176
176
|
this.remix.name = this.config.snapshot_basename;
|
|
177
177
|
let name = this.config.snapshot_prefix + this.config.snapshot_basename;
|
|
178
|
-
name = name.replace(/-/g, ' ').replace('egg of ', '');
|
|
178
|
+
name = name.replace(/-/g, ' ').replace(/_/g, ' ').replace('egg of ', '');
|
|
179
179
|
this.remix.fullname = name;
|
|
180
180
|
this.remix.versionName = name.toUpperCase();
|
|
181
181
|
}
|
package/dist/classes/tools.js
CHANGED
|
@@ -11,6 +11,7 @@ const tslib_1 = require("tslib");
|
|
|
11
11
|
const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
|
|
12
12
|
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
13
13
|
const settings_1 = tslib_1.__importDefault(require("./settings"));
|
|
14
|
+
const utils_1 = tslib_1.__importDefault(require("./utils"));
|
|
14
15
|
/**
|
|
15
16
|
* Utils: general porpourse utils
|
|
16
17
|
* @remarks all the utilities
|
|
@@ -50,7 +51,7 @@ class Tools {
|
|
|
50
51
|
if (prefix.endsWith('rolling-')) {
|
|
51
52
|
prefix = prefix.substring(0, prefix.indexOf('rolling-'));
|
|
52
53
|
}
|
|
53
|
-
this.snapshot_name = prefix + settings.config.snapshot_basename + '_'
|
|
54
|
+
this.snapshot_name = prefix + settings.config.snapshot_basename + '_' + utils_1.default.uefiArch();
|
|
54
55
|
}
|
|
55
56
|
else {
|
|
56
57
|
console.log(`Can't find: ${this.tools_yaml}`);
|
package/dist/classes/utils.js
CHANGED
|
@@ -16,7 +16,6 @@ const path_1 = tslib_1.__importDefault(require("path"));
|
|
|
16
16
|
const os_1 = tslib_1.__importDefault(require("os"));
|
|
17
17
|
const inquirer = require('inquirer');
|
|
18
18
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
19
|
-
const pacman_1 = tslib_1.__importDefault(require("./pacman"));
|
|
20
19
|
const child_process_1 = require("child_process");
|
|
21
20
|
const netmask_1 = require("netmask");
|
|
22
21
|
// libraries
|
|
@@ -34,7 +33,7 @@ class Utils {
|
|
|
34
33
|
* @param codenameId
|
|
35
34
|
*/
|
|
36
35
|
static snapshotPrefix(distroId, codenameId) {
|
|
37
|
-
let result = 'egg-
|
|
36
|
+
let result = 'egg-of_' + distroId.toLowerCase() + '-' + codenameId.toLowerCase() + '-';
|
|
38
37
|
result = result.replace(`/`, '-');
|
|
39
38
|
return result;
|
|
40
39
|
}
|
|
@@ -255,73 +254,74 @@ class Utils {
|
|
|
255
254
|
return fileSizeInBytes;
|
|
256
255
|
}
|
|
257
256
|
/**
|
|
258
|
-
*
|
|
259
|
-
* arm-efi, arm64-efi,
|
|
260
|
-
* grub-mkimage -O aarch64-efi -m memdisk -o bootx64.efi -p '(memdisk)/boot/grub' search iso9660 configfile normal memdisk tar cat part_msdos part_gpt fat ext2 ntfs ntfscomp hfsplus chain boot linux
|
|
261
|
-
unknown target format aarch64-efi
|
|
257
|
+
* uefiArch
|
|
262
258
|
* @returns arch
|
|
263
259
|
*/
|
|
264
|
-
static
|
|
260
|
+
static uefiArch() {
|
|
265
261
|
let arch = '';
|
|
266
|
-
if (process.arch === '
|
|
267
|
-
arch = 'amd64';
|
|
268
|
-
}
|
|
269
|
-
else if (process.arch === 'ia32') {
|
|
262
|
+
if (process.arch === 'ia32') {
|
|
270
263
|
arch = 'i386';
|
|
271
|
-
//
|
|
264
|
+
//
|
|
272
265
|
if (shelljs_1.default.exec('uname -m', { silent: true }).stdout.trim() === 'x86_64') {
|
|
273
266
|
arch = 'amd64';
|
|
274
267
|
}
|
|
275
268
|
}
|
|
269
|
+
else if (process.arch === 'x64') {
|
|
270
|
+
arch = 'amd64';
|
|
271
|
+
}
|
|
276
272
|
else if (process.arch === 'arm64') {
|
|
277
273
|
arch = 'arm64';
|
|
278
274
|
}
|
|
279
|
-
else if (process.arch === 'arm') {
|
|
280
|
-
arch = 'armel';
|
|
281
|
-
}
|
|
282
275
|
return arch;
|
|
283
276
|
}
|
|
284
277
|
/**
|
|
285
|
-
*
|
|
286
|
-
*
|
|
278
|
+
* i386-efi,
|
|
279
|
+
* x86_64-efi,
|
|
280
|
+
* arm64-efi,
|
|
287
281
|
*/
|
|
288
|
-
static
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
else if (arch === 'armel') {
|
|
296
|
-
machineUEFI = 'arm-efi';
|
|
282
|
+
static uefiFormat() {
|
|
283
|
+
let format = '';
|
|
284
|
+
if (process.arch === 'ia32') {
|
|
285
|
+
format = 'i386-efi';
|
|
286
|
+
if (shelljs_1.default.exec('uname -m', { silent: true }).stdout.trim() === 'x86_64') {
|
|
287
|
+
format = 'x86_64-efi';
|
|
288
|
+
}
|
|
297
289
|
}
|
|
298
|
-
if (
|
|
299
|
-
|
|
290
|
+
else if (process.arch === 'x64') {
|
|
291
|
+
format = 'x86_64-efi';
|
|
300
292
|
}
|
|
301
|
-
else if (
|
|
302
|
-
|
|
293
|
+
else if (process.arch === 'arm64') {
|
|
294
|
+
format = 'arm64-efi';
|
|
303
295
|
}
|
|
304
|
-
return
|
|
296
|
+
return format;
|
|
305
297
|
}
|
|
306
298
|
/**
|
|
307
|
-
*
|
|
299
|
+
*
|
|
308
300
|
* @returns
|
|
309
301
|
*/
|
|
310
|
-
static
|
|
311
|
-
let
|
|
302
|
+
static uefiBN() {
|
|
303
|
+
let bn = 'nothing.efi';
|
|
312
304
|
if (process.arch === 'x64') {
|
|
313
|
-
|
|
314
|
-
}
|
|
315
|
-
else if (process.arch === 'ia32') {
|
|
316
|
-
arch = 'i386';
|
|
305
|
+
bn = 'bootx64.efi';
|
|
317
306
|
}
|
|
318
307
|
else if (process.arch === 'arm64') {
|
|
319
|
-
|
|
308
|
+
bn = 'bootaa64.efi';
|
|
309
|
+
}
|
|
310
|
+
return bn;
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
*
|
|
314
|
+
* @returns
|
|
315
|
+
*/
|
|
316
|
+
static usrLibPath() {
|
|
317
|
+
let path = '';
|
|
318
|
+
if (process.arch === 'x64') {
|
|
319
|
+
path = 'x86_64-linux-gnu';
|
|
320
320
|
}
|
|
321
|
-
else if (process.arch === '
|
|
322
|
-
|
|
321
|
+
else if (process.arch === 'arm64') {
|
|
322
|
+
path = 'aarch64-linux-gnu';
|
|
323
323
|
}
|
|
324
|
-
return
|
|
324
|
+
return path;
|
|
325
325
|
}
|
|
326
326
|
/**
|
|
327
327
|
*
|
|
@@ -331,11 +331,11 @@ class Utils {
|
|
|
331
331
|
*/
|
|
332
332
|
static getPrefix(prefix, backup = false) {
|
|
333
333
|
if (backup) {
|
|
334
|
-
if (prefix.substring(0, 7) === 'egg-
|
|
335
|
-
prefix = 'egg-
|
|
334
|
+
if (prefix.substring(0, 7) === 'egg-of_') {
|
|
335
|
+
prefix = 'egg-bk_' + prefix.substring(7);
|
|
336
336
|
}
|
|
337
337
|
else {
|
|
338
|
-
prefix = 'egg-
|
|
338
|
+
prefix = 'egg-bk_' + prefix;
|
|
339
339
|
}
|
|
340
340
|
}
|
|
341
341
|
return prefix;
|
|
@@ -357,7 +357,7 @@ class Utils {
|
|
|
357
357
|
* @returns eggName
|
|
358
358
|
*/
|
|
359
359
|
static getPostfix() {
|
|
360
|
-
let postfix = '_' +
|
|
360
|
+
let postfix = '_' + Utils.formatDate(new Date()) + '.iso';
|
|
361
361
|
return postfix;
|
|
362
362
|
}
|
|
363
363
|
/**
|
package/dist/classes/xdg.js
CHANGED
|
@@ -261,10 +261,14 @@ class Xdg {
|
|
|
261
261
|
/**
|
|
262
262
|
* ALL Desktops:
|
|
263
263
|
*/
|
|
264
|
-
// Emer Chen
|
|
265
|
-
await (
|
|
266
|
-
await (
|
|
267
|
-
await (
|
|
264
|
+
// Emer Chen suggestion
|
|
265
|
+
await rmIfExist('/etc/skel/.config/user-dirs.dirs');
|
|
266
|
+
await rmIfExist('/etc/skel/.config/user-dirs.locale');
|
|
267
|
+
await rmIfExist('/etc/skel/.config/gtk-3.0/bookmarks/', 'r');
|
|
268
|
+
// Manuel Senpai suggestion
|
|
269
|
+
// await exec(`grep -IE -r /etc/skel -e ${user}`)
|
|
270
|
+
await rmIfExist('/etc/skel/.local/share/recently-used.xbel');
|
|
271
|
+
await rmIfExist('/etc/skel/.config/xfce4/desktop/', 'r');
|
|
268
272
|
}
|
|
269
273
|
}
|
|
270
274
|
exports.default = Xdg;
|
|
@@ -289,3 +293,13 @@ async function rsyncIfExist(source, dest = '/etc/skel/', verbose = false) {
|
|
|
289
293
|
await (0, utils_2.exec)(`rsync -avx ${source} ${dest}`, echo);
|
|
290
294
|
}
|
|
291
295
|
}
|
|
296
|
+
/**
|
|
297
|
+
*
|
|
298
|
+
* @param file2Remove
|
|
299
|
+
* @param recursive
|
|
300
|
+
*/
|
|
301
|
+
async function rmIfExist(file2Remove, recursive = '') {
|
|
302
|
+
if (node_fs_1.default.existsSync(file2Remove)) {
|
|
303
|
+
await (0, utils_2.exec)(`rm -f${recursive} ${file2Remove}`);
|
|
304
|
+
}
|
|
305
|
+
}
|
package/dist/classes/yolk.js
CHANGED
|
@@ -29,11 +29,11 @@ class Yolk {
|
|
|
29
29
|
async create(verbose = false) {
|
|
30
30
|
this.verbose = verbose;
|
|
31
31
|
this.echo = utils_1.default.setEcho(verbose);
|
|
32
|
-
utils_1.default.
|
|
33
|
-
|
|
34
|
-
utils_1.default.warning(`yolk is not applicable on the architecture ${utils_1.default.machineArch()}`);
|
|
32
|
+
if (utils_1.default.uefiArch() === 'i386') {
|
|
33
|
+
utils_1.default.warning(`yolk is not used on the architecture ${utils_1.default.uefiArch()}`);
|
|
35
34
|
}
|
|
36
35
|
else {
|
|
36
|
+
utils_1.default.warning("Creating a local repo on /var/local/yolk");
|
|
37
37
|
utils_1.default.warning('Updating system');
|
|
38
38
|
if (!pacman_1.default.commandIsInstalled('dpkg-scanpackages')) {
|
|
39
39
|
utils_1.default.warning(`I cannot find the command dpkg-scanpackages`);
|
|
@@ -58,12 +58,16 @@ class Yolk {
|
|
|
58
58
|
// packages we need
|
|
59
59
|
const pkgs = [
|
|
60
60
|
'cryptsetup',
|
|
61
|
-
// 'grub-efi-amd64-bin',
|
|
62
|
-
'grub-efi-amd64',
|
|
63
61
|
'grub-pc',
|
|
64
62
|
'keyutils',
|
|
65
63
|
'shim-signed',
|
|
66
64
|
];
|
|
65
|
+
// Il default è su amd64
|
|
66
|
+
let grubEfiArch = 'grub-efi-amd64';
|
|
67
|
+
if (utils_1.default.uefiArch() === 'arm64') {
|
|
68
|
+
grubEfiArch = 'grub-efi-arm64';
|
|
69
|
+
}
|
|
70
|
+
pkgs.push(grubEfiArch);
|
|
67
71
|
process.chdir(this.yolkDir);
|
|
68
72
|
utils_1.default.warning(`Downloading packages and its dependencies`);
|
|
69
73
|
for (const pkg of pkgs) {
|
|
@@ -79,7 +83,7 @@ class Yolk {
|
|
|
79
83
|
await (0, utils_2.exec)(cmd, { echo: false, capture: true });
|
|
80
84
|
// Create Release date: Sat, 14 Aug 2021 07:42:00 UTC
|
|
81
85
|
const now = shelljs_1.default.exec('date -R -u').stdout.trim();
|
|
82
|
-
const content = `Archive: stable\nComponent: yolk\nOrigin: penguins-eggs\nArchitecture: ${utils_1.default.
|
|
86
|
+
const content = `Archive: stable\nComponent: yolk\nOrigin: penguins-eggs\nArchitecture: ${utils_1.default.uefiArch()} \nDate: ${now}\n`;
|
|
83
87
|
utils_1.default.warning('Writing Release');
|
|
84
88
|
fs_1.default.writeFileSync('Release', content);
|
|
85
89
|
// Cleaning
|
package/dist/commands/config.js
CHANGED
|
@@ -72,7 +72,7 @@ class Config extends core_1.Command {
|
|
|
72
72
|
static async thatWeNeed(nointeractive = false, noicons = false, verbose = false, cryptedclone = false) {
|
|
73
73
|
const i = {};
|
|
74
74
|
i.distroTemplate = !pacman_1.default.distroTemplateCheck();
|
|
75
|
-
if (utils_1.default.
|
|
75
|
+
if (utils_1.default.uefiArch() !== 'i386') {
|
|
76
76
|
i.efi = !pacman_1.default.isUefi();
|
|
77
77
|
}
|
|
78
78
|
if (!cryptedclone && !(pacman_1.default.calamaresExists()) && pacman_1.default.isInstalledGui() && pacman_1.default.isCalamaresAvailable() && !pacman_1.default.packageIsInstalled('live-installer')) {
|
|
@@ -102,9 +102,9 @@ class Config extends core_1.Command {
|
|
|
102
102
|
console.log(chalk_1.default.yellow(' apt-get update --yes\n'));
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
|
-
if (i.efi && pacman_1.default.distro().familyId === 'debian' && utils_1.default.
|
|
105
|
+
if (i.efi && pacman_1.default.distro().familyId === 'debian' && utils_1.default.uefiArch() !== 'i386') {
|
|
106
106
|
console.log('- install efi packages');
|
|
107
|
-
console.log(chalk_1.default.yellow(' apt install -y grub-efi-' + utils_1.default.
|
|
107
|
+
console.log(chalk_1.default.yellow(' apt install -y grub-efi-' + utils_1.default.uefiArch() + '-bin\n'));
|
|
108
108
|
}
|
|
109
109
|
if (i.prerequisites) {
|
|
110
110
|
console.log('- install packages prerequisites');
|
|
@@ -174,11 +174,11 @@ class Config extends core_1.Command {
|
|
|
174
174
|
if (i.efi) {
|
|
175
175
|
if (nointeractive) {
|
|
176
176
|
utils_1.default.error('config: you are on a system UEFI');
|
|
177
|
-
utils_1.default.warning('I suggest You to install grub-efi-' + utils_1.default.
|
|
177
|
+
utils_1.default.warning('I suggest You to install grub-efi-' + utils_1.default.uefiArch() + '-bin before to produce your ISO.\nJust write:\n sudo apt install grub-efi-' + utils_1.default.uefiArch());
|
|
178
178
|
}
|
|
179
179
|
else if (pacman_1.default.distro().familyId === 'debian') {
|
|
180
180
|
utils_1.default.warning('Installing uefi support...');
|
|
181
|
-
await (0, utils_2.exec)('apt-get install grub-efi-' + utils_1.default.
|
|
181
|
+
await (0, utils_2.exec)('apt-get install grub-efi-' + utils_1.default.uefiArch() + '-bin --yes', echo);
|
|
182
182
|
}
|
|
183
183
|
}
|
|
184
184
|
if (i.prerequisites) {
|
|
@@ -21,7 +21,7 @@ class ExportDeb extends core_1.Command {
|
|
|
21
21
|
await Tu.loadSettings();
|
|
22
22
|
const echo = utils_1.default.setEcho(flags.verbose);
|
|
23
23
|
let script = '';
|
|
24
|
-
let arch = utils_1.default.
|
|
24
|
+
let arch = utils_1.default.uefiArch();
|
|
25
25
|
if (flags.all) {
|
|
26
26
|
arch = '*';
|
|
27
27
|
}
|
package/dist/commands/update.js
CHANGED
|
@@ -116,10 +116,10 @@ class Update extends core_1.Command {
|
|
|
116
116
|
const Tu = new tools_1.default();
|
|
117
117
|
await Tu.loadSettings();
|
|
118
118
|
utils_1.default.warning('import from lan');
|
|
119
|
-
const cmd = `scp ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathDeb}${Tu.config.filterDeb}${utils_1.default.
|
|
119
|
+
const cmd = `scp ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathDeb}${Tu.config.filterDeb}${utils_1.default.uefiArch()}.deb /tmp`;
|
|
120
120
|
await (0, utils_2.exec)(cmd, { echo: true, capture: true });
|
|
121
|
-
if (await utils_1.default.customConfirm(`Want to install ${Tu.config.filterDeb}${utils_1.default.
|
|
122
|
-
await (0, utils_2.exec)(`dpkg -i /tmp/${Tu.config.filterDeb}${utils_1.default.
|
|
121
|
+
if (await utils_1.default.customConfirm(`Want to install ${Tu.config.filterDeb}${utils_1.default.uefiArch()}.deb`)) {
|
|
122
|
+
await (0, utils_2.exec)(`dpkg -i /tmp/${Tu.config.filterDeb}${utils_1.default.uefiArch()}.deb`);
|
|
123
123
|
}
|
|
124
124
|
}
|
|
125
125
|
/**
|
|
@@ -28,7 +28,7 @@ async function bootloaderConfigUbuntu() {
|
|
|
28
28
|
const aptInstallOptions = ' apt install -y --no-upgrade --allow-unauthenticated -o Acquire::gpgv::Options::=--ignore-time-conflict ';
|
|
29
29
|
if (this.efi) {
|
|
30
30
|
try {
|
|
31
|
-
cmd = `chroot ${this.installTarget} ${aptInstallOptions} grub-efi-${utils_2.default.
|
|
31
|
+
cmd = `chroot ${this.installTarget} ${aptInstallOptions} grub-efi-${utils_2.default.uefiArch()} --allow-unauthenticated ${this.toNull}`;
|
|
32
32
|
await (0, utils_1.exec)(cmd, this.echo);
|
|
33
33
|
}
|
|
34
34
|
catch (error) {
|
|
@@ -14,7 +14,6 @@ const path_1 = tslib_1.__importDefault(require("path"));
|
|
|
14
14
|
const utils_1 = tslib_1.__importDefault(require("../classes/utils"));
|
|
15
15
|
const pacman_1 = tslib_1.__importDefault(require("../classes/pacman"));
|
|
16
16
|
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
17
|
-
const pjson = require('../../package.json');
|
|
18
17
|
// libraries
|
|
19
18
|
const utils_2 = require("../lib/utils");
|
|
20
19
|
const startMessage = 'eggs-start-message';
|