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,239 @@
1
+ /**
2
+ * ./src/classes/ovary.d/edit-live-fs.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
+ // packages
9
+ import fs from 'fs';
10
+ import os from 'os';
11
+ import path from 'node:path';
12
+ import shx from 'shelljs';
13
+ import Utils from '../utils.js';
14
+ import Pacman from '../pacman.js';
15
+ import Systemctl from '../systemctl.js';
16
+ import { exec } from '../../lib/utils.js';
17
+ // _dirname
18
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
19
+ /**
20
+ * editLiveFs
21
+ * - Mark if is_clone or is_clone_crypted
22
+ * - Truncate logs, remove archived log
23
+ * - Allow all fixed drives to be mounted with pmount
24
+ * - Enable or disable password login trhough ssh for users (not root)
25
+ * - Create an empty /etc/fstab
26
+ * - Blanck /etc/machine-id
27
+ * - Add some basic files to /dev
28
+ * - Clear configs from /etc/network/interfaces, wicd and NetworkManager and netman
29
+ */
30
+ export async function editLiveFs(clone = false) {
31
+ if (this.verbose) {
32
+ console.log('Ovary: editLiveFs');
33
+ }
34
+ /**
35
+ * /etc/penguins-eggs.d/is_clone file created on live
36
+ */
37
+ if (clone) {
38
+ await exec(`touch ${this.settings.work_dir.merged}/etc/penguins-eggs.d/is_clone`, this.echo);
39
+ }
40
+ /**
41
+ * /etc/default/epoptes-client created on live
42
+ */
43
+ if (Pacman.packageIsInstalled('epoptes')) {
44
+ const file = `${this.settings.work_dir.merged}/etc/default/epoptes-client`;
45
+ const text = `SERVER=${os.hostname}.local\n`;
46
+ fs.writeFileSync(file, text);
47
+ }
48
+ if (this.familyId === 'debian') {
49
+ // Aggiungo UMASK=0077 in /etc/initramfs-tools/conf.d/calamares-safe-initramfs.conf
50
+ const text = 'UMASK=0077\n';
51
+ const file = '/etc/initramfs-tools/conf.d/eggs-safe-initramfs.conf';
52
+ Utils.write(file, text);
53
+ }
54
+ // Truncate logs, remove archived logs.
55
+ let cmd = `find ${this.settings.work_dir.merged}/var/log -name "*gz" -print0 | xargs -0r rm -f`;
56
+ await exec(cmd, this.echo);
57
+ cmd = `find ${this.settings.work_dir.merged}/var/log/ -type f -exec truncate -s 0 {} \\;`;
58
+ await exec(cmd, this.echo);
59
+ // Allow all fixed drives to be mounted with pmount
60
+ if (this.settings.config.pmount_fixed && fs.existsSync(`${this.settings.work_dir.merged}/etc/pmount.allow`)) {
61
+ // MX aggiunto /etc
62
+ await exec(`sed -i 's:#/dev/sd\[a-z\]:/dev/sd\[a-z\]:' ${this.settings.work_dir.merged}/etc/pmount.allow`, this.echo);
63
+ }
64
+ // Remove obsolete live-config file
65
+ if (fs.existsSync(`${this.settings.work_dir.merged}lib/live/config/1161-openssh-server`)) {
66
+ await exec(`rm -f ${this.settings.work_dir.merged}/lib/live/config/1161-openssh-server`, this.echo);
67
+ }
68
+ if (fs.existsSync(`${this.settings.work_dir.merged}/etc/ssh/sshd_config`)) {
69
+ /**
70
+ * enable/disable SSH root/users password login
71
+ */
72
+ await exec(`sed -i '/PermitRootLogin/d' ${this.settings.work_dir.merged}/etc/ssh/sshd_config`);
73
+ await exec(`sed -i '/PasswordAuthentication/d' ${this.settings.work_dir.merged}/etc/ssh/sshd_config`);
74
+ if (this.settings.config.ssh_pass) {
75
+ await exec(`echo 'PasswordAuthentication yes' | tee -a ${this.settings.work_dir.merged}/etc/ssh/sshd_config`, this.echo);
76
+ }
77
+ else {
78
+ await exec(`echo 'PermitRootLogin prohibit-password' | tee -a ${this.settings.work_dir.merged}/etc/ssh/sshd_config`, this.echo);
79
+ await exec(`echo 'PasswordAuthentication no' | tee -a ${this.settings.work_dir.merged}/etc/ssh/sshd_config`, this.echo);
80
+ }
81
+ }
82
+ /**
83
+ * ufw --force reset
84
+ */
85
+ // if (Pacman.packageIsInstalled('ufw')) {
86
+ // await exec('ufw --force reset')
87
+ // }
88
+ /**
89
+ * /etc/fstab should exist, even if it's empty,
90
+ * to prevent error messages at boot
91
+ */
92
+ await exec(`rm ${this.settings.work_dir.merged}/etc/fstab`, this.echo);
93
+ await exec(`touch ${this.settings.work_dir.merged}/etc/fstab`, this.echo);
94
+ /**
95
+ * Remove crypttab if exists
96
+ * this is crucial for tpm systems.
97
+ */
98
+ if (fs.existsSync(`${this.settings.work_dir.merged}/etc/crypttab`)) {
99
+ await exec(`rm ${this.settings.work_dir.merged}/etc/crypttab`, this.echo);
100
+ }
101
+ /**
102
+ * Blank out systemd machine id.
103
+ * If it does not exist, systemd-journald will fail,
104
+ * but if it exists and is empty, systemd will automatically
105
+ * set up a new unique ID.
106
+ */
107
+ if (fs.existsSync(`${this.settings.work_dir.merged}/etc/machine-id`)) {
108
+ await exec(`rm ${this.settings.work_dir.merged}/etc/machine-id`, this.echo);
109
+ await exec(`touch ${this.settings.work_dir.merged}/etc/machine-id`, this.echo);
110
+ Utils.write(`${this.settings.work_dir.merged}/etc/machine-id`, ':');
111
+ }
112
+ /**
113
+ * LMDE4: utilizza UbuntuMono16.pf2
114
+ * aggiungo un link a /boot/grub/fonts/UbuntuMono16.pf2
115
+ */
116
+ if (fs.existsSync(`${this.settings.work_dir.merged}/boot/grub/fonts/unicode.pf2`)) {
117
+ shx.cp(`${this.settings.work_dir.merged}/boot/grub/fonts/unicode.pf2`, `${this.settings.work_dir.merged}/boot/grub/fonts/UbuntuMono16.pf2`);
118
+ }
119
+ /**
120
+ * cleaning /etc/resolv.conf
121
+ */
122
+ const resolvFile = `${this.settings.work_dir.merged}/etc/resolv.conf`;
123
+ shx.rm(resolvFile);
124
+ /**
125
+ * Per tutte le distro systemd
126
+ */
127
+ if (Utils.isSystemd()) {
128
+ const systemdctl = new Systemctl(this.verbose);
129
+ /*
130
+ * Arch: /ci/minimal/arch-minimal.sh:
131
+ * systemctl set-default multi-user.target
132
+ * systemctl enable getty@tty1.service
133
+ * systemctl enable systemd-networkd.service
134
+ * systemctl enable 'systemd-resolved.service
135
+ */
136
+ if (await systemdctl.isEnabled('remote-cryptsetup.target')) {
137
+ await systemdctl.disable('remote-cryptsetup.target', this.settings.work_dir.merged, true);
138
+ }
139
+ if (await systemdctl.isEnabled('speech-dispatcherd.service')) {
140
+ await systemdctl.disable('speech-dispatcherd.service', this.settings.work_dir.merged, true);
141
+ }
142
+ if (await systemdctl.isEnabled('wpa_supplicant-nl80211@.service')) {
143
+ await systemdctl.disable('wpa_supplicant-nl80211@.service', this.settings.work_dir.merged, true);
144
+ }
145
+ if (await systemdctl.isEnabled('wpa_supplicant@.service')) {
146
+ await systemdctl.disable('wpa_supplicant@.service', this.settings.work_dir.merged, true);
147
+ }
148
+ if (await systemdctl.isEnabled('wpa_supplicant-wired@.service')) {
149
+ await systemdctl.disable('wpa_supplicant-wired@.service', this.settings.work_dir.merged, true);
150
+ }
151
+ /**
152
+ * All systemd distros
153
+ */
154
+ await exec(`rm -f ${this.settings.work_dir.merged}/var/lib/wicd/configurations/*`, this.echo);
155
+ await exec(`rm -f ${this.settings.work_dir.merged}/etc/wicd/wireless-settings.conf`, this.echo);
156
+ await exec(`rm -f ${this.settings.work_dir.merged}/etc/NetworkManager/system-connections/*`, this.echo);
157
+ await exec(`rm -f ${this.settings.work_dir.merged}/etc/network/wifi/*`, this.echo);
158
+ /**
159
+ * removing from /etc/network/:
160
+ * if-down.d if-post-down.d if-pre-up.d if-up.d interfaces interfaces.d
161
+ */
162
+ const cleanDirs = ['if-down.d', 'if-post-down.d', 'if-pre-up.d', 'if-up.d', 'interfaces.d'];
163
+ let cleanDir = '';
164
+ for (cleanDir of cleanDirs) {
165
+ await exec(`rm -f ${this.settings.work_dir.merged}/etc/network/${cleanDir}/wpasupplicant`, this.echo);
166
+ }
167
+ }
168
+ /**
169
+ * Clear configs from /etc/network/interfaces, wicd and NetworkManager
170
+ * and netman, so they aren't stealthily included in the snapshot.
171
+ */
172
+ if (this.familyId === 'debian') {
173
+ if (fs.existsSync(`${this.settings.work_dir.merged}/etc/network/interfaces`)) {
174
+ await exec(`rm -f ${this.settings.work_dir.merged}/etc/network/interfaces`, this.echo);
175
+ Utils.write(`${this.settings.work_dir.merged}/etc/network/interfaces`, 'auto lo\niface lo inet loopback');
176
+ }
177
+ /**
178
+ * add some basic files to /dev
179
+ */
180
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/console`)) {
181
+ await exec(`mknod -m 622 ${this.settings.work_dir.merged}/dev/console c 5 1`, this.echo);
182
+ }
183
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/null`)) {
184
+ await exec(`mknod -m 666 ${this.settings.work_dir.merged}/dev/null c 1 3`, this.echo);
185
+ }
186
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/zero`)) {
187
+ await exec(`mknod -m 666 ${this.settings.work_dir.merged}/dev/zero c 1 5`, this.echo);
188
+ }
189
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/ptmx`)) {
190
+ await exec(`mknod -m 666 ${this.settings.work_dir.merged}/dev/ptmx c 5 2`, this.echo);
191
+ }
192
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/tty`)) {
193
+ await exec(`mknod -m 666 ${this.settings.work_dir.merged}/dev/tty c 5 0`, this.echo);
194
+ }
195
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/random`)) {
196
+ await exec(`mknod -m 444 ${this.settings.work_dir.merged}/dev/random c 1 8`, this.echo);
197
+ }
198
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/urandom`)) {
199
+ await exec(`mknod -m 444 ${this.settings.work_dir.merged}/dev/urandom c 1 9`, this.echo);
200
+ }
201
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/{console,ptmx,tty}`)) {
202
+ await exec(`chown -v root:tty ${this.settings.work_dir.merged}/dev/{console,ptmx,tty}`, this.echo);
203
+ }
204
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/fd`)) {
205
+ await exec(`ln -sv /proc/self/fd ${this.settings.work_dir.merged}/dev/fd`, this.echo);
206
+ }
207
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/stdin`)) {
208
+ await exec(`ln -sv /proc/self/fd/0 ${this.settings.work_dir.merged}/dev/stdin`, this.echo);
209
+ }
210
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/stdout`)) {
211
+ await exec(`ln -sv /proc/self/fd/1 ${this.settings.work_dir.merged}/dev/stdout`, this.echo);
212
+ }
213
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/stderr`)) {
214
+ await exec(`ln -sv /proc/self/fd/2 ${this.settings.work_dir.merged}/dev/stderr`, this.echo);
215
+ }
216
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/core`)) {
217
+ await exec(`ln -sv /proc/kcore ${this.settings.work_dir.merged}/dev/core`, this.echo);
218
+ }
219
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/shm`)) {
220
+ await exec(`mkdir -v ${this.settings.work_dir.merged}/dev/shm`, this.echo);
221
+ }
222
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/pts`)) {
223
+ await exec(`mkdir -v ${this.settings.work_dir.merged}/dev/pts`, this.echo);
224
+ }
225
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/shm`)) {
226
+ await exec(`chmod 1777 ${this.settings.work_dir.merged}/dev/shm`, this.echo);
227
+ }
228
+ /**
229
+ * creo /tmp
230
+ */
231
+ if (!fs.existsSync(`${this.settings.work_dir.merged}/tmp`)) {
232
+ await exec(`mkdir ${this.settings.work_dir.merged}/tmp`, this.echo);
233
+ }
234
+ /**
235
+ * Assegno 1777 a /tmp creava problemi con MXLINUX
236
+ */
237
+ await exec(`chmod 1777 ${this.settings.work_dir.merged}/tmp`, this.echo);
238
+ }
239
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * ./src/classes/xorriso-command.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 Ovary from '../ovary.js';
9
+ /**
10
+ * @returns {boolean} success
11
+ */
12
+ export declare function fertilization(this: Ovary, snapshot_prefix?: string, snapshot_basename?: string, theme?: string, compression?: string, nointeratctive?: boolean): Promise<boolean>;
@@ -0,0 +1,53 @@
1
+ /**
2
+ * ./src/classes/xorriso-command.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
+ // packages
9
+ import path from 'node:path';
10
+ import Settings from '../settings.js';
11
+ import Utils from '../utils.js';
12
+ import Distro from '../distro.js';
13
+ // _dirname
14
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
15
+ /**
16
+ * @returns {boolean} success
17
+ */
18
+ export async function fertilization(snapshot_prefix = '', snapshot_basename = '', theme = '', compression = '', nointeratctive = false) {
19
+ // familyId, distroId from Distro
20
+ const distro = new Distro();
21
+ this.familyId = distro.familyId;
22
+ this.distroId = distro.distroId;
23
+ this.distroLike = distro.distroLike;
24
+ this.distroLliveMediumPath = distro.liveMediumPath;
25
+ this.settings = new Settings();
26
+ if (await this.settings.load()) {
27
+ await this.settings.loadRemix(this.theme);
28
+ this.volid = Utils.getVolid(this.settings.remix.name);
29
+ this.uuid = Utils.uuidGen();
30
+ //this.familyId = this.settings.distro.familyId
31
+ this.nest = this.settings.config.snapshot_mnt;
32
+ if (snapshot_prefix !== '') {
33
+ this.settings.config.snapshot_prefix = snapshot_prefix;
34
+ }
35
+ if (snapshot_basename !== '') {
36
+ this.settings.config.snapshot_basename = snapshot_basename;
37
+ }
38
+ if (theme !== '') {
39
+ this.theme = theme;
40
+ }
41
+ if (compression !== '') {
42
+ this.settings.config.compression = compression;
43
+ }
44
+ if (!nointeratctive) {
45
+ return true;
46
+ }
47
+ this.settings.listFreeSpace();
48
+ if (await Utils.customConfirm('Select yes to continue...')) {
49
+ return true;
50
+ }
51
+ }
52
+ return false;
53
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * ./src/classes/ovary.d/finished.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 Ovary from './../ovary.js';
9
+ /**
10
+ * finished = show the results
11
+ * @param scriptOnly
12
+ */
13
+ export declare function finished(this: Ovary, scriptOnly?: boolean): void;
@@ -0,0 +1,40 @@
1
+ /**
2
+ * ./src/classes/ovary.d/finished.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
+ // packages
10
+ import path from 'path';
11
+ // _dirname
12
+ /**
13
+ * finished = show the results
14
+ * @param scriptOnly
15
+ */
16
+ export function finished(scriptOnly = false) {
17
+ // Utils.titles('produce')
18
+ if (scriptOnly) {
19
+ const pathOvarium = path.join(this.settings.config.snapshot_dir, 'ovarium');
20
+ console.log('eggs is finished!\n\nYou can find the scripts to build iso: ' + chalk.cyanBright(this.settings.isoFilename) + '\nin the ovarium: ' + chalk.cyanBright(pathOvarium) + '.');
21
+ console.log('usage');
22
+ console.log(chalk.cyanBright(`cd ${pathOvarium}`));
23
+ console.log(chalk.cyanBright('sudo ./bind'));
24
+ console.log('Make all yours modifications in the directories filesystem.squashfs and iso.');
25
+ console.log('After when you are ready:');
26
+ console.log(chalk.cyanBright('sudo ./mksquashfs'));
27
+ console.log(chalk.cyanBright('sudo ./mkisofs'));
28
+ console.log(chalk.cyanBright('sudo ./ubind'));
29
+ console.log('happy hacking!');
30
+ }
31
+ else {
32
+ console.log('eggs is finished!\n\nYou can find the file iso: ' + chalk.cyanBright(this.settings.isoFilename) + '\nin the nest: ' + chalk.cyanBright(this.settings.config.snapshot_dir) + '.');
33
+ }
34
+ console.log();
35
+ console.log('Remember, on liveCD user = ' + chalk.cyanBright(this.settings.config.user_opt) + '/' + chalk.cyanBright(this.settings.config.user_opt_passwd));
36
+ console.log(' root = ' + chalk.cyanBright('root') + '/' + chalk.cyanBright(this.settings.config.root_passwd));
37
+ if (this.genisoimage) {
38
+ console.log(`Note: format UDF, generated by ${chalk.cyanBright('genisoimage')}`);
39
+ }
40
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * ./src/classes/ovary.d/initrd.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 Ovary from '../ovary.js';
9
+ /**
10
+ * initrdAlpine
11
+ */
12
+ export declare function initrdAlpine(this: Ovary): Promise<void>;
13
+ /**
14
+ * initrdArch
15
+ */
16
+ export declare function initrdArch(this: Ovary): Promise<void>;
17
+ /**
18
+ * initrdDebian
19
+ */
20
+ export declare function initrdDebian(this: Ovary, verbose?: boolean): Promise<void>;
21
+ export declare function initrdDracut(this: Ovary): Promise<void>;
@@ -0,0 +1,96 @@
1
+ /**
2
+ * ./src/classes/ovary.d/initrd.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 fs from 'fs';
9
+ import path from 'node:path';
10
+ // classes
11
+ import { exec } from '../../lib/utils.js';
12
+ import Utils from '../utils.js';
13
+ import Diversions from '../diversions.js';
14
+ // _dirname
15
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
16
+ /**
17
+ * initrdAlpine
18
+ */
19
+ export async function initrdAlpine() {
20
+ Utils.warning(`creating ${path.basename(this.initrd)} Alpine on (ISO)/live`);
21
+ let initrdImg = Utils.initrdImg();
22
+ initrdImg = initrdImg.slice(Math.max(0, initrdImg.lastIndexOf('/') + 1));
23
+ const pathConf = path.resolve(__dirname, `../../../mkinitfs/live.conf`);
24
+ const prefix = this.settings.config.snapshot_prefix;
25
+ const log = `> ${this.settings.iso_work}${prefix}mkinitfs.log.txt 2>&1`;
26
+ const cmd = `mkinitfs -c ${pathConf} -o ${this.settings.iso_work}live/${initrdImg} ${this.kernel} ${log}`;
27
+ await exec(cmd, this.echo);
28
+ }
29
+ /**
30
+ * initrdArch
31
+ */
32
+ export async function initrdArch() {
33
+ Utils.warning(`creating ${path.basename(this.initrd)} using mkinitcpio on (ISO)/live`);
34
+ let dirConf = 'arch';
35
+ let tool = 'archiso';
36
+ let hookSrc = '/usr/lib/initcpio/hooks/archiso_pxe_http';
37
+ let hookDest = '/etc/initcpio/hooks/archiso_pxe_http';
38
+ let edit = `sed -i 's/export copytoram="y"/# export copytoram="y"/' ${hookDest}`;
39
+ if (Diversions.isManjaroBased(this.distroId)) {
40
+ dirConf = 'manjaro';
41
+ tool = 'miso';
42
+ hookSrc = `/etc/initcpio/hooks/miso_pxe_http`;
43
+ hookDest = hookSrc;
44
+ edit = `sed -i 's/copytoram="y"/# copytoram="y"/' ${hookDest}`;
45
+ if (this.distroId === "Biglinux" || this.distroId === "Bigcommunity") {
46
+ dirConf = 'biglinux';
47
+ }
48
+ }
49
+ const restore = fs.existsSync(hookDest);
50
+ const pathConf = path.resolve(__dirname, `../../../mkinitcpio/${dirConf}`);
51
+ const fileConf = pathConf + '/live.conf';
52
+ let hookSaved = `/tmp/${path.basename(hookSrc)}`;
53
+ if (hookSrc !== hookDest) {
54
+ await exec(`cp ${hookSrc} ${hookDest}`);
55
+ }
56
+ await exec(`cp ${hookSrc} ${hookSaved}`);
57
+ await exec(edit, this.echo);
58
+ const prefix = this.settings.config.snapshot_prefix;
59
+ const log = `> ${this.settings.iso_work}${prefix}mkinitcpio.log.txt 2>&1`;
60
+ let cmd = `mkinitcpio -c ${fileConf} -g ${this.settings.iso_work}live/${path.basename(this.initrd)} -k ${this.kernel} ${log}`;
61
+ await exec(cmd, this.echo);
62
+ await exec(`rm -f ${hookDest}`);
63
+ if (restore) {
64
+ await exec(`cp ${hookSaved} ${hookDest}`);
65
+ }
66
+ await exec(`rm -f ${hookSaved}`);
67
+ }
68
+ /**
69
+ * initrdDebian
70
+ */
71
+ export async function initrdDebian(verbose = false) {
72
+ Utils.warning(`creating ${this.initrd} using mkinitramfs on (ISO)/live`);
73
+ const prefix = this.settings.config.snapshot_prefix;
74
+ const destFinal = `${this.settings.iso_work}live/${path.basename(this.initrd)}`;
75
+ const log = `> ${this.settings.iso_work}${prefix}mkinitramfs.log.txt 2>&1`;
76
+ const target = path.join(this.dotMnt, 'filesystem.squashfs');
77
+ const cmd = `mkinitramfs -v -o ${destFinal} ${this.kernel} ${log}`;
78
+ await exec(cmd, this.echo);
79
+ }
80
+ /*
81
+ * initrdDracut) Almalinux/Fedora/Openmamba/Opensuse/Rocky/
82
+ */
83
+ export async function initrdDracut() {
84
+ Utils.warning(`creating ${path.basename(this.initrd)} using dracut on (ISO)/live`);
85
+ const prefix = this.settings.config.snapshot_prefix;
86
+ const log = `> ${this.settings.iso_work}${prefix}dracut.log.txt 2>&1`;
87
+ const confdir = '--confdir ' + path.resolve(__dirname, `../../../dracut/dracut.conf.d`);
88
+ const kmoddir = `--kmoddir /lib/modules/${this.kernel}`;
89
+ const initramfs = `${this.settings.iso_work}live/${path.basename(this.initrd)}`;
90
+ const cmd = `dracut --force ${confdir} ${kmoddir} ${initramfs} ${this.kernel} ${log}`;
91
+ console.log(cmd);
92
+ await exec(cmd, this.echo);
93
+ // clean per btrfs
94
+ let clean = `../../../scripts/99clean ${this.kernel}`;
95
+ await exec(clean, this.echo);
96
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * ./src/classes/ovary.d/produce.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 Ovary from './../ovary.js';
9
+ /**
10
+ * kernelCopy
11
+ */
12
+ export declare function kernelCopy(this: Ovary): Promise<void>;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * ./src/classes/ovary.d/produce.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 path from 'path';
9
+ // interfaces
10
+ // libraries
11
+ import { exec } from '../../lib/utils.js';
12
+ // classes
13
+ import Utils from './../utils.js';
14
+ // _dirname
15
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
16
+ /**
17
+ * kernelCopy
18
+ */
19
+ export async function kernelCopy() {
20
+ Utils.warning(`copying ${path.basename(this.vmlinuz)} on (ISO)/live`);
21
+ await exec(`cp ${this.vmlinuz} ${this.settings.iso_work}live/`, this.echo);
22
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * ./src/classes/ovary.d/live-create-structure.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 Ovary from './../ovary.js';
9
+ /**
10
+ * Crea la struttura della workdir
11
+ */
12
+ export declare function liveCreateStructure(this: Ovary): Promise<void>;
@@ -0,0 +1,70 @@
1
+ /**
2
+ * ./src/classes/ovary.d/live-create-structure.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 path from 'path';
9
+ // interfaces
10
+ // libraries
11
+ import { exec } from '../../lib/utils.js';
12
+ // classes
13
+ import Utils from './../utils.js';
14
+ // _dirname
15
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
16
+ /**
17
+ * Crea la struttura della workdir
18
+ */
19
+ export async function liveCreateStructure() {
20
+ Utils.warning(`creating live structure on ${this.nest}`);
21
+ let cmd = '';
22
+ cmd = `# create nest\n`;
23
+ cmd += `mkdir -p ${this.nest}\n`;
24
+ cmd += `# README.md\n`;
25
+ cmd += `cp ${path.resolve(__dirname, '../../../conf/README.md')} ${this.nest}README.md\n`;
26
+ cmd += `# cleaning dotMnt\n`;
27
+ cmd += `rm -rf ${this.dotMnt}efi\n`;
28
+ cmd += `rm -rf ${this.dotMnt}filesystem.squashfs\n`;
29
+ cmd += `rm -rf ${this.dotMnt}/iso\n`;
30
+ cmd += `mkdir -p ${this.dotMnt}/iso/live\n`;
31
+ cmd += `mkdir -p ${this.dotMnt}/iso/boot/grub/${Utils.uefiFormat()}\n`;
32
+ cmd += `mkdir -p ${this.dotMnt}/iso/isolinux\n`;
33
+ cmd += `# cleaning (nest).overlay\n`;
34
+ cmd += `umount ${this.dotLivefs}/* > /dev/null 2>&1\n`;
35
+ cmd += `umount ${this.dotOverlay.lowerdir}/* > /dev/null 2>&1\n`;
36
+ cmd += `umount ${this.dotOverlay.upperdir}/* > /dev/null 2>&1\n`;
37
+ cmd += `umount ${this.dotOverlay.workdir}/* > /dev/null 2>&1\n`;
38
+ cmd += `rm -rf ${this.nest}.overlay\n`;
39
+ cmd += `mkdir -p ${this.dotOverlay.lowerdir}\n`;
40
+ cmd += `mkdir -p ${this.dotOverlay.upperdir}\n`;
41
+ cmd += `mkdir -p ${this.dotOverlay.workdir}\n`;
42
+ cmd += `sleep 1\n`;
43
+ cmd += `# cleaning dotLivefs\n`;
44
+ cmd += `rm -rf ${this.dotLivefs}\n`;
45
+ cmd += `mkdir -p ${this.dotLivefs}\n`;
46
+ cmd += `# cleaning (nest)/ovarium\n`;
47
+ cmd += `rm -rf ${this.nest}ovarium\n`;
48
+ cmd += `mkdir -p ${this.nest}ovarium\n`;
49
+ cmd += `# cleaning (nest)/links\n`;
50
+ cmd += `rm -f ${this.nest}iso\n`;
51
+ cmd += `ln -s ${this.nest}.mnt/iso ${this.nest}/iso\n`;
52
+ cmd += `rm -f ${this.nest}livefs\n`;
53
+ cmd += `ln -s ${this.dotLivefs} ${this.nest}livefs\n`;
54
+ tryCatch(cmd, this.verbose);
55
+ }
56
+ /**
57
+ *
58
+ * @param cmd
59
+ */
60
+ async function tryCatch(cmd = '', verbose = false) {
61
+ try {
62
+ let echo = Utils.setEcho(verbose);
63
+ // console.log(cmd)
64
+ await exec(cmd, echo);
65
+ }
66
+ catch (error) {
67
+ console.log(`Error: ${error}`);
68
+ await Utils.pressKeyToExit(cmd);
69
+ }
70
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * ./src/classes/ovary.d/luks-home.ts
3
+ * penguins-eggs v.25.10.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import Ovary from '../ovary.js';
9
+ /**
10
+ * Ottiene la password LUKS dall'utente
11
+ */
12
+ export declare function luksGetPassword(this: Ovary): Promise<void>;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * ./src/classes/ovary.d/luks-home.ts
3
+ * penguins-eggs v.25.10.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import Utils from '../utils.js';
9
+ /**
10
+ * Ottiene la password LUKS dall'utente
11
+ */
12
+ export async function luksGetPassword() {
13
+ const inquirer = (await import('inquirer')).default;
14
+ // Chiedi se usare password di default
15
+ const useDefault = await inquirer.prompt([{
16
+ type: 'confirm',
17
+ name: 'useDefault',
18
+ message: `Use default password "${this.luksPassword}" for LUKS encryption?`,
19
+ default: false
20
+ }]);
21
+ if (useDefault.useDefault) {
22
+ Utils.warning(`Using default password: ${this.luksPassword}`);
23
+ return;
24
+ }
25
+ // Chiedi password personalizzata con conferma
26
+ let password = '';
27
+ let confirmed = false;
28
+ while (!confirmed) {
29
+ const answers = await inquirer.prompt([
30
+ {
31
+ type: 'password',
32
+ name: 'password',
33
+ message: 'Enter LUKS encryption password:',
34
+ validate: (input) => {
35
+ if (input.length < 8) {
36
+ return 'Password must be at least 8 characters';
37
+ }
38
+ return true;
39
+ }
40
+ },
41
+ {
42
+ type: 'password',
43
+ name: 'confirm',
44
+ message: 'Confirm password:'
45
+ }
46
+ ]);
47
+ if (answers.password === answers.confirm) {
48
+ password = answers.password;
49
+ confirmed = true;
50
+ this.hidden = true;
51
+ Utils.success('Password confirmed!');
52
+ }
53
+ else {
54
+ Utils.error('Passwords do not match. Please try again.');
55
+ }
56
+ }
57
+ this.luksPassword = password;
58
+ }