penguins-eggs 25.10.23 → 25.10.24

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 (461) hide show
  1. package/.oclif.manifest.json +17 -3
  2. package/README.md +32 -30
  3. package/README.pdf +1008 -1045
  4. package/addons/eggs/theme/livecd/{grub.theme.cfg → full.grub.theme.cfg} +1 -1
  5. package/addons/eggs/theme/livecd/{isolinux.theme.cfg → full.isolinux.theme.cfg} +1 -1
  6. package/addons/eggs/theme/livecd/generic-splash.png +0 -0
  7. package/addons/eggs/theme/livecd/generic.grub.main.cfg +29 -0
  8. package/addons/eggs/theme/livecd/generic.grub.theme.cfg +67 -0
  9. package/addons/eggs/theme/livecd/generic.isolinux.main.cfg +34 -0
  10. package/addons/eggs/theme/livecd/generic.isolinux.theme.cfg +34 -0
  11. package/addons/eggs/theme/livecd/simple.grub.main.cfg +29 -0
  12. package/addons/eggs/theme/livecd/simple.grub.theme.cfg +67 -0
  13. package/addons/eggs/theme/livecd/{isolinux.main.simple.cfg → simple.isolinux.main.cfg} +1 -1
  14. package/addons/eggs/theme/livecd/simple.isolinux.theme.cfg +47 -0
  15. package/dist/classes/bleach.d.ts +37 -0
  16. package/dist/classes/bleach.js +148 -0
  17. package/dist/classes/cli-autologin.d.ts +52 -0
  18. package/dist/classes/cli-autologin.js +252 -0
  19. package/dist/classes/compressors.d.ts +54 -0
  20. package/dist/classes/compressors.js +109 -0
  21. package/dist/classes/daddy.d.ts +26 -0
  22. package/dist/classes/daddy.js +175 -0
  23. package/dist/classes/distro.d.ts +32 -0
  24. package/dist/classes/distro.js +363 -0
  25. package/dist/classes/diversions.d.ts +53 -0
  26. package/dist/classes/diversions.js +131 -0
  27. package/dist/classes/incubation/branding.d.ts +17 -0
  28. package/dist/classes/incubation/branding.js +85 -0
  29. package/dist/classes/incubation/customize/customize-partitions.d.ts +4 -0
  30. package/dist/classes/incubation/customize/customize-partitions.js +29 -0
  31. package/dist/classes/incubation/fisherman-helper/initcpio.d.ts +1 -0
  32. package/dist/classes/incubation/fisherman-helper/initcpio.js +69 -0
  33. package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
  34. package/dist/classes/incubation/fisherman-helper/packages.js +72 -0
  35. package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
  36. package/dist/classes/incubation/fisherman-helper/settings.js +116 -0
  37. package/dist/classes/incubation/fisherman.d.ts +71 -0
  38. package/dist/classes/incubation/fisherman.js +281 -0
  39. package/dist/classes/incubation/incubator.d/alpine.d.ts +32 -0
  40. package/dist/classes/incubation/incubator.d/alpine.js +78 -0
  41. package/dist/classes/incubation/incubator.d/archlinux.d.ts +32 -0
  42. package/dist/classes/incubation/incubator.d/archlinux.js +82 -0
  43. package/dist/classes/incubation/incubator.d/bionic.d.ts +32 -0
  44. package/dist/classes/incubation/incubator.d/bionic.js +83 -0
  45. package/dist/classes/incubation/incubator.d/buster.d.ts +32 -0
  46. package/dist/classes/incubation/incubator.d/buster.js +101 -0
  47. package/dist/classes/incubation/incubator.d/fedora.d.ts +32 -0
  48. package/dist/classes/incubation/incubator.d/fedora.js +81 -0
  49. package/dist/classes/incubation/incubator.d/focal.d.ts +32 -0
  50. package/dist/classes/incubation/incubator.d/focal.js +85 -0
  51. package/dist/classes/incubation/incubator.d/manjaro.d.ts +32 -0
  52. package/dist/classes/incubation/incubator.d/manjaro.js +82 -0
  53. package/dist/classes/incubation/incubator.d/noble.d.ts +32 -0
  54. package/dist/classes/incubation/incubator.d/noble.js +102 -0
  55. package/dist/classes/incubation/incubator.d/openmamba.d.ts +32 -0
  56. package/dist/classes/incubation/incubator.d/openmamba.js +81 -0
  57. package/dist/classes/incubation/incubator.d/opensuse.d.ts +32 -0
  58. package/dist/classes/incubation/incubator.d/opensuse.js +81 -0
  59. package/dist/classes/incubation/incubator.d/trixie.d.ts +32 -0
  60. package/dist/classes/incubation/incubator.d/trixie.js +98 -0
  61. package/dist/classes/incubation/incubator.d.ts +48 -0
  62. package/dist/classes/incubation/incubator.js +378 -0
  63. package/dist/classes/incubation/installer.d.ts +13 -0
  64. package/dist/classes/incubation/installer.js +52 -0
  65. package/dist/classes/keyboards.d.ts +50 -0
  66. package/dist/classes/keyboards.js +287 -0
  67. package/dist/classes/locales.d.ts +21 -0
  68. package/dist/classes/locales.js +77 -0
  69. package/dist/classes/network.d.ts +37 -0
  70. package/dist/classes/network.js +98 -0
  71. package/dist/classes/ovary.d/bind-live-fs.d.ts +18 -0
  72. package/dist/classes/ovary.d/bind-live-fs.js +185 -0
  73. package/dist/classes/ovary.d/bind-vfs.d.ts +17 -0
  74. package/dist/classes/ovary.d/bind-vfs.js +37 -0
  75. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +13 -0
  76. package/dist/classes/ovary.d/create-xdg-autostart.js +194 -0
  77. package/dist/classes/ovary.d/edit-live-fs.d.ts +20 -0
  78. package/dist/classes/ovary.d/edit-live-fs.js +239 -0
  79. package/dist/classes/ovary.d/fertilization.d.ts +12 -0
  80. package/dist/classes/ovary.d/fertilization.js +53 -0
  81. package/dist/classes/ovary.d/finished.d.ts +13 -0
  82. package/dist/classes/ovary.d/finished.js +40 -0
  83. package/dist/classes/ovary.d/initrd.d.ts +21 -0
  84. package/dist/classes/ovary.d/initrd.js +96 -0
  85. package/dist/classes/ovary.d/kernel-copy.d.ts +12 -0
  86. package/dist/classes/ovary.d/kernel-copy.js +22 -0
  87. package/dist/classes/ovary.d/live-create-structure.d.ts +12 -0
  88. package/dist/classes/ovary.d/live-create-structure.js +70 -0
  89. package/dist/classes/ovary.d/luks-get-password.d.ts +12 -0
  90. package/dist/classes/ovary.d/luks-get-password.js +58 -0
  91. package/dist/classes/ovary.d/luks-home-support.d.ts +12 -0
  92. package/dist/classes/ovary.d/luks-home-support.js +75 -0
  93. package/dist/classes/ovary.d/luks-home.d.ts +15 -0
  94. package/dist/classes/ovary.d/luks-home.js +152 -0
  95. package/dist/classes/ovary.d/luks-root-initrd.d.ts +17 -0
  96. package/dist/classes/ovary.d/luks-root-initrd.js +213 -0
  97. package/dist/classes/ovary.d/luks-root.d.ts +15 -0
  98. package/dist/classes/ovary.d/luks-root.js +151 -0
  99. package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
  100. package/dist/classes/ovary.d/make-dot-disk.js +71 -0
  101. package/dist/classes/ovary.d/make-efi.d.ts +14 -0
  102. package/dist/classes/ovary.d/make-efi.js +290 -0
  103. package/dist/classes/ovary.d/make-iso.d.ts +13 -0
  104. package/dist/classes/ovary.d/make-iso.js +45 -0
  105. package/dist/classes/ovary.d/make-squashfs.d.ts +18 -0
  106. package/dist/classes/ovary.d/make-squashfs.js +111 -0
  107. package/dist/classes/ovary.d/merged.d.ts +27 -0
  108. package/dist/classes/ovary.d/merged.js +78 -0
  109. package/dist/classes/ovary.d/produce.d.ts +23 -0
  110. package/dist/classes/ovary.d/produce.js +348 -0
  111. package/dist/classes/ovary.d/rexec.d.ts +13 -0
  112. package/dist/classes/ovary.d/rexec.js +34 -0
  113. package/dist/classes/ovary.d/syslinux.d.ts +12 -0
  114. package/dist/classes/ovary.d/syslinux.js +95 -0
  115. package/dist/classes/ovary.d/user-create-live.d.ts +14 -0
  116. package/dist/classes/ovary.d/user-create-live.js +97 -0
  117. package/dist/classes/ovary.d/users-remove.d.ts +9 -0
  118. package/dist/classes/ovary.d/users-remove.js +38 -0
  119. package/dist/classes/ovary.d/xorriso-command.d.ts +14 -0
  120. package/dist/classes/ovary.d/xorriso-command.js +120 -0
  121. package/dist/classes/ovary.d.ts +105 -0
  122. package/dist/classes/ovary.js +116 -0
  123. package/dist/classes/pacman.d/alpine.d.ts +56 -0
  124. package/dist/classes/pacman.d/alpine.js +167 -0
  125. package/dist/classes/pacman.d/archlinux.d.ts +62 -0
  126. package/dist/classes/pacman.d/archlinux.js +128 -0
  127. package/dist/classes/pacman.d/debian.d.ts +65 -0
  128. package/dist/classes/pacman.d/debian.js +143 -0
  129. package/dist/classes/pacman.d/fedora.d.ts +53 -0
  130. package/dist/classes/pacman.d/fedora.js +107 -0
  131. package/dist/classes/pacman.d/openmamba.d.ts +52 -0
  132. package/dist/classes/pacman.d/openmamba.js +106 -0
  133. package/dist/classes/pacman.d/opensuse.d.ts +53 -0
  134. package/dist/classes/pacman.d/opensuse.js +109 -0
  135. package/dist/classes/pacman.d.ts +139 -0
  136. package/dist/classes/pacman.js +683 -0
  137. package/dist/classes/pve-live.d.ts +17 -0
  138. package/dist/classes/pve-live.js +52 -0
  139. package/dist/classes/pxe.d.ts +76 -0
  140. package/dist/classes/pxe.js +353 -0
  141. package/dist/classes/settings.d.ts +52 -0
  142. package/dist/classes/settings.js +185 -0
  143. package/dist/classes/sources_list.d.ts +28 -0
  144. package/dist/classes/sources_list.js +89 -0
  145. package/dist/classes/systemctl.d.ts +47 -0
  146. package/dist/classes/systemctl.js +86 -0
  147. package/dist/classes/tailor.d.ts +50 -0
  148. package/dist/classes/tailor.js +563 -0
  149. package/dist/classes/tools.d.ts +26 -0
  150. package/dist/classes/tools.js +50 -0
  151. package/dist/classes/users.d.ts +28 -0
  152. package/dist/classes/users.js +143 -0
  153. package/dist/classes/utils.d/kernel.d.ts +39 -0
  154. package/dist/classes/utils.d/kernel.js +206 -0
  155. package/dist/classes/utils.d.ts +330 -0
  156. package/dist/classes/utils.js +968 -0
  157. package/dist/classes/xdg.d.ts +45 -0
  158. package/dist/classes/xdg.js +337 -0
  159. package/dist/classes/yolk.d.ts +33 -0
  160. package/dist/classes/yolk.js +114 -0
  161. package/dist/commands/adapt.d.ts +17 -0
  162. package/dist/commands/adapt.js +33 -0
  163. package/dist/commands/analyze.d.ts +26 -0
  164. package/dist/commands/analyze.js +95 -0
  165. package/dist/commands/calamares.d.ts +29 -0
  166. package/dist/commands/calamares.js +112 -0
  167. package/dist/commands/config.d.ts +35 -0
  168. package/dist/commands/config.js +120 -0
  169. package/dist/commands/cuckoo.d.ts +17 -0
  170. package/dist/commands/cuckoo.js +61 -0
  171. package/dist/commands/dad.d.ts +21 -0
  172. package/dist/commands/dad.js +47 -0
  173. package/dist/commands/export/iso.d.ts +19 -0
  174. package/dist/commands/export/iso.js +55 -0
  175. package/dist/commands/export/pkg.d.ts +29 -0
  176. package/dist/commands/export/pkg.js +173 -0
  177. package/dist/commands/export/tarballs.d.ts +27 -0
  178. package/dist/commands/export/tarballs.js +79 -0
  179. package/dist/commands/install.d.ts +39 -0
  180. package/dist/commands/install.js +113 -0
  181. package/dist/commands/kill.d.ts +24 -0
  182. package/dist/commands/kill.js +50 -0
  183. package/dist/commands/love.d.ts +25 -0
  184. package/dist/commands/love.js +118 -0
  185. package/dist/commands/mom.d.ts +16 -0
  186. package/dist/commands/mom.js +30 -0
  187. package/dist/commands/pods.d.ts +22 -0
  188. package/dist/commands/pods.js +92 -0
  189. package/dist/commands/produce.d.ts +37 -0
  190. package/dist/commands/produce.js +232 -0
  191. package/dist/commands/status.d.ts +23 -0
  192. package/dist/commands/status.js +31 -0
  193. package/dist/commands/tools/clean.d.ts +18 -0
  194. package/dist/commands/tools/clean.js +37 -0
  195. package/dist/commands/tools/repo.d.ts +31 -0
  196. package/dist/commands/tools/repo.js +246 -0
  197. package/dist/commands/tools/skel.d.ts +18 -0
  198. package/dist/commands/tools/skel.js +44 -0
  199. package/dist/commands/tools/stat.d.ts +31 -0
  200. package/dist/commands/tools/stat.js +70 -0
  201. package/dist/commands/tools/yolk.d.ts +24 -0
  202. package/dist/commands/tools/yolk.js +45 -0
  203. package/dist/commands/update.d.ts +46 -0
  204. package/dist/commands/update.js +238 -0
  205. package/dist/commands/wardrobe/get.d.ts +23 -0
  206. package/dist/commands/wardrobe/get.js +52 -0
  207. package/dist/commands/wardrobe/list.d.ts +24 -0
  208. package/dist/commands/wardrobe/list.js +125 -0
  209. package/dist/commands/wardrobe/show.d.ts +25 -0
  210. package/dist/commands/wardrobe/show.js +97 -0
  211. package/dist/commands/wardrobe/wear.d.ts +26 -0
  212. package/dist/commands/wardrobe/wear.js +84 -0
  213. package/dist/dhcpd-proxy/classes/packet.d.ts +36 -0
  214. package/dist/dhcpd-proxy/classes/packet.js +124 -0
  215. package/dist/dhcpd-proxy/index.d.ts +4 -0
  216. package/dist/dhcpd-proxy/index.js +4 -0
  217. package/dist/dhcpd-proxy/interfaces/i-pxe.d.ts +45 -0
  218. package/dist/dhcpd-proxy/interfaces/i-pxe.js +1 -0
  219. package/dist/dhcpd-proxy/lib/packet/converters.d.ts +11 -0
  220. package/dist/dhcpd-proxy/lib/packet/converters.js +395 -0
  221. package/dist/dhcpd-proxy/lib/packet/message-types.d.ts +10 -0
  222. package/dist/dhcpd-proxy/lib/packet/message-types.js +12 -0
  223. package/dist/dhcpd-proxy/lib/packet/options.d.ts +8 -0
  224. package/dist/dhcpd-proxy/lib/packet/options.js +264 -0
  225. package/dist/dhcpd-proxy/lib/sprintf.d.ts +6 -0
  226. package/dist/dhcpd-proxy/lib/sprintf.js +130 -0
  227. package/dist/dhcpd-proxy/lib/utils.d.ts +126 -0
  228. package/dist/dhcpd-proxy/lib/utils.js +255 -0
  229. package/dist/dhcpd-proxy/simple-proxy.d.ts +11 -0
  230. package/dist/dhcpd-proxy/simple-proxy.js +118 -0
  231. package/dist/index.d.ts +8 -0
  232. package/dist/index.js +8 -0
  233. package/dist/interfaces/calamares/i-calamares-bootloader.d.ts +23 -0
  234. package/dist/interfaces/calamares/i-calamares-bootloader.js +7 -0
  235. package/dist/interfaces/calamares/i-calamares-branding.d.ts +46 -0
  236. package/dist/interfaces/calamares/i-calamares-branding.js +1 -0
  237. package/dist/interfaces/calamares/i-calamares-displaymanager.d.ts +34 -0
  238. package/dist/interfaces/calamares/i-calamares-displaymanager.js +1 -0
  239. package/dist/interfaces/calamares/i-calamares-finished.d.ts +14 -0
  240. package/dist/interfaces/calamares/i-calamares-finished.js +1 -0
  241. package/dist/interfaces/calamares/i-calamares-packages.d.ts +26 -0
  242. package/dist/interfaces/calamares/i-calamares-packages.js +1 -0
  243. package/dist/interfaces/calamares/i-calamares-partitions.d.ts +39 -0
  244. package/dist/interfaces/calamares/i-calamares-partitions.js +1 -0
  245. package/dist/interfaces/calamares/i-calamares-settings.d.ts +36 -0
  246. package/dist/interfaces/calamares/i-calamares-settings.js +1 -0
  247. package/dist/interfaces/i-addons.d.ts +12 -0
  248. package/dist/interfaces/i-addons.js +8 -0
  249. package/dist/interfaces/i-analyze.d.ts +17 -0
  250. package/dist/interfaces/i-analyze.js +17 -0
  251. package/dist/interfaces/i-app.d.ts +14 -0
  252. package/dist/interfaces/i-app.js +8 -0
  253. package/dist/interfaces/i-config-tools.d.ts +15 -0
  254. package/dist/interfaces/i-config-tools.js +8 -0
  255. package/dist/interfaces/i-devices.d.ts +20 -0
  256. package/dist/interfaces/i-devices.js +8 -0
  257. package/dist/interfaces/i-distro.d.ts +23 -0
  258. package/dist/interfaces/i-distro.js +8 -0
  259. package/dist/interfaces/i-drive-list.d.ts +33 -0
  260. package/dist/interfaces/i-drive-list.js +8 -0
  261. package/dist/interfaces/i-eggs-config.d.ts +32 -0
  262. package/dist/interfaces/i-eggs-config.js +8 -0
  263. package/dist/interfaces/i-excludes.d.ts +14 -0
  264. package/dist/interfaces/i-excludes.js +8 -0
  265. package/dist/interfaces/i-exec.d.ts +11 -0
  266. package/dist/interfaces/i-exec.js +8 -0
  267. package/dist/interfaces/i-initrd.d.ts +13 -0
  268. package/dist/interfaces/i-initrd.js +8 -0
  269. package/dist/interfaces/i-install.d.ts +16 -0
  270. package/dist/interfaces/i-install.js +8 -0
  271. package/dist/interfaces/i-installer.d.ts +17 -0
  272. package/dist/interfaces/i-installer.js +8 -0
  273. package/dist/interfaces/i-luks-passphrase.d.ts +11 -0
  274. package/dist/interfaces/i-luks-passphrase.js +8 -0
  275. package/dist/interfaces/i-materia.d.ts +36 -0
  276. package/dist/interfaces/i-materia.js +8 -0
  277. package/dist/interfaces/i-net.d.ts +16 -0
  278. package/dist/interfaces/i-net.js +8 -0
  279. package/dist/interfaces/i-os-release.d.ts +5 -0
  280. package/dist/interfaces/i-os-release.js +1 -0
  281. package/dist/interfaces/i-packages.d.ts +16 -0
  282. package/dist/interfaces/i-packages.js +8 -0
  283. package/dist/interfaces/i-partitions.d.ts +16 -0
  284. package/dist/interfaces/i-partitions.js +8 -0
  285. package/dist/interfaces/i-pxe.d.ts +45 -0
  286. package/dist/interfaces/i-pxe.js +1 -0
  287. package/dist/interfaces/i-remix.d.ts +21 -0
  288. package/dist/interfaces/i-remix.js +8 -0
  289. package/dist/interfaces/i-settings.d.ts +33 -0
  290. package/dist/interfaces/i-settings.js +8 -0
  291. package/dist/interfaces/i-user.d.ts +14 -0
  292. package/dist/interfaces/i-user.js +8 -0
  293. package/dist/interfaces/i-workdir.d.ts +14 -0
  294. package/dist/interfaces/i-workdir.js +8 -0
  295. package/dist/interfaces/i-xkb-model.d.ts +24 -0
  296. package/dist/interfaces/i-xkb-model.js +8 -0
  297. package/dist/interfaces/index.d.ts +26 -0
  298. package/dist/interfaces/index.js +8 -0
  299. package/dist/krill/classes/cfs.d.ts +17 -0
  300. package/dist/krill/classes/cfs.js +39 -0
  301. package/dist/krill/classes/krill_enums.d.ts +37 -0
  302. package/dist/krill/classes/krill_enums.js +41 -0
  303. package/dist/krill/classes/prepare.d/confirm.d.ts +5 -0
  304. package/dist/krill/classes/prepare.d/confirm.js +30 -0
  305. package/dist/krill/classes/prepare.d/keyboard.d.ts +14 -0
  306. package/dist/krill/classes/prepare.d/keyboard.js +62 -0
  307. package/dist/krill/classes/prepare.d/location.d.ts +17 -0
  308. package/dist/krill/classes/prepare.d/location.js +59 -0
  309. package/dist/krill/classes/prepare.d/network.d.ts +14 -0
  310. package/dist/krill/classes/prepare.d/network.js +68 -0
  311. package/dist/krill/classes/prepare.d/partitions.d.ts +14 -0
  312. package/dist/krill/classes/prepare.d/partitions.js +86 -0
  313. package/dist/krill/classes/prepare.d/summary.d.ts +15 -0
  314. package/dist/krill/classes/prepare.d/summary.js +72 -0
  315. package/dist/krill/classes/prepare.d/users.d.ts +6 -0
  316. package/dist/krill/classes/prepare.d/users.js +63 -0
  317. package/dist/krill/classes/prepare.d/welcome.d.ts +6 -0
  318. package/dist/krill/classes/prepare.d/welcome.js +30 -0
  319. package/dist/krill/classes/prepare.d.ts +89 -0
  320. package/dist/krill/classes/prepare.js +319 -0
  321. package/dist/krill/classes/sequence.d/add_user.d.ts +20 -0
  322. package/dist/krill/classes/sequence.d/add_user.js +77 -0
  323. package/dist/krill/classes/sequence.d/bootloader.d.ts +14 -0
  324. package/dist/krill/classes/sequence.d/bootloader.js +117 -0
  325. package/dist/krill/classes/sequence.d/bootloader_config.d.ts +14 -0
  326. package/dist/krill/classes/sequence.d/bootloader_config.js +192 -0
  327. package/dist/krill/classes/sequence.d/change_password.d.ts +15 -0
  328. package/dist/krill/classes/sequence.d/change_password.js +18 -0
  329. package/dist/krill/classes/sequence.d/del_live_user.d.ts +14 -0
  330. package/dist/krill/classes/sequence.d/del_live_user.js +39 -0
  331. package/dist/krill/classes/sequence.d/fstab.d.ts +14 -0
  332. package/dist/krill/classes/sequence.d/fstab.js +177 -0
  333. package/dist/krill/classes/sequence.d/grubcfg.d.ts +17 -0
  334. package/dist/krill/classes/sequence.d/grubcfg.js +35 -0
  335. package/dist/krill/classes/sequence.d/hostname.d.ts +13 -0
  336. package/dist/krill/classes/sequence.d/hostname.js +50 -0
  337. package/dist/krill/classes/sequence.d/initramfs.d.ts +13 -0
  338. package/dist/krill/classes/sequence.d/initramfs.js +54 -0
  339. package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +14 -0
  340. package/dist/krill/classes/sequence.d/initramfs_cfg.js +35 -0
  341. package/dist/krill/classes/sequence.d/locale.d.ts +13 -0
  342. package/dist/krill/classes/sequence.d/locale.js +91 -0
  343. package/dist/krill/classes/sequence.d/locale_cfg.d.ts +10 -0
  344. package/dist/krill/classes/sequence.d/locale_cfg.js +58 -0
  345. package/dist/krill/classes/sequence.d/m_keyboard.d.ts +14 -0
  346. package/dist/krill/classes/sequence.d/m_keyboard.js +58 -0
  347. package/dist/krill/classes/sequence.d/machine_id.d.ts +15 -0
  348. package/dist/krill/classes/sequence.d/machine_id.js +33 -0
  349. package/dist/krill/classes/sequence.d/mkfs.d.ts +15 -0
  350. package/dist/krill/classes/sequence.d/mkfs.js +88 -0
  351. package/dist/krill/classes/sequence.d/mount_fs.d.ts +17 -0
  352. package/dist/krill/classes/sequence.d/mount_fs.js +68 -0
  353. package/dist/krill/classes/sequence.d/mount_vfs.d.ts +17 -0
  354. package/dist/krill/classes/sequence.d/mount_vfs.js +59 -0
  355. package/dist/krill/classes/sequence.d/network_cfg.d.ts +19 -0
  356. package/dist/krill/classes/sequence.d/network_cfg.js +73 -0
  357. package/dist/krill/classes/sequence.d/packages.d.ts +14 -0
  358. package/dist/krill/classes/sequence.d/packages.js +111 -0
  359. package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +17 -0
  360. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +73 -0
  361. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +16 -0
  362. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +51 -0
  363. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +17 -0
  364. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +77 -0
  365. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +10 -0
  366. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +33 -0
  367. package/dist/krill/classes/sequence.d/partition.d.ts +14 -0
  368. package/dist/krill/classes/sequence.d/partition.js +84 -0
  369. package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +13 -0
  370. package/dist/krill/classes/sequence.d/remove_installer_link.js +35 -0
  371. package/dist/krill/classes/sequence.d/umount.d.ts +14 -0
  372. package/dist/krill/classes/sequence.d/umount.js +28 -0
  373. package/dist/krill/classes/sequence.d/unpackfs.d.ts +13 -0
  374. package/dist/krill/classes/sequence.d/unpackfs.js +20 -0
  375. package/dist/krill/classes/sequence.d.ts +134 -0
  376. package/dist/krill/classes/sequence.js +400 -0
  377. package/dist/krill/components/finished.d.ts +16 -0
  378. package/dist/krill/components/finished.js +56 -0
  379. package/dist/krill/components/information.d.ts +8 -0
  380. package/dist/krill/components/information.js +162 -0
  381. package/dist/krill/components/install.d.ts +15 -0
  382. package/dist/krill/components/install.js +60 -0
  383. package/dist/krill/components/keyboard.d.ts +16 -0
  384. package/dist/krill/components/keyboard.js +54 -0
  385. package/dist/krill/components/location.d.ts +16 -0
  386. package/dist/krill/components/location.js +59 -0
  387. package/dist/krill/components/network.d.ts +19 -0
  388. package/dist/krill/components/network.js +65 -0
  389. package/dist/krill/components/partitions.d.ts +18 -0
  390. package/dist/krill/components/partitions.js +89 -0
  391. package/dist/krill/components/steps.d.ts +13 -0
  392. package/dist/krill/components/steps.js +148 -0
  393. package/dist/krill/components/summary.d.ts +25 -0
  394. package/dist/krill/components/summary.js +77 -0
  395. package/dist/krill/components/title.d.ts +11 -0
  396. package/dist/krill/components/title.js +35 -0
  397. package/dist/krill/components/users.d.ts +24 -0
  398. package/dist/krill/components/users.js +80 -0
  399. package/dist/krill/components/welcome.d.ts +13 -0
  400. package/dist/krill/components/welcome.js +63 -0
  401. package/dist/krill/interfaces/i_krill.d.ts +44 -0
  402. package/dist/krill/interfaces/i_krill.js +8 -0
  403. package/dist/krill/interfaces/i_krill_config.d.ts +35 -0
  404. package/dist/krill/interfaces/i_krill_config.js +8 -0
  405. package/dist/krill/lib/get_address.d.ts +8 -0
  406. package/dist/krill/lib/get_address.js +23 -0
  407. package/dist/krill/lib/get_dns.d.ts +8 -0
  408. package/dist/krill/lib/get_dns.js +23 -0
  409. package/dist/krill/lib/get_domain.d.ts +8 -0
  410. package/dist/krill/lib/get_domain.js +23 -0
  411. package/dist/krill/lib/get_gateway.d.ts +8 -0
  412. package/dist/krill/lib/get_gateway.js +23 -0
  413. package/dist/krill/lib/get_hostname.d.ts +8 -0
  414. package/dist/krill/lib/get_hostname.js +23 -0
  415. package/dist/krill/lib/get_luks_passphrase.d.ts +8 -0
  416. package/dist/krill/lib/get_luks_passphrase.js +32 -0
  417. package/dist/krill/lib/get_netmask.d.ts +8 -0
  418. package/dist/krill/lib/get_netmask.js +23 -0
  419. package/dist/krill/lib/get_password.d.ts +8 -0
  420. package/dist/krill/lib/get_password.js +36 -0
  421. package/dist/krill/lib/get_userfullname.d.ts +8 -0
  422. package/dist/krill/lib/get_userfullname.js +23 -0
  423. package/dist/krill/lib/get_username.d.ts +8 -0
  424. package/dist/krill/lib/get_username.js +23 -0
  425. package/dist/krill/lib/select_address_type.d.ts +8 -0
  426. package/dist/krill/lib/select_address_type.js +24 -0
  427. package/dist/krill/lib/select_filesystem_type.d.ts +8 -0
  428. package/dist/krill/lib/select_filesystem_type.js +40 -0
  429. package/dist/krill/lib/select_installation_device.d.ts +8 -0
  430. package/dist/krill/lib/select_installation_device.js +40 -0
  431. package/dist/krill/lib/select_installation_mode.d.ts +9 -0
  432. package/dist/krill/lib/select_installation_mode.js +25 -0
  433. package/dist/krill/lib/select_interface.d.ts +8 -0
  434. package/dist/krill/lib/select_interface.js +24 -0
  435. package/dist/krill/lib/select_keyboard_layout.d.ts +11 -0
  436. package/dist/krill/lib/select_keyboard_layout.js +36 -0
  437. package/dist/krill/lib/select_keyboard_model.d.ts +11 -0
  438. package/dist/krill/lib/select_keyboard_model.js +34 -0
  439. package/dist/krill/lib/select_keyboard_option.d.ts +11 -0
  440. package/dist/krill/lib/select_keyboard_option.js +34 -0
  441. package/dist/krill/lib/select_keyboard_variant.d.ts +11 -0
  442. package/dist/krill/lib/select_keyboard_variant.js +35 -0
  443. package/dist/krill/lib/select_languages.d.ts +8 -0
  444. package/dist/krill/lib/select_languages.js +28 -0
  445. package/dist/krill/lib/select_regions.d.ts +8 -0
  446. package/dist/krill/lib/select_regions.js +24 -0
  447. package/dist/krill/lib/select_replaced_partition.d.ts +8 -0
  448. package/dist/krill/lib/select_replaced_partition.js +31 -0
  449. package/dist/krill/lib/select_user_swap_choice.d.ts +9 -0
  450. package/dist/krill/lib/select_user_swap_choice.js +35 -0
  451. package/dist/krill/lib/select_zones.d.ts +8 -0
  452. package/dist/krill/lib/select_zones.js +518 -0
  453. package/dist/lib/kill_me_softly.d.ts +11 -0
  454. package/dist/lib/kill_me_softly.js +61 -0
  455. package/dist/lib/utils.d.ts +19 -0
  456. package/dist/lib/utils.js +65 -0
  457. package/package.json +3 -3
  458. package/scripts/_eggs +3 -1
  459. package/scripts/eggs.bash +2 -2
  460. /package/addons/eggs/theme/livecd/{grub.main.cfg → full.grub.main.cfg} +0 -0
  461. /package/addons/eggs/theme/livecd/{isolinux.main.full.cfg → full.isolinux.main.cfg} +0 -0
