penguins-eggs 8.1.3 → 9.0.16

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.
Files changed (323) hide show
  1. package/README.md +332 -168
  2. package/addons/README.md +78 -84
  3. package/addons/{pve → blissos}/theme/applications/install-debian.desktop +0 -0
  4. package/addons/{deblinux → blissos}/theme/artwork/install-debian.png +0 -0
  5. package/addons/blissos/theme/calamares/branding/blissos-logo.png +0 -0
  6. package/addons/{guadalinex → blissos}/theme/calamares/branding/branding.desc +0 -0
  7. package/addons/blissos/theme/calamares/branding/languages.png +0 -0
  8. package/addons/blissos/theme/calamares/branding/show.qml +75 -0
  9. package/addons/blissos/theme/calamares/branding/slide1.png +0 -0
  10. package/addons/blissos/theme/calamares/branding/slide2.png +0 -0
  11. package/addons/blissos/theme/calamares/branding/slide3.png +0 -0
  12. package/addons/blissos/theme/calamares/branding/welcome.png +0 -0
  13. package/addons/{guadalinex → blissos}/theme/calamares/modules/partition.yml +1 -1
  14. package/{conf/distros/buster/grub/theme.cfg → addons/blissos/theme/livecd/grub.theme.cfg} +10 -9
  15. package/{conf/distros/buster/isolinux/stdmenu.template.cfg → addons/blissos/theme/livecd/isolinux.theme.cfg} +4 -0
  16. package/addons/blissos/theme/livecd/splash.png +0 -0
  17. package/addons/eggs/adapt/applications/eggs-adapt.desktop +1 -1
  18. package/addons/eggs/theme/calamares/branding/show.qml +1 -1
  19. package/addons/eggs/theme/livecd/README.md +19 -6
  20. package/addons/eggs/theme/livecd/{theme.cfg → grub.theme.cfg} +13 -12
  21. package/addons/eggs/theme/livecd/isolinux.theme.cfg +46 -0
  22. package/addons/eggs/theme/livecd/splash.png +0 -0
  23. package/addons/{ufficiozero/theme/livecd/theme.cfg → neon/theme/livecd/grub.theme.cfg} +13 -12
  24. package/addons/neon/theme/livecd/isolinux.theme.cfg +46 -0
  25. package/addons/neon/theme/livecd/splash.png +0 -0
  26. package/addons/templates/grub.template +28 -0
  27. package/addons/templates/isolinux.template +29 -0
  28. package/addons/ufficiozero/theme/applications/install-debian.desktop +17 -2
  29. package/bin/dev +17 -0
  30. package/bin/dev.cmd +3 -0
  31. package/bin/run +2 -4
  32. package/conf/distros/bionic/calamares/settings.yml +5 -5
  33. package/conf/distros/bookworm/README.md +9 -0
  34. package/conf/distros/bullseye/README.md +6 -8
  35. package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.sh +1 -1
  36. package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.working.sh +1 -1
  37. package/conf/distros/buster/calamares/modules/shellprocess_eggs-cleanup.yml +6 -0
  38. package/conf/distros/buster/calamares/settings.yml +14 -3
  39. package/conf/distros/chimaera/README.md +3 -0
  40. package/conf/distros/daedalus/README.md +3 -0
  41. package/conf/distros/focal/calamares/settings.yml +2 -2
  42. package/conf/distros/hirsute/README.md +1 -1
  43. package/conf/distros/impish/README.md +9 -0
  44. package/conf/distros/jammy/README.md +9 -0
  45. package/conf/distros/jessie/krill/krill-modules/sources-yolk/sources-yolk.sh +1 -1
  46. package/conf/distros/rolling/README.md +3 -0
  47. package/conf/distros/rolling/calamares/calamares-modules/remove-link/module.yml +9 -0
  48. package/conf/distros/rolling/calamares/calamares-modules/remove-link/remove-link.sh +3 -0
  49. package/conf/distros/rolling/calamares/modules/displaymanager.yml +22 -0
  50. package/conf/distros/rolling/calamares/modules/finished.yml +6 -0
  51. package/conf/distros/rolling/calamares/modules/fstab.yml +13 -0
  52. package/conf/distros/rolling/calamares/modules/locale.yml +97 -0
  53. package/conf/distros/rolling/calamares/modules/luksopenswaphookcfg.yml +6 -0
  54. package/conf/distros/rolling/calamares/modules/mount.yml +38 -0
  55. package/conf/distros/rolling/calamares/modules/packages.yml +8 -0
  56. package/conf/distros/rolling/calamares/modules/removeuser.yml +15 -0
  57. package/conf/distros/rolling/calamares/modules/unpackfs.yml +7 -0
  58. package/conf/distros/rolling/calamares/modules/users.yml +20 -0
  59. package/conf/distros/rolling/calamares/modules/welcome.yml +19 -0
  60. package/conf/distros/{bullseye → rolling}/calamares/settings.yml +17 -12
  61. package/conf/distros/thirtyfive/README.md +3 -0
  62. package/conf/distros/tumbleweed/README.md +3 -0
  63. package/conf/eggs.yaml +3 -3
  64. package/conf/exclude.list +12 -7
  65. package/conf/tools.yaml +1 -1
  66. package/lib/classes/basket.js +24 -20
  67. package/lib/classes/bleach.js +19 -19
  68. package/lib/classes/compressors.js +15 -14
  69. package/lib/classes/daddy.js +44 -31
  70. package/lib/classes/distro.d.ts +3 -2
  71. package/lib/classes/distro.js +314 -175
  72. package/lib/classes/family/archlinux.d.ts +69 -0
  73. package/lib/classes/family/archlinux.js +182 -0
  74. package/lib/classes/family/debian.d.ts +64 -0
  75. package/lib/classes/family/debian.js +227 -0
  76. package/lib/classes/family/fedora.d.ts +63 -0
  77. package/lib/classes/family/fedora.js +169 -0
  78. package/lib/classes/family/suse.d.ts +63 -0
  79. package/lib/classes/family/suse.js +169 -0
  80. package/lib/classes/i18n.js +16 -16
  81. package/lib/classes/incubation/branding.js +5 -4
  82. package/lib/classes/incubation/distros/bionic.js +1 -2
  83. package/lib/classes/incubation/distros/buster.js +2 -2
  84. package/lib/classes/incubation/distros/focal.js +3 -2
  85. package/lib/classes/incubation/distros/jessie.js +1 -25
  86. package/lib/classes/incubation/distros/{bullseye.d.ts → rolling.d.ts} +3 -3
  87. package/lib/classes/incubation/distros/{bullseye.js → rolling.js} +15 -16
  88. package/lib/classes/incubation/fisherman-helper/displaymanager.js +2 -7
  89. package/lib/classes/incubation/fisherman-helper/packages.js +31 -32
  90. package/lib/classes/incubation/fisherman.d.ts +17 -17
  91. package/lib/classes/incubation/fisherman.js +84 -71
  92. package/lib/classes/incubation/incubator.js +116 -74
  93. package/lib/classes/incubation/installer.d.ts +2 -2
  94. package/lib/classes/incubation/installer.js +6 -20
  95. package/lib/classes/initrd.d.ts +1 -1
  96. package/lib/classes/initrd.js +37 -30
  97. package/lib/classes/krill_install.d.ts +4 -4
  98. package/lib/classes/krill_install.js +166 -162
  99. package/lib/classes/krill_prepare.d.ts +6 -2
  100. package/lib/classes/krill_prepare.js +73 -60
  101. package/lib/classes/n8.js +6 -11
  102. package/lib/classes/ovary.d.ts +34 -25
  103. package/lib/classes/ovary.js +771 -688
  104. package/lib/classes/pacman.d.ts +55 -56
  105. package/lib/classes/pacman.js +524 -436
  106. package/lib/classes/pve-live.js +6 -6
  107. package/lib/classes/settings.js +47 -56
  108. package/lib/classes/systemctl.d.ts +6 -6
  109. package/lib/classes/systemctl.js +7 -7
  110. package/lib/classes/tools.d.ts +1 -1
  111. package/lib/classes/tools.js +10 -10
  112. package/lib/classes/users.d.ts +21 -0
  113. package/lib/classes/users.js +129 -0
  114. package/lib/classes/utils.d.ts +10 -13
  115. package/lib/classes/utils.js +128 -107
  116. package/lib/classes/xdg.js +112 -91
  117. package/lib/classes/yolk.js +38 -31
  118. package/lib/commands/adapt.d.ts +3 -3
  119. package/lib/commands/adapt.js +12 -12
  120. package/lib/commands/analyze.d.ts +25 -0
  121. package/lib/commands/analyze.js +74 -0
  122. package/lib/commands/bro.d.ts +14 -0
  123. package/lib/commands/bro.js +31 -0
  124. package/lib/commands/calamares.d.ts +7 -7
  125. package/lib/commands/calamares.js +22 -54
  126. package/lib/commands/config.d.ts +5 -5
  127. package/lib/commands/config.js +69 -79
  128. package/lib/commands/dad.d.ts +5 -5
  129. package/lib/commands/dad.js +11 -11
  130. package/lib/commands/export/deb.d.ts +8 -8
  131. package/lib/commands/export/deb.js +16 -16
  132. package/lib/commands/export/docs.d.ts +2 -2
  133. package/lib/commands/export/docs.js +9 -9
  134. package/lib/commands/export/iso.d.ts +4 -4
  135. package/lib/commands/export/iso.js +12 -17
  136. package/lib/commands/info.d.ts +9 -3
  137. package/lib/commands/info.js +14 -164
  138. package/lib/commands/install.d.ts +5 -5
  139. package/lib/commands/install.js +28 -42
  140. package/lib/commands/kill.d.ts +3 -3
  141. package/lib/commands/kill.js +11 -13
  142. package/lib/commands/mom.d.ts +2 -2
  143. package/lib/commands/mom.js +8 -8
  144. package/lib/commands/produce.d.ts +14 -14
  145. package/lib/commands/produce.js +48 -46
  146. package/lib/commands/remove.d.ts +5 -5
  147. package/lib/commands/remove.js +46 -57
  148. package/lib/commands/syncfrom.d.ts +37 -0
  149. package/lib/commands/syncfrom.js +156 -0
  150. package/lib/commands/syncto.d.ts +48 -0
  151. package/lib/commands/syncto.js +219 -0
  152. package/lib/commands/tools/clean.d.ts +3 -3
  153. package/lib/commands/tools/clean.js +10 -12
  154. package/lib/commands/tools/locales.d.ts +4 -4
  155. package/lib/commands/tools/locales.js +8 -8
  156. package/lib/commands/tools/skel.d.ts +4 -4
  157. package/lib/commands/tools/skel.js +10 -15
  158. package/lib/commands/tools/stat.d.ts +7 -4
  159. package/lib/commands/tools/stat.js +20 -13
  160. package/lib/commands/tools/yolk.d.ts +3 -3
  161. package/lib/commands/tools/yolk.js +13 -13
  162. package/lib/commands/update.d.ts +5 -10
  163. package/lib/commands/update.js +56 -72
  164. package/lib/components/elements/information.d.ts +4 -0
  165. package/lib/components/elements/information.js +166 -0
  166. package/lib/components/elements/steps.js +1 -1
  167. package/lib/components/elements/title.js +7 -10
  168. package/lib/components/finished.js +5 -5
  169. package/lib/components/install.js +5 -5
  170. package/lib/components/keyboard.js +5 -5
  171. package/lib/components/location.js +5 -5
  172. package/lib/components/network.js +5 -5
  173. package/lib/components/partitions.d.ts +2 -1
  174. package/lib/components/partitions.js +9 -7
  175. package/lib/components/summary.js +5 -5
  176. package/lib/components/users.js +6 -6
  177. package/lib/components/welcome.js +6 -6
  178. package/lib/index.d.ts +1 -1
  179. package/lib/index.js +2 -2
  180. package/lib/interfaces/i-analyze.d.ts +13 -0
  181. package/lib/interfaces/i-analyze.js +18 -0
  182. package/lib/interfaces/i-distro.d.ts +3 -2
  183. package/lib/interfaces/i-krill.d.ts +1 -0
  184. package/lib/interfaces/i-settings.d.ts +2 -2
  185. package/lib/lib/cli-autologin.d.ts +19 -2
  186. package/lib/lib/cli-autologin.js +114 -39
  187. package/lib/lib/dependencies.d.ts +9 -6
  188. package/lib/lib/dependencies.js +22 -13
  189. package/lib/lib/get_address.js +2 -2
  190. package/lib/lib/get_dns.js +2 -2
  191. package/lib/lib/get_domain.js +2 -2
  192. package/lib/lib/get_gateway.js +2 -2
  193. package/lib/lib/get_hostname.js +2 -2
  194. package/lib/lib/get_netmask.js +2 -2
  195. package/lib/lib/get_password.js +3 -2
  196. package/lib/lib/get_root_password.js +2 -2
  197. package/lib/lib/get_userfullname.js +2 -2
  198. package/lib/lib/get_username.js +2 -2
  199. package/lib/lib/select_address_type.js +2 -5
  200. package/lib/lib/select_filesystem_type.js +5 -14
  201. package/lib/lib/select_installation_device.js +3 -3
  202. package/lib/lib/select_interface.js +1 -1
  203. package/lib/lib/select_keyboard_layout.js +2 -10
  204. package/lib/lib/select_languages.js +2 -2
  205. package/lib/lib/select_regions.js +1 -12
  206. package/lib/lib/select_user_swap_choice.js +4 -4
  207. package/lib/lib/select_zones.js +483 -62
  208. package/manpages/doc/man/eggs.html +508 -0
  209. package/manpages/doc/man/eggs.roll.gz +0 -0
  210. package/oclif.manifest.json +1 -1
  211. package/package.json +115 -107
  212. package/scripts/_eggs +275 -0
  213. package/scripts/bros/waydroid-helper.sh +92 -0
  214. package/scripts/eggs.bash +68 -19
  215. package/scripts/mom-cli.sh +6 -5
  216. package/scripts/not-used/eggs-cleanup.sh +7 -0
  217. package/scripts/not-used/install-eggs-ppa.sh +2 -0
  218. package/scripts/{mkinitramfs → not-used/mkinitramfs} +0 -0
  219. package/scripts/{pve-live.sh → not-used/pve-live.sh} +0 -0
  220. package/addons/debian/theme/applications/install-debian.desktop +0 -13
  221. package/addons/debian/theme/artwork/install-debian.png +0 -0
  222. package/addons/debian/theme/branding/branding.desc +0 -27
  223. package/addons/debian/theme/branding/debian-logo.png +0 -0
  224. package/addons/debian/theme/branding/show.qml +0 -51
  225. package/addons/debian/theme/branding/slide1.png +0 -0
  226. package/addons/debian/theme/branding/welcome.png +0 -0
  227. package/addons/deblinux/theme/README.md +0 -16
  228. package/addons/deblinux/theme/applications/install-debian.desktop +0 -13
  229. package/addons/deblinux/theme/calamares/branding/branding.desc +0 -23
  230. package/addons/deblinux/theme/calamares/branding/deblinux-logo.png +0 -0
  231. package/addons/deblinux/theme/calamares/branding/show.qml +0 -46
  232. package/addons/deblinux/theme/calamares/branding/slide1.png +0 -0
  233. package/addons/deblinux/theme/calamares/branding/welcome.png +0 -0
  234. package/addons/deblinux/theme/calamares/modules/partition.yml +0 -233
  235. package/addons/eggs/theme/calamares/branding/4tation.png +0 -0
  236. package/addons/eggs/theme/livecd/grub.template.cfg +0 -60
  237. package/addons/eggs/theme/livecd/menu.template.cfg +0 -54
  238. package/addons/guadalinex/theme/README.md +0 -9
  239. package/addons/guadalinex/theme/applications/install-debian.desktop +0 -28
  240. package/addons/guadalinex/theme/artwork/install-debian.png +0 -0
  241. package/addons/guadalinex/theme/calamares/branding/guadalinex-logo.png +0 -0
  242. package/addons/guadalinex/theme/calamares/branding/show.qml +0 -85
  243. package/addons/guadalinex/theme/calamares/branding/slide1.png +0 -0
  244. package/addons/guadalinex/theme/calamares/branding/slide2.png +0 -0
  245. package/addons/guadalinex/theme/calamares/branding/slide3.png +0 -0
  246. package/addons/guadalinex/theme/calamares/branding/slide4.png +0 -0
  247. package/addons/guadalinex/theme/calamares/branding/slide5.png +0 -0
  248. package/addons/guadalinex/theme/calamares/branding/slide6.png +0 -0
  249. package/addons/guadalinex/theme/calamares/branding/slide7.png +0 -0
  250. package/addons/guadalinex/theme/calamares/branding/welcome.png +0 -0
  251. package/addons/guadalinex/theme/livecd/menu.template.cfg +0 -54
  252. package/addons/guadalinex/theme/livecd/splash.png +0 -0
  253. package/addons/guadalinex/theme/livecd/theme.cfg +0 -42
  254. package/addons/openos/theme/applications/Install-OpenOS-Neon_RLTS-Desktop.png +0 -0
  255. package/addons/openos/theme/applications/install-debian.desktop +0 -24
  256. package/addons/openos/theme/artwork/install-debian.png +0 -0
  257. package/addons/openos/theme/calamares/branding/branding.desc +0 -28
  258. package/addons/openos/theme/calamares/branding/openos-logo.png +0 -0
  259. package/addons/openos/theme/calamares/branding/show.qml +0 -203
  260. package/addons/openos/theme/calamares/branding/slide1.png +0 -0
  261. package/addons/openos/theme/calamares/branding/slide10.png +0 -0
  262. package/addons/openos/theme/calamares/branding/slide11.png +0 -0
  263. package/addons/openos/theme/calamares/branding/slide12.png +0 -0
  264. package/addons/openos/theme/calamares/branding/slide13.png +0 -0
  265. package/addons/openos/theme/calamares/branding/slide14.png +0 -0
  266. package/addons/openos/theme/calamares/branding/slide15.png +0 -0
  267. package/addons/openos/theme/calamares/branding/slide16.png +0 -0
  268. package/addons/openos/theme/calamares/branding/slide2.png +0 -0
  269. package/addons/openos/theme/calamares/branding/slide3.png +0 -0
  270. package/addons/openos/theme/calamares/branding/slide4.png +0 -0
  271. package/addons/openos/theme/calamares/branding/slide5.png +0 -0
  272. package/addons/openos/theme/calamares/branding/slide6.png +0 -0
  273. package/addons/openos/theme/calamares/branding/slide7.png +0 -0
  274. package/addons/openos/theme/calamares/branding/slide8.png +0 -0
  275. package/addons/openos/theme/calamares/branding/slide9.png +0 -0
  276. package/addons/openos/theme/calamares/branding/welcome.png +0 -0
  277. package/addons/openos/theme/calamares/branding.desc +0 -24
  278. package/addons/openos/theme/calamares/lang/calamares-default_ar.qm +0 -0
  279. package/addons/openos/theme/calamares/lang/calamares-default_en.qm +0 -0
  280. package/addons/openos/theme/calamares/lang/calamares-default_eo.qm +0 -0
  281. package/addons/openos/theme/calamares/lang/calamares-default_fr.qm +0 -0
  282. package/addons/openos/theme/calamares/lang/calamares-default_nl.qm +0 -0
  283. package/addons/openos/theme/calamares/modules/partition.yml +0 -233
  284. package/addons/openos/theme/livecd/grub.template.cfg +0 -60
  285. package/addons/openos/theme/livecd/menu.template.cfg +0 -54
  286. package/addons/openos/theme/livecd/splash.png +0 -0
  287. package/addons/openos/theme/livecd/theme.cfg +0 -42
  288. package/addons/pve/theme/applications/penguins-pve.desktop +0 -24
  289. package/addons/pve/theme/artwork/install-debian.png +0 -0
  290. package/addons/pve/theme/calamares/branding/branding.desc +0 -1
  291. package/addons/pve/theme/calamares/branding/pve-logo.png +0 -0
  292. package/addons/pve/theme/calamares/branding/show.qml +0 -227
  293. package/addons/pve/theme/calamares/branding/slide1.png +0 -0
  294. package/addons/pve/theme/calamares/branding/slide2.png +0 -0
  295. package/addons/pve/theme/calamares/branding/slide3.png +0 -0
  296. package/addons/pve/theme/calamares/branding/slide4.png +0 -0
  297. package/addons/pve/theme/calamares/branding/slide5.png +0 -0
  298. package/addons/pve/theme/calamares/branding/slide6.png +0 -0
  299. package/addons/pve/theme/calamares/branding/slide7.png +0 -0
  300. package/addons/pve/theme/calamares/branding/slide8.png +0 -0
  301. package/addons/pve/theme/calamares/branding/slide9.png +0 -0
  302. package/addons/pve/theme/calamares/branding/welcome.png +0 -0
  303. package/addons/pve/theme/calamares/modules/partition.yml +0 -233
  304. package/addons/pve/theme/livecd/README.md +0 -8
  305. package/addons/pve/theme/livecd/grub.template.cfg +0 -60
  306. package/addons/pve/theme/livecd/menu.template.cfg +0 -54
  307. package/addons/pve/theme/livecd/splash.png +0 -0
  308. package/addons/pve/theme/livecd/theme.cfg +0 -42
  309. package/addons/ufficiozero/theme/artwork/install-debian.png +0 -0
  310. package/addons/ufficiozero/theme/livecd/README.md +0 -8
  311. package/addons/ufficiozero/theme/livecd/grub.template.cfg +0 -60
  312. package/addons/ufficiozero/theme/livecd/menu.template.cfg +0 -54
  313. package/conf/distros/bullseye/calamares/calamares-modules/bootloader-config/bootloader-config.sh +0 -28
  314. package/conf/distros/bullseye/calamares/calamares-modules/bootloader-config/module.yml +0 -8
  315. package/conf/distros/buster/grub/grub.template.cfg +0 -58
  316. package/conf/distros/buster/grub/loopback.cfg +0 -1
  317. package/conf/distros/buster/isolinux/isolinux.template.cfg +0 -8
  318. package/conf/distros/buster/isolinux/menu.template.cfg +0 -56
  319. package/conf/distros/focal/grub/grub.template.cfg +0 -67
  320. package/conf/distros/focal/isolinux/menu.template.cfg +0 -54
  321. package/lib/classes/incubation/distros/beowulf.d.ts +0 -30
  322. package/lib/classes/incubation/distros/beowulf.js +0 -69
  323. package/manpages/doc/man/eggs.1.gz +0 -0
