penguins-eggs 25.10.28 → 25.10.30

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 (452) hide show
  1. package/.oclif.manifest.json +1 -1
  2. package/addons/eggs/theme/applications/install-system.desktop +8 -6
  3. package/assets/calamares/io.calamares.calamares.policy +25 -0
  4. package/dist/classes/bleach.d.ts +37 -0
  5. package/dist/classes/bleach.js +148 -0
  6. package/dist/classes/cli-autologin.d.ts +52 -0
  7. package/dist/classes/cli-autologin.js +252 -0
  8. package/dist/classes/compressors.d.ts +54 -0
  9. package/dist/classes/compressors.js +109 -0
  10. package/dist/classes/daddy.d.ts +26 -0
  11. package/dist/classes/daddy.js +179 -0
  12. package/dist/classes/distro.d.ts +32 -0
  13. package/dist/classes/distro.js +363 -0
  14. package/dist/classes/diversions.d.ts +53 -0
  15. package/dist/classes/diversions.js +131 -0
  16. package/dist/classes/incubation/branding.d.ts +17 -0
  17. package/dist/classes/incubation/branding.js +85 -0
  18. package/dist/classes/incubation/customize/customize-partitions.d.ts +12 -0
  19. package/dist/classes/incubation/customize/customize-partitions.js +37 -0
  20. package/dist/classes/incubation/fisherman-helper/initcpio.d.ts +1 -0
  21. package/dist/classes/incubation/fisherman-helper/initcpio.js +69 -0
  22. package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
  23. package/dist/classes/incubation/fisherman-helper/packages.js +72 -0
  24. package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
  25. package/dist/classes/incubation/fisherman-helper/settings.js +116 -0
  26. package/dist/classes/incubation/fisherman.d.ts +71 -0
  27. package/dist/classes/incubation/fisherman.js +281 -0
  28. package/dist/classes/incubation/incubator.d/alpine.d.ts +32 -0
  29. package/dist/classes/incubation/incubator.d/alpine.js +78 -0
  30. package/dist/classes/incubation/incubator.d/archlinux.d.ts +32 -0
  31. package/dist/classes/incubation/incubator.d/archlinux.js +82 -0
  32. package/dist/classes/incubation/incubator.d/bionic.d.ts +32 -0
  33. package/dist/classes/incubation/incubator.d/bionic.js +83 -0
  34. package/dist/classes/incubation/incubator.d/buster.d.ts +32 -0
  35. package/dist/classes/incubation/incubator.d/buster.js +101 -0
  36. package/dist/classes/incubation/incubator.d/fedora.d.ts +32 -0
  37. package/dist/classes/incubation/incubator.d/fedora.js +81 -0
  38. package/dist/classes/incubation/incubator.d/focal.d.ts +32 -0
  39. package/dist/classes/incubation/incubator.d/focal.js +85 -0
  40. package/dist/classes/incubation/incubator.d/manjaro.d.ts +32 -0
  41. package/dist/classes/incubation/incubator.d/manjaro.js +82 -0
  42. package/dist/classes/incubation/incubator.d/noble.d.ts +32 -0
  43. package/dist/classes/incubation/incubator.d/noble.js +102 -0
  44. package/dist/classes/incubation/incubator.d/openmamba.d.ts +32 -0
  45. package/dist/classes/incubation/incubator.d/openmamba.js +81 -0
  46. package/dist/classes/incubation/incubator.d/opensuse.d.ts +32 -0
  47. package/dist/classes/incubation/incubator.d/opensuse.js +81 -0
  48. package/dist/classes/incubation/incubator.d/trixie.d.ts +32 -0
  49. package/dist/classes/incubation/incubator.d/trixie.js +98 -0
  50. package/dist/classes/incubation/incubator.d.ts +49 -0
  51. package/dist/classes/incubation/incubator.js +383 -0
  52. package/dist/classes/incubation/installer.d.ts +13 -0
  53. package/dist/classes/incubation/installer.js +52 -0
  54. package/dist/classes/keyboards.d.ts +50 -0
  55. package/dist/classes/keyboards.js +287 -0
  56. package/dist/classes/locales.d.ts +21 -0
  57. package/dist/classes/locales.js +77 -0
  58. package/dist/classes/network.d.ts +37 -0
  59. package/dist/classes/network.js +98 -0
  60. package/dist/classes/ovary.d/bind-live-fs.d.ts +18 -0
  61. package/dist/classes/ovary.d/bind-live-fs.js +185 -0
  62. package/dist/classes/ovary.d/bind-vfs.d.ts +17 -0
  63. package/dist/classes/ovary.d/bind-vfs.js +37 -0
  64. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +13 -0
  65. package/dist/classes/ovary.d/create-xdg-autostart.js +193 -0
  66. package/dist/classes/ovary.d/edit-live-fs.d.ts +20 -0
  67. package/dist/classes/ovary.d/edit-live-fs.js +239 -0
  68. package/dist/classes/ovary.d/fertilization.d.ts +12 -0
  69. package/dist/classes/ovary.d/fertilization.js +53 -0
  70. package/dist/classes/ovary.d/finished.d.ts +13 -0
  71. package/dist/classes/ovary.d/finished.js +40 -0
  72. package/dist/classes/ovary.d/initrd.d.ts +21 -0
  73. package/dist/classes/ovary.d/initrd.js +96 -0
  74. package/dist/classes/ovary.d/kernel-copy.d.ts +12 -0
  75. package/dist/classes/ovary.d/kernel-copy.js +22 -0
  76. package/dist/classes/ovary.d/live-create-structure.d.ts +12 -0
  77. package/dist/classes/ovary.d/live-create-structure.js +70 -0
  78. package/dist/classes/ovary.d/luks-get-password.d.ts +12 -0
  79. package/dist/classes/ovary.d/luks-get-password.js +58 -0
  80. package/dist/classes/ovary.d/luks-helpers.d.ts +19 -0
  81. package/dist/classes/ovary.d/luks-helpers.js +73 -0
  82. package/dist/classes/ovary.d/luks-home-support.d.ts +12 -0
  83. package/dist/classes/ovary.d/luks-home-support.js +70 -0
  84. package/dist/classes/ovary.d/luks-home.d.ts +15 -0
  85. package/dist/classes/ovary.d/luks-home.js +132 -0
  86. package/dist/classes/ovary.d/luks-interactive-crypto-config.d.ts +47 -0
  87. package/dist/classes/ovary.d/luks-interactive-crypto-config.js +139 -0
  88. package/dist/classes/ovary.d/luks-root-initrd.d.ts +17 -0
  89. package/dist/classes/ovary.d/luks-root-initrd.js +213 -0
  90. package/dist/classes/ovary.d/luks-root.d.ts +15 -0
  91. package/dist/classes/ovary.d/luks-root.js +123 -0
  92. package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
  93. package/dist/classes/ovary.d/make-dot-disk.js +71 -0
  94. package/dist/classes/ovary.d/make-efi.d.ts +14 -0
  95. package/dist/classes/ovary.d/make-efi.js +296 -0
  96. package/dist/classes/ovary.d/make-iso.d.ts +13 -0
  97. package/dist/classes/ovary.d/make-iso.js +45 -0
  98. package/dist/classes/ovary.d/make-squashfs.d.ts +18 -0
  99. package/dist/classes/ovary.d/make-squashfs.js +111 -0
  100. package/dist/classes/ovary.d/merged.d.ts +27 -0
  101. package/dist/classes/ovary.d/merged.js +78 -0
  102. package/dist/classes/ovary.d/produce.d.ts +23 -0
  103. package/dist/classes/ovary.d/produce.js +349 -0
  104. package/dist/classes/ovary.d/rexec.d.ts +13 -0
  105. package/dist/classes/ovary.d/rexec.js +34 -0
  106. package/dist/classes/ovary.d/syslinux.d.ts +12 -0
  107. package/dist/classes/ovary.d/syslinux.js +99 -0
  108. package/dist/classes/ovary.d/user-create-live.d.ts +14 -0
  109. package/dist/classes/ovary.d/user-create-live.js +97 -0
  110. package/dist/classes/ovary.d/users-remove.d.ts +9 -0
  111. package/dist/classes/ovary.d/users-remove.js +38 -0
  112. package/dist/classes/ovary.d/xorriso-command.d.ts +14 -0
  113. package/dist/classes/ovary.d/xorriso-command.js +125 -0
  114. package/dist/classes/ovary.d.ts +111 -0
  115. package/dist/classes/ovary.js +122 -0
  116. package/dist/classes/pacman.d/alpine.d.ts +56 -0
  117. package/dist/classes/pacman.d/alpine.js +167 -0
  118. package/dist/classes/pacman.d/archlinux.d.ts +62 -0
  119. package/dist/classes/pacman.d/archlinux.js +128 -0
  120. package/dist/classes/pacman.d/debian.d.ts +65 -0
  121. package/dist/classes/pacman.d/debian.js +143 -0
  122. package/dist/classes/pacman.d/fedora.d.ts +53 -0
  123. package/dist/classes/pacman.d/fedora.js +107 -0
  124. package/dist/classes/pacman.d/openmamba.d.ts +52 -0
  125. package/dist/classes/pacman.d/openmamba.js +106 -0
  126. package/dist/classes/pacman.d/opensuse.d.ts +53 -0
  127. package/dist/classes/pacman.d/opensuse.js +109 -0
  128. package/dist/classes/pacman.d.ts +139 -0
  129. package/dist/classes/pacman.js +683 -0
  130. package/dist/classes/pve-live.d.ts +17 -0
  131. package/dist/classes/pve-live.js +52 -0
  132. package/dist/classes/pxe.d.ts +76 -0
  133. package/dist/classes/pxe.js +353 -0
  134. package/dist/classes/settings.d.ts +52 -0
  135. package/dist/classes/settings.js +185 -0
  136. package/dist/classes/sources_list.d.ts +28 -0
  137. package/dist/classes/sources_list.js +89 -0
  138. package/dist/classes/systemctl.d.ts +47 -0
  139. package/dist/classes/systemctl.js +86 -0
  140. package/dist/classes/tailor.d.ts +50 -0
  141. package/dist/classes/tailor.js +563 -0
  142. package/dist/classes/tools.d.ts +26 -0
  143. package/dist/classes/tools.js +50 -0
  144. package/dist/classes/users.d.ts +28 -0
  145. package/dist/classes/users.js +143 -0
  146. package/dist/classes/utils.d/kernel.d.ts +39 -0
  147. package/dist/classes/utils.d/kernel.js +206 -0
  148. package/dist/classes/utils.d.ts +330 -0
  149. package/dist/classes/utils.js +968 -0
  150. package/dist/classes/xdg.d.ts +45 -0
  151. package/dist/classes/xdg.js +337 -0
  152. package/dist/classes/yolk.d.ts +33 -0
  153. package/dist/classes/yolk.js +114 -0
  154. package/dist/commands/adapt.d.ts +17 -0
  155. package/dist/commands/adapt.js +33 -0
  156. package/dist/commands/analyze.d.ts +26 -0
  157. package/dist/commands/analyze.js +95 -0
  158. package/dist/commands/calamares.d.ts +29 -0
  159. package/dist/commands/calamares.js +112 -0
  160. package/dist/commands/config.d.ts +35 -0
  161. package/dist/commands/config.js +120 -0
  162. package/dist/commands/cuckoo.d.ts +17 -0
  163. package/dist/commands/cuckoo.js +61 -0
  164. package/dist/commands/dad.d.ts +21 -0
  165. package/dist/commands/dad.js +47 -0
  166. package/dist/commands/export/iso.d.ts +19 -0
  167. package/dist/commands/export/iso.js +55 -0
  168. package/dist/commands/export/pkg.d.ts +29 -0
  169. package/dist/commands/export/pkg.js +173 -0
  170. package/dist/commands/export/tarballs.d.ts +27 -0
  171. package/dist/commands/export/tarballs.js +79 -0
  172. package/dist/commands/install.d.ts +39 -0
  173. package/dist/commands/install.js +113 -0
  174. package/dist/commands/kill.d.ts +24 -0
  175. package/dist/commands/kill.js +50 -0
  176. package/dist/commands/love.d.ts +25 -0
  177. package/dist/commands/love.js +118 -0
  178. package/dist/commands/mom.d.ts +16 -0
  179. package/dist/commands/mom.js +30 -0
  180. package/dist/commands/pods.d.ts +22 -0
  181. package/dist/commands/pods.js +92 -0
  182. package/dist/commands/produce.d.ts +37 -0
  183. package/dist/commands/produce.js +232 -0
  184. package/dist/commands/status.d.ts +23 -0
  185. package/dist/commands/status.js +31 -0
  186. package/dist/commands/tools/clean.d.ts +18 -0
  187. package/dist/commands/tools/clean.js +37 -0
  188. package/dist/commands/tools/repo.d.ts +31 -0
  189. package/dist/commands/tools/repo.js +246 -0
  190. package/dist/commands/tools/skel.d.ts +18 -0
  191. package/dist/commands/tools/skel.js +44 -0
  192. package/dist/commands/tools/stat.d.ts +31 -0
  193. package/dist/commands/tools/stat.js +70 -0
  194. package/dist/commands/tools/yolk.d.ts +24 -0
  195. package/dist/commands/tools/yolk.js +45 -0
  196. package/dist/commands/update.d.ts +46 -0
  197. package/dist/commands/update.js +238 -0
  198. package/dist/commands/wardrobe/get.d.ts +23 -0
  199. package/dist/commands/wardrobe/get.js +52 -0
  200. package/dist/commands/wardrobe/list.d.ts +24 -0
  201. package/dist/commands/wardrobe/list.js +125 -0
  202. package/dist/commands/wardrobe/show.d.ts +25 -0
  203. package/dist/commands/wardrobe/show.js +97 -0
  204. package/dist/commands/wardrobe/wear.d.ts +26 -0
  205. package/dist/commands/wardrobe/wear.js +84 -0
  206. package/dist/dhcpd-proxy/classes/packet.d.ts +36 -0
  207. package/dist/dhcpd-proxy/classes/packet.js +124 -0
  208. package/dist/dhcpd-proxy/index.d.ts +4 -0
  209. package/dist/dhcpd-proxy/index.js +4 -0
  210. package/dist/dhcpd-proxy/interfaces/i-pxe.d.ts +45 -0
  211. package/dist/dhcpd-proxy/interfaces/i-pxe.js +1 -0
  212. package/dist/dhcpd-proxy/lib/packet/converters.d.ts +11 -0
  213. package/dist/dhcpd-proxy/lib/packet/converters.js +395 -0
  214. package/dist/dhcpd-proxy/lib/packet/message-types.d.ts +10 -0
  215. package/dist/dhcpd-proxy/lib/packet/message-types.js +12 -0
  216. package/dist/dhcpd-proxy/lib/packet/options.d.ts +8 -0
  217. package/dist/dhcpd-proxy/lib/packet/options.js +264 -0
  218. package/dist/dhcpd-proxy/lib/sprintf.d.ts +6 -0
  219. package/dist/dhcpd-proxy/lib/sprintf.js +130 -0
  220. package/dist/dhcpd-proxy/lib/utils.d.ts +126 -0
  221. package/dist/dhcpd-proxy/lib/utils.js +255 -0
  222. package/dist/dhcpd-proxy/simple-proxy.d.ts +11 -0
  223. package/dist/dhcpd-proxy/simple-proxy.js +118 -0
  224. package/dist/index.d.ts +8 -0
  225. package/dist/index.js +8 -0
  226. package/dist/interfaces/calamares/i-calamares-bootloader.d.ts +23 -0
  227. package/dist/interfaces/calamares/i-calamares-bootloader.js +7 -0
  228. package/dist/interfaces/calamares/i-calamares-branding.d.ts +46 -0
  229. package/dist/interfaces/calamares/i-calamares-branding.js +1 -0
  230. package/dist/interfaces/calamares/i-calamares-displaymanager.d.ts +34 -0
  231. package/dist/interfaces/calamares/i-calamares-displaymanager.js +1 -0
  232. package/dist/interfaces/calamares/i-calamares-finished.d.ts +14 -0
  233. package/dist/interfaces/calamares/i-calamares-finished.js +1 -0
  234. package/dist/interfaces/calamares/i-calamares-packages.d.ts +26 -0
  235. package/dist/interfaces/calamares/i-calamares-packages.js +1 -0
  236. package/dist/interfaces/calamares/i-calamares-partitions.d.ts +39 -0
  237. package/dist/interfaces/calamares/i-calamares-partitions.js +1 -0
  238. package/dist/interfaces/calamares/i-calamares-settings.d.ts +36 -0
  239. package/dist/interfaces/calamares/i-calamares-settings.js +1 -0
  240. package/dist/interfaces/i-addons.d.ts +12 -0
  241. package/dist/interfaces/i-addons.js +8 -0
  242. package/dist/interfaces/i-analyze.d.ts +17 -0
  243. package/dist/interfaces/i-analyze.js +17 -0
  244. package/dist/interfaces/i-app.d.ts +14 -0
  245. package/dist/interfaces/i-app.js +8 -0
  246. package/dist/interfaces/i-config-tools.d.ts +15 -0
  247. package/dist/interfaces/i-config-tools.js +8 -0
  248. package/dist/interfaces/i-devices.d.ts +20 -0
  249. package/dist/interfaces/i-devices.js +8 -0
  250. package/dist/interfaces/i-distro.d.ts +23 -0
  251. package/dist/interfaces/i-distro.js +8 -0
  252. package/dist/interfaces/i-drive-list.d.ts +33 -0
  253. package/dist/interfaces/i-drive-list.js +8 -0
  254. package/dist/interfaces/i-eggs-config.d.ts +32 -0
  255. package/dist/interfaces/i-eggs-config.js +8 -0
  256. package/dist/interfaces/i-excludes.d.ts +14 -0
  257. package/dist/interfaces/i-excludes.js +8 -0
  258. package/dist/interfaces/i-exec.d.ts +11 -0
  259. package/dist/interfaces/i-exec.js +8 -0
  260. package/dist/interfaces/i-initrd.d.ts +13 -0
  261. package/dist/interfaces/i-initrd.js +8 -0
  262. package/dist/interfaces/i-install.d.ts +16 -0
  263. package/dist/interfaces/i-install.js +8 -0
  264. package/dist/interfaces/i-installer.d.ts +17 -0
  265. package/dist/interfaces/i-installer.js +8 -0
  266. package/dist/interfaces/i-luks-passphrase.d.ts +11 -0
  267. package/dist/interfaces/i-luks-passphrase.js +8 -0
  268. package/dist/interfaces/i-materia.d.ts +36 -0
  269. package/dist/interfaces/i-materia.js +8 -0
  270. package/dist/interfaces/i-net.d.ts +16 -0
  271. package/dist/interfaces/i-net.js +8 -0
  272. package/dist/interfaces/i-os-release.d.ts +5 -0
  273. package/dist/interfaces/i-os-release.js +1 -0
  274. package/dist/interfaces/i-packages.d.ts +16 -0
  275. package/dist/interfaces/i-packages.js +8 -0
  276. package/dist/interfaces/i-partitions.d.ts +16 -0
  277. package/dist/interfaces/i-partitions.js +8 -0
  278. package/dist/interfaces/i-pxe.d.ts +45 -0
  279. package/dist/interfaces/i-pxe.js +1 -0
  280. package/dist/interfaces/i-remix.d.ts +21 -0
  281. package/dist/interfaces/i-remix.js +8 -0
  282. package/dist/interfaces/i-settings.d.ts +33 -0
  283. package/dist/interfaces/i-settings.js +8 -0
  284. package/dist/interfaces/i-user.d.ts +14 -0
  285. package/dist/interfaces/i-user.js +8 -0
  286. package/dist/interfaces/i-workdir.d.ts +14 -0
  287. package/dist/interfaces/i-workdir.js +8 -0
  288. package/dist/interfaces/i-xkb-model.d.ts +24 -0
  289. package/dist/interfaces/i-xkb-model.js +8 -0
  290. package/dist/interfaces/index.d.ts +26 -0
  291. package/dist/interfaces/index.js +8 -0
  292. package/dist/krill/classes/cfs.d.ts +17 -0
  293. package/dist/krill/classes/cfs.js +39 -0
  294. package/dist/krill/classes/krill_enums.d.ts +37 -0
  295. package/dist/krill/classes/krill_enums.js +41 -0
  296. package/dist/krill/classes/prepare.d/confirm.d.ts +5 -0
  297. package/dist/krill/classes/prepare.d/confirm.js +30 -0
  298. package/dist/krill/classes/prepare.d/keyboard.d.ts +14 -0
  299. package/dist/krill/classes/prepare.d/keyboard.js +62 -0
  300. package/dist/krill/classes/prepare.d/location.d.ts +17 -0
  301. package/dist/krill/classes/prepare.d/location.js +59 -0
  302. package/dist/krill/classes/prepare.d/network.d.ts +14 -0
  303. package/dist/krill/classes/prepare.d/network.js +68 -0
  304. package/dist/krill/classes/prepare.d/partitions.d.ts +14 -0
  305. package/dist/krill/classes/prepare.d/partitions.js +86 -0
  306. package/dist/krill/classes/prepare.d/summary.d.ts +15 -0
  307. package/dist/krill/classes/prepare.d/summary.js +72 -0
  308. package/dist/krill/classes/prepare.d/users.d.ts +6 -0
  309. package/dist/krill/classes/prepare.d/users.js +63 -0
  310. package/dist/krill/classes/prepare.d/welcome.d.ts +6 -0
  311. package/dist/krill/classes/prepare.d/welcome.js +30 -0
  312. package/dist/krill/classes/prepare.d.ts +89 -0
  313. package/dist/krill/classes/prepare.js +319 -0
  314. package/dist/krill/classes/sequence.d/add_user.d.ts +20 -0
  315. package/dist/krill/classes/sequence.d/add_user.js +77 -0
  316. package/dist/krill/classes/sequence.d/bootloader.d.ts +14 -0
  317. package/dist/krill/classes/sequence.d/bootloader.js +117 -0
  318. package/dist/krill/classes/sequence.d/bootloader_config.d.ts +14 -0
  319. package/dist/krill/classes/sequence.d/bootloader_config.js +192 -0
  320. package/dist/krill/classes/sequence.d/change_password.d.ts +15 -0
  321. package/dist/krill/classes/sequence.d/change_password.js +18 -0
  322. package/dist/krill/classes/sequence.d/del_live_user.d.ts +14 -0
  323. package/dist/krill/classes/sequence.d/del_live_user.js +39 -0
  324. package/dist/krill/classes/sequence.d/fstab.d.ts +14 -0
  325. package/dist/krill/classes/sequence.d/fstab.js +177 -0
  326. package/dist/krill/classes/sequence.d/grubcfg.d.ts +17 -0
  327. package/dist/krill/classes/sequence.d/grubcfg.js +35 -0
  328. package/dist/krill/classes/sequence.d/hostname.d.ts +13 -0
  329. package/dist/krill/classes/sequence.d/hostname.js +50 -0
  330. package/dist/krill/classes/sequence.d/initramfs.d.ts +13 -0
  331. package/dist/krill/classes/sequence.d/initramfs.js +54 -0
  332. package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +14 -0
  333. package/dist/krill/classes/sequence.d/initramfs_cfg.js +35 -0
  334. package/dist/krill/classes/sequence.d/locale.d.ts +13 -0
  335. package/dist/krill/classes/sequence.d/locale.js +91 -0
  336. package/dist/krill/classes/sequence.d/locale_cfg.d.ts +10 -0
  337. package/dist/krill/classes/sequence.d/locale_cfg.js +58 -0
  338. package/dist/krill/classes/sequence.d/m_keyboard.d.ts +14 -0
  339. package/dist/krill/classes/sequence.d/m_keyboard.js +58 -0
  340. package/dist/krill/classes/sequence.d/machine_id.d.ts +15 -0
  341. package/dist/krill/classes/sequence.d/machine_id.js +33 -0
  342. package/dist/krill/classes/sequence.d/mkfs.d.ts +15 -0
  343. package/dist/krill/classes/sequence.d/mkfs.js +88 -0
  344. package/dist/krill/classes/sequence.d/mount_fs.d.ts +17 -0
  345. package/dist/krill/classes/sequence.d/mount_fs.js +68 -0
  346. package/dist/krill/classes/sequence.d/mount_vfs.d.ts +17 -0
  347. package/dist/krill/classes/sequence.d/mount_vfs.js +59 -0
  348. package/dist/krill/classes/sequence.d/network_cfg.d.ts +19 -0
  349. package/dist/krill/classes/sequence.d/network_cfg.js +73 -0
  350. package/dist/krill/classes/sequence.d/packages.d.ts +14 -0
  351. package/dist/krill/classes/sequence.d/packages.js +111 -0
  352. package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +17 -0
  353. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +73 -0
  354. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +16 -0
  355. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +51 -0
  356. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +17 -0
  357. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +77 -0
  358. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +10 -0
  359. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +33 -0
  360. package/dist/krill/classes/sequence.d/partition.d.ts +14 -0
  361. package/dist/krill/classes/sequence.d/partition.js +84 -0
  362. package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +13 -0
  363. package/dist/krill/classes/sequence.d/remove_installer_link.js +35 -0
  364. package/dist/krill/classes/sequence.d/umount.d.ts +14 -0
  365. package/dist/krill/classes/sequence.d/umount.js +28 -0
  366. package/dist/krill/classes/sequence.d/unpackfs.d.ts +13 -0
  367. package/dist/krill/classes/sequence.d/unpackfs.js +20 -0
  368. package/dist/krill/classes/sequence.d.ts +134 -0
  369. package/dist/krill/classes/sequence.js +400 -0
  370. package/dist/krill/components/finished.d.ts +16 -0
  371. package/dist/krill/components/finished.js +56 -0
  372. package/dist/krill/components/information.d.ts +8 -0
  373. package/dist/krill/components/information.js +162 -0
  374. package/dist/krill/components/install.d.ts +15 -0
  375. package/dist/krill/components/install.js +60 -0
  376. package/dist/krill/components/keyboard.d.ts +16 -0
  377. package/dist/krill/components/keyboard.js +54 -0
  378. package/dist/krill/components/location.d.ts +16 -0
  379. package/dist/krill/components/location.js +59 -0
  380. package/dist/krill/components/network.d.ts +19 -0
  381. package/dist/krill/components/network.js +65 -0
  382. package/dist/krill/components/partitions.d.ts +18 -0
  383. package/dist/krill/components/partitions.js +89 -0
  384. package/dist/krill/components/steps.d.ts +13 -0
  385. package/dist/krill/components/steps.js +148 -0
  386. package/dist/krill/components/summary.d.ts +25 -0
  387. package/dist/krill/components/summary.js +77 -0
  388. package/dist/krill/components/title.d.ts +11 -0
  389. package/dist/krill/components/title.js +35 -0
  390. package/dist/krill/components/users.d.ts +24 -0
  391. package/dist/krill/components/users.js +80 -0
  392. package/dist/krill/components/welcome.d.ts +13 -0
  393. package/dist/krill/components/welcome.js +63 -0
  394. package/dist/krill/interfaces/i_krill.d.ts +44 -0
  395. package/dist/krill/interfaces/i_krill.js +8 -0
  396. package/dist/krill/interfaces/i_krill_config.d.ts +35 -0
  397. package/dist/krill/interfaces/i_krill_config.js +8 -0
  398. package/dist/krill/lib/get_address.d.ts +8 -0
  399. package/dist/krill/lib/get_address.js +23 -0
  400. package/dist/krill/lib/get_dns.d.ts +8 -0
  401. package/dist/krill/lib/get_dns.js +23 -0
  402. package/dist/krill/lib/get_domain.d.ts +8 -0
  403. package/dist/krill/lib/get_domain.js +23 -0
  404. package/dist/krill/lib/get_gateway.d.ts +8 -0
  405. package/dist/krill/lib/get_gateway.js +23 -0
  406. package/dist/krill/lib/get_hostname.d.ts +8 -0
  407. package/dist/krill/lib/get_hostname.js +23 -0
  408. package/dist/krill/lib/get_luks_passphrase.d.ts +8 -0
  409. package/dist/krill/lib/get_luks_passphrase.js +32 -0
  410. package/dist/krill/lib/get_netmask.d.ts +8 -0
  411. package/dist/krill/lib/get_netmask.js +23 -0
  412. package/dist/krill/lib/get_password.d.ts +8 -0
  413. package/dist/krill/lib/get_password.js +36 -0
  414. package/dist/krill/lib/get_userfullname.d.ts +8 -0
  415. package/dist/krill/lib/get_userfullname.js +23 -0
  416. package/dist/krill/lib/get_username.d.ts +8 -0
  417. package/dist/krill/lib/get_username.js +23 -0
  418. package/dist/krill/lib/select_address_type.d.ts +8 -0
  419. package/dist/krill/lib/select_address_type.js +24 -0
  420. package/dist/krill/lib/select_filesystem_type.d.ts +8 -0
  421. package/dist/krill/lib/select_filesystem_type.js +40 -0
  422. package/dist/krill/lib/select_installation_device.d.ts +8 -0
  423. package/dist/krill/lib/select_installation_device.js +40 -0
  424. package/dist/krill/lib/select_installation_mode.d.ts +9 -0
  425. package/dist/krill/lib/select_installation_mode.js +25 -0
  426. package/dist/krill/lib/select_interface.d.ts +8 -0
  427. package/dist/krill/lib/select_interface.js +24 -0
  428. package/dist/krill/lib/select_keyboard_layout.d.ts +11 -0
  429. package/dist/krill/lib/select_keyboard_layout.js +36 -0
  430. package/dist/krill/lib/select_keyboard_model.d.ts +11 -0
  431. package/dist/krill/lib/select_keyboard_model.js +34 -0
  432. package/dist/krill/lib/select_keyboard_option.d.ts +11 -0
  433. package/dist/krill/lib/select_keyboard_option.js +34 -0
  434. package/dist/krill/lib/select_keyboard_variant.d.ts +11 -0
  435. package/dist/krill/lib/select_keyboard_variant.js +35 -0
  436. package/dist/krill/lib/select_languages.d.ts +8 -0
  437. package/dist/krill/lib/select_languages.js +28 -0
  438. package/dist/krill/lib/select_regions.d.ts +8 -0
  439. package/dist/krill/lib/select_regions.js +24 -0
  440. package/dist/krill/lib/select_replaced_partition.d.ts +8 -0
  441. package/dist/krill/lib/select_replaced_partition.js +31 -0
  442. package/dist/krill/lib/select_user_swap_choice.d.ts +9 -0
  443. package/dist/krill/lib/select_user_swap_choice.js +35 -0
  444. package/dist/krill/lib/select_zones.d.ts +8 -0
  445. package/dist/krill/lib/select_zones.js +518 -0
  446. package/dist/lib/kill_me_softly.d.ts +11 -0
  447. package/dist/lib/kill_me_softly.js +61 -0
  448. package/dist/lib/utils.d.ts +19 -0
  449. package/dist/lib/utils.js +65 -0
  450. package/dracut/dracut.conf.d/50-live.conf +12 -13
  451. package/package.json +1 -1
  452. package/perrisbrewery/template/dependencies.yaml +1 -0
