penguins-eggs 25.10.23 → 25.10.26

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (529) hide show
  1. package/.oclif.manifest.json +17 -3
  2. package/README.md +34 -32
  3. package/README.pdf +1008 -1045
  4. package/addons/eggs/adapt/applications/eggs-adapt.desktop +0 -0
  5. package/addons/eggs/pve/applications/eggs-pve.desktop +0 -0
  6. package/addons/eggs/rsupport/applications/eggs-rsupport.desktop +0 -0
  7. package/addons/eggs/theme/applications/install-system.desktop +0 -0
  8. package/addons/eggs/theme/livecd/{grub.theme.cfg → full.grub.theme.cfg} +1 -1
  9. package/addons/eggs/theme/livecd/{isolinux.theme.cfg → full.isolinux.theme.cfg} +1 -1
  10. package/addons/eggs/theme/livecd/generic-splash.png +0 -0
  11. package/addons/eggs/theme/livecd/generic.grub.main.cfg +29 -0
  12. package/addons/eggs/theme/livecd/generic.grub.theme.cfg +67 -0
  13. package/addons/eggs/theme/livecd/generic.isolinux.main.cfg +34 -0
  14. package/addons/eggs/theme/livecd/generic.isolinux.theme.cfg +34 -0
  15. package/addons/eggs/theme/livecd/simple.grub.main.cfg +29 -0
  16. package/addons/eggs/theme/livecd/simple.grub.theme.cfg +67 -0
  17. package/addons/eggs/theme/livecd/{isolinux.main.simple.cfg → simple.isolinux.main.cfg} +1 -1
  18. package/addons/eggs/theme/livecd/simple.isolinux.theme.cfg +47 -0
  19. package/assets/calamares/install-system.sh +0 -0
  20. package/assets/penguins-eggs.desktop +0 -0
  21. package/assets/penguins-krill.desktop +0 -0
  22. package/assets/penguins-links-add.desktop +0 -0
  23. package/assets/penguins-live-installer.desktop +0 -0
  24. package/bin/dev.js +0 -0
  25. package/conf/distros/alpine/calamares/calamares-modules/machineid-openrc/machineid-openrc.sh +0 -0
  26. package/conf/distros/buster/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
  27. package/conf/distros/buster/calamares/calamares-modules/dpkg-unsafe-io/dpkg-unsafe-io.sh +0 -0
  28. package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
  29. package/conf/distros/fedora/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +0 -0
  30. package/conf/distros/focal/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
  31. package/conf/distros/focal/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
  32. package/conf/distros/noble/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
  33. package/conf/distros/noble/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
  34. package/conf/distros/noble/calamares/libexec/calamares-aptsources.sh +0 -0
  35. package/conf/distros/noble/calamares/libexec/calamares-l10n-helper.sh +0 -0
  36. package/conf/distros/noble/calamares/libexec/calamares-logs-helper.sh +0 -0
  37. package/conf/distros/noble/calamares/libexec/calamares-nomodeset.sh +0 -0
  38. package/conf/distros/opensuse/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +0 -0
  39. package/conf/distros/opensuse/calamares/settings.yml +0 -0
  40. package/conf/distros/opensuse/calamares/zstd2lzo.sh +0 -0
  41. package/conf/distros/trixie/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
  42. package/conf/distros/trixie/calamares/calamares-modules/dpkg-unsafe-io/dpkg-unsafe-io.sh +0 -0
  43. package/conf/distros/trixie/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
  44. package/conf/init/unattended.sh +0 -0
  45. package/dist/classes/bleach.d.ts +37 -0
  46. package/dist/classes/bleach.js +148 -0
  47. package/dist/classes/cli-autologin.d.ts +52 -0
  48. package/dist/classes/cli-autologin.js +252 -0
  49. package/dist/classes/compressors.d.ts +54 -0
  50. package/dist/classes/compressors.js +109 -0
  51. package/dist/classes/daddy.d.ts +26 -0
  52. package/dist/classes/daddy.js +175 -0
  53. package/dist/classes/distro.d.ts +32 -0
  54. package/dist/classes/distro.js +363 -0
  55. package/dist/classes/diversions.d.ts +53 -0
  56. package/dist/classes/diversions.js +131 -0
  57. package/dist/classes/incubation/branding.d.ts +17 -0
  58. package/dist/classes/incubation/branding.js +85 -0
  59. package/dist/classes/incubation/customize/customize-partitions.d.ts +4 -0
  60. package/dist/classes/incubation/customize/customize-partitions.js +29 -0
  61. package/dist/classes/incubation/fisherman-helper/initcpio.d.ts +1 -0
  62. package/dist/classes/incubation/fisherman-helper/initcpio.js +69 -0
  63. package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
  64. package/dist/classes/incubation/fisherman-helper/packages.js +72 -0
  65. package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
  66. package/dist/classes/incubation/fisherman-helper/settings.js +116 -0
  67. package/dist/classes/incubation/fisherman.d.ts +71 -0
  68. package/dist/classes/incubation/fisherman.js +281 -0
  69. package/dist/classes/incubation/incubator.d/alpine.d.ts +32 -0
  70. package/dist/classes/incubation/incubator.d/alpine.js +78 -0
  71. package/dist/classes/incubation/incubator.d/archlinux.d.ts +32 -0
  72. package/dist/classes/incubation/incubator.d/archlinux.js +82 -0
  73. package/dist/classes/incubation/incubator.d/bionic.d.ts +32 -0
  74. package/dist/classes/incubation/incubator.d/bionic.js +83 -0
  75. package/dist/classes/incubation/incubator.d/buster.d.ts +32 -0
  76. package/dist/classes/incubation/incubator.d/buster.js +101 -0
  77. package/dist/classes/incubation/incubator.d/fedora.d.ts +32 -0
  78. package/dist/classes/incubation/incubator.d/fedora.js +81 -0
  79. package/dist/classes/incubation/incubator.d/focal.d.ts +32 -0
  80. package/dist/classes/incubation/incubator.d/focal.js +85 -0
  81. package/dist/classes/incubation/incubator.d/manjaro.d.ts +32 -0
  82. package/dist/classes/incubation/incubator.d/manjaro.js +82 -0
  83. package/dist/classes/incubation/incubator.d/noble.d.ts +32 -0
  84. package/dist/classes/incubation/incubator.d/noble.js +102 -0
  85. package/dist/classes/incubation/incubator.d/openmamba.d.ts +32 -0
  86. package/dist/classes/incubation/incubator.d/openmamba.js +81 -0
  87. package/dist/classes/incubation/incubator.d/opensuse.d.ts +32 -0
  88. package/dist/classes/incubation/incubator.d/opensuse.js +81 -0
  89. package/dist/classes/incubation/incubator.d/trixie.d.ts +32 -0
  90. package/dist/classes/incubation/incubator.d/trixie.js +98 -0
  91. package/dist/classes/incubation/incubator.d.ts +48 -0
  92. package/dist/classes/incubation/incubator.js +378 -0
  93. package/dist/classes/incubation/installer.d.ts +13 -0
  94. package/dist/classes/incubation/installer.js +52 -0
  95. package/dist/classes/keyboards.d.ts +50 -0
  96. package/dist/classes/keyboards.js +287 -0
  97. package/dist/classes/locales.d.ts +21 -0
  98. package/dist/classes/locales.js +77 -0
  99. package/dist/classes/network.d.ts +37 -0
  100. package/dist/classes/network.js +98 -0
  101. package/dist/classes/ovary.d/bind-live-fs.d.ts +18 -0
  102. package/dist/classes/ovary.d/bind-live-fs.js +185 -0
  103. package/dist/classes/ovary.d/bind-vfs.d.ts +17 -0
  104. package/dist/classes/ovary.d/bind-vfs.js +37 -0
  105. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +13 -0
  106. package/dist/classes/ovary.d/create-xdg-autostart.js +194 -0
  107. package/dist/classes/ovary.d/edit-live-fs.d.ts +20 -0
  108. package/dist/classes/ovary.d/edit-live-fs.js +239 -0
  109. package/dist/classes/ovary.d/fertilization.d.ts +12 -0
  110. package/dist/classes/ovary.d/fertilization.js +53 -0
  111. package/dist/classes/ovary.d/finished.d.ts +13 -0
  112. package/dist/classes/ovary.d/finished.js +40 -0
  113. package/dist/classes/ovary.d/initrd.d.ts +21 -0
  114. package/dist/classes/ovary.d/initrd.js +96 -0
  115. package/dist/classes/ovary.d/kernel-copy.d.ts +12 -0
  116. package/dist/classes/ovary.d/kernel-copy.js +22 -0
  117. package/dist/classes/ovary.d/live-create-structure.d.ts +12 -0
  118. package/dist/classes/ovary.d/live-create-structure.js +70 -0
  119. package/dist/classes/ovary.d/luks-get-password.d.ts +12 -0
  120. package/dist/classes/ovary.d/luks-get-password.js +58 -0
  121. package/dist/classes/ovary.d/luks-home-support.d.ts +12 -0
  122. package/dist/classes/ovary.d/luks-home-support.js +75 -0
  123. package/dist/classes/ovary.d/luks-home.d.ts +15 -0
  124. package/dist/classes/ovary.d/luks-home.js +159 -0
  125. package/dist/classes/ovary.d/luks-interactive-crypto-config.d.ts +47 -0
  126. package/dist/classes/ovary.d/luks-interactive-crypto-config.js +135 -0
  127. package/dist/classes/ovary.d/luks-root-initrd.d.ts +17 -0
  128. package/dist/classes/ovary.d/luks-root-initrd.js +213 -0
  129. package/dist/classes/ovary.d/luks-root.d.ts +15 -0
  130. package/dist/classes/ovary.d/luks-root.js +185 -0
  131. package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
  132. package/dist/classes/ovary.d/make-dot-disk.js +71 -0
  133. package/dist/classes/ovary.d/make-efi.d.ts +14 -0
  134. package/dist/classes/ovary.d/make-efi.js +290 -0
  135. package/dist/classes/ovary.d/make-iso.d.ts +13 -0
  136. package/dist/classes/ovary.d/make-iso.js +45 -0
  137. package/dist/classes/ovary.d/make-squashfs.d.ts +18 -0
  138. package/dist/classes/ovary.d/make-squashfs.js +111 -0
  139. package/dist/classes/ovary.d/merged.d.ts +27 -0
  140. package/dist/classes/ovary.d/merged.js +78 -0
  141. package/dist/classes/ovary.d/produce.d.ts +23 -0
  142. package/dist/classes/ovary.d/produce.js +354 -0
  143. package/dist/classes/ovary.d/rexec.d.ts +13 -0
  144. package/dist/classes/ovary.d/rexec.js +34 -0
  145. package/dist/classes/ovary.d/syslinux.d.ts +12 -0
  146. package/dist/classes/ovary.d/syslinux.js +95 -0
  147. package/dist/classes/ovary.d/user-create-live.d.ts +14 -0
  148. package/dist/classes/ovary.d/user-create-live.js +97 -0
  149. package/dist/classes/ovary.d/users-remove.d.ts +9 -0
  150. package/dist/classes/ovary.d/users-remove.js +38 -0
  151. package/dist/classes/ovary.d/xorriso-command.d.ts +14 -0
  152. package/dist/classes/ovary.d/xorriso-command.js +120 -0
  153. package/dist/classes/ovary.d.ts +108 -0
  154. package/dist/classes/ovary.js +119 -0
  155. package/dist/classes/pacman.d/alpine.d.ts +56 -0
  156. package/dist/classes/pacman.d/alpine.js +167 -0
  157. package/dist/classes/pacman.d/archlinux.d.ts +62 -0
  158. package/dist/classes/pacman.d/archlinux.js +128 -0
  159. package/dist/classes/pacman.d/debian.d.ts +65 -0
  160. package/dist/classes/pacman.d/debian.js +143 -0
  161. package/dist/classes/pacman.d/fedora.d.ts +53 -0
  162. package/dist/classes/pacman.d/fedora.js +107 -0
  163. package/dist/classes/pacman.d/openmamba.d.ts +52 -0
  164. package/dist/classes/pacman.d/openmamba.js +106 -0
  165. package/dist/classes/pacman.d/opensuse.d.ts +53 -0
  166. package/dist/classes/pacman.d/opensuse.js +109 -0
  167. package/dist/classes/pacman.d.ts +139 -0
  168. package/dist/classes/pacman.js +683 -0
  169. package/dist/classes/pve-live.d.ts +17 -0
  170. package/dist/classes/pve-live.js +52 -0
  171. package/dist/classes/pxe.d.ts +76 -0
  172. package/dist/classes/pxe.js +353 -0
  173. package/dist/classes/settings.d.ts +52 -0
  174. package/dist/classes/settings.js +185 -0
  175. package/dist/classes/sources_list.d.ts +28 -0
  176. package/dist/classes/sources_list.js +89 -0
  177. package/dist/classes/systemctl.d.ts +47 -0
  178. package/dist/classes/systemctl.js +86 -0
  179. package/dist/classes/tailor.d.ts +50 -0
  180. package/dist/classes/tailor.js +563 -0
  181. package/dist/classes/tools.d.ts +26 -0
  182. package/dist/classes/tools.js +50 -0
  183. package/dist/classes/users.d.ts +28 -0
  184. package/dist/classes/users.js +143 -0
  185. package/dist/classes/utils.d/kernel.d.ts +39 -0
  186. package/dist/classes/utils.d/kernel.js +206 -0
  187. package/dist/classes/utils.d.ts +330 -0
  188. package/dist/classes/utils.js +968 -0
  189. package/dist/classes/xdg.d.ts +45 -0
  190. package/dist/classes/xdg.js +337 -0
  191. package/dist/classes/yolk.d.ts +33 -0
  192. package/dist/classes/yolk.js +114 -0
  193. package/dist/commands/adapt.d.ts +17 -0
  194. package/dist/commands/adapt.js +33 -0
  195. package/dist/commands/analyze.d.ts +26 -0
  196. package/dist/commands/analyze.js +95 -0
  197. package/dist/commands/calamares.d.ts +29 -0
  198. package/dist/commands/calamares.js +112 -0
  199. package/dist/commands/config.d.ts +35 -0
  200. package/dist/commands/config.js +120 -0
  201. package/dist/commands/cuckoo.d.ts +17 -0
  202. package/dist/commands/cuckoo.js +61 -0
  203. package/dist/commands/dad.d.ts +21 -0
  204. package/dist/commands/dad.js +47 -0
  205. package/dist/commands/export/iso.d.ts +19 -0
  206. package/dist/commands/export/iso.js +55 -0
  207. package/dist/commands/export/pkg.d.ts +29 -0
  208. package/dist/commands/export/pkg.js +173 -0
  209. package/dist/commands/export/tarballs.d.ts +27 -0
  210. package/dist/commands/export/tarballs.js +79 -0
  211. package/dist/commands/install.d.ts +39 -0
  212. package/dist/commands/install.js +113 -0
  213. package/dist/commands/kill.d.ts +24 -0
  214. package/dist/commands/kill.js +50 -0
  215. package/dist/commands/love.d.ts +25 -0
  216. package/dist/commands/love.js +118 -0
  217. package/dist/commands/mom.d.ts +16 -0
  218. package/dist/commands/mom.js +30 -0
  219. package/dist/commands/pods.d.ts +22 -0
  220. package/dist/commands/pods.js +92 -0
  221. package/dist/commands/produce.d.ts +37 -0
  222. package/dist/commands/produce.js +232 -0
  223. package/dist/commands/status.d.ts +23 -0
  224. package/dist/commands/status.js +31 -0
  225. package/dist/commands/tools/clean.d.ts +18 -0
  226. package/dist/commands/tools/clean.js +37 -0
  227. package/dist/commands/tools/repo.d.ts +31 -0
  228. package/dist/commands/tools/repo.js +246 -0
  229. package/dist/commands/tools/skel.d.ts +18 -0
  230. package/dist/commands/tools/skel.js +44 -0
  231. package/dist/commands/tools/stat.d.ts +31 -0
  232. package/dist/commands/tools/stat.js +70 -0
  233. package/dist/commands/tools/yolk.d.ts +24 -0
  234. package/dist/commands/tools/yolk.js +45 -0
  235. package/dist/commands/update.d.ts +46 -0
  236. package/dist/commands/update.js +238 -0
  237. package/dist/commands/wardrobe/get.d.ts +23 -0
  238. package/dist/commands/wardrobe/get.js +52 -0
  239. package/dist/commands/wardrobe/list.d.ts +24 -0
  240. package/dist/commands/wardrobe/list.js +125 -0
  241. package/dist/commands/wardrobe/show.d.ts +25 -0
  242. package/dist/commands/wardrobe/show.js +97 -0
  243. package/dist/commands/wardrobe/wear.d.ts +26 -0
  244. package/dist/commands/wardrobe/wear.js +84 -0
  245. package/dist/dhcpd-proxy/classes/packet.d.ts +36 -0
  246. package/dist/dhcpd-proxy/classes/packet.js +124 -0
  247. package/dist/dhcpd-proxy/index.d.ts +4 -0
  248. package/dist/dhcpd-proxy/index.js +4 -0
  249. package/dist/dhcpd-proxy/interfaces/i-pxe.d.ts +45 -0
  250. package/dist/dhcpd-proxy/interfaces/i-pxe.js +1 -0
  251. package/dist/dhcpd-proxy/lib/packet/converters.d.ts +11 -0
  252. package/dist/dhcpd-proxy/lib/packet/converters.js +395 -0
  253. package/dist/dhcpd-proxy/lib/packet/message-types.d.ts +10 -0
  254. package/dist/dhcpd-proxy/lib/packet/message-types.js +12 -0
  255. package/dist/dhcpd-proxy/lib/packet/options.d.ts +8 -0
  256. package/dist/dhcpd-proxy/lib/packet/options.js +264 -0
  257. package/dist/dhcpd-proxy/lib/sprintf.d.ts +6 -0
  258. package/dist/dhcpd-proxy/lib/sprintf.js +130 -0
  259. package/dist/dhcpd-proxy/lib/utils.d.ts +126 -0
  260. package/dist/dhcpd-proxy/lib/utils.js +255 -0
  261. package/dist/dhcpd-proxy/simple-proxy.d.ts +11 -0
  262. package/dist/dhcpd-proxy/simple-proxy.js +118 -0
  263. package/dist/index.d.ts +8 -0
  264. package/dist/index.js +8 -0
  265. package/dist/interfaces/calamares/i-calamares-bootloader.d.ts +23 -0
  266. package/dist/interfaces/calamares/i-calamares-bootloader.js +7 -0
  267. package/dist/interfaces/calamares/i-calamares-branding.d.ts +46 -0
  268. package/dist/interfaces/calamares/i-calamares-branding.js +1 -0
  269. package/dist/interfaces/calamares/i-calamares-displaymanager.d.ts +34 -0
  270. package/dist/interfaces/calamares/i-calamares-displaymanager.js +1 -0
  271. package/dist/interfaces/calamares/i-calamares-finished.d.ts +14 -0
  272. package/dist/interfaces/calamares/i-calamares-finished.js +1 -0
  273. package/dist/interfaces/calamares/i-calamares-packages.d.ts +26 -0
  274. package/dist/interfaces/calamares/i-calamares-packages.js +1 -0
  275. package/dist/interfaces/calamares/i-calamares-partitions.d.ts +39 -0
  276. package/dist/interfaces/calamares/i-calamares-partitions.js +1 -0
  277. package/dist/interfaces/calamares/i-calamares-settings.d.ts +36 -0
  278. package/dist/interfaces/calamares/i-calamares-settings.js +1 -0
  279. package/dist/interfaces/i-addons.d.ts +12 -0
  280. package/dist/interfaces/i-addons.js +8 -0
  281. package/dist/interfaces/i-analyze.d.ts +17 -0
  282. package/dist/interfaces/i-analyze.js +17 -0
  283. package/dist/interfaces/i-app.d.ts +14 -0
  284. package/dist/interfaces/i-app.js +8 -0
  285. package/dist/interfaces/i-config-tools.d.ts +15 -0
  286. package/dist/interfaces/i-config-tools.js +8 -0
  287. package/dist/interfaces/i-devices.d.ts +20 -0
  288. package/dist/interfaces/i-devices.js +8 -0
  289. package/dist/interfaces/i-distro.d.ts +23 -0
  290. package/dist/interfaces/i-distro.js +8 -0
  291. package/dist/interfaces/i-drive-list.d.ts +33 -0
  292. package/dist/interfaces/i-drive-list.js +8 -0
  293. package/dist/interfaces/i-eggs-config.d.ts +32 -0
  294. package/dist/interfaces/i-eggs-config.js +8 -0
  295. package/dist/interfaces/i-excludes.d.ts +14 -0
  296. package/dist/interfaces/i-excludes.js +8 -0
  297. package/dist/interfaces/i-exec.d.ts +11 -0
  298. package/dist/interfaces/i-exec.js +8 -0
  299. package/dist/interfaces/i-initrd.d.ts +13 -0
  300. package/dist/interfaces/i-initrd.js +8 -0
  301. package/dist/interfaces/i-install.d.ts +16 -0
  302. package/dist/interfaces/i-install.js +8 -0
  303. package/dist/interfaces/i-installer.d.ts +17 -0
  304. package/dist/interfaces/i-installer.js +8 -0
  305. package/dist/interfaces/i-luks-passphrase.d.ts +11 -0
  306. package/dist/interfaces/i-luks-passphrase.js +8 -0
  307. package/dist/interfaces/i-materia.d.ts +36 -0
  308. package/dist/interfaces/i-materia.js +8 -0
  309. package/dist/interfaces/i-net.d.ts +16 -0
  310. package/dist/interfaces/i-net.js +8 -0
  311. package/dist/interfaces/i-os-release.d.ts +5 -0
  312. package/dist/interfaces/i-os-release.js +1 -0
  313. package/dist/interfaces/i-packages.d.ts +16 -0
  314. package/dist/interfaces/i-packages.js +8 -0
  315. package/dist/interfaces/i-partitions.d.ts +16 -0
  316. package/dist/interfaces/i-partitions.js +8 -0
  317. package/dist/interfaces/i-pxe.d.ts +45 -0
  318. package/dist/interfaces/i-pxe.js +1 -0
  319. package/dist/interfaces/i-remix.d.ts +21 -0
  320. package/dist/interfaces/i-remix.js +8 -0
  321. package/dist/interfaces/i-settings.d.ts +33 -0
  322. package/dist/interfaces/i-settings.js +8 -0
  323. package/dist/interfaces/i-user.d.ts +14 -0
  324. package/dist/interfaces/i-user.js +8 -0
  325. package/dist/interfaces/i-workdir.d.ts +14 -0
  326. package/dist/interfaces/i-workdir.js +8 -0
  327. package/dist/interfaces/i-xkb-model.d.ts +24 -0
  328. package/dist/interfaces/i-xkb-model.js +8 -0
  329. package/dist/interfaces/index.d.ts +26 -0
  330. package/dist/interfaces/index.js +8 -0
  331. package/dist/krill/classes/cfs.d.ts +17 -0
  332. package/dist/krill/classes/cfs.js +39 -0
  333. package/dist/krill/classes/krill_enums.d.ts +37 -0
  334. package/dist/krill/classes/krill_enums.js +41 -0
  335. package/dist/krill/classes/prepare.d/confirm.d.ts +5 -0
  336. package/dist/krill/classes/prepare.d/confirm.js +30 -0
  337. package/dist/krill/classes/prepare.d/keyboard.d.ts +14 -0
  338. package/dist/krill/classes/prepare.d/keyboard.js +62 -0
  339. package/dist/krill/classes/prepare.d/location.d.ts +17 -0
  340. package/dist/krill/classes/prepare.d/location.js +59 -0
  341. package/dist/krill/classes/prepare.d/network.d.ts +14 -0
  342. package/dist/krill/classes/prepare.d/network.js +68 -0
  343. package/dist/krill/classes/prepare.d/partitions.d.ts +14 -0
  344. package/dist/krill/classes/prepare.d/partitions.js +86 -0
  345. package/dist/krill/classes/prepare.d/summary.d.ts +15 -0
  346. package/dist/krill/classes/prepare.d/summary.js +72 -0
  347. package/dist/krill/classes/prepare.d/users.d.ts +6 -0
  348. package/dist/krill/classes/prepare.d/users.js +63 -0
  349. package/dist/krill/classes/prepare.d/welcome.d.ts +6 -0
  350. package/dist/krill/classes/prepare.d/welcome.js +30 -0
  351. package/dist/krill/classes/prepare.d.ts +89 -0
  352. package/dist/krill/classes/prepare.js +319 -0
  353. package/dist/krill/classes/sequence.d/add_user.d.ts +20 -0
  354. package/dist/krill/classes/sequence.d/add_user.js +77 -0
  355. package/dist/krill/classes/sequence.d/bootloader.d.ts +14 -0
  356. package/dist/krill/classes/sequence.d/bootloader.js +117 -0
  357. package/dist/krill/classes/sequence.d/bootloader_config.d.ts +14 -0
  358. package/dist/krill/classes/sequence.d/bootloader_config.js +192 -0
  359. package/dist/krill/classes/sequence.d/change_password.d.ts +15 -0
  360. package/dist/krill/classes/sequence.d/change_password.js +18 -0
  361. package/dist/krill/classes/sequence.d/del_live_user.d.ts +14 -0
  362. package/dist/krill/classes/sequence.d/del_live_user.js +39 -0
  363. package/dist/krill/classes/sequence.d/fstab.d.ts +14 -0
  364. package/dist/krill/classes/sequence.d/fstab.js +177 -0
  365. package/dist/krill/classes/sequence.d/grubcfg.d.ts +17 -0
  366. package/dist/krill/classes/sequence.d/grubcfg.js +35 -0
  367. package/dist/krill/classes/sequence.d/hostname.d.ts +13 -0
  368. package/dist/krill/classes/sequence.d/hostname.js +50 -0
  369. package/dist/krill/classes/sequence.d/initramfs.d.ts +13 -0
  370. package/dist/krill/classes/sequence.d/initramfs.js +54 -0
  371. package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +14 -0
  372. package/dist/krill/classes/sequence.d/initramfs_cfg.js +35 -0
  373. package/dist/krill/classes/sequence.d/locale.d.ts +13 -0
  374. package/dist/krill/classes/sequence.d/locale.js +91 -0
  375. package/dist/krill/classes/sequence.d/locale_cfg.d.ts +10 -0
  376. package/dist/krill/classes/sequence.d/locale_cfg.js +58 -0
  377. package/dist/krill/classes/sequence.d/m_keyboard.d.ts +14 -0
  378. package/dist/krill/classes/sequence.d/m_keyboard.js +58 -0
  379. package/dist/krill/classes/sequence.d/machine_id.d.ts +15 -0
  380. package/dist/krill/classes/sequence.d/machine_id.js +33 -0
  381. package/dist/krill/classes/sequence.d/mkfs.d.ts +15 -0
  382. package/dist/krill/classes/sequence.d/mkfs.js +88 -0
  383. package/dist/krill/classes/sequence.d/mount_fs.d.ts +17 -0
  384. package/dist/krill/classes/sequence.d/mount_fs.js +68 -0
  385. package/dist/krill/classes/sequence.d/mount_vfs.d.ts +17 -0
  386. package/dist/krill/classes/sequence.d/mount_vfs.js +59 -0
  387. package/dist/krill/classes/sequence.d/network_cfg.d.ts +19 -0
  388. package/dist/krill/classes/sequence.d/network_cfg.js +73 -0
  389. package/dist/krill/classes/sequence.d/packages.d.ts +14 -0
  390. package/dist/krill/classes/sequence.d/packages.js +111 -0
  391. package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +17 -0
  392. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +73 -0
  393. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +16 -0
  394. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +51 -0
  395. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +17 -0
  396. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +77 -0
  397. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +10 -0
  398. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +33 -0
  399. package/dist/krill/classes/sequence.d/partition.d.ts +14 -0
  400. package/dist/krill/classes/sequence.d/partition.js +84 -0
  401. package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +13 -0
  402. package/dist/krill/classes/sequence.d/remove_installer_link.js +35 -0
  403. package/dist/krill/classes/sequence.d/umount.d.ts +14 -0
  404. package/dist/krill/classes/sequence.d/umount.js +28 -0
  405. package/dist/krill/classes/sequence.d/unpackfs.d.ts +13 -0
  406. package/dist/krill/classes/sequence.d/unpackfs.js +20 -0
  407. package/dist/krill/classes/sequence.d.ts +134 -0
  408. package/dist/krill/classes/sequence.js +400 -0
  409. package/dist/krill/components/finished.d.ts +16 -0
  410. package/dist/krill/components/finished.js +56 -0
  411. package/dist/krill/components/information.d.ts +8 -0
  412. package/dist/krill/components/information.js +162 -0
  413. package/dist/krill/components/install.d.ts +15 -0
  414. package/dist/krill/components/install.js +60 -0
  415. package/dist/krill/components/keyboard.d.ts +16 -0
  416. package/dist/krill/components/keyboard.js +54 -0
  417. package/dist/krill/components/location.d.ts +16 -0
  418. package/dist/krill/components/location.js +59 -0
  419. package/dist/krill/components/network.d.ts +19 -0
  420. package/dist/krill/components/network.js +65 -0
  421. package/dist/krill/components/partitions.d.ts +18 -0
  422. package/dist/krill/components/partitions.js +89 -0
  423. package/dist/krill/components/steps.d.ts +13 -0
  424. package/dist/krill/components/steps.js +148 -0
  425. package/dist/krill/components/summary.d.ts +25 -0
  426. package/dist/krill/components/summary.js +77 -0
  427. package/dist/krill/components/title.d.ts +11 -0
  428. package/dist/krill/components/title.js +35 -0
  429. package/dist/krill/components/users.d.ts +24 -0
  430. package/dist/krill/components/users.js +80 -0
  431. package/dist/krill/components/welcome.d.ts +13 -0
  432. package/dist/krill/components/welcome.js +63 -0
  433. package/dist/krill/interfaces/i_krill.d.ts +44 -0
  434. package/dist/krill/interfaces/i_krill.js +8 -0
  435. package/dist/krill/interfaces/i_krill_config.d.ts +35 -0
  436. package/dist/krill/interfaces/i_krill_config.js +8 -0
  437. package/dist/krill/lib/get_address.d.ts +8 -0
  438. package/dist/krill/lib/get_address.js +23 -0
  439. package/dist/krill/lib/get_dns.d.ts +8 -0
  440. package/dist/krill/lib/get_dns.js +23 -0
  441. package/dist/krill/lib/get_domain.d.ts +8 -0
  442. package/dist/krill/lib/get_domain.js +23 -0
  443. package/dist/krill/lib/get_gateway.d.ts +8 -0
  444. package/dist/krill/lib/get_gateway.js +23 -0
  445. package/dist/krill/lib/get_hostname.d.ts +8 -0
  446. package/dist/krill/lib/get_hostname.js +23 -0
  447. package/dist/krill/lib/get_luks_passphrase.d.ts +8 -0
  448. package/dist/krill/lib/get_luks_passphrase.js +32 -0
  449. package/dist/krill/lib/get_netmask.d.ts +8 -0
  450. package/dist/krill/lib/get_netmask.js +23 -0
  451. package/dist/krill/lib/get_password.d.ts +8 -0
  452. package/dist/krill/lib/get_password.js +36 -0
  453. package/dist/krill/lib/get_userfullname.d.ts +8 -0
  454. package/dist/krill/lib/get_userfullname.js +23 -0
  455. package/dist/krill/lib/get_username.d.ts +8 -0
  456. package/dist/krill/lib/get_username.js +23 -0
  457. package/dist/krill/lib/select_address_type.d.ts +8 -0
  458. package/dist/krill/lib/select_address_type.js +24 -0
  459. package/dist/krill/lib/select_filesystem_type.d.ts +8 -0
  460. package/dist/krill/lib/select_filesystem_type.js +40 -0
  461. package/dist/krill/lib/select_installation_device.d.ts +8 -0
  462. package/dist/krill/lib/select_installation_device.js +40 -0
  463. package/dist/krill/lib/select_installation_mode.d.ts +9 -0
  464. package/dist/krill/lib/select_installation_mode.js +25 -0
  465. package/dist/krill/lib/select_interface.d.ts +8 -0
  466. package/dist/krill/lib/select_interface.js +24 -0
  467. package/dist/krill/lib/select_keyboard_layout.d.ts +11 -0
  468. package/dist/krill/lib/select_keyboard_layout.js +36 -0
  469. package/dist/krill/lib/select_keyboard_model.d.ts +11 -0
  470. package/dist/krill/lib/select_keyboard_model.js +34 -0
  471. package/dist/krill/lib/select_keyboard_option.d.ts +11 -0
  472. package/dist/krill/lib/select_keyboard_option.js +34 -0
  473. package/dist/krill/lib/select_keyboard_variant.d.ts +11 -0
  474. package/dist/krill/lib/select_keyboard_variant.js +35 -0
  475. package/dist/krill/lib/select_languages.d.ts +8 -0
  476. package/dist/krill/lib/select_languages.js +28 -0
  477. package/dist/krill/lib/select_regions.d.ts +8 -0
  478. package/dist/krill/lib/select_regions.js +24 -0
  479. package/dist/krill/lib/select_replaced_partition.d.ts +8 -0
  480. package/dist/krill/lib/select_replaced_partition.js +31 -0
  481. package/dist/krill/lib/select_user_swap_choice.d.ts +9 -0
  482. package/dist/krill/lib/select_user_swap_choice.js +35 -0
  483. package/dist/krill/lib/select_zones.d.ts +8 -0
  484. package/dist/krill/lib/select_zones.js +518 -0
  485. package/dist/lib/kill_me_softly.d.ts +11 -0
  486. package/dist/lib/kill_me_softly.js +61 -0
  487. package/dist/lib/utils.d.ts +19 -0
  488. package/dist/lib/utils.js +65 -0
  489. package/dracut/create-symlink +0 -0
  490. package/dracut/export +0 -0
  491. package/dracut/export-dracut-analysis +0 -0
  492. package/dracut/export-dracut-log +0 -0
  493. package/dracut/mkisofs +0 -0
  494. package/dracut/modules.d/00debug-shell/debug-hook.sh +0 -0
  495. package/dracut/modules.d/00debug-shell/module-setup.sh +0 -0
  496. package/dracut/modules.d/90block/block-cmdline.sh +0 -0
  497. package/dracut/modules.d/90block/module-setup.sh +0 -0
  498. package/dracut/modules.d/95iso-scan/iso-scan-fallback.sh +0 -0
  499. package/dracut/modules.d/95iso-scan/iso-scan.sh +0 -0
  500. package/dracut/modules.d/95iso-scan/module-setup.sh +0 -0
  501. package/dracut/modules.d/95luks-loop/luks-loop.sh +0 -0
  502. package/dracut/modules.d/95luks-loop/module-setup.sh +0 -0
  503. package/dracut/renew-initramfs +0 -0
  504. package/dracut/sbin2bin +0 -0
  505. package/dracut/update-dracut-conf-d +0 -0
  506. package/dracut/update-dracut-modules +0 -0
  507. package/eui/eui-autostart-cinnamon.desktop +0 -0
  508. package/eui/eui-autostart-xfce.desktop +0 -0
  509. package/eui/eui-create-image.sh +0 -0
  510. package/eui/eui-start.sh +0 -0
  511. package/package.json +124 -130
  512. package/perrisbrewery/scripts/postinst +0 -0
  513. package/perrisbrewery/scripts/postrm +0 -0
  514. package/perrisbrewery/scripts/preinst +0 -0
  515. package/perrisbrewery/scripts/prerm +0 -0
  516. package/scripts/99clean +0 -0
  517. package/scripts/_eggs +3 -1
  518. package/scripts/adapt.sh +0 -0
  519. package/scripts/boot-encrypted-root.sh +138 -95
  520. package/scripts/bros/waydroid-helper.sh +0 -0
  521. package/scripts/eggs.bash +2 -2
  522. package/scripts/lsb_release +0 -0
  523. package/scripts/mom.sh +0 -0
  524. package/scripts/mount-encrypted-home.sh +130 -65
  525. package/scripts/pve-live.service +0 -0
  526. package/scripts/pve-live.sh +0 -0
  527. package/scripts/resy +0 -0
  528. /package/addons/eggs/theme/livecd/{grub.main.cfg → full.grub.main.cfg} +0 -0
  529. /package/addons/eggs/theme/livecd/{isolinux.main.full.cfg → full.isolinux.main.cfg} +0 -0