package/scripts/eggs.bash CHANGED
@@ -1,13 +1,19 @@
1
1
  #!/usr/bin/env bash
2
2
 
3
- _eggs()
3
+ # This function joins an array using a character passed in
4
+ # e.g. ARRAY=(one two three) -> join_by ":" ${ARRAY[@]} -> "one:two:three"
5
+ function join_by { local IFS="$1"; shift; echo "$*"; }
6
+
7
+ _eggs_autocomplete()
4
8
  {
5
9
 
6
- local cur="${COMP_WORDS[COMP_CWORD]}" opts IFS=$' \t\n'
10
+ local cur="${COMP_WORDS[COMP_CWORD]}" opts normalizedCommand colonPrefix IFS=$' \t\n'
7
11
  COMPREPLY=()
8
12
 
9
13
  local commands="
10
14
  adapt --verbose --help
15
+ analyze --help --verbose
16
+ bro --help
11
17
  calamares --help --verbose --install --final --remove --theme
12
18
  config --nointeractive --clean --help --verbose
13
19
  dad --help --clean --default --verbose
@@ -15,39 +21,82 @@ export:deb --help --clean --amd64 --i386 --armel --arm64 --all
15
21
  export:docs --help
16
22
  export:iso --help --backup --clean
17
23
  info --verbose --help
18
- install --cli --mx --help --verbose
24
+ install --cli --crypted --help --verbose
19
25
  kill --help --verbose
20
26
  mom --help
21
27
  produce --prefix --basename --backup --fast --normal --max --verbose --yolk --script --help --theme --addons --release
22
28
  remove --purge --autoremove --help --verbose
29
+ syncfrom --krill --file --help --verbose
30
+ syncto --krill --file --help --verbose
23
31
  tools:clean --help --verbose
24
32
  tools:locales --help --reinstall --verbose
25
33
  tools:skel --help --user --verbose
26
34
  tools:stat --help --month --year
27
35
  tools:yolk --help --verbose
28
- update --help --apt --basket --npm --verbose
36
+ update --help --apt --basket --verbose
37
+ help --nested-commands
38
+ version
29
39
  autocomplete --refresh-cache
30
- help --all
31
40
  "
32
41
 
42
+ function __trim_colon_commands()
43
+ {
44
+ # Turn $commands into an array
45
+ commands=("${commands[@]}")
46
+
47
+ if [[ -z "$colonPrefix" ]]; then
48
+ colonPrefix="$normalizedCommand:"
49
+ fi
50
+
51
+ # Remove colon-word prefix from $commands
52
+ commands=( "${commands[@]/$colonPrefix}" )
53
+
54
+ for i in "${!commands[@]}"; do
55
+ if [[ "${commands[$i]}" == "$normalizedCommand" ]]; then
56
+ # If the currently typed in command is a topic command we need to remove it to avoid suggesting it again
57
+ unset "${commands[$i]}"
58
+ else
59
+ # Trim subcommands from each command
60
+ commands[$i]="${commands[$i]%%:*}"
61
+ fi
62
+ done
63
+ }
64
+
33
65
  if [[ "$cur" != "-"* ]]; then
34
- opts=$(printf "$commands" | grep -Eo '^[a-zA-Z0-9:_-]+')
35
- else
36
- local __COMP_WORDS
37
- if [[ ${COMP_WORDS[2]} == ":" ]]; then
38
- #subcommand
39
- __COMP_WORDS=$(printf "%s" "${COMP_WORDS[@]:1:3}")
66
+ # Command
67
+ __COMP_WORDS=( "${COMP_WORDS[@]:1}" )
68
+
69
+ # The command typed by the user but separated by colons (e.g. "mycli command subcom" -> "command:subcom")
70
+ normalizedCommand="$( printf "%s" "$(join_by ":" "${__COMP_WORDS[@]}")" )"
71
+
72
+ # The command hirarchy, with colons, leading up to the last subcommand entered (e.g. "mycli com subcommand subsubcom" -> "com:subcommand:")
73
+ colonPrefix="${normalizedCommand%"${normalizedCommand##*:}"}"
74
+
75
+ if [[ -z "$normalizedCommand" ]]; then
76
+ # If there is no normalizedCommand yet the user hasn't typed in a full command
77
+ # So we should trim all subcommands & flags from $commands so we can suggest all top level commands
78
+ opts=$(printf "%s " "${commands[@]}" | grep -Eo '^[a-zA-Z0-9_-]+')
40
79
  else
41
- #simple command
42
- __COMP_WORDS="${COMP_WORDS[@]:1:1}"
80
+ # Filter $commands to just the ones that match the $normalizedCommand and turn into an array
81
+ commands=( $(compgen -W "$commands" -- "${normalizedCommand}") )
82
+ # Trim higher level and subcommands from the subcommands to suggest
83
+ __trim_colon_commands "$colonPrefix"
84
+
85
+ opts=$(printf "%s " "${commands[@]}") # | grep -Eo '^[a-zA-Z0-9_-]+'
43
86
  fi
44
- opts=$(printf "$commands" | grep "${__COMP_WORDS}" | sed -n "s/^${__COMP_WORDS} //p")
87
+ else
88
+ # Flag
89
+
90
+ # The full CLI command separated by colons (e.g. "mycli command subcommand --fl" -> "command:subcommand")
91
+ # This needs to be defined with $COMP_CWORD-1 as opposed to above because the current "word" on the command line is a flag and the command is everything before the flag
92
+ normalizedCommand="$( printf "%s" "$(join_by ":" "${COMP_WORDS[@]:1:($COMP_CWORD - 1)}")" )"
93
+
94
+ # The line below finds the command in $commands using grep
95
+ # Then, using sed, it removes everything from the found command before the --flags (e.g. "command:subcommand:subsubcom --flag1 --flag2" -> "--flag1 --flag2")
96
+ opts=$(printf "%s " "${commands[@]}" | grep "${normalizedCommand}" | sed -n "s/^${normalizedCommand} //p")
45
97
  fi
46
- _get_comp_words_by_ref -n : cur
47
- COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
48
- __ltrim_colon_completions "$cur"
49
- return 0
50
98
 
99
+ COMPREPLY=($(compgen -W "$opts" -- "${cur}"))
51
100
  }
52
101
 
53
- complete -o default -F _eggs eggs
102
+ complete -F _eggs_autocomplete eggs
@@ -1,6 +1,7 @@
1
1
  #!/bin/bash
2
2
 
3
3
  # Authors: Piero Proietti, Christopher Hopp
4
+ # xdg-settings get default-web-browser
4
5
 
5
6
  ##
6
7
  # eggs dialog cli
@@ -159,18 +160,18 @@ function documentation {
159
160
 
160
161
  ################################
161
162
  function documentation_book {
162
- sensible-browser "https://penguins-eggs.net/book/italiano"
163
+ xdg-open "https://penguins-eggs.net/book/italiano"
163
164
  }
164
165
 
165
166
  ################################
166
167
  function documentation_book_translated {
167
168
  # sensible-editor sensible-pager
168
- sensible-browser "https://translate.google.com/translate?hl=en&sl=auto&tl=en&u=https%3A%2F%2Fpenguins-eggs.net%2Fbook%2Fitaliano"
169
+ xdg-open "https://translate.google.com/translate?hl=en&sl=auto&tl=en&u=https%3A%2F%2Fpenguins-eggs.net%2Fbook%2Fitaliano"
169
170
  }
170
171
 
171
172
  ################################
172
173
  function documentation_site {
173
- sensible-browser "https://penguins-eggs.net"
174
+ xdg-open "https://penguins-eggs.net"
174
175
  }
175
176
 
176
177
  ################################
@@ -181,7 +182,7 @@ function documentation_man {
181
182
 
182
183
  ################################
183
184
  function documentation_html {
184
- sensible-browser "file:///usr/lib/penguins-eggs/manpages/doc/man/eggs.1.html"
185
+ xdg-open "file:///usr/lib/penguins-eggs/manpages/doc/man/eggs.html"
185
186
  }
186
187
 
187
188
 
@@ -336,7 +337,7 @@ function tools {
336
337
  "clean" "clean system logs, apt cache, etc" \
337
338
  "locales" "install/clean locales" \
338
339
  "skel" "update /etc/skel from current user or user configuration" \
339
- "yolk" "configure an internal apt repository in /usr/local/yolk" \
340
+ "yolk" "configure an internal apt repository in /var/local/yolk" \
340
341
  "quit" "previous" 3>&2 2>&1 1>&3
341
342
  )
342
343
 
@@ -0,0 +1,7 @@
1
+ #!/bin/bash
2
+
3
+ MOTD=/etc/motd
4
+ ISSUE=/etc/issue
5
+ /usr/bin/sed -i '/^eggs-start-message/,/^\eggs-end-message/{/^#/!{/^\$/!d;};}' ${MOTD}
6
+ /usr/bin/sed -i '/^eggs-start-message/,/^\eggs-end-message/{/^#/!{/^\$/!d;};}' ${ISSUE}
7
+ exit 0
@@ -0,0 +1,2 @@
1
+ curl -SsL https://pieroproietti.github.io/penguins-eggs-ppa/debian/KEY.gpg | sudo apt-key add -
2
+ sudo curl -s --compressed -o /etc/apt/sources.list.d/penguins-eggs-ppa.list "https://pieroproietti.github.io/penguins-eggs-ppa/debian/penguins-eggs-ppa.list"
File without changes
File without changes
@@ -1,13 +0,0 @@
1
- [Desktop Entry]
2
- Type=Application
3
- Version=1.0
4
- Name=Install Debian
5
- GenericName=Calamares Installer
6
- Exec=/sbin/install-debian
7
- Comment=Calamares — Installer for Debian Live
8
- Keywords=calamares;system;install;debian;installer
9
- Icon=install-debian
10
- Terminal=false
11
- Categories=Qt;System;
12
- StartupWMClass=calamares
13
- StartupNotify=True
@@ -1,27 +0,0 @@
1
- ---
2
- componentName: debian
3
- welcomeStyleCalamares: true
4
-
5
- strings:
6
- productName: Debian GNU/Linux
7
- shortProductName: Debian testing
8
- version: 11 (bullseye)
9
- shortVersion: 11
10
- versionedName: Debian 11 (bullseye)
11
- shortVersionedName: Debian 11
12
- bootloaderEntryName: Debian
13
- productUrl: https://debian.org
14
- supportUrl: https://www.debian.org/support
15
- releaseNotesUrl: https://www.debian.org/releases/bullseye/releasenotes
16
-
17
- images:
18
- productLogo: "debian-logo.png"
19
- productIcon: "debian-logo.png"
20
- productWelcome: "welcome.png"
21
-
22
- slideshow: "show.qml"
23
-
24
- style:
25
- sidebarBackground: "#2c3133"
26
- sidebarText: "#FFFFFF"
27
- sidebarTextSelect: "#4d7079"
@@ -1,51 +0,0 @@
1
- /* === This file is part of Calamares - <http://github.com/calamares> ===
2
- *
3
- * Copyright 2015, Teo Mrnjavac <teo@kde.org>
4
- * Copyright 2018-2019, Jonathan Carter <jcc@debian.org>
5
- *
6
- * Calamares is free software: you can redistribute it and/or modify
7
- * it under the terms of the GNU General Public License as published by
8
- * the Free Software Foundation, or (at your option) any later version.
9
- *
10
- * Calamares is distributed in the hope that it will be useful,
11
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- * GNU General Public License for more details.
14
- *
15
- * You should have received a copy of the GNU General Public License
16
- * along with Calamares. If not, see <http://www.gnu.org/licenses/>.
17
- */
18
-
19
- import QtQuick 2.0;
20
- import calamares.slideshow 1.0;
21
-
22
- Presentation
23
- {
24
- id: presentation
25
-
26
- Timer {
27
- interval: 20000
28
- repeat: true
29
- onTriggered: presentation.goToNextSlide()
30
- }
31
-
32
- Slide {
33
- Image {
34
- id: background1
35
- source: "slide1.png"
36
- width: 467; height: 280
37
- fillMode: Image.PreserveAspectFit
38
- anchors.centerIn: parent
39
- }
40
- Text {
41
- anchors.horizontalCenter: background1.horizontalCenter
42
- anchors.top: background1.bottom
43
- text: "Welcome to Debian GNU/Linux.<br/>"+
44
- "The rest of the installation is automated and should complete in a few minutes."
45
- wrapMode: Text.WordWrap
46
- width: 600
47
- horizontalAlignment: Text.Center
48
- }
49
- }
50
-
51
- }
@@ -1,16 +0,0 @@
1
- # deblinux
2
-
3
- Tema per eggs di deblinux:
4
-
5
- E' costituito da 3 cartelle:
6
- * applications
7
- * artwork
8
- * branding
9
-
10
- in applications va il link per il desktop che avvia calamares.
11
- Il nome DEVE essere install-debian.desktop, la icona DEVE essere denominata install-debian.png,
12
- va messa nella directory artwork. Nella directory branding, che verrò copiata in
13
- /etc/calamares/branding/deblinux andrà messa la configurazione della presentazione di calamares.
14
-
15
- Fare possibilmente riferimento ai nomi utilizzati e, vediamo se sarà possibile in futuro
16
- una maggiore integrazione.
@@ -1,13 +0,0 @@
1
- [Desktop Entry]
2
- Type=Application
3
- Version=1.0
4
- Name=Install DebLinux
5
- GenericName=Calamares Installer
6
- Exec=/sbin/install-debian
7
- Comment=Calamares — Installer for Debian Live
8
- Keywords=calamares;system;install;debian;installer
9
- Icon=install-debian
10
- Terminal=false
11
- Categories=Qt;System;
12
- StartupWMClass=calamares
13
- StartupNotify=True
@@ -1,23 +0,0 @@
1
- #versionLike: buster
2
- componentName: eggs
3
- welcomeStyleCalamares: true
4
- strings:
5
- productName: deblinux-pc
6
- shortProductName: deblinux-pc
7
- version: '2019/09/18 08:26-02 ( Emperor)'
8
- shortVersion: '2019/09/18 08:26-02'
9
- versionedName: deblinux-pc
10
- shortVersionedName: Emperor
11
- bootloaderEntryName: deblinux-pc
12
- productUrl: ''
13
- supportUrl: 'https://www.debian.org/support'
14
- releaseNotesUrl: 'https://github.com/pieroproietti/penguins-eggs'
15
- images:
16
- productLogo: eggs-logo.png
17
- productIcon: eggs-logo.png
18
- productWelcome: welcome.png
19
- slideshow: show.qml
20
- style:
21
- sidebarBackground: '#2c3133'
22
- sidebarText: '#FFFFFF'
23
- sidebarTextSelect: '#4d7079'
@@ -1,46 +0,0 @@
1
- /* === This file is part of Calamares - <http://github.com/calamares> ===
2
- *
3
- * Copyright 2015, Teo Mrnjavac <teo@kde.org>
4
- * Copyright 2018, Jonathan Carter <jcc@debian.org>
5
- *
6
- * Calamares is free software: you can redistribute it and/or modify
7
- * it under the terms of the GNU General Public License as published by
8
- * the Free Software Foundation, or (at your option) any later version.
9
- *
10
- * Calamares is distributed in the hope that it will be useful,
11
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
- * GNU General Public License for more details.
14
- *
15
- * You should have received a copy of the GNU General Public License
16
- * along with Calamares. If not, see <http://www.gnu.org/licenses/>.
17
- */
18
-
19
-
20
- // https://github.com/calamares/calamares-extensions
21
-
22
-
23
- import QtQuick 2.0;
24
- import calamares.slideshow 1.0;
25
-
26
- Presentation
27
- {
28
- id: presentation
29
-
30
- Timer {
31
- interval: 10000
32
- running: true
33
- repeat: true
34
- onTriggered: presentation.goToNextSlide()
35
- }
36
- Slide {
37
- Image {
38
- id: slide1
39
- source: "slide1.png"
40
- anchors.centerIn: parent
41
- width: 810
42
- height: 485
43
- fillMode: Image.PreserveAspectFit
44
- }
45
- }
46
- }
@@ -1,233 +0,0 @@
1
- # SPDX-FileCopyrightText: no
2
- # SPDX-License-Identifier: CC0-1.0
3
- #
4
- # This setting specifies the mount point of the EFI system partition. Some
5
- # distributions (Fedora, Debian, Manjaro, etc.) use /boot/efi, others (KaOS,
6
- # etc.) use just /boot.
7
- #
8
- # Defaults to "/boot/efi", may be empty (but weird effects ensue)
9
- efiSystemPartition: "/boot/efi"
10
-
11
- # This optional setting specifies the size of the EFI system partition.
12
- # If nothing is specified, the default size of 300MiB will be used.
13
- # efiSystemPartitionSize: 300M
14
-
15
- # This optional setting specifies the name of the EFI system partition (see
16
- # PARTLABEL; gpt only; requires KPMCore >= 4.2.0).
17
- # If nothing is specified, the partition name is left unset.
18
- # efiSystemPartitionName: EFI
19
-
20
- # In autogenerated partitioning, allow the user to select a swap size?
21
- # If there is exactly one choice, no UI is presented, and the user
22
- # cannot make a choice -- this setting is used. If there is more than
23
- # one choice, a UI is presented.
24
- #
25
- # Legacy settings *neverCreateSwap* and *ensureSuspendToDisk* correspond
26
- # to values of *userSwapChoices* as follows:
27
- # - *neverCreateSwap* is true, means [none]
28
- # - *neverCreateSwap* is false, *ensureSuspendToDisk* is false, [small]
29
- # - *neverCreateSwap* is false, *ensureSuspendToDisk* is true, [suspend]
30
- #
31
- # Autogenerated swap sizes are as follows:
32
- # - *suspend*: Swap is always at least total memory size,
33
- # and up to 4GiB RAM follows the rule-of-thumb 2 * memory;
34
- # from 4GiB to 8 GiB it stays steady at 8GiB, and over 8 GiB memory
35
- # swap is the size of main memory.
36
- # - *small*: Follows the rules above, but Swap is at
37
- # most 8GiB, and no more than 10% of available disk.
38
- # In both cases, a fudge factor (usually 10% extra) is applied so that there
39
- # is some space for administrative overhead (e.g. 8 GiB swap will allocate
40
- # 8.8GiB on disk in the end).
41
- #
42
- # If *file* is enabled here, make sure to have the *fstab* module
43
- # as well (later in the exec phase) so that the swap file is
44
- # actually created.
45
- userSwapChoices:
46
- - none # Create no swap, use no swap
47
- - small # Up to 4GB
48
- - suspend # At least main memory size
49
- # - reuse # Re-use existing swap, but don't create any (unsupported right now)
50
- - file # To swap file instead of partition
51
-
52
- # This optional setting specifies the name of the swap partition (see
53
- # PARTLABEL; gpt only; requires KPMCore >= 4.2.0).
54
- # If nothing is specified, the partition name is left unset.
55
- # swapPartitionName: swap
56
-
57
- # LEGACY SETTINGS (these will generate a warning)
58
- # ensureSuspendToDisk: true
59
- # neverCreateSwap: false
60
-
61
- # Correctly draw nested (e.g. logical) partitions as such.
62
- drawNestedPartitions: false
63
-
64
- # Show/hide partition labels on manual partitioning page.
65
- alwaysShowPartitionLabels: true
66
-
67
- # Allow manual partitioning.
68
- #
69
- # When set to false, this option hides the "Manual partitioning" button,
70
- # limiting the user's choice to "Erase", "Replace" or "Alongside".
71
- # This can be useful when using a custom partition layout we don't want
72
- # the user to modify.
73
- #
74
- # If nothing is specified, manual partitioning is enabled.
75
- #allowManualPartitioning: true
76
-
77
- # Initial selection on the Choice page
78
- #
79
- # There are four radio buttons (in principle: erase, replace, alongside, manual),
80
- # and you can pick which of them, if any, is initially selected. For most
81
- # installers, "none" is the right choice: it makes the user pick something specific,
82
- # rather than accidentally being able to click past an important choice (in particular,
83
- # "erase" is a dangerous choice).
84
- #
85
- # The default is "none"
86
- #
87
- initialPartitioningChoice: none
88
- #
89
- # Similarly, some of the installation choices may offer a choice of swap;
90
- # the available choices depend on *userSwapChoices*, above, and this
91
- # setting can be used to pick a specific one.
92
- #
93
- # The default is "none" (no swap) if that is one of the enabled options, otherwise
94
- # one of the items from the options.
95
- initialSwapChoice: none
96
-
97
- # Default partition table type, used when a "erase" disk is made.
98
- #
99
- # When erasing a disk, a new partition table is created on disk.
100
- # In other cases, e.g. Replace and Alongside, as well as when using
101
- # manual partitioning, this partition table exists already on disk
102
- # and it is left unmodified.
103
- #
104
- # Suggested values: gpt, msdos
105
- # If nothing is specified, Calamares defaults to "gpt" if system is
106
- # efi or "msdos".
107
- #
108
- # Names are case-sensitive and defined by KPMCore.
109
- # defaultPartitionTableType: msdos
110
-
111
- # Requirement for partition table type
112
- #
113
- # Restrict the installation on disks that match the type of partition
114
- # tables that are specified.
115
- #
116
- # Suggested values: msdos, gpt
117
- # If nothing is specified, Calamares defaults to both "msdos" and "mbr".
118
- #
119
- # Names are case-sensitive and defined by KPMCore.
120
- # requiredPartitionTableType: gpt
121
- # or,
122
- # requiredPartitionTableType:
123
- # - msdos
124
- # - gpt
125
-
126
- # Default filesystem type, used when a "new" partition is made.
127
- #
128
- # When replacing a partition, the existing filesystem inside the
129
- # partition is retained. In other cases, e.g. Erase and Alongside,
130
- # as well as when using manual partitioning and creating a new
131
- # partition, this filesystem type is pre-selected. Note that
132
- # editing a partition in manual-creation mode will not automatically
133
- # change the filesystem type to this default value -- it is not
134
- # creating a new partition.
135
- #
136
- # Suggested values: ext2, ext3, ext4, reiser, xfs, jfs, btrfs
137
- # If nothing is specified, Calamares defaults to "ext4".
138
- #
139
- # Names are case-sensitive and defined by KPMCore.
140
- defaultFileSystemType: "ext4"
141
-
142
- # Show/hide LUKS related functionality in automated partitioning modes.
143
- # Disable this if you choose not to deploy early unlocking support in GRUB2
144
- # and/or your distribution's initramfs solution.
145
- #
146
- # BIG FAT WARNING:
147
- #
148
- # This option is unsupported, as it cuts out a crucial security feature.
149
- # Disabling LUKS and shipping Calamares without a correctly configured GRUB2
150
- # and initramfs is considered suboptimal use of the Calamares software. The
151
- # Calamares team will not provide user support for any potential issue that
152
- # may arise as a consequence of setting this option to false.
153
- # It is strongly recommended that system integrators put in the work to support
154
- # LUKS unlocking support in GRUB2 and initramfs/dracut/mkinitcpio/etc.
155
- # Support is offered to system integrators that wish to do so, through the
156
- # Calamares bug tracker, as well as in #calamares on Freenode.
157
- # For more information on setting up GRUB2 for Calamares with LUKS, see
158
- # https://github.com/calamares/calamares/wiki/Deploy-LUKS
159
- #
160
- # If nothing is specified, LUKS is enabled in automated modes.
161
- #enableLuksAutomatedPartitioning: true
162
-
163
- # Partition layout.
164
- #
165
- # This optional setting specifies a custom partition layout.
166
- #
167
- # If nothing is specified, the default partition layout is a single partition
168
- # for root that uses 100% of the space and uses the filesystem defined by
169
- # defaultFileSystemType.
170
- #
171
- # Note: the EFI system partition is prepend automatically to the layout if
172
- # needed; the swap partition is appended to the layout if enabled (small of
173
- # suspend).
174
- #
175
- # Otherwise, the partition layout is defined as follow:
176
- #
177
- # partitionLayout:
178
- # - name: "rootfs"
179
- # type: "4f68bce3-e8cd-4db1-96e7-fbcaf984b709"
180
- # filesystem: "ext4"
181
- # mountPoint: "/"
182
- # size: 20%
183
- # minSize: 500M
184
- # maxSize: 10G
185
- # attributes: 0xffff000000000003
186
- # - name: "home"
187
- # type = "933ac7e1-2eb4-4f13-b844-0e14e2aef915"
188
- # filesystem: "ext4"
189
- # mountPoint: "/home"
190
- # size: 3G
191
- # minSize: 1.5G
192
- # features:
193
- # 64bit: false
194
- # casefold: true
195
- # - name: "data"
196
- # filesystem: "fat32"
197
- # mountPoint: "/data"
198
- # features:
199
- # sector-size: 4096
200
- # sectors-per-cluster: 128
201
- # size: 100%
202
- #
203
- # There can be any number of partitions, each entry having the following attributes:
204
- # - name: filesystem label
205
- # and
206
- # partition name (gpt only; since KPMCore 4.2.0)
207
- # - uuid: partition uuid (optional parameter; gpt only; requires KPMCore >= 4.2.0)
208
- # - type: partition type (optional parameter; gpt only; requires KPMCore >= 4.2.0)
209
- # - attributes: partition attributes (optional parameter; gpt only; requires KPMCore >= 4.2.0)
210
- # - filesystem: filesystem type (optional parameter; fs not created if "unformatted" or unset)
211
- # - mountPoint: partition mount point (optional parameter; not mounted if unset)
212
- # - size: partition size in bytes (append 'K', 'M' or 'G' for KiB, MiB or GiB)
213
- # or
214
- # % of the available drive space if a '%' is appended to the value
215
- # - minSize: minimum partition size (optional parameter)
216
- # - maxSize: maximum partition size (optional parameter)
217
- # - features: filesystem features (optional parameter; requires KPMCore >= 4.2.0)
218
- # name: boolean or integer or string
219
-
220
- # Checking for available storage
221
- #
222
- # This overlaps with the setting of the same name in the welcome module's
223
- # requirements section. If nothing is set by the welcome module, this
224
- # value is used instead. It is still a problem if there is no required
225
- # size set at all, and the replace and resize options will not be offered
226
- # if no required size is set.
227
- #
228
- # The value is in Gibibytes (GiB).
229
- #
230
- # BIG FAT WARNING: except for OEM-phase-0 use, you should be using
231
- # the welcome module, **and** configure this value in
232
- # `welcome.conf`, not here.
233
- # requiredStorage: 3.5