penguins-eggs 9.4.0 → 9.4.1

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.
@@ -1 +1 @@
1
- {"version":"9.4.0","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 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 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}]}}}
1
+ {"version":"9.4.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 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 --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 /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 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 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
@@ -438,9 +438,10 @@ krill: the CLI system installer - the egg became a penguin!
438
438
 
439
439
  ```
440
440
  USAGE
441
- $ eggs install [-k] [-c <value>] [-d <value>] [-h] [-i] [-n] [-N] [-p] [-r] [-s] [-S] [-u] [-v]
441
+ $ eggs install [-k] [-c <value>] [-d <value>] [-H] [-h] [-i] [-n] [-N] [-p] [-r] [-s] [-S] [-u] [-v]
442
442
 
443
443
  FLAGS
444
+ -H, --halt Halt the system after installation
444
445
  -N, --none Swap none: 256M
445
446
  -S, --suspend Swap suspend: RAM x 2
446
447
  -c, --custom=<value> custom unattended configuration
@@ -1406,9 +1406,13 @@ class Ovary {
1406
1406
  else if (cryptedclone) {
1407
1407
  typology = '_crypted';
1408
1408
  }
1409
+ if (fs_1.default.existsSync('/usr/bin/eui-start.sh')) {
1410
+ typology += "_EUI";
1411
+ }
1409
1412
  }
1410
1413
  const postfix = utils_2.default.getPostfix();
1411
1414
  this.settings.isoFilename = prefix + volid + typology + postfix;
1415
+ //
1412
1416
  const output = this.settings.config.snapshot_dir + this.settings.isoFilename;
1413
1417
  let command = '';
1414
1418
  // const appid = `-appid "${this.settings.distro.distroId}" `
@@ -70,15 +70,18 @@ class Pxe {
70
70
  * Ricerca delle uova
71
71
  */
72
72
  const isos = [];
73
- if (!utils_2.default.isLive()) {
74
- const isos = fs_1.default.readdirSync(this.nest);
75
- for (const iso of isos) {
76
- if (node_path_1.default.extname(iso) === '.iso') {
77
- this.isos.push(iso);
78
- }
79
- this.isos = this.isos.sort();
73
+ /*
74
+ if (!Utils.isLive()) {
75
+ const isos = fs.readdirSync(this.nest)
76
+ for (const iso of isos) {
77
+ if (path.extname(iso) === '.iso') {
78
+ this.isos.push(iso)
80
79
  }
80
+
81
+ this.isos = this.isos.sort()
82
+ }
81
83
  }
84
+ */
82
85
  /**
83
86
  * installed: /home/eggs/ovarium/iso/live
84
87
  * live: this.iso/live
@@ -53,6 +53,8 @@ class Install extends core_1.Command {
53
53
  }
54
54
  // nointeractive
55
55
  const nointeractive = flags.nointeractive;
56
+ // halt
57
+ let halt = flags.halt;
56
58
  // hostname
57
59
  const ip = flags.ip;
58
60
  const random = flags.random;
@@ -72,8 +74,8 @@ class Install extends core_1.Command {
72
74
  const verbose = flags.verbose;
73
75
  if (utils_1.default.isRoot()) {
74
76
  if (utils_1.default.isLive()) {
75
- const krill = new krill_prepare_1.default();
76
- await krill.prepare(unattended, nointeractive, krillConfig, ip, random, domain, suspend, small, none, crypted, pve, verbose);
77
+ const krill = new krill_prepare_1.default(unattended, nointeractive, halt);
78
+ await krill.prepare(krillConfig, ip, random, domain, suspend, small, none, crypted, pve, verbose);
77
79
  }
78
80
  else {
79
81
  utils_1.default.warning('You are in an installed system!');
@@ -89,6 +91,7 @@ Install.flags = {
89
91
  crypted: core_1.Flags.boolean({ char: 'k', description: 'Crypted CLI installation' }),
90
92
  custom: core_1.Flags.string({ char: 'c', description: 'custom unattended configuration' }),
91
93
  domain: core_1.Flags.string({ char: 'd', description: 'Domain name, defult: .local' }),
94
+ halt: core_1.Flags.boolean({ char: 'H', description: 'Halt the system after installation' }),
92
95
  help: core_1.Flags.help({ char: 'h' }),
93
96
  ip: core_1.Flags.boolean({ char: 'i', description: 'hostname as ip, eg: ip-192-168-1-33' }),
94
97
  nointeractive: core_1.Flags.boolean({ char: 'n', description: 'no user interaction' }),
@@ -103,6 +106,6 @@ Install.flags = {
103
106
  Install.description = 'krill: the CLI system installer - the egg became a penguin!';
104
107
  Install.examples = [
105
108
  'sudo eggs install',
106
- 'sudo eggs install --unattended',
109
+ 'sudo eggs install --unattended --halt',
107
110
  'sudo eggs install --custom it',
108
111
  ];
@@ -104,15 +104,37 @@ const config_file = '/etc/penguins-eggs.d/krill.yaml';
104
104
  *
105
105
  */
106
106
  class Krill {
107
- constructor() {
107
+ /**
108
+ * constructor
109
+ * @param unattended
110
+ * @param nointeractive
111
+ * @param halt
112
+ */
113
+ constructor(unattended = false, nointeractive = false, halt = false) {
108
114
  this.krillConfig = {};
109
115
  this.locales = new locales_1.default();
110
116
  this.keyboards = new keyboards_1.default();
117
+ this.unattended = false;
118
+ this.nointeractive = false;
119
+ this.halt = false;
120
+ this.unattended = unattended;
121
+ this.nointeractive = nointeractive;
122
+ this.halt = halt;
111
123
  }
112
124
  /**
125
+ *
126
+ * @param krillConfig
127
+ * @param ip
128
+ * @param random
129
+ * @param domain
130
+ * @param suspend
131
+ * @param small
132
+ * @param none
113
133
  * @param cryped
134
+ * @param pve
135
+ * @param verbose
114
136
  */
115
- 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) {
137
+ async prepare(krillConfig = {}, ip = false, random = false, domain = 'local', suspend = false, small = false, none = false, cryped = false, pve = false, verbose = false) {
116
138
  /**
117
139
  * Check for disk presence
118
140
  */
@@ -147,7 +169,7 @@ class Krill {
147
169
  process.exit(1);
148
170
  }
149
171
  this.krillConfig = krillConfig; // yaml.load(fs.readFileSync(config_file, 'utf-8')) as IKrillConfig
150
- if (unattended) {
172
+ if (this.unattended) {
151
173
  oWelcome = { language: this.krillConfig.language };
152
174
  oLocation = {
153
175
  language: this.krillConfig.language,
@@ -224,11 +246,12 @@ class Krill {
224
246
  /**
225
247
  * summary
226
248
  */
227
- await this.summary(oLocation, oKeyboard, oPartitions, oUsers, unattended, nointeractive);
249
+ await this.summary(oLocation, oKeyboard, oPartitions, oUsers);
228
250
  /**
229
- * installation
230
- */
231
- await this.install(oLocation, oKeyboard, oPartitions, oUsers, oNetwork, unattended, domain, verbose);
251
+ * INSTALL
252
+ */
253
+ const sequence = new krill_sequence_1.default(oLocation, oKeyboard, oPartitions, oUsers, oNetwork);
254
+ await sequence.start(domain, this.unattended, this.nointeractive, this.halt, verbose);
232
255
  }
233
256
  /**
234
257
  * WELCOME
@@ -482,21 +505,20 @@ class Krill {
482
505
  /**
483
506
  * SUMMARY
484
507
  */
485
- async summary(location, keyboard, partitions, users, unattended = false, nointeractive = false) {
486
- //
508
+ async summary(location, keyboard, partitions, users) {
487
509
  let summaryElem;
488
510
  let message = "Double check the installation disk: " + partitions.installationDevice;
489
- if (unattended && nointeractive) {
511
+ if (this.unattended && this.nointeractive) {
490
512
  message = "Unattended installation will start in 5 seconds, press CTRL-C to abort!";
491
513
  }
492
514
  while (true) {
493
515
  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 });
494
- if (unattended && nointeractive) {
516
+ if (this.unattended && this.nointeractive) {
495
517
  redraw(summaryElem);
496
518
  await sleep(5000);
497
519
  break;
498
520
  }
499
- else if (unattended && !nointeractive) {
521
+ else if (this.unattended && !this.nointeractive) {
500
522
  if (await confirm(summaryElem, "Read the Summary, confirm or abort")) {
501
523
  break;
502
524
  }
@@ -509,13 +531,6 @@ class Krill {
509
531
  }
510
532
  }
511
533
  }
512
- /**
513
- * INSTALL
514
- */
515
- async install(location, keyboard, partitions, users, network, unattended = false, domain = 'local', verbose = false) {
516
- const sequence = new krill_sequence_1.default(location, keyboard, partitions, users, network);
517
- await sequence.start(unattended, domain, verbose);
518
- }
519
534
  /**
520
535
  * return true if pv exist
521
536
  */
@@ -555,7 +570,6 @@ function redraw(elem) {
555
570
  opt.patchConsole = true;
556
571
  opt.debug = false;
557
572
  console.clear();
558
- // shx.exec('clear')
559
573
  (0, ink_1.render)(elem, opt);
560
574
  }
561
575
  /**
@@ -17,7 +17,6 @@ const install_1 = __importDefault(require("../components/install"));
17
17
  const finished_1 = __importDefault(require("../components/finished"));
18
18
  const fs_1 = __importDefault(require("fs"));
19
19
  const js_yaml_1 = __importDefault(require("js-yaml"));
20
- const shelljs_1 = __importDefault(require("shelljs"));
21
20
  const utils_1 = __importDefault(require("../classes/utils"));
22
21
  const cli_autologin_1 = __importDefault(require("../lib/cli-autologin"));
23
22
  const pacman_1 = __importDefault(require("../classes/pacman"));
@@ -135,6 +134,8 @@ class Sequence {
135
134
  this.is_clone = fs_1.default.existsSync('/etc/penguins-eggs.d/is_clone');
136
135
  this.is_crypted_clone = fs_1.default.existsSync('/etc/penguins-eggs.d/is_crypted_clone');
137
136
  this.unattended = false;
137
+ this.nointeractive = false;
138
+ this.halt = false;
138
139
  this.cliAutologin = new cli_autologin_1.default();
139
140
  this.installer = (0, installer_1.installer)();
140
141
  this.settings = new settings_1.default();
@@ -161,8 +162,10 @@ class Sequence {
161
162
  * @param umount
162
163
  * @returns
163
164
  */
164
- async start(unattended = false, domain = 'local', verbose = false) {
165
+ async start(domain = 'local', unattended = false, nointeractive = false, halt = false, verbose = false) {
165
166
  this.unattended = unattended;
167
+ this.nointeractive = nointeractive;
168
+ this.halt = halt;
166
169
  this.verbose = verbose;
167
170
  this.echo = utils_1.default.setEcho(this.verbose);
168
171
  if (this.verbose) {
@@ -563,10 +566,19 @@ class Sequence {
563
566
  */
564
567
  async finished() {
565
568
  await redraw(react_1.default.createElement(finished_1.default, { installationDevice: this.partitions.installationDevice, hostName: this.users.hostname, userName: this.users.name }));
566
- if (!this.unattended) {
567
- utils_1.default.pressKeyToExit('Press a key to reboot...');
569
+ let cmd = "reboot";
570
+ if (this.halt) {
571
+ cmd = "poweroff";
572
+ }
573
+ if (this.unattended && this.nointeractive) {
574
+ console.log(`System will ${cmd} in 5 seconds...`);
575
+ await sleep(5000);
576
+ await (0, utils_2.exec)(cmd, { echo: true });
577
+ }
578
+ else {
579
+ utils_1.default.pressKeyToExit(`Press a key to ${cmd}`);
580
+ await (0, utils_2.exec)(cmd, { echo: true });
568
581
  }
569
- shelljs_1.default.exec('reboot');
570
582
  }
571
583
  }
572
584
  exports.default = Sequence;
@@ -583,3 +595,13 @@ async function redraw(elem) {
583
595
  // await exec('clear', Utils.setEcho(false))
584
596
  (0, ink_1.render)(elem, opt);
585
597
  }
598
+ /**
599
+ *
600
+ * @param ms
601
+ * @returns
602
+ */
603
+ function sleep(ms = 0) {
604
+ return new Promise((resolve) => {
605
+ setTimeout(resolve, ms);
606
+ });
607
+ }
package/eui/README.md CHANGED
@@ -1,23 +1,50 @@
1
1
  # eggs unattended install
2
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:
3
+ Eggs unattended install è basato su semplici script:
4
+ * ```eui-create-image.sh``` crea l'immagine;
5
+ * ```eui-start.sh``` viene copiato in ```/usr/bin/```
6
+ * ```eui-users``` lista degli utenti abilitati a sudo SENZA password, viene copiato in ```/etc/sudoers.d/```;
7
+ * ```eui.desktop``` avvia l'installazione automatica al login e viene copiato in ```/etc/xdg/autostart```.
8
+
9
+ I tre file eui-start.sh, eui-users ed eui.desktop vengono eliminati dalla directory di destinazione non appena completata la produzione dell'immagine.
10
+
11
+ # Creazione di una ISO eui
12
+ Per creare una ISO con possibilità di unattended-install, procedere come segue:
5
13
 
6
14
  ```
7
15
  cd /usr/lib/penguins-eggs/eui
16
+ ```
17
+ Modificare eventualmente il file eui-start.sh ```sudo nano eui-start.sh``` per selezionare la lingua desiderata, la configurazione di swap e le altre possibili configurazioni riportate nel sorgente.
18
+
19
+ Salvate ed avviare la creazione dell'immagine:
20
+
21
+ ```
8
22
  ./eui-create-image.sh
9
23
  ```
10
- Verrà generata una immagine fast, quindi abbastanza veloce, e lanciato il comando cuckoo.
24
+
25
+ Verrà generata una immagine fast, quindi abbastanza veloce, ed avviato il comando cuckoo.
11
26
 
12
27
 
13
28
  # Modifiche necessarie rispetto ad una normale immagine
14
29
 
15
30
  Sono coinvolti 3 file:
31
+
16
32
  * /etc/sudoers.d/eui-users
17
33
  * /etc/xdg/autostart/eui.desktop
18
34
  * /usr/bin/eui-start.ch
19
35
 
20
- Vediamoli uno ad uno
36
+ E' possibile selezionare una particolare customizzazione o crearne una propria, al momento sto cercando di adattare la customizzazione alle varie lingue ed abbiamo:
37
+
38
+ * bg (bulgaro)
39
+ * br (portoghese brasiliano)
40
+ * de (tedesco)
41
+ * es (spagnolo)
42
+ * fr (francese)
43
+ * it (italiano)
44
+ * nl (olandese)
45
+ * pe (spagnolo perù)
46
+ * ru (russo)
47
+ * uk (ucraino)
21
48
 
22
49
  ## /etc/sudoers.d/eui-users
23
50
 
@@ -37,36 +64,83 @@ chmod 0440 /etc/sudoers.d/eui-users
37
64
  ```
38
65
 
39
66
  ## /etc/xdg/autostart/eui.desktop
67
+ Serve per avviare l'installazione non appena effettuato il login. Al momento funziona su XFCE, per qualche motivo non avvia l'installazione con cinnamon. Gli altri DE sono da testare.
40
68
 
41
69
  ```
42
70
  [Desktop Entry]
43
- Type=Application
71
+ Encoding=UTF-8
44
72
  Name=Eggs unattended install
73
+ Comment=Start unattended installation
74
+ Icon=cinnamon-symbolic
45
75
  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
76
+ Terminal=true
77
+ Type=Application
78
+ Categories=
79
+ X-GNOME-Autostart-Phase=Initialization
80
+ X-KDE-autostart-phase=1
81
+ X-KDE-AutostartScript=true
49
82
  ```
50
83
 
51
84
  ## /usr/bin/eui-start.sh
85
+ Al momento, la customizzazione dell'installazione, DEVE essere effettuata modificando questo file:
86
+
87
+ Si noti il nuovo flag --halt, introdotto per spegnere la macchina dopo l'installazione ed evitare. quindi, ulteriori tentativi nel caso di computer abilitati PXE e con primo dispositivo di boot PXE.
52
88
 
53
89
  ```
54
- #!/bin/env bash
90
+ set -Eeuo pipefail
91
+
55
92
  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
93
+ # if isLive
94
+ echo "E G G S: the reproductive system of penguins"
95
+ echo
96
+ echo "WARNING: A fully automated system installation is about to start,"
97
+ echo " ALL data on the hard drive present will be ERASED!"
98
+ echo
99
+
100
+
101
+ OS_HOSTNAME="NOT-CHECKED"
102
+ # we must to check in same wat that we are formatting
103
+
104
+ # TO DO
105
+
106
+ # we need to reset connection
107
+ nmcli networking off
108
+ nmcli networking on
109
+
110
+ echo "I will completely format local system: ${OS_HOSTNAME}"
111
+ echo
112
+ echo "Installation will start in one minute, press CTRL-C to abort!"
113
+ echo
114
+ echo -n "Waiting...";
115
+ for _ in {1..59}; do read -rs -n1 -t1 || printf ".";done;echo
116
+
117
+ ##################################################
118
+ # At the moment we need to configure manually here
119
+ ##################################################
120
+ # USAGE
121
+ #
122
+ # $ eggs install [-k] [-c <value>] [-d <value>] [-h] [-i] [-n] [-N] [-p] [-r] [-s] [-S] [-u] [-v]
123
+ #
124
+ # FLAGS
125
+ # -H, --halt Halt the system after installation
126
+ # -N, --none Swap none: 256M
127
+ # -S, --suspend Swap suspend: RAM x 2
128
+ # -c, --custom=<value> custom unattended configuration
129
+ # -d, --domain=<value> Domain name, defult: .local
130
+ # -h, --help Show CLI help.
131
+ # -i, --ip hostname as ip, eg: ip-192-168-1-33
132
+ # -k, --crypted Crypted CLI installation
133
+ # -n, --nointeractive no user interaction
134
+ # -p, --pve Proxmox VE install
135
+ # -r, --random Add random to hostname, eg: colibri-ay420dt
136
+ # -s, --small Swap small: RAM
137
+ # -u, --unattended Unattended installation
138
+ # -v, --verbose Verbose
139
+ eggs install --custom=it --domain=.local --random --nointeractive --halt
66
140
  else
67
141
  # 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
142
+ sudo rm -f /etc/sudoers.d/eui-users
143
+ sudo rm -f /usr/bin/eui-start.sh
144
+ sudo rm -f /etc/xdg/autostart/eui.desktop
71
145
  fi
72
- ```
146
+ ```
@@ -1,4 +1,4 @@
1
- #!/bin/env bash
1
+ #!/bin/bash
2
2
  sudo eggs tools clean -n
3
3
  sudo eggs tools ppa -n
4
4
  sudo eggs kill -n
@@ -10,3 +10,4 @@ sudo rm /etc/sudoers.d/eui-users
10
10
  sudo rm /usr/bin/eui-start.sh
11
11
  sudo rm /etc/xdg/autostart/eui.desktop
12
12
  sudo eggs cuckoo
13
+
package/eui/eui-start.sh CHANGED
@@ -1,6 +1,7 @@
1
- #!/bin/env bash
2
- if mountpoint -q "/lib/live/mount"; then
1
+ #!/bin/bash
2
+ set -Eeuo pipefail
3
3
 
4
+ if mountpoint -q "/lib/live/mount"; then
4
5
  # if isLive
5
6
  echo "E G G S: the reproductive system of penguins"
6
7
  echo
@@ -8,20 +9,46 @@ if mountpoint -q "/lib/live/mount"; then
8
9
  echo " ALL data on the hard drive present will be ERASED!"
9
10
  echo
10
11
 
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
12
 
13
+ OS_HOSTNAME="NOT-CHECKED"
14
+ # we must to check in same wat that we are formatting
15
+
16
+ # TO DO
17
+
18
+ # we need to reset connection
19
+ nmcli networking off
20
+ nmcli networking on
21
+
16
22
  echo "I will completely format local system: ${OS_HOSTNAME}"
17
23
  echo
18
24
  echo "Installation will start in one minute, press CTRL-C to abort!"
19
25
  echo
20
- echo -n "Waiting... ";
21
- for _ in {1..60}; do read -rs -n1 -t1 || printf ".";done;echo
26
+ echo -n "Waiting...";
27
+ for _ in {1..59}; do read -rs -n1 -t1 || printf ".";done;echo
22
28
 
23
- # install system
24
- sudo eggs install -unrd .local
29
+ ##################################################
30
+ # At the moment we need to configure manually here
31
+ ##################################################
32
+ # USAGE
33
+ #
34
+ # $ eggs install [-k] [-c <value>] [-d <value>] [-h] [-i] [-n] [-N] [-p] [-r] [-s] [-S] [-u] [-v]
35
+ #
36
+ # FLAGS
37
+ # -H, --halt Halt the system after installation
38
+ # -N, --none Swap none: 256M
39
+ # -S, --suspend Swap suspend: RAM x 2
40
+ # -c, --custom=<value> custom unattended configuration
41
+ # -d, --domain=<value> Domain name, defult: .local
42
+ # -h, --help Show CLI help.
43
+ # -i, --ip hostname as ip, eg: ip-192-168-1-33
44
+ # -k, --crypted Crypted CLI installation
45
+ # -n, --nointeractive no user interaction
46
+ # -p, --pve Proxmox VE install
47
+ # -r, --random Add random to hostname, eg: colibri-ay420dt
48
+ # -s, --small Swap small: RAM
49
+ # -u, --unattended Unattended installation
50
+ # -v, --verbose Verbose
51
+ eggs install --custom=it --domain=.local --random --nointeractive --halt
25
52
  else
26
53
  # isInstalled
27
54
  sudo rm -f /etc/sudoers.d/eui-users
package/eui/eui.desktop CHANGED
@@ -1,10 +1,12 @@
1
1
  [Desktop Entry]
2
- Type=Application
2
+ Encoding=UTF-8
3
3
  Name=Eggs unattended install
4
+ Comment=Start unattended installation
5
+ Icon=cinnamon-symbolic
4
6
  Exec=sudo /usr/bin/eui-start.sh
5
- StartupNotify=false
6
- NoDisplay=true
7
7
  Terminal=true
8
+ Type=Application
9
+ Categories=
8
10
  X-GNOME-Autostart-Phase=Initialization
9
11
  X-KDE-autostart-phase=1
10
12
  X-KDE-AutostartScript=true
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.4.0",
4
+ "version": "9.4.1",
5
5
  "author": "Piero Proietti @pieroproietti",
6
6
  "bin": {
7
7
  "eggs": "bin/run"