@@ -0,0 +1,111 @@
1
+ /**
2
+ * ./src/classes/ovary.d/make-squashfs.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 path from 'node:path';
11
+ // classes
12
+ import { exec } from '../../lib/utils.js';
13
+ import Utils from '../utils.js';
14
+ // _dirname
15
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
16
+ /**
17
+ * squashFs: crea in live filesystem.squashfs
18
+ */
19
+ export async function makeSquashfs(scriptOnly = false, includeRootHome = false) {
20
+ if (this.verbose) {
21
+ console.log('Ovary: makeSquashfs');
22
+ }
23
+ /**
24
+ * exclude all the accurence of cryptdisks in rc0.d, etc
25
+ */
26
+ const fexcludes = [
27
+ '/boot/efi/EFI',
28
+ '/boot/loader/entries/',
29
+ '/etc/fstab',
30
+ '/var/lib/containers/',
31
+ '/var/lib/docker/',
32
+ '/etc/mtab',
33
+ '/etc/udev/rules.d/70-persistent-cd.rules',
34
+ '/etc/udev/rules.d/70-persistent-net.rules',
35
+ ];
36
+ for (const i in fexcludes) {
37
+ this.addExclusion(fexcludes[i]);
38
+ }
39
+ /**
40
+ * Non sò che fa, ma sicuro non serve per archlinux
41
+ */
42
+ if (this.familyId === 'debian') {
43
+ const rcd = ['rc0.d', 'rc1.d', 'rc2.d', 'rc3.d', 'rc4.d', 'rc5.d', 'rc6.d', 'rcS.d'];
44
+ let files;
45
+ // escludo per ci
46
+ for (const i in rcd) {
47
+ if (fs.existsSync(`${this.settings.work_dir.merged}/etc/${rcd[i]}`)) {
48
+ files = fs.readdirSync(`${this.settings.work_dir.merged}/etc/${rcd[i]}`);
49
+ for (const n in files) {
50
+ if (files[n].includes('cryptdisks')) {
51
+ this.addExclusion(`/etc/${rcd[i]}${files[n]}`);
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+ /**
58
+ * secure
59
+ */
60
+ if (!includeRootHome) {
61
+ this.addExclusion(`root/*`);
62
+ this.addExclusion(`root/.*`);
63
+ }
64
+ this.addExclusion(this.settings.config.snapshot_dir /* .absolutePath() */);
65
+ if (fs.existsSync(`${this.settings.iso_work}/live/filesystem.squashfs`)) {
66
+ fs.unlinkSync(`${this.settings.iso_work}/live/filesystem.squashfs`);
67
+ }
68
+ const compression = `-comp ${this.settings.config.compression}`;
69
+ /**
70
+ * limit: patch per Raspberry
71
+ */
72
+ const limit = '';
73
+ if (Utils.uefiArch() === 'arm64') {
74
+ // limit = ' -processors 2 -mem 1024M'
75
+ }
76
+ /**
77
+ * mksquashfs
78
+ *
79
+ * SYNTAX: mksquashfs source1 source2 ...
80
+ * FILESYSTEM [OPTIONS]
81
+ * [-ef exclude.list]
82
+ * [-e list of exclude dirs/files]
83
+ */
84
+ let sfsName = "filesystem.squashfs";
85
+ let cmd = `mksquashfs ${this.settings.work_dir.merged} ${this.settings.iso_work}live/${sfsName} ${compression} ${limit} -no-xattrs -wildcards -ef ${this.settings.config.snapshot_excludes} ${this.settings.session_excludes}`;
86
+ cmd = cmd.replaceAll(/\s\s+/g, ' ');
87
+ Utils.writeX(`${this.settings.work_dir.ovarium}mksquashfs`, cmd);
88
+ if (!scriptOnly) {
89
+ Utils.warning('creating filesystem.squashfs on (ISO)/live');
90
+ // Utils.warning(`compression: ` + compression)
91
+ const test = (await exec(cmd, Utils.setEcho(true))).code;
92
+ if (test !== 0) {
93
+ process.exit();
94
+ }
95
+ }
96
+ return cmd;
97
+ }
98
+ /**
99
+ * Add or remove exclusion
100
+ * @param add {boolean} true = add, false remove
101
+ * @param exclusion {string} path to add/remove
102
+ */
103
+ export function addExclusion(exclusion) {
104
+ if (this.verbose) {
105
+ console.log(`add exclusion: ${exclusion}`);
106
+ }
107
+ if (exclusion.startsWith('/')) {
108
+ exclusion = exclusion.slice(1); // remove / initial Non compatible with rsync
109
+ }
110
+ this.settings.session_excludes += this.settings.session_excludes === '' ? `-e '${exclusion}' ` : ` '${exclusion}' `;
111
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * ./src/classes/ovary.d/merge.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
+ * Ritorna true se c'è bisogno del mount --bind
11
+ *
12
+ * Ci sono quattro tipologie:
13
+ *
14
+ * - copied
15
+ * - mergedAndOverlay
16
+ * - merged
17
+ * - just create
18
+ */
19
+ export declare function copied(this: Ovary, dir: string): boolean;
20
+ /**
21
+ *
22
+ */
23
+ export declare function mergedAndOverlay(this: Ovary, dir: string): boolean;
24
+ /**
25
+ * merged
26
+ */
27
+ export declare function merged(this: Ovary, dir: string): boolean;
@@ -0,0 +1,78 @@
1
+ /**
2
+ * ./src/classes/ovary.d/merge.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
+ // _dirname
11
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
12
+ /**
13
+ * Ritorna true se c'è bisogno del mount --bind
14
+ *
15
+ * Ci sono quattro tipologie:
16
+ *
17
+ * - copied
18
+ * - mergedAndOverlay
19
+ * - merged
20
+ * - just create
21
+ */
22
+ export function copied(dir) {
23
+ let copied = false;
24
+ let copiedDirs = [
25
+ 'boot',
26
+ 'etc'
27
+ ];
28
+ for (const copiedDir of copiedDirs) {
29
+ if (dir === copiedDir) {
30
+ copied = true;
31
+ }
32
+ }
33
+ return copied;
34
+ }
35
+ /**
36
+ *
37
+ */
38
+ export function mergedAndOverlay(dir) {
39
+ // per Alpine ho agginto bin
40
+ const moDirs = ['bin', 'usr', 'var'];
41
+ let mergedOverlay = false;
42
+ for (const moDir of moDirs) {
43
+ if (moDir === dir) {
44
+ mergedOverlay = true;
45
+ }
46
+ }
47
+ return mergedOverlay;
48
+ }
49
+ /**
50
+ * merged
51
+ */
52
+ export function merged(dir) {
53
+ let merged = true;
54
+ if (dir === 'home') {
55
+ merged = this.clone || this.fullcrypt;
56
+ }
57
+ else {
58
+ const onlyFolders = [
59
+ 'cdrom',
60
+ 'dev',
61
+ 'media',
62
+ 'mnt',
63
+ 'proc',
64
+ 'run',
65
+ 'swapfile',
66
+ 'sys',
67
+ 'tmp'
68
+ ];
69
+ // deepiin
70
+ onlyFolders.push('data', 'recovery');
71
+ for (const onlyFolder of onlyFolders) {
72
+ if (dir === onlyFolder) {
73
+ merged = false;
74
+ }
75
+ }
76
+ }
77
+ return merged;
78
+ }
@@ -0,0 +1,23 @@
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 { IAddons, IExcludes } from '../../interfaces/index.js';
9
+ import Ovary from './../ovary.js';
10
+ /**
11
+ * produce
12
+ * @param clone
13
+ * @param homecrypt
14
+ * @param scriptOnly
15
+ * @param yolkRenew
16
+ * @param release
17
+ * @param myAddons
18
+ * @param nointeractive
19
+ * @param noicons
20
+ * @param includeRootHome
21
+ * @param verbose
22
+ */
23
+ export declare function produce(this: Ovary, kernel: string | undefined, clone: boolean | undefined, homecrypt: boolean | undefined, fullcrypt: boolean | undefined, hidden: boolean | undefined, scriptOnly: boolean | undefined, yolkRenew: boolean | undefined, release: boolean | undefined, myAddons: IAddons, myLinks: string[], excludes: IExcludes, nointeractive?: boolean, noicons?: boolean, includeRootHome?: boolean, verbose?: boolean): Promise<void>;
@@ -0,0 +1,354 @@
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 chalk from 'chalk';
9
+ import mustache from 'mustache';
10
+ // packages
11
+ import fs from 'node:fs';
12
+ import shx from 'shelljs';
13
+ import path from 'path';
14
+ // libraries
15
+ import { exec } from '../../lib/utils.js';
16
+ import Bleach from './../bleach.js';
17
+ import Incubator from './../incubation/incubator.js';
18
+ import Pacman from './../pacman.js';
19
+ import Diversions from './../diversions.js';
20
+ // classes
21
+ import Utils from './../utils.js';
22
+ import Repo from './../yolk.js';
23
+ // _dirname
24
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
25
+ /**
26
+ * produce
27
+ * @param clone
28
+ * @param homecrypt
29
+ * @param scriptOnly
30
+ * @param yolkRenew
31
+ * @param release
32
+ * @param myAddons
33
+ * @param nointeractive
34
+ * @param noicons
35
+ * @param includeRootHome
36
+ * @param verbose
37
+ */
38
+ export async function produce(kernel = '', clone = false, homecrypt = false, fullcrypt = false, hidden = false, scriptOnly = false, yolkRenew = false, release = false, myAddons, myLinks, excludes, nointeractive = false, noicons = false, includeRootHome = false, verbose = false) {
39
+ this.verbose = verbose;
40
+ this.echo = Utils.setEcho(verbose);
41
+ if (this.verbose) {
42
+ this.toNull = ' > /dev/null 2>&1';
43
+ }
44
+ this.kernel = kernel;
45
+ this.nest = this.settings.config.snapshot_dir;
46
+ this.dotMnt = `${this.nest}.mnt`;
47
+ this.dotOverlay = this.settings.work_dir;
48
+ this.dotLivefs = this.settings.work_dir.merged;
49
+ this.clone = clone;
50
+ this.homecrypt = homecrypt;
51
+ this.fullcrypt = fullcrypt;
52
+ this.hidden = hidden;
53
+ // Crittografia
54
+ if (this.homecrypt || this.fullcrypt) {
55
+ if (this.homecrypt) {
56
+ this.luksMappedName = 'home.img';
57
+ }
58
+ else if (this.fullcrypt) {
59
+ this.luksMappedName = 'root.img';
60
+ }
61
+ this.luksFile = `/tmp/${this.luksMappedName}`;
62
+ this.luksMappedName = this.luksMappedName;
63
+ this.luksMountpoint = `/tmp/mnt/${this.luksMappedName}`;
64
+ this.luksDevice = `/dev/mapper/${this.luksMappedName}`;
65
+ this.luksPassword = '0'; // USARE UNA PASSWORD SICURA IN PRODUZIONE!
66
+ /**
67
+ * Al momento homecrypt resta con default
68
+ */
69
+ if (fullcrypt) {
70
+ this.luksConfig = await this.interactiveCryptoConfig();
71
+ }
72
+ Utils.warning("You choose an encrypted eggs");
73
+ await this.luksGetPassword();
74
+ }
75
+ /**
76
+ * define kernel
77
+ */
78
+ if (this.kernel === '') {
79
+ if (this.familyId === 'alpine') {
80
+ const moduleDirs = fs.readdirSync('/lib/modules');
81
+ this.kernel = moduleDirs[0];
82
+ }
83
+ else if (this.familyId === 'archlinux') { // arch, manjaro
84
+ const moduleDirs = fs.readdirSync('/usr/lib/modules');
85
+ this.kernel = moduleDirs[0];
86
+ }
87
+ else { // debian, fedora, openmamba, opensuse, voidlinux
88
+ let vmlinuz = path.basename(Utils.vmlinuz());
89
+ this.kernel = vmlinuz.substring(vmlinuz.indexOf('-') + 1);
90
+ }
91
+ }
92
+ /**
93
+ * define vmlinuz and initrd fullpath
94
+ */
95
+ this.vmlinuz = Utils.vmlinuz();
96
+ this.initrd = Utils.initrdImg(this.kernel);
97
+ /**
98
+ * yolk
99
+ */
100
+ if (this.familyId === 'debian' && Utils.uefiArch() === 'amd64') {
101
+ const yolk = new Repo();
102
+ if (!yolk.exists()) {
103
+ Utils.warning('creating yolk');
104
+ await yolk.create(verbose);
105
+ }
106
+ else if (yolkRenew) {
107
+ Utils.warning('refreshing yolk');
108
+ await yolk.erase();
109
+ await yolk.create(verbose);
110
+ }
111
+ else {
112
+ Utils.warning('using preesixent yolk');
113
+ }
114
+ }
115
+ if (!fs.existsSync(this.settings.config.snapshot_dir)) {
116
+ shx.mkdir('-p', this.settings.config.snapshot_dir);
117
+ }
118
+ if (Utils.isLive()) {
119
+ console.log(chalk.red('>>> eggs: This is a live system! An egg cannot be produced from an egg!'));
120
+ }
121
+ else {
122
+ await this.liveCreateStructure();
123
+ // Carica calamares solo se le icone sono accettate
124
+ if (!noicons && // se VOGLIO le icone
125
+ !nointeractive &&
126
+ this.settings.distro.isCalamaresAvailable &&
127
+ Pacman.isInstalledGui() &&
128
+ this.settings.config.force_installer &&
129
+ !Pacman.calamaresExists()) {
130
+ console.log('Installing ' + chalk.bgGray('calamares') + ' due force_installer=yes.');
131
+ await Pacman.calamaresInstall(verbose);
132
+ const bleach = new Bleach();
133
+ await bleach.clean(verbose);
134
+ }
135
+ /**
136
+ * homecrypt/fullcrypt/clone/standard
137
+ */
138
+ if (this.homecrypt) {
139
+ this.settings.config.user_opt = 'live'; // patch for humans
140
+ this.settings.config.user_opt_passwd = 'evolution';
141
+ Utils.warning("eggs will SAVE users and users' data ENCRYPTED on the live (ISO)/live/home.img");
142
+ }
143
+ else if (this.fullcrypt) {
144
+ Utils.warning("eggs will SAVE full system ENCRYPTED on the live (ISO)/live/root.img");
145
+ }
146
+ else if (this.clone) {
147
+ this.settings.config.user_opt = 'live'; // patch for humans
148
+ this.settings.config.user_opt_passwd = 'evolution';
149
+ this.settings.config.root_passwd = 'evolution';
150
+ Utils.warning("eggs will SAVE users and users' data on CLEAR on the live (ISO)/live/filesystem.squashfs");
151
+ }
152
+ else {
153
+ Utils.warning("eggs will REMOVE users and users' data from live");
154
+ }
155
+ /**
156
+ * exclude.list
157
+ */
158
+ if (!excludes.static && !fs.existsSync('/etc/penguins-eggs/exclude.list')) {
159
+ const excludeListTemplateDir = '/etc/penguins-eggs.d/exclude.list.d/';
160
+ const excludeListTemplate = excludeListTemplateDir + 'master.list';
161
+ if (!fs.existsSync(excludeListTemplate)) {
162
+ Utils.warning('Cannot find: ' + excludeListTemplate);
163
+ process.exit(1);
164
+ }
165
+ let excludeUsr = '';
166
+ let excludeVar = '';
167
+ let excludeHomes = '';
168
+ let excludeHome = '';
169
+ if (excludes.usr) {
170
+ excludeUsr = fs.readFileSync(`${excludeListTemplateDir}usr.list`, 'utf8');
171
+ }
172
+ if (excludes.var) {
173
+ excludeVar = fs.readFileSync(`${excludeListTemplateDir}var.list`, 'utf8');
174
+ }
175
+ if (excludes.homes) {
176
+ excludeHomes = fs.readFileSync(`${excludeListTemplateDir}homes.list`, 'utf8');
177
+ }
178
+ if (excludes.home) {
179
+ excludeHome = `home/${await Utils.getPrimaryUser()}/*`;
180
+ }
181
+ const view = {
182
+ home_list: excludeHome,
183
+ homes_list: excludeHomes,
184
+ usr_list: excludeUsr,
185
+ var_list: excludeVar
186
+ };
187
+ const template = fs.readFileSync(excludeListTemplate, 'utf8');
188
+ fs.writeFileSync(this.settings.config.snapshot_excludes, mustache.render(template, view));
189
+ }
190
+ /**
191
+ * NOTE: reCreate = false
192
+ *
193
+ * reCreate = false is just for develop
194
+ * put reCreate = true in release
195
+ */
196
+ const reCreate = true;
197
+ let mksquashfsCmd = '';
198
+ if (reCreate) {
199
+ // start pre-clone
200
+ /**
201
+ * installer
202
+ */
203
+ this.incubator = new Incubator(this.settings.remix, this.settings.distro, this.settings.config.user_opt, this.theme, this.clone || this.fullcrypt, verbose);
204
+ await this.incubator.config(release);
205
+ // Qua inseriamo uno sleep di un minuto
206
+ await Utils.sleep(5000); // 5 secondo
207
+ await this.bindLiveFs();
208
+ await this.bindVfs();
209
+ /**
210
+ * kernelCopy
211
+ */
212
+ await this.kernelCopy();
213
+ /**
214
+ * initrd creation
215
+ */
216
+ if (fullcrypt) {
217
+ await this.luksRootInitrd();
218
+ }
219
+ else {
220
+ if (this.familyId === 'alpine') {
221
+ await this.initrdAlpine();
222
+ }
223
+ else if (this.familyId === 'archlinux') {
224
+ await this.initrdArch();
225
+ }
226
+ else if (this.familyId === 'debian') {
227
+ await this.initrdDebian();
228
+ }
229
+ else if (this.familyId === 'fedora' ||
230
+ this.familyId === 'openmamba' ||
231
+ this.familyId === 'opensuse' ||
232
+ this.familyId === 'voidlinux') {
233
+ await this.initrdDracut();
234
+ }
235
+ }
236
+ // We dont' need more
237
+ await this.ubindVfs();
238
+ const cleanSystem = !(this.clone || this.fullcrypt);
239
+ if (cleanSystem) {
240
+ /**
241
+ * SOLO per homecrypt e standard
242
+ */
243
+ await this.usersRemove();
244
+ await this.userCreateLive();
245
+ if (Pacman.isInstalledGui()) {
246
+ await this.createXdgAutostart(this.settings.config.theme, myAddons, myLinks, noicons);
247
+ /**
248
+ * GUI installed but NOT Desktop Manager: just create motd and issue
249
+ */
250
+ // if (displaymanager().length > 0) {
251
+ // this.cliAutologin.addIssue(this.settings.distro.distroId, this.settings.distro.codenameId, this.settings.config.user_opt, this.settings.config.user_opt_passwd, this.settings.config.root_passwd, this.settings.work_dir.merged)
252
+ // this.cliAutologin.addMotd(this.settings.distro.distroId, this.settings.distro.codenameId, this.settings.config.user_opt, this.settings.config.user_opt_passwd, this.settings.config.root_passwd, this.settings.work_dir.merged)
253
+ // }
254
+ }
255
+ else {
256
+ this.cliAutologin.add(this.settings.distro.distroId, this.settings.distro.codenameId, this.settings.config.user_opt, this.settings.config.user_opt_passwd, this.settings.config.root_passwd, this.settings.work_dir.merged);
257
+ }
258
+ }
259
+ await this.editLiveFs(clone);
260
+ if (this.homecrypt) {
261
+ /**
262
+ * homecrypt: installa il supporto
263
+ */
264
+ const squashfsRoot = this.settings.work_dir.merged;
265
+ const homeImgPath = this.distroLliveMediumPath + 'live/home.img';
266
+ this.installHomecryptSupport(squashfsRoot, homeImgPath);
267
+ }
268
+ mksquashfsCmd = await this.makeSquashfs(scriptOnly, includeRootHome);
269
+ await this.uBindLiveFs(); // we don't need more
270
+ }
271
+ /**
272
+ * we now work just on ISO and filesystem.squashfs
273
+ */
274
+ if (homecrypt) {
275
+ await this.luksHome();
276
+ }
277
+ else if (fullcrypt) {
278
+ await this.luksRoot();
279
+ }
280
+ /**
281
+ * makeEfi and syslinux was moved
282
+ * after luksRoot
283
+ * to get luks.uuid
284
+ */
285
+ if (this.settings.config.make_efi) {
286
+ await this.makeEfi(this.theme);
287
+ }
288
+ // need syslinux?
289
+ const arch = process.arch;
290
+ if (arch === 'ia32' || arch === 'x64') {
291
+ await this.syslinux(this.theme);
292
+ }
293
+ const mkIsofsCmd = (await this.xorrisoCommand(clone, homecrypt, fullcrypt)).replaceAll(/\s\s+/g, ' ');
294
+ this.makeDotDisk(this.volid, mksquashfsCmd, mkIsofsCmd);
295
+ /**
296
+ * AntiX/MX LINUX
297
+ */
298
+ if (fs.existsSync('/etc/antix-version')) {
299
+ let uname = (await exec('uname -r', { capture: true })).data;
300
+ uname = uname.replaceAll('\n', '');
301
+ let content = '';
302
+ content = '#!/usr/bin/env bash';
303
+ content += 'mkdir /live/bin -p\n';
304
+ content += '## \n';
305
+ content += '# cp /usr/lib/penguins-eggs/scripts/non-live-cmdline /live/bin -p\n';
306
+ content += '# chmod +x /live/bin/non-live-cmdline\n';
307
+ content += '## \n';
308
+ content += 'mkdir /live/boot-dev/antiX -p\n';
309
+ content += 'ln -s /run/live/medium/live/filesystem.squashfs /live/boot-dev/antiX/linuxfs\n';
310
+ content += `ln -s /run/live/medium/live/initrd.img-${uname} /live/boot-dev/antiX/initrd.gz\n`;
311
+ content += `ln -s /run/live/medium/live/vmlinuz-${uname} /live/boot-dev/antiX/vmlinuz\n`;
312
+ content += `# md5sum /live/boot-dev/antiX/linuxfs > /live/boot-dev/antiX/linuxfs.md5\n`;
313
+ content += `# md5sum /live/boot-dev/antiX/initrd.gz > /live/boot-dev/antiX/initrd.gz.md5\n`;
314
+ content += `# md5sum /live/boot-dev/antiX/vmlinuz > /live/boot-dev/antiX/vmlinuz.md5\n`;
315
+ content += `# /live/aufs -> /run/live/rootfs/filesystem.squashfs\n`;
316
+ content += 'ln -s /run/live/rootfs/filesystem.squashfs /live/aufs\n';
317
+ content += `# use: minstall -no-media-check\n`;
318
+ content += 'minstall --no-media-check\n';
319
+ const file = `${this.settings.iso_work}antix-mx-installer`;
320
+ fs.writeFileSync(file, content);
321
+ await exec(`chmod +x ${file}`);
322
+ }
323
+ /**
324
+ * patch to emulate miso/archiso on archilinux family
325
+ */
326
+ if (this.familyId === 'archlinux') {
327
+ let filesystemName = `arch/x86_64/airootfs.sfs`;
328
+ let hashCmd = 'sha512sum';
329
+ let hashExt = '.sha512';
330
+ if (Diversions.isManjaroBased(this.settings.distro.distroId)) {
331
+ filesystemName = `manjaro/x86_64/livefs.sfs`;
332
+ hashCmd = `md5sum`;
333
+ hashExt = '.md5';
334
+ }
335
+ await exec(`mkdir ${this.settings.iso_work}${path.dirname(filesystemName)} -p`, this.echo);
336
+ await exec(`ln ${this.settings.iso_work}live/filesystem.squashfs ${this.settings.iso_work}${filesystemName}`, this.echo);
337
+ /**
338
+ * patch 4 mksquashfs
339
+ */
340
+ let fname = `${this.settings.work_dir.ovarium}mksquashfs`;
341
+ let content = fs.readFileSync(fname, 'utf8');
342
+ const patched = '# Arch and Manjaro based distro need this link';
343
+ // not need check, is always clean here... but OK
344
+ if (!content.includes(patched)) {
345
+ content += patched + '\n';
346
+ content += `if [ ! -e "${filesystemName}" ]; then\n`;
347
+ content += ` ln ${this.settings.iso_work}live/filesystem.squashfs ${this.settings.iso_work}${filesystemName}\n`;
348
+ content += `fi\n`;
349
+ fs.writeFileSync(fname, content, 'utf8');
350
+ }
351
+ }
352
+ await this.makeIso(mkIsofsCmd, scriptOnly);
353
+ }
354
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * ./src/classes/ovary.d/initrd-arch.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
+ /**
9
+ *
10
+ * @param cmd
11
+ * @param echo
12
+ */
13
+ export default function rexec(cmd: string, verbose?: boolean): Promise<string>;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * ./src/classes/ovary.d/initrd-arch.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 chalk from 'chalk';
11
+ // classes
12
+ import { exec } from '../../lib/utils.js';
13
+ import Utils from '../utils.js';
14
+ // _dirname
15
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
16
+ /**
17
+ *
18
+ * @param cmd
19
+ * @param echo
20
+ */
21
+ export default async function rexec(cmd, verbose = false) {
22
+ if (verbose) {
23
+ console.log(`Ovary: rexec(${cmd})`);
24
+ }
25
+ const echo = Utils.setEcho(verbose);
26
+ /**
27
+ * skip umount errors
28
+ */
29
+ const check = await exec(cmd, echo);
30
+ if (!cmd.startsWith('umount') && check.code !== 0) {
31
+ console.log(`eggs >>> error on command: ` + chalk.cyan(cmd) + ', code: ' + chalk.cyan(check.code));
32
+ }
33
+ return cmd;
34
+ }
@@ -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
+ * syslinux: da syspath
11
+ */
12
+ export declare function syslinux(this: Ovary, theme?: string): Promise<void>;