@@ -0,0 +1,252 @@
1
+ /**
2
+ * ./src/lib/cli-autologin.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import chalk from 'chalk';
9
+ import { execSync } from 'node:child_process';
10
+ import fs from 'node:fs';
11
+ import path from 'node:path';
12
+ import shx from 'shelljs';
13
+ // libraries
14
+ import { exec } from '../lib/utils.js';
15
+ import Pacman from './pacman.js';
16
+ import Utils from './utils.js';
17
+ const startMessage = 'eggs-start-message';
18
+ const stopMessage = 'eggs-stop-message';
19
+ /*
20
+ * Comando per avviare ubiquity:
21
+ * sudo --preserve-env DBUS_SESSION_BUS_ADDRESS, XDG_RUNTIME sh -c 'calamares'
22
+ */
23
+ /**
24
+ * CliAutologin
25
+ */
26
+ export default class CliAutologin {
27
+ /**
28
+ * add
29
+ * @param distro
30
+ * @param version
31
+ * @param user
32
+ * @param userPasswd
33
+ * @param rootPasswd
34
+ * @param chroot
35
+ */
36
+ async add(distro, version, user, userPasswd, rootPasswd, chroot = '/') {
37
+ if (Utils.isSystemd()) {
38
+ /**
39
+ * systemd
40
+ */
41
+ Utils.warning("systemd: creating CLI autologin");
42
+ const fileOverride = `${chroot}/etc/systemd/system/getty@.service.d/override.conf`;
43
+ const dirOverride = path.dirname(fileOverride);
44
+ if (fs.existsSync(dirOverride)) {
45
+ shx.exec(`rm ${dirOverride} -rf`);
46
+ }
47
+ // ecludo Opensuse ha un'altro sistema
48
+ if (distro !== 'Opensuse') {
49
+ shx.exec(`mkdir ${dirOverride}`);
50
+ let content = '';
51
+ content += '[Service]' + '\n';
52
+ content += 'ExecStart=' + '\n';
53
+ content += 'ExecStart=-/sbin/agetty --noclear --autologin ' + user + ' %I $TERM' + '\n';
54
+ fs.writeFileSync(fileOverride, content);
55
+ }
56
+ shx.exec(`chmod +x ${fileOverride}`);
57
+ await this.addIssue(distro, version, user, userPasswd, rootPasswd, chroot);
58
+ await this.addMotd(distro, version, user, userPasswd, rootPasswd, chroot);
59
+ }
60
+ else if (Utils.isOpenRc()) {
61
+ /**
62
+ * openrc
63
+ */
64
+ Utils.warning("openrc: creating CLI autologin");
65
+ const inittab = chroot + '/etc/inittab';
66
+ let content = '';
67
+ const search = `tty1::respawn:/sbin/getty 38400 tty1`;
68
+ const replace = `tty1::respawn:/sbin/getty -L 38400 tty1 -n -l /bin/autologin`;
69
+ const lines = fs.readFileSync(inittab, 'utf8').split('\n');
70
+ for (let i = 0; i < lines.length; i++) {
71
+ if (lines[i].includes(search)) {
72
+ lines[i] = replace;
73
+ }
74
+ content += lines[i] + '\n';
75
+ }
76
+ console.log(`Writing ${inittab}`);
77
+ fs.writeFileSync(inittab, content, 'utf-8');
78
+ const autologin = chroot + '/bin/autologin';
79
+ content = '#!/bin/sh' + '\n';
80
+ content += `/bin/login -f ${user}` + '\n';
81
+ fs.writeFileSync(autologin, content, 'utf-8');
82
+ execSync(`chmod +x ${autologin}`);
83
+ await this.addIssue(distro, version, user, userPasswd, rootPasswd, chroot);
84
+ await this.addMotd(distro, version, user, userPasswd, rootPasswd, chroot);
85
+ }
86
+ else if (Utils.isSysvinit()) {
87
+ /**
88
+ * sysvinit
89
+ */
90
+ Utils.warning("sysvinit: creating CLI autologin");
91
+ const inittab = chroot + '/etc/inittab';
92
+ const search = '1:2345:respawn:/sbin/getty';
93
+ const replace = `1:2345:respawn:/sbin/getty --autologin ${user} 38400 tty1`;
94
+ let content = '';
95
+ const lines = fs.readFileSync(inittab, 'utf8').split('\n');
96
+ for (let i = 0; i < lines.length; i++) {
97
+ if (lines[i].includes(search)) {
98
+ lines[i] = replace;
99
+ }
100
+ content += lines[i] + '\n';
101
+ }
102
+ console.log(`Writing ${inittab}`);
103
+ fs.writeFileSync(inittab, content, 'utf-8');
104
+ await this.addMotd(distro, version, user, userPasswd, rootPasswd, chroot);
105
+ await this.addIssue(distro, version, user, userPasswd, rootPasswd, chroot);
106
+ }
107
+ }
108
+ /**
109
+ *
110
+ * @param distro
111
+ * @param version
112
+ * @param user
113
+ * @param userPasswd
114
+ * @param rootPasswd
115
+ * @param chroot
116
+ */
117
+ async addIssue(distro, version, user, userPasswd, rootPasswd, chroot = '/') {
118
+ const fileIssue = `${chroot}/etc/issue`;
119
+ if (fs.existsSync(fileIssue)) {
120
+ if (!fs.lstatSync(fileIssue).isSymbolicLink()) {
121
+ this.msgRemove(fileIssue);
122
+ let content = fs.readFileSync(fileIssue, 'utf8');
123
+ content += startMessage + '\n';
124
+ content += `This is a ${distro}/${version} system created by Penguins' eggs.\n`;
125
+ content += 'You can login with user: ' + chalk.bold(user) + ' and password: ' + chalk.bold(userPasswd) + ', root password: ' + chalk.bold(rootPasswd) + '\n';
126
+ content += stopMessage + '\n';
127
+ fs.writeFileSync(fileIssue, content);
128
+ }
129
+ }
130
+ }
131
+ /**
132
+ *
133
+ * @param distro
134
+ * @param version
135
+ * @param user
136
+ * @param userPasswd
137
+ * @param rootPasswd
138
+ * @param chroot
139
+ */
140
+ async addMotd(distro, version, user, userPasswd, rootPasswd, chroot = '/') {
141
+ const fileMotd = `${chroot}/etc/motd`;
142
+ let installer = 'sudo eggs install';
143
+ if (Pacman.calamaresExists()) {
144
+ if (Pacman.packageIsInstalled('plasma-desktop')) {
145
+ installer = 'startplasma-wayland to run GUI and launch calamares';
146
+ }
147
+ else if (Pacman.packageIsInstalled('xfce4')) {
148
+ installer = 'startxfce4 to run GUI and launch calamares installer';
149
+ }
150
+ }
151
+ if (!fs.existsSync(fileMotd)) {
152
+ await exec(`touch ${fileMotd}`);
153
+ }
154
+ this.msgRemove(fileMotd);
155
+ let eggsMotd = fs.readFileSync(fileMotd, 'utf8');
156
+ eggsMotd += startMessage + '\n';
157
+ eggsMotd += Utils.flag() + '\n';
158
+ eggsMotd += 'You are logged as: ' + chalk.bold(user) + ' your password is: ' + chalk.bold(userPasswd) + ', root password: ' + chalk.bold(rootPasswd) + '\n\n';
159
+ eggsMotd += 'install : ' + chalk.bold(installer) + '\n';
160
+ eggsMotd += ' --unattended : ' + chalk.bold('sudo eggs install --unattended') + '\n';
161
+ eggsMotd += ' --chroot : ' + chalk.bold('sudo eggs install --chroot') + '\n';
162
+ eggsMotd += ' --help : ' + chalk.bold('sudo eggs install --help') + '\n';
163
+ eggsMotd += '\n';
164
+ eggsMotd += stopMessage + '\n';
165
+ fs.writeFileSync(fileMotd, eggsMotd);
166
+ }
167
+ /**
168
+ * remove
169
+ * @param chroot
170
+ */
171
+ async remove(chroot = '/') {
172
+ if (Utils.isSystemd()) {
173
+ /**
174
+ * Systemd
175
+ */
176
+ const fileOverride = `${chroot}/etc/systemd/system/getty@.service.d/override.conf`;
177
+ const dirOverride = path.dirname(fileOverride);
178
+ if (fs.existsSync(dirOverride)) {
179
+ shx.exec(`rm ${dirOverride} -rf`);
180
+ }
181
+ this.msgRemove(`${chroot}/etc/motd`);
182
+ this.msgRemove(`${chroot}/etc/issue`);
183
+ }
184
+ else if (Utils.isOpenRc()) {
185
+ /**
186
+ * openrc
187
+ */
188
+ const inittab = chroot + '/etc/inittab';
189
+ const search = 'autologin';
190
+ const replace = `tty1::respawn:/sbin/getty 38400 tty1`;
191
+ let content = '';
192
+ const lines = fs.readFileSync(inittab, 'utf8').split('\n');
193
+ for (let i = 0; i < lines.length; i++) {
194
+ if (lines[i].includes(search)) {
195
+ lines[i] = replace;
196
+ }
197
+ content += lines[i] + '\n';
198
+ }
199
+ fs.writeFileSync(inittab, content, 'utf-8');
200
+ this.msgRemove(`${chroot}/etc/motd`);
201
+ this.msgRemove(`${chroot}/etc/issue`);
202
+ const autologin = `${chroot}/bin/autologin`;
203
+ execSync(`rm -f ${autologin}`);
204
+ }
205
+ else if (Utils.isSysvinit()) {
206
+ /**
207
+ * sysvinit
208
+ */
209
+ const inittab = chroot + '/etc/inittab';
210
+ const search = '--autologin';
211
+ const replace = '1:2345:respawn:/sbin/getty 38400 tty1 ';
212
+ let content = '';
213
+ const lines = fs.readFileSync(inittab, 'utf8').split('\n');
214
+ for (let i = 0; i < lines.length; i++) {
215
+ if (lines[i].includes(search)) {
216
+ lines[i] = replace;
217
+ }
218
+ content += lines[i] + '\n';
219
+ }
220
+ // motd
221
+ fs.writeFileSync(inittab, content, 'utf-8');
222
+ this.msgRemove(`${chroot}/etc/motd`);
223
+ // issue
224
+ this.msgRemove(`${chroot}/etc/issue`);
225
+ } // to add: openrc and runit for Devuan
226
+ }
227
+ /**
228
+ *
229
+ * @param path
230
+ */
231
+ async msgRemove(path) {
232
+ if (fs.existsSync(path)) {
233
+ if (!fs.lstatSync(path).isSymbolicLink()) {
234
+ const rows = fs.readFileSync(path, 'utf8').split('\n');
235
+ let cleaned = '';
236
+ let remove = false;
237
+ for (const row of rows) {
238
+ if (row.includes(startMessage)) {
239
+ remove = true;
240
+ }
241
+ if (!remove && row !== '') {
242
+ cleaned += row + '\n';
243
+ }
244
+ if (row.includes(stopMessage)) {
245
+ remove = false;
246
+ }
247
+ }
248
+ fs.writeFileSync(path, cleaned, 'utf-8');
249
+ }
250
+ }
251
+ }
252
+ }
@@ -0,0 +1,54 @@
1
+ /**
2
+ * ./src/classes/compressors.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ export default class Compressors {
9
+ dest: string;
10
+ isEnabled: {
11
+ error: boolean;
12
+ gzip: boolean;
13
+ lz4: boolean;
14
+ lzma: boolean;
15
+ lzo: boolean;
16
+ xz: boolean;
17
+ zstd: boolean;
18
+ };
19
+ source: string;
20
+ /**
21
+ * fast compression
22
+ * @returns
23
+ */
24
+ fast(): string;
25
+ /**
26
+ * max
27
+ * @returns
28
+ */
29
+ max(): string;
30
+ pendrive(level?: string): string;
31
+ /**
32
+ * populate
33
+ */
34
+ populate(): Promise<void>;
35
+ /**
36
+ * standard
37
+ * @returns
38
+ */
39
+ standard(): string;
40
+ /**
41
+ * check mksquashfs exists
42
+ * @param compressor
43
+ * @returns
44
+ */
45
+ private check;
46
+ /**
47
+ * prepareCheck
48
+ */
49
+ private prepareCheck;
50
+ /**
51
+ * removeCheck
52
+ */
53
+ private removeCheck;
54
+ }
@@ -0,0 +1,109 @@
1
+ /**
2
+ * ./src/classes/compressors.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import shx from 'shelljs';
9
+ export default class Compressors {
10
+ dest = '/tmp/eggs-mksquash-dest';
11
+ isEnabled = {
12
+ error: false,
13
+ gzip: true,
14
+ lz4: false,
15
+ lzma: false,
16
+ lzo: false,
17
+ xz: false,
18
+ zstd: false
19
+ };
20
+ source = '/tmp/eggs-mksquash-test';
21
+ /**
22
+ * fast compression
23
+ * @returns
24
+ */
25
+ fast() {
26
+ let comp = 'gzip';
27
+ if (this.isEnabled.zstd) {
28
+ comp = 'zstd -b 1M -Xcompression-level 3';
29
+ }
30
+ else if (this.isEnabled.lz4) {
31
+ comp = 'lz4';
32
+ }
33
+ return comp;
34
+ }
35
+ /**
36
+ * max
37
+ * @returns
38
+ */
39
+ max() {
40
+ let filter = 'x86';
41
+ if (process.arch === 'arm64') {
42
+ filter = 'arm';
43
+ }
44
+ const options = '-b 1M -no-duplicates -no-recovery -always-use-fragments';
45
+ if (process.arch === 'ia32') {
46
+ // options = '-b 1M'
47
+ }
48
+ const comp = `xz -Xbcj ${filter} ${options}`;
49
+ return comp;
50
+ }
51
+ pendrive(level = '15') {
52
+ let comp = 'gzip';
53
+ if (this.isEnabled.zstd) {
54
+ comp = `zstd -b 1M -Xcompression-level ${level}`;
55
+ }
56
+ else if (this.isEnabled.lz4) {
57
+ comp = 'lz4';
58
+ }
59
+ return comp;
60
+ }
61
+ /**
62
+ * populate
63
+ */
64
+ async populate() {
65
+ await this.prepareCheck();
66
+ this.isEnabled.error = await this.check('error');
67
+ this.isEnabled.lzma = await this.check('lzma');
68
+ this.isEnabled.lzo = await this.check('lzo');
69
+ this.isEnabled.lz4 = await this.check('lz4');
70
+ this.isEnabled.xz = await this.check('xz');
71
+ this.isEnabled.zstd = await this.check('zstd');
72
+ await this.removeCheck();
73
+ }
74
+ /**
75
+ * standard
76
+ * @returns
77
+ */
78
+ standard() {
79
+ const comp = 'xz -b 1M';
80
+ return comp;
81
+ }
82
+ /**
83
+ * check mksquashfs exists
84
+ * @param compressor
85
+ * @returns
86
+ */
87
+ async check(compressor) {
88
+ let result = false;
89
+ const { stderr } = shx.exec('mksquashfs ' + this.source + ' ' + this.dest + ' -comp ' + compressor + ' -no-xattrs -ef ' + this.dest, { silent: true });
90
+ if (stderr === '') {
91
+ result = true;
92
+ }
93
+ return result;
94
+ }
95
+ /**
96
+ * prepareCheck
97
+ */
98
+ async prepareCheck() {
99
+ shx.exec('rm -rf ' + this.source, { silent: true });
100
+ shx.exec('mkdir ' + this.source, { silent: true });
101
+ }
102
+ /**
103
+ * removeCheck
104
+ */
105
+ async removeCheck() {
106
+ shx.exec('rm -rf ' + this.source, { silent: true });
107
+ shx.exec('rm -f ' + this.dest, { silent: true });
108
+ }
109
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * ./src/classes/daddy.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import Settings from '../classes/settings.js';
9
+ import { IEggsConfig } from '../interfaces/i-eggs-config.js';
10
+ export default class Daddy {
11
+ settings: Settings;
12
+ /**
13
+ * editConfif
14
+ * @param c
15
+ * @returns
16
+ */
17
+ editConfig(c: IEggsConfig): Promise<string>;
18
+ /**
19
+ *
20
+ * @param reset
21
+ * @param isCustom
22
+ * @param fileCustom
23
+ * @param verbose
24
+ */
25
+ helpMe(reset?: boolean, isCustom?: boolean, fileCustom?: string, verbose?: boolean): Promise<void>;
26
+ }
@@ -0,0 +1,175 @@
1
+ /**
2
+ * ./src/classes/daddy.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import chalk from 'chalk';
9
+ import inquirer from 'inquirer';
10
+ import yaml from 'js-yaml';
11
+ import fs from 'node:fs';
12
+ // _dirname
13
+ import path from 'node:path';
14
+ import { exec } from '../lib/utils.js';
15
+ // We need to remove .js extension from import
16
+ import Pacman from '../classes/pacman.js';
17
+ import Settings from '../classes/settings.js';
18
+ import Utils from '../classes/utils.js';
19
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
20
+ export default class Daddy {
21
+ settings = {};
22
+ /**
23
+ * editConfif
24
+ * @param c
25
+ * @returns
26
+ */
27
+ async editConfig(c) {
28
+ // Utils.titles('dad')
29
+ console.log(chalk.cyan('Edit and save Live system parameters'));
30
+ console.log();
31
+ let compressionOpt = 0;
32
+ if (c.compression === 'xz') {
33
+ compressionOpt = 1;
34
+ }
35
+ else if (c.compression === 'xz -Xbcj x86') {
36
+ compressionOpt = 2;
37
+ }
38
+ if (c.snapshot_prefix === '') {
39
+ c.snapshot_prefix = Utils.snapshotPrefix(this.settings.distro.distroId, this.settings.distro.codenameId);
40
+ }
41
+ return new Promise((resolve) => {
42
+ const questions = [
43
+ {
44
+ default: c.snapshot_prefix,
45
+ message: 'LiveCD iso prefix: ',
46
+ name: 'snapshot_prefix',
47
+ type: 'input'
48
+ },
49
+ {
50
+ default: c.snapshot_basename,
51
+ message: 'LiveCD iso basename: ',
52
+ name: 'snapshot_basename',
53
+ type: 'input'
54
+ },
55
+ {
56
+ default: c.user_opt,
57
+ message: 'LiveCD user:',
58
+ name: 'user_opt',
59
+ type: 'input'
60
+ },
61
+ {
62
+ default: c.user_opt_passwd,
63
+ message: 'LiveCD user password: ',
64
+ name: 'user_opt_passwd',
65
+ type: 'input'
66
+ },
67
+ {
68
+ default: c.root_passwd,
69
+ message: 'LiveCD root password: ',
70
+ name: 'root_passwd',
71
+ type: 'input'
72
+ },
73
+ {
74
+ choices: ['fast', 'max'],
75
+ default: compressionOpt,
76
+ message: 'LiveCD compression: ',
77
+ name: 'compression',
78
+ type: 'list'
79
+ }
80
+ ];
81
+ inquirer.prompt(questions).then((options) => {
82
+ resolve(JSON.stringify(options));
83
+ });
84
+ });
85
+ }
86
+ /**
87
+ *
88
+ * @param reset
89
+ * @param isCustom
90
+ * @param fileCustom
91
+ * @param verbose
92
+ */
93
+ async helpMe(reset = false, isCustom = false, fileCustom = '', verbose = false) {
94
+ if (isCustom) {
95
+ console.log('using custom file:', fileCustom);
96
+ }
97
+ // Controllo configurazione
98
+ if (!Pacman.configurationCheck()) {
99
+ console.log('- creating configuration dir...');
100
+ await Pacman.configurationInstall(verbose);
101
+ }
102
+ // Templates
103
+ if (!Pacman.distroTemplateCheck()) {
104
+ console.log('- distro template install...');
105
+ await Pacman.distroTemplateInstall(verbose);
106
+ }
107
+ //Calamares
108
+ if (!Pacman.calamaresExists() &&
109
+ Pacman.isInstalledGui() &&
110
+ Pacman.isCalamaresAvailable()) {
111
+ console.log('- this is a GUI system, calamares is available, but NOT installed');
112
+ }
113
+ // show and edit configuration
114
+ this.settings = new Settings();
115
+ let config = {};
116
+ let jsonConf = '';
117
+ if (await this.settings.load()) {
118
+ config = this.settings.config;
119
+ config.compression = 'fast';
120
+ if (reset || isCustom) {
121
+ if (config.snapshot_prefix === '') {
122
+ let fstype = ((await exec(`findmnt -n -o FSTYPE /`, { capture: true })).data.trim());
123
+ if (fstype !== 'ext4') {
124
+ fstype += '-';
125
+ }
126
+ else {
127
+ fstype = '';
128
+ }
129
+ config.snapshot_prefix = Utils.snapshotPrefix(this.settings.distro.distroId, this.settings.distro.codenameId) + fstype;
130
+ }
131
+ jsonConf = JSON.stringify(config);
132
+ }
133
+ else {
134
+ jsonConf = await this.editConfig(config);
135
+ }
136
+ // Custom configuration
137
+ if (isCustom) {
138
+ const conf = fs.readFileSync(fileCustom, 'utf8');
139
+ const confCustom = yaml.load(conf);
140
+ config.snapshot_basename = confCustom.snapshot_basename;
141
+ config.snapshot_prefix = confCustom.snapshot_prefix;
142
+ config.user_opt = confCustom.user_opt;
143
+ config.user_opt_passwd = confCustom.user_opt_passwd;
144
+ config.root_passwd = confCustom.root_passwd;
145
+ config.theme = confCustom.theme;
146
+ jsonConf = JSON.stringify(config);
147
+ }
148
+ // Save new configuration
149
+ const confNew = JSON.parse(jsonConf);
150
+ config.snapshot_basename = confNew.snapshot_basename;
151
+ config.snapshot_prefix = confNew.snapshot_prefix;
152
+ config.user_opt = confNew.user_opt;
153
+ config.user_opt_passwd = confNew.user_opt_passwd;
154
+ config.root_passwd = confNew.root_passwd;
155
+ config.theme = confNew.theme;
156
+ await this.settings.save(config);
157
+ }
158
+ console.log();
159
+ console.log(chalk.cyan('Your configuration was saved on: /etc/penguins-eggs.d'));
160
+ console.log();
161
+ console.log(chalk.cyan(`You can create a clean ISO with: `) + chalk.white(`sudo eggs produce`));
162
+ console.log(chalk.cyan(`or a full personal clone: `) + chalk.white(`sudo eggs produce --clone`));
163
+ console.log();
164
+ console.log(chalk.cyan(`If you don't have enough space to remaster, you can mount`));
165
+ console.log(chalk.cyan(`some remote or local space. Follow the samples:`));
166
+ console.log(chalk.cyan(`- first, create an hidden mountpoint under the nest:`));
167
+ console.log(chalk.white(`sudo mkdir /home/eggs/.mnt -p`));
168
+ console.log(chalk.cyan(`- then, mount remote space:`));
169
+ console.log(chalk.white(`sudo sshfs -o allow_other root@192.168.1.2:/zfs/iso /home/eggs/.mnt`));
170
+ console.log(chalk.cyan('- or, mount a local partition:'));
171
+ console.log(chalk.white(`sudo mount /dev/sdx1 /home/eggs/.mnt`));
172
+ console.log();
173
+ console.log(chalk.cyan('More help? ') + chalk.white('eggs mom'));
174
+ }
175
+ }
@@ -0,0 +1,32 @@
1
+ /**
2
+ * penguins-eggs
3
+ * class: distro.ts
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import { IDistro } from '../interfaces/index.js';
9
+ /**
10
+ * Classe
11
+ */
12
+ declare class Distro implements IDistro {
13
+ bugReportUrl: string;
14
+ codenameId: string;
15
+ distroUniqueId: string;
16
+ distroId: string;
17
+ distroLike: string;
18
+ familyId: string;
19
+ homeUrl: string;
20
+ isCalamaresAvailable: boolean;
21
+ liveMediumPath: string;
22
+ releaseId: string;
23
+ squashfs: string;
24
+ supportUrl: string;
25
+ syslinuxPath: string;
26
+ usrLibPath: string;
27
+ /**
28
+ * Costruttore
29
+ */
30
+ constructor();
31
+ }
32
+ export default Distro;