@@ -0,0 +1,213 @@
1
+ /**
2
+ * ./src/classes/ovary.d/luks-root-initrd.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
+ // 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
+ const noop = () => { };
17
+ /**
18
+ * Creates a streamlined initrd image for Debian/Ubuntu with LUKS support using mkinitramfs within a temporary chroot.
19
+ * Copies the necessary unlock script, ensures losetup is included via a hook, and wraps /scripts/live for debugging.
20
+ * Assumes live-boot and cryptsetup packages are installed in the chroot.
21
+ * No cleanup of /etc modifications is performed as the chroot is temporary.
22
+ * @param this - Ovary instance context
23
+ * @param verbose - Whether to show verbose output
24
+ */
25
+ export async function luksRootInitrd(verbose = false) {
26
+ const loggers = {
27
+ log: this.hidden ? noop : console.log,
28
+ warning: this.hidden ? noop : Utils.warning,
29
+ success: this.hidden ? noop : Utils.success,
30
+ info: this.hidden ? noop : Utils.info,
31
+ };
32
+ const { log, warning, success, info } = loggers;
33
+ if (this.hidden) {
34
+ Utils.warning("intentionally blank. System is working, please wait");
35
+ }
36
+ log();
37
+ log('===========================================================================');
38
+ log(`Creating ${this.initrd} for LUKS using mkinitramfs`);
39
+ log('===========================================================================');
40
+ // --- Core Paths & Config ---
41
+ const chrootPath = path.join(this.dotMnt, 'filesystem.squashfs');
42
+ const kernelVersion = this.kernel;
43
+ const initrdBaseName = path.basename(this.initrd);
44
+ const logBaseName = `${this.settings.config.snapshot_prefix}mkinitramfs.log.txt`;
45
+ const finalInitrdDestPath = path.join(this.settings.iso_work, 'live', initrdBaseName); // Define final destination early for logging
46
+ try {
47
+ // --- 2. Prepare Chroot Environment ---
48
+ warning("Preparing chroot environment...");
49
+ // --- 2.1 Copy boot-encrypted-root.sh
50
+ {
51
+ const bootEncryptedRootName = 'boot-encrypted-root.sh'; // Corrected to lowercase zz-
52
+ const srcbootEncryptedRootPath = path.join(__dirname, '../../../scripts', bootEncryptedRootName);
53
+ const chrootbootEncryptedRootDir = '/etc/initramfs-tools/scripts/live-premount';
54
+ const chrootbootEncryptedRootPath = path.join(chrootbootEncryptedRootDir, bootEncryptedRootName);
55
+ const hostDestbootEncryptedRootDir = path.join(chrootPath, chrootbootEncryptedRootDir);
56
+ const hostDestbootEncryptedRootPath = path.join(chrootPath, chrootbootEncryptedRootPath);
57
+ if (!fs.existsSync(srcbootEncryptedRootPath)) {
58
+ throw new Error(`Unlock script source not found: ${srcbootEncryptedRootPath}`);
59
+ }
60
+ await exec(`mkdir -p "${hostDestbootEncryptedRootDir}"`);
61
+ await exec(`cp "${srcbootEncryptedRootPath}" "${hostDestbootEncryptedRootPath}"`);
62
+ await exec(`chmod +x "${hostDestbootEncryptedRootPath}"`);
63
+ success(`Copied ${bootEncryptedRootName} script to ${hostDestbootEncryptedRootDir}`);
64
+ }
65
+ // --- 2.2 Create dummy /etc/crypttab if needed ---
66
+ {
67
+ const chrootCrypttabPath = '/etc/crypttab';
68
+ const hostCrypttabPath = path.join(chrootPath, chrootCrypttabPath);
69
+ if (!fs.existsSync(hostCrypttabPath)) {
70
+ const crypttabContent = "# Dummy entry to ensure cryptsetup is included\ncryptroot UUID=none none luks\n";
71
+ fs.writeFileSync(hostCrypttabPath, crypttabContent, 'utf-8');
72
+ success(`Created crypttab on ${path.dirname(hostCrypttabPath)}`);
73
+ }
74
+ else {
75
+ info(`${hostCrypttabPath} already exists.`);
76
+ }
77
+ }
78
+ // --- 2.3 Add hook ---
79
+ // Utils.warning(`Generating required hook scripts`)
80
+ await addHook('/usr/sbin/losetup', chrootPath, loggers);
81
+ await addHook('/usr/bin/rsync', chrootPath, loggers);
82
+ // --- 2.4 Add modules ---
83
+ // addModules('overlay', chrootPath)
84
+ // --- 3. Execute mkinitramfs INSIDE Chroot ---
85
+ {
86
+ warning(`Running mkinitramfs for kernel ${kernelVersion} inside chroot...`);
87
+ const chrootTmpInitrdPath = `/tmp/${initrdBaseName}`;
88
+ let logFilePath = path.join(this.settings.iso_work, logBaseName);
89
+ if (this.hidden) {
90
+ logFilePath = '/dev/null';
91
+ }
92
+ const mkinitramfsCmd = `mkinitramfs -v -o "${chrootTmpInitrdPath}" ${kernelVersion}`;
93
+ const chrootCmd = `chroot "${chrootPath}" /bin/bash -c "${mkinitramfsCmd}" > "${logFilePath}" 2>&1`;
94
+ await exec(chrootCmd, this.echo);
95
+ success(`mkinitramfs completed. Log: ${logFilePath}`);
96
+ }
97
+ // --- 4. Move Result ---
98
+ {
99
+ const chrootTmpInitrdPath = `/tmp/${initrdBaseName}`; // Re-declare for scope
100
+ const hostTmpInitrdPath = path.join(chrootPath, chrootTmpInitrdPath);
101
+ if (fs.existsSync(hostTmpInitrdPath)) {
102
+ info(`Moving generated initrd to ${finalInitrdDestPath}`);
103
+ await exec(`mv "${hostTmpInitrdPath}" "${finalInitrdDestPath}"`);
104
+ success(`Initrd moved successfully.`);
105
+ }
106
+ else {
107
+ Utils.error(`Generated initrd not found at ${hostTmpInitrdPath}. Build failed!`);
108
+ throw new Error("mkinitramfs did not produce the expected output file.");
109
+ }
110
+ // process.exit()
111
+ }
112
+ }
113
+ catch (error) {
114
+ Utils.error(`Error during LUKS initrd generation: ${error}`);
115
+ const logFilePath = path.join(this.settings.iso_work, logBaseName); // Re-declare for scope
116
+ if (error instanceof Error && error.message.includes('mkinitramfs inside chroot failed')) {
117
+ Utils.warning(`Check mkinitramfs log: ${logFilePath}`);
118
+ }
119
+ throw error; // Re-throw error
120
+ }
121
+ success(`Finished creating LUKS initrd: ${finalInitrdDestPath}`);
122
+ }
123
+ /**
124
+ * Genera e installa uno script hook di initramfs-tools nel chroot.
125
+ * Copia il comando specificato nella sua directory di destinazione
126
+ * standard (/bin o /sbin) all'interno dell'initramfs.
127
+ * @param cmdPath Path assoluto del comando da copiare *nel chroot* (es. '/usr/sbin/losetup')
128
+ * @param chrootPath Path assoluto alla radice del chroot
129
+ */
130
+ async function addHook(cmdPath, chrootPath, loggers) {
131
+ const { log, warning, success, info } = loggers;
132
+ const chrootHooksDirPath = '/etc/initramfs-tools/hooks';
133
+ const hostHooksDirPath = path.join(chrootPath, chrootHooksDirPath);
134
+ const cmd = path.basename(cmdPath); // es. 'losetup'
135
+ const hookScriptName = `add-${cmd}-hook.sh`; // es. 'add-losetup-hook.sh'
136
+ const hostHookPath = path.join(hostHooksDirPath, hookScriptName);
137
+ if (!fs.existsSync(cmdPath)) {
138
+ Utils.error(`Dont' exists ${cmdPath}`);
139
+ process.exit();
140
+ }
141
+ let destDir = "/sbin"; // Default a /sbin per i comandi di amministrazione
142
+ // Determina la destinazione corretta
143
+ if (cmdPath.includes('/usr/bin') || cmdPath.includes('/bin')) {
144
+ destDir = "/bin"; // Comandi utente
145
+ }
146
+ else if (cmdPath.includes('/usr/sbin') || cmdPath.includes('/sbin')) {
147
+ destDir = "/sbin"; // Comandi amministrativi
148
+ }
149
+ // Crea la riga di comando per l'hook
150
+ const copyLine = `copy_exec ${cmdPath} ${destDir} || echo "WARNING: Failed to copy ${cmdPath} to ${destDir}" >&2`;
151
+ // Crea il contenuto boilerplate dello script hook
152
+ const hookContent = `#!/bin/sh
153
+ # Hook: ${hookScriptName}
154
+ # Generato automaticamente da penguins-eggs
155
+ # Copia ${cmdPath} in ${destDir}
156
+
157
+ PREREQ=""
158
+ case $1 in prereqs) echo "\${PREREQ}"; exit 0;; esac
159
+
160
+ . /usr/share/initramfs-tools/hook-functions
161
+
162
+ echo "EGGS-HOOK: Esecuzione hook ${hookScriptName}..."
163
+ ${copyLine}
164
+
165
+ exit 0
166
+ `;
167
+ try {
168
+ await exec(`mkdir -p "${hostHooksDirPath}"`);
169
+ // Scrive il file e lo rende eseguibile (mode 0o755)
170
+ fs.writeFileSync(hostHookPath, hookContent, { mode: 0o755, encoding: 'utf-8' });
171
+ // console.log(hookContent)
172
+ success(`Generated and set executable hook: ${hookScriptName}`);
173
+ }
174
+ catch (err) {
175
+ Utils.error(`Failed to write hook script ${hostHookPath}: ${err.message}`);
176
+ process.exit(1);
177
+ throw err; // Lancia l'errore per fermare il processo
178
+ }
179
+ }
180
+ /**
181
+ *
182
+ * @param module
183
+ * @param chrootPath
184
+ */
185
+ function addModules(module, chrootPath, loggers) {
186
+ const { log, warning, success, info } = loggers;
187
+ const chrootModulesFilePath = '/etc/initramfs-tools/modules'; // Relative inside chroot
188
+ const hostModulesFilePath = path.join(chrootPath, chrootModulesFilePath); // Absolute on host fs
189
+ let modulesContent = '';
190
+ let needsUpdate = false;
191
+ if (fs.existsSync(hostModulesFilePath)) {
192
+ modulesContent = fs.readFileSync(hostModulesFilePath, 'utf-8');
193
+ }
194
+ else {
195
+ // inizializzazione modules
196
+ modulesContent = '\n';
197
+ }
198
+ if (modulesContent.includes(`\n${module}\n`)) {
199
+ info(`'${module}' module already present.`);
200
+ }
201
+ else {
202
+ info(`Added '${module}' module on ${hostModulesFilePath}`);
203
+ if (!modulesContent.endsWith('\n')) {
204
+ modulesContent += '\n';
205
+ }
206
+ modulesContent += `${module}\n`;
207
+ needsUpdate = true;
208
+ }
209
+ if (needsUpdate) {
210
+ fs.writeFileSync(hostModulesFilePath, modulesContent, 'utf-8');
211
+ success(`Updated ${hostModulesFilePath} with 'overlay'.`);
212
+ }
213
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * ./src/classes/ovary.d/luks-root.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
+ * luksRoot()
11
+ *
12
+ * create a container LUKS with the entire
13
+ * filesystem.squashfs
14
+ */
15
+ export declare function luksRoot(this: Ovary): Promise<void>;
@@ -0,0 +1,123 @@
1
+ /**
2
+ * ./src/classes/ovary.d/luks-root.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
+ // packages
9
+ import fs from 'fs';
10
+ import Utils from '../utils.js';
11
+ import { exec } from '../../lib/utils.js';
12
+ const noop = () => { };
13
+ /**
14
+ * luksRoot()
15
+ *
16
+ * create a container LUKS with the entire
17
+ * filesystem.squashfs
18
+ */
19
+ export async function luksRoot() {
20
+ const loggers = {
21
+ log: this.hidden ? noop : console.log,
22
+ warning: this.hidden ? noop : Utils.warning,
23
+ success: this.hidden ? noop : Utils.success,
24
+ info: this.hidden ? noop : Utils.info,
25
+ };
26
+ const { log, warning, success, info } = loggers;
27
+ // filesystem.squashfs
28
+ const live_fs = `${this.settings.iso_work}live/filesystem.squashfs`;
29
+ try {
30
+ /**
31
+ * this.luksMappedName = 'root.img';
32
+ * this.luksFile = `/tmp/${luksMappedName}`
33
+ * this.luksDevice = `/dev/mapper/${luksMappedName}`
34
+ * this.luksMountpoint = `/tmp/mnt/${luksMappedName}`
35
+ * this.luksPassword = '0'
36
+ */
37
+ if (this.hidden) {
38
+ Utils.warning("intentionally blank. System is working, please wait");
39
+ }
40
+ log();
41
+ log('====================================');
42
+ log(` Creating ${this.luksMappedName}`);
43
+ log('====================================');
44
+ if (!fs.existsSync(live_fs)) {
45
+ throw new Error(`filesystem.squashfs not found at: ${live_fs}`);
46
+ }
47
+ const stats = fs.statSync(live_fs);
48
+ let size = stats.size; // Dimensione REALE del file in Byte
49
+ // Add overhead * 1.25 per più sicurezza con file grandi
50
+ const luksSize = Math.ceil(size * 1.25);
51
+ warning(`filesystem.squashfs size: ${bytesToGB(size)}`);
52
+ warning(`partition LUKS ${this.luksFile} size: ${bytesToGB(luksSize)}`);
53
+ warning(`creating partition LUKS: ${this.luksFile}`);
54
+ await this.luksExecuteCommand('truncate', ['--size', `${luksSize}`, this.luksFile]);
55
+ warning(`formatting ${this.luksFile} as a LUKS volume...`);
56
+ const luksFormatArgs = this.buildLuksFormatArgs(this.luksConfig, this.luksFile);
57
+ await this.luksExecuteCommand('cryptsetup', luksFormatArgs, `${this.luksPassword}\n`);
58
+ warning(`opening the LUKS volume. It will be mapped to ${this.luksDevice}`);
59
+ await this.luksExecuteCommand('cryptsetup', ['luksOpen', this.luksFile, this.luksMappedName], `${this.luksPassword}\n`);
60
+ warning(`formatting ext4 (without journal)...`);
61
+ await exec(`mkfs.ext4 -O ^has_journal -L live-root ${this.luksDevice}`, this.echo);
62
+ warning(`mounting ${this.luksDevice} on ${this.luksMountpoint}`);
63
+ if (fs.existsSync(this.luksMountpoint)) {
64
+ if (!Utils.isMountpoint(this.luksMountpoint)) {
65
+ await exec(`rm -rf ${this.luksMountpoint}`, this.echo);
66
+ }
67
+ else {
68
+ throw new Error(`${this.luksMountpoint} is already mounted, process will abort!`);
69
+ }
70
+ }
71
+ await exec(`mkdir -p ${this.luksMountpoint}`, this.echo);
72
+ await exec(`mount /dev/mapper/${this.luksMappedName} ${this.luksMountpoint}`, this.echo);
73
+ warning(`moving ${live_fs} ${this.luksMountpoint}/filesystem.squashfs`);
74
+ await exec(`mv ${live_fs} ${this.luksMountpoint}/filesystem.squashfs`, this.echo);
75
+ warning(`Syncing filesystem on ${this.luksMountpoint}...`);
76
+ await exec('sync', this.echo); // Forza scrittura dati su disco
77
+ warning(`Attempting unmount ${this.luksMountpoint}...`);
78
+ try {
79
+ await exec(`umount ${this.luksMountpoint}`, this.echo);
80
+ success(`Unmounted ${this.luksMountpoint} successfully.`);
81
+ }
82
+ catch (umountError) {
83
+ Utils.error(`Failed to unmount ${this.luksMountpoint}! Trying force unmount...`);
84
+ // Tenta un unmount forzato/lazy come ultima risorsa
85
+ await exec(`umount -lf ${this.luksMountpoint}`).catch((forceError) => {
86
+ Utils.error(`Force unmount also failed: ${forceError}`);
87
+ // Considera se lanciare un errore qui per fermare il processo
88
+ });
89
+ // Lancia comunque l'errore originale per segnalare il problema
90
+ throw umountError;
91
+ }
92
+ warning(`closing LUKS volume ${this.luksFile}.`);
93
+ await this.luksExecuteCommand('cryptsetup', ['close', this.luksMappedName]);
94
+ warning(`moving ${this.luksMappedName} on (ISO)/live.`);
95
+ await exec(`mv ${this.luksFile} ${this.settings.iso_work}/live`, this.echo);
96
+ }
97
+ catch (error) {
98
+ if (error instanceof Error) {
99
+ Utils.error(`ERROR: ${error.message}`);
100
+ }
101
+ else {
102
+ Utils.error(`An unknown error has occurred.`);
103
+ }
104
+ Utils.warning('Cleaning performed following the error...');
105
+ if (fs.existsSync(this.luksMountpoint)) {
106
+ await exec(`umount -lf ${this.luksMountpoint}`).catch(() => { });
107
+ }
108
+ if (fs.existsSync(this.luksDevice)) {
109
+ await this.luksExecuteCommand('cryptsetup', ['close', this.luksMappedName]).catch(() => { });
110
+ }
111
+ await Utils.pressKeyToExit();
112
+ process.exit(1);
113
+ }
114
+ }
115
+ /**
116
+ * Converte bytes in gigabytes per la visualizzazione.
117
+ */
118
+ function bytesToGB(bytes) {
119
+ if (bytes === 0)
120
+ return '0.00 GB';
121
+ const gigabytes = bytes / (1024 * 1024 * 1024);
122
+ return gigabytes.toFixed(2) + ' GB';
123
+ }
@@ -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
+ * makeDotDisk
11
+ */
12
+ export declare function makeDotDisk(this: Ovary, info?: string, mksquashfs?: string, mkisofs?: string): void;
@@ -0,0 +1,71 @@
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
+ // packages
9
+ import fs from 'node:fs';
10
+ import shx from 'shelljs';
11
+ import path from 'path';
12
+ // interfaces
13
+ // libraries
14
+ // classes
15
+ import Utils from './../utils.js';
16
+ // _dirname
17
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
18
+ /**
19
+ * makeDotDisk
20
+ */
21
+ export function makeDotDisk(info = '', mksquashfs = '', mkisofs = '') {
22
+ const dotDisk = this.settings.iso_work + '.disk';
23
+ if (fs.existsSync(dotDisk)) {
24
+ shx.rm('-rf', dotDisk);
25
+ }
26
+ shx.mkdir('-p', dotDisk);
27
+ /**
28
+ * write volid .disk/info
29
+ * Required
30
+ */
31
+ let volidContent = "Linux live";
32
+ if (this.hidden) {
33
+ fs.writeFileSync(path.join(dotDisk, 'info'), volidContent, 'utf-8');
34
+ return;
35
+ }
36
+ /**
37
+ * write volid .disk/info
38
+ * Complete
39
+ */
40
+ volidContent = this.settings.isoFilename;
41
+ fs.writeFileSync(path.join(dotDisk, 'info'), volidContent, 'utf-8');
42
+ /**
43
+ * A readme now replace the old .disk/info
44
+ */
45
+ let readme = ``;
46
+ readme += `# penguins_eggs\n`;
47
+ readme += `\n`;
48
+ readme += `Volinfo: ${this.volid}\n`;
49
+ readme += `Image created at: ${Utils.formatDate(new Date())} using penguins_eggs v. ${Utils.getPackageVersion()})\n`;
50
+ readme += `repo: [penguins-eggs](https://github.com/penguins-eggs)\n`;
51
+ readme += `blog: [penguins-eggs.net](https://penguins-eggs.net)\n`;
52
+ readme += `author: [Piero Proietti](mailto://piero.proietti@gmail.com)\n`;
53
+ fs.writeFileSync(path.join(dotDisk, 'README.md'), readme, 'utf-8');
54
+ /**
55
+ * write mksquashfs as .disk/mksquashfs
56
+ */
57
+ fs.writeFileSync(path.join(dotDisk, 'mksquashfs'), mksquashfs, 'utf-8');
58
+ /**
59
+ * write mkisofs as .disk/mkisofs
60
+ */
61
+ fs.writeFileSync(path.join(dotDisk, 'mkisofs'), mkisofs, 'utf-8');
62
+ /**
63
+ * touch uuid as file name on .disk/id
64
+ *
65
+ * This is a DEBIAN standard
66
+ */
67
+ if (this.uuid && this.uuid.trim() !== '') {
68
+ shx.mkdir(path.join(dotDisk, 'id'));
69
+ shx.touch(path.join(dotDisk, 'id', this.uuid));
70
+ }
71
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ./src/classes/ovary.d/make-efi.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
+ *
11
+ * @param this
12
+ * @param theme
13
+ */
14
+ export declare function makeEfi(this: Ovary, theme?: string): Promise<void>;