penguins-eggs 9.3.25 → 9.3.26
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 +50 -46
- package/addons/templates/isolinux.template +1 -1
- package/conf/distros/buster/calamares/calamares-modules/bootloader-config/bootloader-config.sh +2 -2
- package/conf/distros/jessie/krill/krill-modules/bootloader-config/bootloader-config.sh +2 -2
- package/dist/classes/ovary.js +25 -26
- package/dist/classes/pxe.js +1 -1
- package/dist/commands/calamares.js +3 -1
- package/dist/commands/config.js +7 -6
- package/dist/commands/install.js +4 -4
- package/dist/commands/kill.js +4 -2
- package/dist/commands/produce.js +2 -2
- package/dist/commands/tools/clean.js +3 -1
- package/dist/commands/tools/ppa.js +4 -2
- package/dist/components/elements/title.js +1 -1
- package/dist/krill/krill-prepare.js +6 -6
- package/dist/krill/krill-sequence.js +3 -3
- package/dist/krill/modules/remove-installer-link.js +2 -2
- package/eui/README.md +72 -0
- package/eui/eui-create-image.sh +12 -0
- package/eui/eui-start.sh +32 -0
- package/eui/eui-users +2 -0
- package/eui/eui.desktop +10 -0
- package/package.json +2 -1
- package/scripts/_eggs +7 -3
- package/scripts/eggs.bash +4 -4
- package/scripts/mom.sh +6 -7
package/.oclif.manifest.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":"9.3.25","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 it's dependencies","allowNo":false},"release":{"name":"release","type":"boolean","char":"r","description":"release: remove calamares and all it's dependencies after the installation","allowNo":false},"remove":{"name":"remove","type":"boolean","description":"remove calamares and it's 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 --noninteractive"],"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":"assume yes","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","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},"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":"assume yes","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},"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 /path/to/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":"don't ask for user interctions","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 penguin's 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},"verbose":{"name":"verbose","type":"boolean","char":"v","description":"verbose","allowNo":false}},"args":[]},"tools:ppa":{"id":"tools:ppa","description":"add/remove PPA repositories (Debian family)","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},"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 skel","sudo eggs 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 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-wardrove"],"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":"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},"silent":{"name":"silent","type":"boolean","char":"s","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.3.26","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 it's dependencies","allowNo":false},"nointeractive":{"name":"nointeractive","type":"boolean","char":"n","description":"no user interaction","allowNo":false},"release":{"name":"release","type":"boolean","char":"r","description":"release: remove calamares and all it's dependencies after the installation","allowNo":false},"remove":{"name":"remove","type":"boolean","description":"remove calamares and it's 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},"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","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},"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 /path/to/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},"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 penguin's 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 PPA repositories (Debian family)","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 skel","sudo eggs 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 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-wardrove"],"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":"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},"silent":{"name":"silent","type":"boolean","char":"s","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
|
@@ -29,7 +29,7 @@ penguins-eggs
|
|
|
29
29
|
# Presentation
|
|
30
30
|
**penguins-eggs** is a console utility, under continuous development, that allows you to remaster your system and redistribute it as iso images.
|
|
31
31
|
|
|
32
|
-
The purpose of this project is to implement the process of remastering your own version of Linux, generate it as an ISO image to burn to a CD/DVD or copy to a USB stick to boot your system. The default behavior is total removal of the system's data and users, but it is also possible to remaster the system including the data and accounts of present users, use flag **--clone**. It is also possible to keep the users and files present under an encrypted LUKS file within the same resulting iso file, flag **--
|
|
32
|
+
The purpose of this project is to implement the process of remastering your own version of Linux, generate it as an ISO image to burn to a CD/DVD or copy to a USB stick to boot your system. The default behavior is total removal of the system's data and users, but it is also possible to remaster the system including the data and accounts of present users, use flag **--clone**. It is also possible to keep the users and files present under an encrypted LUKS file within the same resulting iso file, flag **--cryptedclone**.
|
|
33
33
|
|
|
34
34
|
You can easily install the resulting live system with the calamares installer or the internal TUI krill installer. It is possible to have also unattended installation using **--unattended** flag.
|
|
35
35
|
|
|
@@ -47,23 +47,23 @@ You can read more on the [blog](https://penguins-eggs.net/2021/11/02/distros-tha
|
|
|
47
47
|
## addons and themes
|
|
48
48
|
Addons are used mostly to let third parties to develop extensions. Note that currently we have an extension for the theme that includes both branding calamares, link and installer icon. In addition, also as an addon has been developed choose between GUI or CLI installation, adapt the video resolution, link to remote support, etc.
|
|
49
49
|
|
|
50
|
-
##
|
|
50
|
+
## clone/cryptedclone
|
|
51
51
|
|
|
52
|
-
We have two methods to save in the live system all our data: clone and
|
|
52
|
+
We have two methods to save in the live system all our data: clone and cryptedclone.
|
|
53
53
|
|
|
54
|
-
```eggs produce --
|
|
54
|
+
```eggs produce --clone```
|
|
55
55
|
|
|
56
56
|
saves our users and our data directly in the generated iso. The data will be visible directly from the live and accessible to anyone who gets a copy.
|
|
57
57
|
|
|
58
|
-
```eggs produce --
|
|
58
|
+
```eggs produce --cryptedclone```
|
|
59
59
|
|
|
60
60
|
saves our data within the generated iso using a LUKS volume. Our data will NOT be visible in the live system but can be reinstalled automatically with krill installer. Even having the generated image available, our data will be protected by the LUKS passphrase.
|
|
61
61
|
|
|
62
62
|
* ```eggs produce``` this is the default: all private data are removed on the live.
|
|
63
63
|
* ```eggs produce --clone``` include all users data UNCRYPTED directly on the live.
|
|
64
|
-
* ```eggs produce --
|
|
64
|
+
* ```eggs produce --cryptedclone``` include all users data CRYPTED on a LUKS volume inside the iso.
|
|
65
65
|
|
|
66
|
-
Using ```sudo eggs install --cli``` will automaticaly restore your CRYPTED
|
|
66
|
+
Using ```sudo eggs install --cli``` will automaticaly restore your CRYPTED clone automatically during the installation.
|
|
67
67
|
|
|
68
68
|
## calamares and krill
|
|
69
69
|
eggs was developed to use the excellent [calamares](https://calamares.io) as a system installer and allows customization. It also includes its own installer called krill, which allows you to produce and install CLI systems such as servers. krill uses a CLI interface that mimics calamares and uses the same configuration files created by eggs for calamares itself. This results in having "about the same" installation experience from old distros to new ones, desktop or server installations. With krill it is also possible to have unattended installations, simply by adding the ``--unattended`` flag, the configuration values can be changed in ``/etc/penguins-eggs.d/krill.yaml`` and they will be used for the configuration.
|
|
@@ -142,17 +142,17 @@ Once the package has been installed, you can have the new ```eggs``` command. Ty
|
|
|
142
142
|
|
|
143
143
|
* Create a live system without user data:
|
|
144
144
|
|
|
145
|
-
```sudo eggs produce
|
|
145
|
+
```sudo eggs produce ```
|
|
146
146
|
|
|
147
147
|
* Create a live system with user data uncrypted.
|
|
148
148
|
|
|
149
|
-
```sudo eggs produce --
|
|
149
|
+
```sudo eggs produce --clone```
|
|
150
150
|
|
|
151
151
|
* Create a live system with the encrypted user data.
|
|
152
152
|
|
|
153
|
-
```sudo eggs produce --
|
|
153
|
+
```sudo eggs produce --cryptedclone```
|
|
154
154
|
|
|
155
|
-
|
|
155
|
+
At the moment eggs uses the default fast compression, which provides a faster compression speed, for the final compression it is worth using the --max flag to get more compressed ISOs.
|
|
156
156
|
|
|
157
157
|
In addition to the description of the commands in this README, you can consult the [Penguin's eggs official book](#penguins-eggs-official-book).
|
|
158
158
|
|
|
@@ -207,7 +207,7 @@ EXAMPLES
|
|
|
207
207
|
$ eggs adapt
|
|
208
208
|
```
|
|
209
209
|
|
|
210
|
-
_See code: [dist/commands/adapt.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.
|
|
210
|
+
_See code: [dist/commands/adapt.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.26/dist/commands/adapt.js)_
|
|
211
211
|
|
|
212
212
|
## `eggs analyze`
|
|
213
213
|
|
|
@@ -228,7 +228,7 @@ EXAMPLES
|
|
|
228
228
|
sudo eggs analyze
|
|
229
229
|
```
|
|
230
230
|
|
|
231
|
-
_See code: [dist/commands/analyze.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.
|
|
231
|
+
_See code: [dist/commands/analyze.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.26/dist/commands/analyze.js)_
|
|
232
232
|
|
|
233
233
|
## `eggs autocomplete [SHELL]`
|
|
234
234
|
|
|
@@ -265,15 +265,16 @@ configure calamares or install or configure it
|
|
|
265
265
|
|
|
266
266
|
```
|
|
267
267
|
USAGE
|
|
268
|
-
$ eggs calamares [-h] [-i] [-r] [--remove] [--theme <value>] [-v]
|
|
268
|
+
$ eggs calamares [-h] [-i] [-n] [-r] [--remove] [--theme <value>] [-v]
|
|
269
269
|
|
|
270
270
|
FLAGS
|
|
271
|
-
-h, --help
|
|
272
|
-
-i, --install
|
|
273
|
-
-
|
|
271
|
+
-h, --help Show CLI help.
|
|
272
|
+
-i, --install install calamares and it's dependencies
|
|
273
|
+
-n, --nointeractive no user interaction
|
|
274
|
+
-r, --release release: remove calamares and all it's dependencies after the installation
|
|
274
275
|
-v, --verbose
|
|
275
|
-
--remove
|
|
276
|
-
--theme=<value>
|
|
276
|
+
--remove remove calamares and it's dependencies
|
|
277
|
+
--theme=<value> theme/branding for eggs and calamares
|
|
277
278
|
|
|
278
279
|
DESCRIPTION
|
|
279
280
|
configure calamares or install or configure it
|
|
@@ -288,7 +289,7 @@ EXAMPLES
|
|
|
288
289
|
sudo eggs calamares --remove
|
|
289
290
|
```
|
|
290
291
|
|
|
291
|
-
_See code: [dist/commands/calamares.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.
|
|
292
|
+
_See code: [dist/commands/calamares.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.26/dist/commands/calamares.js)_
|
|
292
293
|
|
|
293
294
|
## `eggs config`
|
|
294
295
|
|
|
@@ -301,7 +302,7 @@ USAGE
|
|
|
301
302
|
FLAGS
|
|
302
303
|
-c, --clean remove old configuration before to create new one
|
|
303
304
|
-h, --help Show CLI help.
|
|
304
|
-
-n, --nointeractive
|
|
305
|
+
-n, --nointeractive no user interaction
|
|
305
306
|
-v, --verbose verbose
|
|
306
307
|
|
|
307
308
|
DESCRIPTION
|
|
@@ -312,10 +313,10 @@ EXAMPLES
|
|
|
312
313
|
|
|
313
314
|
sudo eggs config --clean
|
|
314
315
|
|
|
315
|
-
sudo eggs config --clean --
|
|
316
|
+
sudo eggs config --clean --nointeractive
|
|
316
317
|
```
|
|
317
318
|
|
|
318
|
-
_See code: [dist/commands/config.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.
|
|
319
|
+
_See code: [dist/commands/config.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.26/dist/commands/config.js)_
|
|
319
320
|
|
|
320
321
|
## `eggs cuckoo`
|
|
321
322
|
|
|
@@ -335,7 +336,7 @@ EXAMPLES
|
|
|
335
336
|
sudo eggs cuckoo
|
|
336
337
|
```
|
|
337
338
|
|
|
338
|
-
_See code: [dist/commands/cuckoo.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.
|
|
339
|
+
_See code: [dist/commands/cuckoo.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.26/dist/commands/cuckoo.js)_
|
|
339
340
|
|
|
340
341
|
## `eggs dad`
|
|
341
342
|
|
|
@@ -362,7 +363,7 @@ EXAMPLES
|
|
|
362
363
|
sudo dad --default
|
|
363
364
|
```
|
|
364
365
|
|
|
365
|
-
_See code: [dist/commands/dad.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.
|
|
366
|
+
_See code: [dist/commands/dad.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.26/dist/commands/dad.js)_
|
|
366
367
|
|
|
367
368
|
## `eggs export deb`
|
|
368
369
|
|
|
@@ -447,7 +448,7 @@ FLAGS
|
|
|
447
448
|
-h, --help Show CLI help.
|
|
448
449
|
-i, --ip hostname as ip, eg: ip-192-168-1-33
|
|
449
450
|
-k, --crypted Crypted CLI installation
|
|
450
|
-
-n, --nointeractive
|
|
451
|
+
-n, --nointeractive no user interaction
|
|
451
452
|
-p, --pve Proxmox VE install
|
|
452
453
|
-r, --random Add random to hostname, eg: colibri-ay412dt
|
|
453
454
|
-s, --small Swap small: RAM
|
|
@@ -465,7 +466,7 @@ EXAMPLES
|
|
|
465
466
|
sudo eggs install --custom it
|
|
466
467
|
```
|
|
467
468
|
|
|
468
|
-
_See code: [dist/commands/install.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.
|
|
469
|
+
_See code: [dist/commands/install.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.26/dist/commands/install.js)_
|
|
469
470
|
|
|
470
471
|
## `eggs kill`
|
|
471
472
|
|
|
@@ -473,11 +474,12 @@ kill the eggs/free the nest
|
|
|
473
474
|
|
|
474
475
|
```
|
|
475
476
|
USAGE
|
|
476
|
-
$ eggs kill [-h] [-v]
|
|
477
|
+
$ eggs kill [-h] [-n] [-v]
|
|
477
478
|
|
|
478
479
|
FLAGS
|
|
479
|
-
-h, --help
|
|
480
|
-
-
|
|
480
|
+
-h, --help Show CLI help.
|
|
481
|
+
-n, --nointeractive no user interaction
|
|
482
|
+
-v, --verbose verbose
|
|
481
483
|
|
|
482
484
|
DESCRIPTION
|
|
483
485
|
kill the eggs/free the nest
|
|
@@ -486,7 +488,7 @@ EXAMPLES
|
|
|
486
488
|
sudo eggs kill
|
|
487
489
|
```
|
|
488
490
|
|
|
489
|
-
_See code: [dist/commands/kill.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.
|
|
491
|
+
_See code: [dist/commands/kill.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.26/dist/commands/kill.js)_
|
|
490
492
|
|
|
491
493
|
## `eggs mom`
|
|
492
494
|
|
|
@@ -506,7 +508,7 @@ EXAMPLES
|
|
|
506
508
|
$ eggs mom
|
|
507
509
|
```
|
|
508
510
|
|
|
509
|
-
_See code: [dist/commands/mom.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.
|
|
511
|
+
_See code: [dist/commands/mom.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.26/dist/commands/mom.js)_
|
|
510
512
|
|
|
511
513
|
## `eggs produce`
|
|
512
514
|
|
|
@@ -523,7 +525,7 @@ FLAGS
|
|
|
523
525
|
-f, --standard standard compression
|
|
524
526
|
-h, --help Show CLI help.
|
|
525
527
|
-m, --max max compression
|
|
526
|
-
-n, --nointeractive
|
|
528
|
+
-n, --nointeractive no user interaction
|
|
527
529
|
-p, --prefix=<value> prefix
|
|
528
530
|
-s, --script script mode. Generate scripts to manage iso build
|
|
529
531
|
-v, --verbose verbose
|
|
@@ -554,7 +556,7 @@ EXAMPLES
|
|
|
554
556
|
sudo eggs produce --basename=colibri --theme /path/to/theme --addons adapt
|
|
555
557
|
```
|
|
556
558
|
|
|
557
|
-
_See code: [dist/commands/produce.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.
|
|
559
|
+
_See code: [dist/commands/produce.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.26/dist/commands/produce.js)_
|
|
558
560
|
|
|
559
561
|
## `eggs status`
|
|
560
562
|
|
|
@@ -575,7 +577,7 @@ EXAMPLES
|
|
|
575
577
|
$ eggs status
|
|
576
578
|
```
|
|
577
579
|
|
|
578
|
-
_See code: [dist/commands/status.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.
|
|
580
|
+
_See code: [dist/commands/status.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.26/dist/commands/status.js)_
|
|
579
581
|
|
|
580
582
|
## `eggs syncfrom`
|
|
581
583
|
|
|
@@ -601,7 +603,7 @@ EXAMPLES
|
|
|
601
603
|
sudo eggs syncfrom --file /path/to/fileLUKS
|
|
602
604
|
```
|
|
603
605
|
|
|
604
|
-
_See code: [dist/commands/syncfrom.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.
|
|
606
|
+
_See code: [dist/commands/syncfrom.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.26/dist/commands/syncfrom.js)_
|
|
605
607
|
|
|
606
608
|
## `eggs syncto`
|
|
607
609
|
|
|
@@ -626,7 +628,7 @@ EXAMPLES
|
|
|
626
628
|
sudo eggs syncto --file /path/to/fileLUKS
|
|
627
629
|
```
|
|
628
630
|
|
|
629
|
-
_See code: [dist/commands/syncto.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.
|
|
631
|
+
_See code: [dist/commands/syncto.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.26/dist/commands/syncto.js)_
|
|
630
632
|
|
|
631
633
|
## `eggs tools clean`
|
|
632
634
|
|
|
@@ -634,11 +636,12 @@ clean system log, apt, etc
|
|
|
634
636
|
|
|
635
637
|
```
|
|
636
638
|
USAGE
|
|
637
|
-
$ eggs tools clean [-h] [-v]
|
|
639
|
+
$ eggs tools clean [-h] [-n] [-v]
|
|
638
640
|
|
|
639
641
|
FLAGS
|
|
640
|
-
-h, --help
|
|
641
|
-
-
|
|
642
|
+
-h, --help Show CLI help.
|
|
643
|
+
-n, --nointeractive no user interaction
|
|
644
|
+
-v, --verbose verbose
|
|
642
645
|
|
|
643
646
|
DESCRIPTION
|
|
644
647
|
clean system log, apt, etc
|
|
@@ -653,13 +656,14 @@ add/remove PPA repositories (Debian family)
|
|
|
653
656
|
|
|
654
657
|
```
|
|
655
658
|
USAGE
|
|
656
|
-
$ eggs tools ppa [-a] [-h] [-r] [-v]
|
|
659
|
+
$ eggs tools ppa [-a] [-h] [-n] [-r] [-v]
|
|
657
660
|
|
|
658
661
|
FLAGS
|
|
659
|
-
-a, --add
|
|
660
|
-
-h, --help
|
|
661
|
-
-
|
|
662
|
-
-
|
|
662
|
+
-a, --add add penguins-eggs PPA repository
|
|
663
|
+
-h, --help Show CLI help.
|
|
664
|
+
-n, --nointeractive no user interaction
|
|
665
|
+
-r, --remove remove penguins-eggs PPA repository
|
|
666
|
+
-v, --verbose verbose
|
|
663
667
|
|
|
664
668
|
DESCRIPTION
|
|
665
669
|
add/remove PPA repositories (Debian family)
|
|
@@ -754,7 +758,7 @@ EXAMPLES
|
|
|
754
758
|
$ eggs update
|
|
755
759
|
```
|
|
756
760
|
|
|
757
|
-
_See code: [dist/commands/update.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.
|
|
761
|
+
_See code: [dist/commands/update.js](https://github.com/pieroproietti/penguins-eggs/blob/v9.3.26/dist/commands/update.js)_
|
|
758
762
|
|
|
759
763
|
## `eggs version`
|
|
760
764
|
|
package/conf/distros/buster/calamares/calamares-modules/bootloader-config/bootloader-config.sh
CHANGED
|
@@ -21,8 +21,8 @@ echo "Running bootloader-config..."
|
|
|
21
21
|
|
|
22
22
|
if [ -d /sys/firmware/efi/efivars ]; then
|
|
23
23
|
echo " * Installing grub-efi (uefi)..."
|
|
24
|
-
DEBIAN_FRONTEND=
|
|
24
|
+
DEBIAN_FRONTEND=nointeractive chroot $CHROOT apt-get -y --allow-unauthenticated install grub-efi-amd64 cryptsetup keyutils
|
|
25
25
|
else
|
|
26
26
|
echo " * install grub... (bios)"
|
|
27
|
-
DEBIAN_FRONTEND=
|
|
27
|
+
DEBIAN_FRONTEND=nointeractive chroot $CHROOT apt-get -y --allow-unauthenticated install grub-pc cryptsetup
|
|
28
28
|
fi
|
|
@@ -21,8 +21,8 @@ echo "Running bootloader-config..."
|
|
|
21
21
|
|
|
22
22
|
if [ -d /sys/firmware/efi/efivars ]; then
|
|
23
23
|
echo " * Installing grub-efi (uefi)..."
|
|
24
|
-
DEBIAN_FRONTEND=
|
|
24
|
+
DEBIAN_FRONTEND=nointeractive chroot $CHROOT apt-get -y --allow-unauthenticated install grub-efi-amd64 cryptsetup keyutils
|
|
25
25
|
else
|
|
26
26
|
echo " * install grub... (bios)"
|
|
27
|
-
DEBIAN_FRONTEND=
|
|
27
|
+
DEBIAN_FRONTEND=nointeractive chroot $CHROOT apt-get -y --allow-unauthenticated install grub-pc cryptsetup
|
|
28
28
|
fi
|
package/dist/classes/ovary.js
CHANGED
|
@@ -55,7 +55,7 @@ class Ovary {
|
|
|
55
55
|
/**
|
|
56
56
|
* @returns {boolean} success
|
|
57
57
|
*/
|
|
58
|
-
async fertilization(snapshot_prefix = '', snapshot_basename = '', theme = '', compression = '',
|
|
58
|
+
async fertilization(snapshot_prefix = '', snapshot_basename = '', theme = '', compression = '', nointeratctive = false) {
|
|
59
59
|
this.settings = new settings_1.default();
|
|
60
60
|
if (await this.settings.load()) {
|
|
61
61
|
this.familyId = this.settings.distro.familyId;
|
|
@@ -71,7 +71,7 @@ class Ovary {
|
|
|
71
71
|
if (compression !== '') {
|
|
72
72
|
this.settings.config.compression = compression;
|
|
73
73
|
}
|
|
74
|
-
if (!
|
|
74
|
+
if (!nointeratctive) {
|
|
75
75
|
return true;
|
|
76
76
|
}
|
|
77
77
|
this.settings.listFreeSpace();
|
|
@@ -121,11 +121,14 @@ class Ovary {
|
|
|
121
121
|
}
|
|
122
122
|
else {
|
|
123
123
|
await this.liveCreateStructure();
|
|
124
|
-
if (
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
124
|
+
if (!nointeractive) {
|
|
125
|
+
if (this.settings.distro.isCalamaresAvailable && (pacman_1.default.isInstalledGui()) &&
|
|
126
|
+
this.settings.config.force_installer && !(await pacman_1.default.calamaresCheck())) {
|
|
127
|
+
console.log('Installing ' + chalk_1.default.bgGray('calamares') + ' due force_installer=yes.');
|
|
128
|
+
await pacman_1.default.calamaresInstall(verbose);
|
|
129
|
+
const bleach = new bleach_1.default();
|
|
130
|
+
await bleach.clean(verbose);
|
|
131
|
+
}
|
|
129
132
|
}
|
|
130
133
|
// CRYPTEDCLONE
|
|
131
134
|
if (cryptedclone) {
|
|
@@ -1084,20 +1087,16 @@ class Ovary {
|
|
|
1084
1087
|
* configuro add-penguins-desktop-icons in /etc/xdg/autostart
|
|
1085
1088
|
*/
|
|
1086
1089
|
const dirAutostart = `${this.settings.work_dir.merged}/etc/xdg/autostart`;
|
|
1087
|
-
const dirRun = '/usr/bin';
|
|
1088
1090
|
if (fs_1.default.existsSync(dirAutostart)) {
|
|
1089
1091
|
// Creo l'avviatore xdg DEVE essere add-penguins-links.desktop
|
|
1090
1092
|
shelljs_1.default.cp(node_path_1.default.resolve(__dirname, '../../assets/penguins-links-add.desktop'), dirAutostart);
|
|
1091
|
-
//
|
|
1092
|
-
const script =
|
|
1093
|
+
// create /usr/bin/penguins-links-add.sh
|
|
1094
|
+
const script = `/usr/bin/penguins-links-add.sh`;
|
|
1093
1095
|
let text = '';
|
|
1094
1096
|
text += '#!/bin/sh\n';
|
|
1095
1097
|
text += 'DESKTOP=$(xdg-user-dir DESKTOP)\n';
|
|
1096
|
-
text += '
|
|
1097
|
-
text +=
|
|
1098
|
-
// Anche se in lxde rimane il problema della conferma dell'avvio
|
|
1099
|
-
// per l'installer, lo tolgo altrimenti su LXDE riappare comunque
|
|
1100
|
-
text += `cp /usr/share/applications/${installerUrl} $DESKTOP\n`;
|
|
1098
|
+
text += 'test -d "$DESKTOP" && mkdir -p "$DESKTOP"\n';
|
|
1099
|
+
text += `cp /usr/share/applications/${installerUrl} "$DESKTOP"\n`;
|
|
1101
1100
|
if (pacman_1.default.packageIsInstalled('lxde-core')) {
|
|
1102
1101
|
text += this.lxdeLink('penguins-eggs.desktop', "penguin's eggs", 'eggs');
|
|
1103
1102
|
if (myAddons.adapt)
|
|
@@ -1108,29 +1107,29 @@ class Ovary {
|
|
|
1108
1107
|
text += this.lxdeLink('eggs-rsupport.desktop', 'Remote assistance', 'remote-assistance');
|
|
1109
1108
|
}
|
|
1110
1109
|
else {
|
|
1111
|
-
text +=
|
|
1110
|
+
text += `cp /usr/share/applications/penguins-eggs.desktop "$DESKTOP"\n`;
|
|
1112
1111
|
if (myAddons.adapt)
|
|
1113
|
-
text +=
|
|
1112
|
+
text += `cp /usr/share/applications/eggs-adapt.desktop "$DESKTOP"\n`;
|
|
1114
1113
|
if (myAddons.pve)
|
|
1115
|
-
text +=
|
|
1114
|
+
text += `cp /usr/share/applications/eggs-pve.desktop "$DESKTOP"\n`;
|
|
1116
1115
|
if (myAddons.rsupport)
|
|
1117
|
-
text +=
|
|
1116
|
+
text += `cp /usr/share/applications/eggs-rsupport.desktop "$DESKTOP"\n`;
|
|
1118
1117
|
}
|
|
1119
1118
|
/**
|
|
1120
1119
|
* enable desktop links
|
|
1121
1120
|
*/
|
|
1122
1121
|
if (pacman_1.default.packageIsInstalled('gdm3') || pacman_1.default.packageIsInstalled('gdm')) {
|
|
1123
1122
|
// GNOME
|
|
1124
|
-
text += `test -f /usr/share/applications/penguins-eggs.desktop && cp /usr/share/applications/penguins-eggs.desktop $DESKTOP\n`;
|
|
1125
|
-
text += `test -f "$DESKTOP/penguins-eggs.desktop
|
|
1126
|
-
text += `test -f "$DESKTOP/penguins-eggs.desktop
|
|
1127
|
-
text += `test -f /usr/share/applications
|
|
1128
|
-
text += `test -f "$DESKTOP
|
|
1129
|
-
text += `test -f "$DESKTOP
|
|
1123
|
+
text += `test -f /usr/share/applications/penguins-eggs.desktop && cp /usr/share/applications/penguins-eggs.desktop "$DESKTOP"\n`;
|
|
1124
|
+
text += `test -f "$DESKTOP"/penguins-eggs.desktop && chmod a+x "$DESKTOP"/penguins-eggs.desktop\n`;
|
|
1125
|
+
text += `test -f "$DESKTOP"/penguins-eggs.desktop && gio set "$DESKTOP"/penguins-eggs.desktop metadata::trusted true\n`;
|
|
1126
|
+
text += `test -f /usr/share/applications/${installerUrl} && cp /usr/share/applications/${installerUrl} "$DESKTOP"\n`;
|
|
1127
|
+
text += `test -f "$DESKTOP"/${installerUrl} && chmod a+x "$DESKTOP"/${installerUrl}\n`;
|
|
1128
|
+
text += `test -f "$DESKTOP"/${installerUrl} && gio set "$DESKTOP"/${installerUrl} metadata::trusted true\n`;
|
|
1130
1129
|
}
|
|
1131
1130
|
else {
|
|
1132
1131
|
// OTHERS: CINNAMON/KDE/ETC
|
|
1133
|
-
text += `chmod +x $DESKTOP/*.desktop`;
|
|
1132
|
+
text += `chmod +x "$DESKTOP"/*.desktop`;
|
|
1134
1133
|
}
|
|
1135
1134
|
fs_1.default.writeFileSync(script, text, 'utf8');
|
|
1136
1135
|
await (0, utils_1.exec)(`chmod a+x ${script}`, this.echo);
|
package/dist/classes/pxe.js
CHANGED
|
@@ -176,7 +176,7 @@ class Pxe {
|
|
|
176
176
|
content += `\n`;
|
|
177
177
|
content += `menu title cuckoo: when you need a flying PXE server! ${utils_1.default.address()}\n`;
|
|
178
178
|
content += `PROMPT 0\n`;
|
|
179
|
-
content += `TIMEOUT
|
|
179
|
+
content += `TIMEOUT 200\n`;
|
|
180
180
|
content += `\n`;
|
|
181
181
|
content += `label egg\n`;
|
|
182
182
|
content += `menu label ${this.bootLabel.replace('.iso', '')}\n`;
|
|
@@ -43,6 +43,7 @@ class Calamares extends core_1.Command {
|
|
|
43
43
|
if (flags.theme !== undefined) {
|
|
44
44
|
theme = flags.theme;
|
|
45
45
|
}
|
|
46
|
+
let nointeractive = flags.nointeractive;
|
|
46
47
|
console.log(`theme: ${theme}`);
|
|
47
48
|
if (utils_1.default.isRoot(this.id)) {
|
|
48
49
|
let installer = 'krill';
|
|
@@ -51,7 +52,7 @@ class Calamares extends core_1.Command {
|
|
|
51
52
|
}
|
|
52
53
|
if (installer === 'calamares') {
|
|
53
54
|
if (!remove) {
|
|
54
|
-
if (await utils_1.default.customConfirm('Select yes to continue...')) {
|
|
55
|
+
if (!nointeractive || await utils_1.default.customConfirm('Select yes to continue...')) {
|
|
55
56
|
/**
|
|
56
57
|
* Install calamares
|
|
57
58
|
*/
|
|
@@ -102,6 +103,7 @@ exports.default = Calamares;
|
|
|
102
103
|
Calamares.flags = {
|
|
103
104
|
help: core_1.Flags.help({ char: 'h' }),
|
|
104
105
|
install: core_1.Flags.boolean({ char: 'i', description: "install calamares and it's dependencies" }),
|
|
106
|
+
nointeractive: core_1.Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
105
107
|
release: core_1.Flags.boolean({ char: 'r', description: "release: remove calamares and all it's dependencies after the installation" }),
|
|
106
108
|
remove: core_1.Flags.boolean({ description: "remove calamares and it's dependencies" }),
|
|
107
109
|
theme: core_1.Flags.string({ description: 'theme/branding for eggs and calamares' }),
|
package/dist/commands/config.js
CHANGED
|
@@ -67,17 +67,18 @@ class Config extends core_1.Command {
|
|
|
67
67
|
*
|
|
68
68
|
* @param verbose
|
|
69
69
|
*/
|
|
70
|
-
static async thatWeNeed(nointeractive = false, verbose = false,
|
|
70
|
+
static async thatWeNeed(nointeractive = false, verbose = false, cryptedclone = false) {
|
|
71
71
|
const i = {};
|
|
72
72
|
i.distroTemplate = !pacman_1.default.distroTemplateCheck();
|
|
73
73
|
if (utils_1.default.machineArch() !== 'i386') {
|
|
74
74
|
i.efi = !pacman_1.default.isUefi();
|
|
75
75
|
}
|
|
76
|
-
if (!
|
|
76
|
+
if (!cryptedclone) {
|
|
77
77
|
if (!(await pacman_1.default.calamaresCheck()) && pacman_1.default.isInstalledGui() && pacman_1.default.isCalamaresAvailable()) {
|
|
78
78
|
if (!pacman_1.default.packageIsInstalled('live-installer')) {
|
|
79
|
-
utils_1.default.warning('
|
|
80
|
-
|
|
79
|
+
utils_1.default.warning('Config: you are on a graphic system, I suggest to install the GUI installer calamares');
|
|
80
|
+
// se nointeractive i.calamares=false
|
|
81
|
+
i.calamares = nointeractive ? false : await utils_1.default.customConfirm('Want You install calamares?');
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
84
|
}
|
|
@@ -209,12 +210,12 @@ exports.default = Config;
|
|
|
209
210
|
Config.flags = {
|
|
210
211
|
clean: core_1.Flags.boolean({ char: 'c', description: 'remove old configuration before to create new one' }),
|
|
211
212
|
help: core_1.Flags.help({ char: 'h' }),
|
|
212
|
-
nointeractive: core_1.Flags.boolean({ char: 'n', description: '
|
|
213
|
+
nointeractive: core_1.Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
213
214
|
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' })
|
|
214
215
|
};
|
|
215
216
|
Config.description = 'Configure and install prerequisites deb packages to run it';
|
|
216
217
|
Config.examples = [
|
|
217
218
|
"sudo eggs config",
|
|
218
219
|
"sudo eggs config --clean",
|
|
219
|
-
"sudo eggs config --clean --
|
|
220
|
+
"sudo eggs config --clean --nointeractive"
|
|
220
221
|
];
|
package/dist/commands/install.js
CHANGED
|
@@ -49,8 +49,8 @@ class Install extends core_1.Command {
|
|
|
49
49
|
krillConfig = js_yaml_1.default.load(content);
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
|
-
//
|
|
53
|
-
let
|
|
52
|
+
// nointeractive
|
|
53
|
+
let nointeractive = flags.nointeractive;
|
|
54
54
|
// hostname
|
|
55
55
|
let ip = flags.ip;
|
|
56
56
|
let random = flags.random;
|
|
@@ -71,7 +71,7 @@ class Install extends core_1.Command {
|
|
|
71
71
|
if (utils_1.default.isRoot()) {
|
|
72
72
|
if (utils_1.default.isLive()) {
|
|
73
73
|
const krill = new krill_prepare_1.default();
|
|
74
|
-
await krill.prepare(unattended,
|
|
74
|
+
await krill.prepare(unattended, nointeractive, krillConfig, ip, random, domain, suspend, small, none, crypted, pve, verbose);
|
|
75
75
|
}
|
|
76
76
|
else {
|
|
77
77
|
utils_1.default.warning('You are in an installed system!');
|
|
@@ -89,7 +89,7 @@ Install.flags = {
|
|
|
89
89
|
domain: core_1.Flags.string({ char: 'd', description: 'Domain name, defult: .local' }),
|
|
90
90
|
help: core_1.Flags.help({ char: 'h' }),
|
|
91
91
|
ip: core_1.Flags.boolean({ char: 'i', description: 'hostname as ip, eg: ip-192-168-1-33' }),
|
|
92
|
-
nointeractive: core_1.Flags.boolean({ char: 'n', description: '
|
|
92
|
+
nointeractive: core_1.Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
93
93
|
none: core_1.Flags.boolean({ char: 'N', description: 'Swap none: 256M' }),
|
|
94
94
|
pve: core_1.Flags.boolean({ char: 'p', description: 'Proxmox VE install' }),
|
|
95
95
|
random: core_1.Flags.boolean({ char: 'r', description: 'Add random to hostname, eg: colibri-ay412dt' }),
|
package/dist/commands/kill.js
CHANGED
|
@@ -19,19 +19,20 @@ class Kill extends core_1.Command {
|
|
|
19
19
|
this.work_dir = {};
|
|
20
20
|
}
|
|
21
21
|
async run() {
|
|
22
|
-
|
|
22
|
+
utils_1.default.titles(this.id + ' ' + this.argv);
|
|
23
23
|
const { flags } = await this.parse(Kill);
|
|
24
24
|
let verbose = false;
|
|
25
25
|
if (flags.verbose) {
|
|
26
26
|
verbose = true;
|
|
27
27
|
}
|
|
28
|
+
let nointeractive = flags.nointeractive;
|
|
28
29
|
const echo = utils_1.default.setEcho(verbose);
|
|
29
30
|
if (utils_1.default.isRoot()) {
|
|
30
31
|
// Utils.warning('Cleaning the nest...')
|
|
31
32
|
const settings = new settings_1.default();
|
|
32
33
|
await settings.load();
|
|
33
34
|
await settings.listFreeSpace();
|
|
34
|
-
if (await utils_1.default.customConfirm()) {
|
|
35
|
+
if (nointeractive || await utils_1.default.customConfirm()) {
|
|
35
36
|
await (0, utils_2.exec)(`rm ${settings.work_dir.path}/* -rf`, echo);
|
|
36
37
|
await (0, utils_2.exec)(`rm ${settings.config.snapshot_dir} -rf`, echo);
|
|
37
38
|
}
|
|
@@ -44,6 +45,7 @@ class Kill extends core_1.Command {
|
|
|
44
45
|
exports.default = Kill;
|
|
45
46
|
Kill.flags = {
|
|
46
47
|
help: core_1.Flags.help({ char: 'h' }),
|
|
48
|
+
nointeractive: core_1.Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
47
49
|
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' })
|
|
48
50
|
};
|
|
49
51
|
Kill.description = 'kill the eggs/free the nest';
|
package/dist/commands/produce.js
CHANGED
|
@@ -90,7 +90,7 @@ class Produce extends core_1.Command {
|
|
|
90
90
|
}
|
|
91
91
|
const i = await config_1.default.thatWeNeed(nointeractive, verbose, cryptedclone);
|
|
92
92
|
if ((i.needApt || i.configurationInstall || i.configurationRefresh || i.distroTemplate) && (await utils_1.default.customConfirm('Select yes to continue...'))) {
|
|
93
|
-
await config_1.default.install(i, verbose);
|
|
93
|
+
await config_1.default.install(i, nointeractive, verbose);
|
|
94
94
|
}
|
|
95
95
|
const myAddons = {};
|
|
96
96
|
if (flags.addons != undefined) {
|
|
@@ -128,7 +128,7 @@ Produce.flags = {
|
|
|
128
128
|
cryptedclone: core_1.Flags.boolean({ char: 'C', description: 'crypted clone' }),
|
|
129
129
|
help: core_1.Flags.help({ char: 'h' }),
|
|
130
130
|
max: core_1.Flags.boolean({ char: 'm', description: 'max compression' }),
|
|
131
|
-
nointeractive: core_1.Flags.boolean({ char: 'n', description: '
|
|
131
|
+
nointeractive: core_1.Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
132
132
|
prefix: core_1.Flags.string({ char: 'p', description: 'prefix' }),
|
|
133
133
|
release: core_1.Flags.boolean({ description: 'release: max compression, remove penguins-eggs and calamares after installation' }),
|
|
134
134
|
script: core_1.Flags.boolean({ char: 's', description: 'script mode. Generate scripts to manage iso build' }),
|
|
@@ -18,8 +18,9 @@ class Clean extends core_1.Command {
|
|
|
18
18
|
if (flags.verbose) {
|
|
19
19
|
verbose = true;
|
|
20
20
|
}
|
|
21
|
+
let nointeractive = flags.nointeractive;
|
|
21
22
|
if (utils_1.default.isRoot()) {
|
|
22
|
-
if (await utils_1.default.customConfirm('Select yes to continue...')) {
|
|
23
|
+
if (nointeractive || await utils_1.default.customConfirm('Select yes to continue...')) {
|
|
23
24
|
const bleach = new bleach_1.default();
|
|
24
25
|
bleach.clean(verbose);
|
|
25
26
|
}
|
|
@@ -32,6 +33,7 @@ class Clean extends core_1.Command {
|
|
|
32
33
|
exports.default = Clean;
|
|
33
34
|
Clean.flags = {
|
|
34
35
|
help: core_1.Flags.help({ char: 'h' }),
|
|
36
|
+
nointeractive: core_1.Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
35
37
|
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' })
|
|
36
38
|
};
|
|
37
39
|
Clean.description = 'clean system log, apt, etc';
|
|
@@ -25,18 +25,19 @@ class Ppa extends core_1.Command {
|
|
|
25
25
|
if (flags.verbose) {
|
|
26
26
|
verbose = true;
|
|
27
27
|
}
|
|
28
|
+
let nointeractive = flags.nointeractive;
|
|
28
29
|
const distro = new distro_1.default();
|
|
29
30
|
if (distro.familyId === 'debian') {
|
|
30
31
|
if (utils_1.default.isRoot()) {
|
|
31
32
|
if (flags.remove) {
|
|
32
33
|
utils_1.default.warning(`Are you sure to remove ${flist} to your repositories?`);
|
|
33
|
-
if (await utils_1.default.customConfirm('Select yes to continue...')) {
|
|
34
|
+
if (nointeractive || await utils_1.default.customConfirm('Select yes to continue...')) {
|
|
34
35
|
await remove();
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
38
|
if (flags.add) {
|
|
38
39
|
utils_1.default.warning(`Are you sure to add ${flist} to your repositories?`);
|
|
39
|
-
if (await utils_1.default.customConfirm('Select yes to continue...')) {
|
|
40
|
+
if (nointeractive || await utils_1.default.customConfirm('Select yes to continue...')) {
|
|
40
41
|
await clean();
|
|
41
42
|
await add();
|
|
42
43
|
}
|
|
@@ -52,6 +53,7 @@ exports.default = Ppa;
|
|
|
52
53
|
Ppa.flags = {
|
|
53
54
|
add: core_1.Flags.boolean({ char: 'a', description: 'add penguins-eggs PPA repository' }),
|
|
54
55
|
help: core_1.Flags.help({ char: 'h' }),
|
|
56
|
+
nointeractive: core_1.Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
55
57
|
remove: core_1.Flags.boolean({ char: 'r', description: 'remove penguins-eggs PPA repository' }),
|
|
56
58
|
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' })
|
|
57
59
|
};
|
|
@@ -12,7 +12,7 @@ function Title({ title = "krill" }) {
|
|
|
12
12
|
react_1.default.createElement(ink_1.Box, { flexDirection: "column" },
|
|
13
13
|
react_1.default.createElement(ink_1.Box, null),
|
|
14
14
|
react_1.default.createElement(ink_1.Box, null,
|
|
15
|
-
react_1.default.createElement(ink_1.Text, null, "
|
|
15
|
+
react_1.default.createElement(ink_1.Text, null, "E G G S: the reproductive system of penguins")),
|
|
16
16
|
react_1.default.createElement(ink_1.Box, null,
|
|
17
17
|
react_1.default.createElement(ink_1.Newline, null))),
|
|
18
18
|
react_1.default.createElement(ink_1.Box, { flexDirection: "row" },
|
|
@@ -110,7 +110,7 @@ class Krill {
|
|
|
110
110
|
/**
|
|
111
111
|
* @param cryped
|
|
112
112
|
*/
|
|
113
|
-
async prepare(unattended = false,
|
|
113
|
+
async prepare(unattended = false, nointeractive = false, krillConfig = {}, ip = false, random = false, domain = 'local', suspend = false, small = false, none = false, cryped = false, pve = false, verbose = false) {
|
|
114
114
|
/**
|
|
115
115
|
* Check for disk presence
|
|
116
116
|
*/
|
|
@@ -222,7 +222,7 @@ class Krill {
|
|
|
222
222
|
/**
|
|
223
223
|
* summary
|
|
224
224
|
*/
|
|
225
|
-
await this.summary(oLocation, oKeyboard, oPartitions, oUsers, unattended,
|
|
225
|
+
await this.summary(oLocation, oKeyboard, oPartitions, oUsers, unattended, nointeractive);
|
|
226
226
|
/**
|
|
227
227
|
* installation
|
|
228
228
|
*/
|
|
@@ -480,21 +480,21 @@ class Krill {
|
|
|
480
480
|
/**
|
|
481
481
|
* SUMMARY
|
|
482
482
|
*/
|
|
483
|
-
async summary(location, keyboard, partitions, users, unattended = false,
|
|
483
|
+
async summary(location, keyboard, partitions, users, unattended = false, nointeractive = false) {
|
|
484
484
|
//
|
|
485
485
|
let summaryElem;
|
|
486
486
|
let message = "Double check the installation disk: " + partitions.installationDevice;
|
|
487
|
-
if (unattended &&
|
|
487
|
+
if (unattended && nointeractive) {
|
|
488
488
|
message = "Unattended installation will start in 5 seconds, press CTRL-C to abort!";
|
|
489
489
|
}
|
|
490
490
|
while (true) {
|
|
491
491
|
summaryElem = react_1.default.createElement(summary_1.default, { name: users.name, password: users.password, rootPassword: users.rootPassword, hostname: users.hostname, region: location.region, zone: location.zone, language: location.language, keyboardModel: keyboard.keyboardModel, keyboardLayout: keyboard.keyboardLayout, installationDevice: partitions.installationDevice, message: message });
|
|
492
|
-
if (unattended &&
|
|
492
|
+
if (unattended && nointeractive) {
|
|
493
493
|
redraw(summaryElem);
|
|
494
494
|
await sleep(5000);
|
|
495
495
|
break;
|
|
496
496
|
}
|
|
497
|
-
else if (unattended && !
|
|
497
|
+
else if (unattended && !nointeractive) {
|
|
498
498
|
if (await confirm(summaryElem, "Read the Summary, confirm or abort")) {
|
|
499
499
|
break;
|
|
500
500
|
}
|
|
@@ -421,7 +421,7 @@ class Sequence {
|
|
|
421
421
|
}
|
|
422
422
|
}
|
|
423
423
|
} // IF NOT CLONE END
|
|
424
|
-
// Remove autologin CLI
|
|
424
|
+
// Remove ALWAYS autologin CLI
|
|
425
425
|
message = "Remove autologin CLI";
|
|
426
426
|
percent = 0.80;
|
|
427
427
|
try {
|
|
@@ -485,10 +485,10 @@ class Sequence {
|
|
|
485
485
|
}
|
|
486
486
|
/**
|
|
487
487
|
*
|
|
488
|
-
* if calamares is present
|
|
488
|
+
* if calamares is present: remove GUI installer link
|
|
489
489
|
*/
|
|
490
490
|
if (await pacman_1.default.calamaresCheck()) {
|
|
491
|
-
message = "remove installer link";
|
|
491
|
+
message = "remove GUI installer link";
|
|
492
492
|
percent = 0.92;
|
|
493
493
|
try {
|
|
494
494
|
await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
|
|
@@ -25,10 +25,10 @@ async function removeInstallerLink() {
|
|
|
25
25
|
lines[i] += '#';
|
|
26
26
|
}
|
|
27
27
|
if (lines[i].search('penguins-clinstaller.desktop') !== -1) {
|
|
28
|
-
lines[i]
|
|
28
|
+
lines[i] = '#' + lines[i];
|
|
29
29
|
}
|
|
30
30
|
if (lines[i].search('install-debian.desktop') !== -1) {
|
|
31
|
-
lines[i]
|
|
31
|
+
lines[i] = '#' + lines[i];
|
|
32
32
|
}
|
|
33
33
|
content += lines[i] + '\n';
|
|
34
34
|
}
|
package/eui/README.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# eggs unattended install
|
|
2
|
+
|
|
3
|
+
Eggs unattended install è basato su semplici script ed, al momento,
|
|
4
|
+
per creare una ISO con possibilità di unattended-install, procedere come segue:
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
cd /usr/lib/penguins-eggs/eui
|
|
8
|
+
./eui-create-image.sh
|
|
9
|
+
```
|
|
10
|
+
Verrà generata una immagine fast, quindi abbastanza veloce, e lanciato il comando cuckoo.
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# Modifiche necessarie rispetto ad una normale immagine
|
|
14
|
+
|
|
15
|
+
Sono coinvolti 3 file:
|
|
16
|
+
* /etc/sudoers.d/eui-users
|
|
17
|
+
* /etc/xdg/autostart/eui.desktop
|
|
18
|
+
* /usr/bin/eui-start.ch
|
|
19
|
+
|
|
20
|
+
Vediamoli uno ad uno
|
|
21
|
+
|
|
22
|
+
## /etc/sudoers.d/eui-users
|
|
23
|
+
|
|
24
|
+
Create a file:
|
|
25
|
+
```
|
|
26
|
+
sudo nano /etc/sudoers.d/eui-users
|
|
27
|
+
```
|
|
28
|
+
and copy and past, following code:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
live ALL=(ALL) NOPASSWD: /usr/bin/eui-start.sh
|
|
32
|
+
artisan ALL=(ALL) NOPASSWD: /usr/bin/eui-start.sh
|
|
33
|
+
```
|
|
34
|
+
Change permissions to /etc/sudoers.d/eui-users
|
|
35
|
+
```
|
|
36
|
+
chmod 0440 /etc/sudoers.d/eui-users
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## /etc/xdg/autostart/eui.desktop
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
[Desktop Entry]
|
|
43
|
+
Type=Application
|
|
44
|
+
Name=Eggs unattended install
|
|
45
|
+
Exec=sudo /usr/bin/eui-start.sh
|
|
46
|
+
StartupNotify=false
|
|
47
|
+
NoDisplay=true
|
|
48
|
+
Terminal=true #basically will open terminal and people can see the script executing
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## /usr/bin/eui-start.sh
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
#!/bin/env bash
|
|
55
|
+
if mountpoint -q "/lib/live/mount"; then
|
|
56
|
+
# isLive
|
|
57
|
+
|
|
58
|
+
# try to read /etc/hostname from /dev/sda
|
|
59
|
+
sudo mount "/dev/sda2" "/mnt"
|
|
60
|
+
OS_HOSTNAME=$(/usr/bin/cat /mnt/etc/hostname)
|
|
61
|
+
sudo umount "/dev/sda2"
|
|
62
|
+
sudo echo "I will completely format local system: ${OS_HOSTNAME}"
|
|
63
|
+
echo -n "Wait a minute for installation or CTRL-C to abort.";
|
|
64
|
+
for _ in {1..60}; do read -rs -n1 -t1 || printf ".";done;echo
|
|
65
|
+
sudo eggs install -unrd .local
|
|
66
|
+
else
|
|
67
|
+
# isInstalled
|
|
68
|
+
sudo rm /etc/sudoers.d/eui-users
|
|
69
|
+
sudo rm /usr/bin/eui-start.sh
|
|
70
|
+
sudo rm /etc/xdg/autostart/eui.desktop
|
|
71
|
+
fi
|
|
72
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/bin/env bash
|
|
2
|
+
sudo eggs tools clean -n
|
|
3
|
+
sudo eggs tools ppa -n
|
|
4
|
+
sudo eggs kill -n
|
|
5
|
+
sudo cp eui-users /etc/sudoers.d/
|
|
6
|
+
sudo cp eui-start.sh /usr/bin/
|
|
7
|
+
sudo cp eui.desktop /etc/xdg/autostart/
|
|
8
|
+
sudo eggs produce --release -n
|
|
9
|
+
sudo rm /etc/sudoers.d/eui-users
|
|
10
|
+
sudo rm /usr/bin/eui-start.sh
|
|
11
|
+
sudo rm /etc/xdg/autostart/eui.desktop
|
|
12
|
+
sudo eggs cuckoo
|
package/eui/eui-start.sh
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/bin/env bash
|
|
2
|
+
if mountpoint -q "/lib/live/mount"; then
|
|
3
|
+
|
|
4
|
+
# if isLive
|
|
5
|
+
echo "E G G S: the reproductive system of penguins"
|
|
6
|
+
echo
|
|
7
|
+
echo "WARNING: A fully automated system installation is about to start,"
|
|
8
|
+
echo " ALL data on the hard drive present will be ERASED!"
|
|
9
|
+
echo
|
|
10
|
+
|
|
11
|
+
# try to read /etc/hostname from /dev/sda
|
|
12
|
+
sudo mount "/dev/sda2" "/mnt"
|
|
13
|
+
OS_HOSTNAME=$(/usr/bin/cat /mnt/etc/hostname)
|
|
14
|
+
sudo umount "/dev/sda2"
|
|
15
|
+
|
|
16
|
+
echo "I will completely format local system: ${OS_HOSTNAME}"
|
|
17
|
+
echo
|
|
18
|
+
echo "Installation will start in one minute, press CTRL-C to abort!"
|
|
19
|
+
echo
|
|
20
|
+
echo -n "Waiting... ";
|
|
21
|
+
for _ in {1..60}; do read -rs -n1 -t1 || printf ".";done;echo
|
|
22
|
+
|
|
23
|
+
# install system
|
|
24
|
+
sudo eggs install -unrd .local
|
|
25
|
+
else
|
|
26
|
+
# isInstalled
|
|
27
|
+
sudo rm -f /etc/sudoers.d/eui-users
|
|
28
|
+
sudo rm -f /usr/bin/eui-start.sh
|
|
29
|
+
sudo rm -f /etc/xdg/autostart/eui.desktop
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
|
package/eui/eui-users
ADDED
package/eui/eui.desktop
ADDED
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "penguins-eggs",
|
|
3
3
|
"description": "Perri's Brewery edition: remaster your system and distribuite it",
|
|
4
|
-
"version": "9.3.
|
|
4
|
+
"version": "9.3.26",
|
|
5
5
|
"author": "Piero Proietti @pieroproietti",
|
|
6
6
|
"bin": {
|
|
7
7
|
"eggs": "bin/run"
|
|
@@ -73,6 +73,7 @@
|
|
|
73
73
|
"/bin",
|
|
74
74
|
"/conf",
|
|
75
75
|
"/dist",
|
|
76
|
+
"/eui",
|
|
76
77
|
"/ipxe",
|
|
77
78
|
"/manpages",
|
|
78
79
|
"mkinitcpio",
|
package/scripts/_eggs
CHANGED
|
@@ -57,6 +57,7 @@ calamares)
|
|
|
57
57
|
_command_flags=(
|
|
58
58
|
"--help[Show CLI help.]"
|
|
59
59
|
"--install[install calamares and it's dependencies]"
|
|
60
|
+
"--nointeractive[no user interaction]"
|
|
60
61
|
"--release[release: remove calamares and all it's dependencies after the installation]"
|
|
61
62
|
"--remove[remove calamares and it's dependencies]"
|
|
62
63
|
"--theme=-[theme/branding for eggs and calamares]:"
|
|
@@ -68,7 +69,7 @@ config)
|
|
|
68
69
|
_command_flags=(
|
|
69
70
|
"--clean[remove old configuration before to create new one]"
|
|
70
71
|
"--help[Show CLI help.]"
|
|
71
|
-
"--nointeractive[
|
|
72
|
+
"--nointeractive[no user interaction]"
|
|
72
73
|
"--verbose[verbose]"
|
|
73
74
|
)
|
|
74
75
|
;;
|
|
@@ -112,7 +113,7 @@ install)
|
|
|
112
113
|
"--domain=-[Domain name, defult: .local]:"
|
|
113
114
|
"--help[Show CLI help.]"
|
|
114
115
|
"--ip[hostname as ip, eg: ip-192-168-1-33]"
|
|
115
|
-
"--nointeractive[
|
|
116
|
+
"--nointeractive[no user interaction]"
|
|
116
117
|
"--none[Swap none: 256M]"
|
|
117
118
|
"--pve[Proxmox VE install]"
|
|
118
119
|
"--random[Add random to hostname, eg: colibri-ay412dt]"
|
|
@@ -126,6 +127,7 @@ install)
|
|
|
126
127
|
kill)
|
|
127
128
|
_command_flags=(
|
|
128
129
|
"--help[Show CLI help.]"
|
|
130
|
+
"--nointeractive[no user interaction]"
|
|
129
131
|
"--verbose[verbose]"
|
|
130
132
|
)
|
|
131
133
|
;;
|
|
@@ -144,7 +146,7 @@ produce)
|
|
|
144
146
|
"--cryptedclone[crypted clone]"
|
|
145
147
|
"--help[Show CLI help.]"
|
|
146
148
|
"--max[max compression]"
|
|
147
|
-
"--nointeractive[
|
|
149
|
+
"--nointeractive[no user interaction]"
|
|
148
150
|
"--prefix=-[prefix]:"
|
|
149
151
|
"--release[release: max compression, remove penguins-eggs and calamares after installation]"
|
|
150
152
|
"--script[script mode. Generate scripts to manage iso build]"
|
|
@@ -184,6 +186,7 @@ syncto)
|
|
|
184
186
|
tools:clean)
|
|
185
187
|
_command_flags=(
|
|
186
188
|
"--help[Show CLI help.]"
|
|
189
|
+
"--nointeractive[no user interaction]"
|
|
187
190
|
"--verbose[verbose]"
|
|
188
191
|
)
|
|
189
192
|
;;
|
|
@@ -192,6 +195,7 @@ tools:ppa)
|
|
|
192
195
|
_command_flags=(
|
|
193
196
|
"--add[add penguins-eggs PPA repository]"
|
|
194
197
|
"--help[Show CLI help.]"
|
|
198
|
+
"--nointeractive[no user interaction]"
|
|
195
199
|
"--remove[remove penguins-eggs PPA repository]"
|
|
196
200
|
"--verbose[verbose]"
|
|
197
201
|
)
|
package/scripts/eggs.bash
CHANGED
|
@@ -13,21 +13,21 @@ _eggs_autocomplete()
|
|
|
13
13
|
local commands="
|
|
14
14
|
adapt --help --verbose
|
|
15
15
|
analyze --help --verbose
|
|
16
|
-
calamares --help --install --release --remove --theme --verbose
|
|
16
|
+
calamares --help --install --nointeractive --release --remove --theme --verbose
|
|
17
17
|
config --clean --help --nointeractive --verbose
|
|
18
18
|
cuckoo --help
|
|
19
19
|
dad --clean --default --help --verbose
|
|
20
20
|
export:deb --all --clean --help --verbose
|
|
21
21
|
export:iso --clean --help --verbose
|
|
22
22
|
install --crypted --custom --domain --help --ip --nointeractive --none --pve --random --small --suspend --unattended --verbose
|
|
23
|
-
kill --help --verbose
|
|
23
|
+
kill --help --nointeractive --verbose
|
|
24
24
|
mom --help
|
|
25
25
|
produce --addons --basename --clone --cryptedclone --help --max --nointeractive --prefix --release --script --standard --theme --verbose --yolk
|
|
26
26
|
status --help --verbose
|
|
27
27
|
syncfrom --delete --file --help --rootdir --verbose
|
|
28
28
|
syncto --delete --file --help --verbose
|
|
29
|
-
tools:clean --help --verbose
|
|
30
|
-
tools:ppa --add --help --remove --verbose
|
|
29
|
+
tools:clean --help --nointeractive --verbose
|
|
30
|
+
tools:ppa --add --help --nointeractive --remove --verbose
|
|
31
31
|
tools:skel --help --user --verbose
|
|
32
32
|
tools:stat --help --month --year
|
|
33
33
|
tools:yolk --help --verbose
|
package/scripts/mom.sh
CHANGED
|
@@ -4,18 +4,17 @@ function main() {
|
|
|
4
4
|
|
|
5
5
|
# root
|
|
6
6
|
root=$(cat /usr/lib/penguins-eggs/.oclif.manifest.json | jq .)
|
|
7
|
-
|
|
8
|
-
result
|
|
7
|
+
COMMANDS=$(echo ${root} | jq ".commands[].id")
|
|
8
|
+
result=("DOCUMENTATION" ${COMMANDS} "QUIT")
|
|
9
9
|
|
|
10
10
|
while true; do
|
|
11
11
|
clear
|
|
12
|
-
# NOTE [@]
|
|
13
12
|
menu ${result[@]}
|
|
14
13
|
answer=$(0< "${dir_tmp}/${file_tmp}" )
|
|
15
14
|
case "$answer" in
|
|
16
|
-
|
|
15
|
+
QUIT)
|
|
17
16
|
exit ;;
|
|
18
|
-
|
|
17
|
+
DOCUMENTATION)
|
|
19
18
|
documentation ;;
|
|
20
19
|
*)
|
|
21
20
|
eggs $answer --help
|
|
@@ -31,7 +30,7 @@ function main() {
|
|
|
31
30
|
function documentation() {
|
|
32
31
|
while true; do
|
|
33
32
|
|
|
34
|
-
menu "book" "manual" "man" "repository" "sourceforge" "
|
|
33
|
+
menu "book" "manual" "man" "repository" "sourceforge" "QUIT"
|
|
35
34
|
choose=$(0< "${dir_tmp}/${file_tmp}" )
|
|
36
35
|
|
|
37
36
|
case "$choose" in
|
|
@@ -45,7 +44,7 @@ function documentation() {
|
|
|
45
44
|
documentation_repository ;;
|
|
46
45
|
sourceforge)
|
|
47
46
|
documentation_sourceforge ;;
|
|
48
|
-
|
|
47
|
+
QUIT)
|
|
49
48
|
break ;;
|
|
50
49
|
esac
|
|
51
50
|
done
|