penguins-eggs 25.10.19 → 25.10.23

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 (451) hide show
  1. package/.oclif.manifest.json +1 -1
  2. package/README.md +767 -2
  3. package/README.pdf +1723 -1731
  4. package/addons/eggs/theme/livecd/isolinux.main.simple.cfg +0 -1
  5. package/package.json +3 -3
  6. package/scripts/boot-encrypted-root.sh +177 -0
  7. package/scripts/mount-encrypted-home.sh +92 -56
  8. package/dist/classes/bleach.d.ts +0 -37
  9. package/dist/classes/bleach.js +0 -148
  10. package/dist/classes/cli-autologin.d.ts +0 -52
  11. package/dist/classes/cli-autologin.js +0 -252
  12. package/dist/classes/compressors.d.ts +0 -54
  13. package/dist/classes/compressors.js +0 -109
  14. package/dist/classes/daddy.d.ts +0 -26
  15. package/dist/classes/daddy.js +0 -175
  16. package/dist/classes/distro.d.ts +0 -32
  17. package/dist/classes/distro.js +0 -363
  18. package/dist/classes/diversions.d.ts +0 -53
  19. package/dist/classes/diversions.js +0 -152
  20. package/dist/classes/incubation/branding.d.ts +0 -17
  21. package/dist/classes/incubation/branding.js +0 -85
  22. package/dist/classes/incubation/customize/customize-partitions.d.ts +0 -4
  23. package/dist/classes/incubation/customize/customize-partitions.js +0 -29
  24. package/dist/classes/incubation/fisherman-helper/initcpio.d.ts +0 -1
  25. package/dist/classes/incubation/fisherman-helper/initcpio.js +0 -69
  26. package/dist/classes/incubation/fisherman-helper/packages.d.ts +0 -20
  27. package/dist/classes/incubation/fisherman-helper/packages.js +0 -72
  28. package/dist/classes/incubation/fisherman-helper/settings.d.ts +0 -15
  29. package/dist/classes/incubation/fisherman-helper/settings.js +0 -116
  30. package/dist/classes/incubation/fisherman.d.ts +0 -71
  31. package/dist/classes/incubation/fisherman.js +0 -281
  32. package/dist/classes/incubation/incubator.d/alpine.d.ts +0 -32
  33. package/dist/classes/incubation/incubator.d/alpine.js +0 -78
  34. package/dist/classes/incubation/incubator.d/archlinux.d.ts +0 -32
  35. package/dist/classes/incubation/incubator.d/archlinux.js +0 -82
  36. package/dist/classes/incubation/incubator.d/bionic.d.ts +0 -32
  37. package/dist/classes/incubation/incubator.d/bionic.js +0 -83
  38. package/dist/classes/incubation/incubator.d/buster.d.ts +0 -32
  39. package/dist/classes/incubation/incubator.d/buster.js +0 -101
  40. package/dist/classes/incubation/incubator.d/fedora.d.ts +0 -32
  41. package/dist/classes/incubation/incubator.d/fedora.js +0 -81
  42. package/dist/classes/incubation/incubator.d/focal.d.ts +0 -32
  43. package/dist/classes/incubation/incubator.d/focal.js +0 -85
  44. package/dist/classes/incubation/incubator.d/manjaro.d.ts +0 -32
  45. package/dist/classes/incubation/incubator.d/manjaro.js +0 -82
  46. package/dist/classes/incubation/incubator.d/noble.d.ts +0 -32
  47. package/dist/classes/incubation/incubator.d/noble.js +0 -102
  48. package/dist/classes/incubation/incubator.d/openmamba.d.ts +0 -32
  49. package/dist/classes/incubation/incubator.d/openmamba.js +0 -81
  50. package/dist/classes/incubation/incubator.d/opensuse.d.ts +0 -32
  51. package/dist/classes/incubation/incubator.d/opensuse.js +0 -81
  52. package/dist/classes/incubation/incubator.d/trixie.d.ts +0 -32
  53. package/dist/classes/incubation/incubator.d/trixie.js +0 -98
  54. package/dist/classes/incubation/incubator.d.ts +0 -48
  55. package/dist/classes/incubation/incubator.js +0 -378
  56. package/dist/classes/incubation/installer.d.ts +0 -13
  57. package/dist/classes/incubation/installer.js +0 -52
  58. package/dist/classes/keyboards.d.ts +0 -50
  59. package/dist/classes/keyboards.js +0 -287
  60. package/dist/classes/locales.d.ts +0 -21
  61. package/dist/classes/locales.js +0 -77
  62. package/dist/classes/network.d.ts +0 -37
  63. package/dist/classes/network.js +0 -98
  64. package/dist/classes/ovary.d/bind-live-fs.d.ts +0 -18
  65. package/dist/classes/ovary.d/bind-live-fs.js +0 -185
  66. package/dist/classes/ovary.d/bind-vfs.d.ts +0 -17
  67. package/dist/classes/ovary.d/bind-vfs.js +0 -37
  68. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +0 -13
  69. package/dist/classes/ovary.d/create-xdg-autostart.js +0 -194
  70. package/dist/classes/ovary.d/edit-live-fs.d.ts +0 -20
  71. package/dist/classes/ovary.d/edit-live-fs.js +0 -239
  72. package/dist/classes/ovary.d/fertilization.d.ts +0 -12
  73. package/dist/classes/ovary.d/fertilization.js +0 -53
  74. package/dist/classes/ovary.d/finished.d.ts +0 -13
  75. package/dist/classes/ovary.d/finished.js +0 -40
  76. package/dist/classes/ovary.d/initrd.d.ts +0 -21
  77. package/dist/classes/ovary.d/initrd.js +0 -95
  78. package/dist/classes/ovary.d/kernel-copy.d.ts +0 -12
  79. package/dist/classes/ovary.d/kernel-copy.js +0 -22
  80. package/dist/classes/ovary.d/live-create-structure.d.ts +0 -12
  81. package/dist/classes/ovary.d/live-create-structure.js +0 -70
  82. package/dist/classes/ovary.d/luks-get-password.d.ts +0 -12
  83. package/dist/classes/ovary.d/luks-get-password.js +0 -57
  84. package/dist/classes/ovary.d/luks-home-support.d.ts +0 -12
  85. package/dist/classes/ovary.d/luks-home-support.js +0 -75
  86. package/dist/classes/ovary.d/luks-home.d.ts +0 -15
  87. package/dist/classes/ovary.d/luks-home.js +0 -140
  88. package/dist/classes/ovary.d/luks-root-bootstrap-builder.d.ts +0 -11
  89. package/dist/classes/ovary.d/luks-root-bootstrap-builder.js +0 -45
  90. package/dist/classes/ovary.d/luks-root.d.ts +0 -15
  91. package/dist/classes/ovary.d/luks-root.js +0 -126
  92. package/dist/classes/ovary.d/make-dot-disk.d.ts +0 -12
  93. package/dist/classes/ovary.d/make-dot-disk.js +0 -62
  94. package/dist/classes/ovary.d/make-efi.d.ts +0 -14
  95. package/dist/classes/ovary.d/make-efi.js +0 -274
  96. package/dist/classes/ovary.d/make-iso.d.ts +0 -13
  97. package/dist/classes/ovary.d/make-iso.js +0 -45
  98. package/dist/classes/ovary.d/make-squashfs.d.ts +0 -18
  99. package/dist/classes/ovary.d/make-squashfs.js +0 -114
  100. package/dist/classes/ovary.d/merged.d.ts +0 -27
  101. package/dist/classes/ovary.d/merged.js +0 -78
  102. package/dist/classes/ovary.d/produce.d.ts +0 -23
  103. package/dist/classes/ovary.d/produce.js +0 -347
  104. package/dist/classes/ovary.d/rexec.d.ts +0 -13
  105. package/dist/classes/ovary.d/rexec.js +0 -34
  106. package/dist/classes/ovary.d/syslinux.d.ts +0 -12
  107. package/dist/classes/ovary.d/syslinux.js +0 -82
  108. package/dist/classes/ovary.d/user-create-live.d.ts +0 -14
  109. package/dist/classes/ovary.d/user-create-live.js +0 -97
  110. package/dist/classes/ovary.d/users-remove.d.ts +0 -9
  111. package/dist/classes/ovary.d/users-remove.js +0 -38
  112. package/dist/classes/ovary.d/xorriso-command.d.ts +0 -14
  113. package/dist/classes/ovary.d/xorriso-command.js +0 -121
  114. package/dist/classes/ovary.d.ts +0 -106
  115. package/dist/classes/ovary.js +0 -116
  116. package/dist/classes/pacman.d/alpine.d.ts +0 -56
  117. package/dist/classes/pacman.d/alpine.js +0 -167
  118. package/dist/classes/pacman.d/archlinux.d.ts +0 -62
  119. package/dist/classes/pacman.d/archlinux.js +0 -128
  120. package/dist/classes/pacman.d/debian.d.ts +0 -65
  121. package/dist/classes/pacman.d/debian.js +0 -143
  122. package/dist/classes/pacman.d/fedora.d.ts +0 -53
  123. package/dist/classes/pacman.d/fedora.js +0 -107
  124. package/dist/classes/pacman.d/openmamba.d.ts +0 -52
  125. package/dist/classes/pacman.d/openmamba.js +0 -106
  126. package/dist/classes/pacman.d/opensuse.d.ts +0 -53
  127. package/dist/classes/pacman.d/opensuse.js +0 -109
  128. package/dist/classes/pacman.d.ts +0 -139
  129. package/dist/classes/pacman.js +0 -683
  130. package/dist/classes/pve-live.d.ts +0 -17
  131. package/dist/classes/pve-live.js +0 -52
  132. package/dist/classes/pxe.d.ts +0 -76
  133. package/dist/classes/pxe.js +0 -353
  134. package/dist/classes/settings.d.ts +0 -52
  135. package/dist/classes/settings.js +0 -185
  136. package/dist/classes/sources_list.d.ts +0 -28
  137. package/dist/classes/sources_list.js +0 -89
  138. package/dist/classes/systemctl.d.ts +0 -47
  139. package/dist/classes/systemctl.js +0 -86
  140. package/dist/classes/tailor.d.ts +0 -50
  141. package/dist/classes/tailor.js +0 -563
  142. package/dist/classes/tools.d.ts +0 -26
  143. package/dist/classes/tools.js +0 -50
  144. package/dist/classes/users.d.ts +0 -28
  145. package/dist/classes/users.js +0 -143
  146. package/dist/classes/utils.d/kernel.d.ts +0 -39
  147. package/dist/classes/utils.d/kernel.js +0 -206
  148. package/dist/classes/utils.d.ts +0 -328
  149. package/dist/classes/utils.js +0 -958
  150. package/dist/classes/xdg.d.ts +0 -45
  151. package/dist/classes/xdg.js +0 -337
  152. package/dist/classes/yolk.d.ts +0 -33
  153. package/dist/classes/yolk.js +0 -114
  154. package/dist/commands/adapt.d.ts +0 -17
  155. package/dist/commands/adapt.js +0 -33
  156. package/dist/commands/analyze.d.ts +0 -26
  157. package/dist/commands/analyze.js +0 -95
  158. package/dist/commands/calamares.d.ts +0 -29
  159. package/dist/commands/calamares.js +0 -112
  160. package/dist/commands/config.d.ts +0 -35
  161. package/dist/commands/config.js +0 -120
  162. package/dist/commands/cuckoo.d.ts +0 -17
  163. package/dist/commands/cuckoo.js +0 -61
  164. package/dist/commands/dad.d.ts +0 -21
  165. package/dist/commands/dad.js +0 -47
  166. package/dist/commands/export/iso.d.ts +0 -19
  167. package/dist/commands/export/iso.js +0 -55
  168. package/dist/commands/export/pkg.d.ts +0 -29
  169. package/dist/commands/export/pkg.js +0 -173
  170. package/dist/commands/export/tarballs.d.ts +0 -27
  171. package/dist/commands/export/tarballs.js +0 -79
  172. package/dist/commands/install.d.ts +0 -39
  173. package/dist/commands/install.js +0 -113
  174. package/dist/commands/kill.d.ts +0 -24
  175. package/dist/commands/kill.js +0 -50
  176. package/dist/commands/love.d.ts +0 -24
  177. package/dist/commands/love.js +0 -111
  178. package/dist/commands/mom.d.ts +0 -16
  179. package/dist/commands/mom.js +0 -30
  180. package/dist/commands/pods.d.ts +0 -22
  181. package/dist/commands/pods.js +0 -92
  182. package/dist/commands/produce.d.ts +0 -36
  183. package/dist/commands/produce.js +0 -218
  184. package/dist/commands/status.d.ts +0 -23
  185. package/dist/commands/status.js +0 -31
  186. package/dist/commands/tools/clean.d.ts +0 -18
  187. package/dist/commands/tools/clean.js +0 -37
  188. package/dist/commands/tools/repo.d.ts +0 -31
  189. package/dist/commands/tools/repo.js +0 -246
  190. package/dist/commands/tools/skel.d.ts +0 -18
  191. package/dist/commands/tools/skel.js +0 -44
  192. package/dist/commands/tools/stat.d.ts +0 -31
  193. package/dist/commands/tools/stat.js +0 -70
  194. package/dist/commands/tools/yolk.d.ts +0 -24
  195. package/dist/commands/tools/yolk.js +0 -45
  196. package/dist/commands/update.d.ts +0 -46
  197. package/dist/commands/update.js +0 -238
  198. package/dist/commands/wardrobe/get.d.ts +0 -23
  199. package/dist/commands/wardrobe/get.js +0 -52
  200. package/dist/commands/wardrobe/list.d.ts +0 -24
  201. package/dist/commands/wardrobe/list.js +0 -125
  202. package/dist/commands/wardrobe/show.d.ts +0 -25
  203. package/dist/commands/wardrobe/show.js +0 -97
  204. package/dist/commands/wardrobe/wear.d.ts +0 -26
  205. package/dist/commands/wardrobe/wear.js +0 -84
  206. package/dist/dhcpd-proxy/classes/packet.d.ts +0 -36
  207. package/dist/dhcpd-proxy/classes/packet.js +0 -124
  208. package/dist/dhcpd-proxy/index.d.ts +0 -4
  209. package/dist/dhcpd-proxy/index.js +0 -4
  210. package/dist/dhcpd-proxy/interfaces/i-pxe.d.ts +0 -45
  211. package/dist/dhcpd-proxy/interfaces/i-pxe.js +0 -1
  212. package/dist/dhcpd-proxy/lib/packet/converters.d.ts +0 -11
  213. package/dist/dhcpd-proxy/lib/packet/converters.js +0 -395
  214. package/dist/dhcpd-proxy/lib/packet/message-types.d.ts +0 -10
  215. package/dist/dhcpd-proxy/lib/packet/message-types.js +0 -12
  216. package/dist/dhcpd-proxy/lib/packet/options.d.ts +0 -8
  217. package/dist/dhcpd-proxy/lib/packet/options.js +0 -264
  218. package/dist/dhcpd-proxy/lib/sprintf.d.ts +0 -6
  219. package/dist/dhcpd-proxy/lib/sprintf.js +0 -130
  220. package/dist/dhcpd-proxy/lib/utils.d.ts +0 -126
  221. package/dist/dhcpd-proxy/lib/utils.js +0 -255
  222. package/dist/dhcpd-proxy/simple-proxy.d.ts +0 -11
  223. package/dist/dhcpd-proxy/simple-proxy.js +0 -118
  224. package/dist/index.d.ts +0 -8
  225. package/dist/index.js +0 -8
  226. package/dist/interfaces/calamares/i-calamares-bootloader.d.ts +0 -23
  227. package/dist/interfaces/calamares/i-calamares-bootloader.js +0 -7
  228. package/dist/interfaces/calamares/i-calamares-branding.d.ts +0 -46
  229. package/dist/interfaces/calamares/i-calamares-branding.js +0 -1
  230. package/dist/interfaces/calamares/i-calamares-displaymanager.d.ts +0 -34
  231. package/dist/interfaces/calamares/i-calamares-displaymanager.js +0 -1
  232. package/dist/interfaces/calamares/i-calamares-finished.d.ts +0 -14
  233. package/dist/interfaces/calamares/i-calamares-finished.js +0 -1
  234. package/dist/interfaces/calamares/i-calamares-packages.d.ts +0 -26
  235. package/dist/interfaces/calamares/i-calamares-packages.js +0 -1
  236. package/dist/interfaces/calamares/i-calamares-partitions.d.ts +0 -39
  237. package/dist/interfaces/calamares/i-calamares-partitions.js +0 -1
  238. package/dist/interfaces/calamares/i-calamares-settings.d.ts +0 -36
  239. package/dist/interfaces/calamares/i-calamares-settings.js +0 -1
  240. package/dist/interfaces/i-addons.d.ts +0 -12
  241. package/dist/interfaces/i-addons.js +0 -8
  242. package/dist/interfaces/i-analyze.d.ts +0 -17
  243. package/dist/interfaces/i-analyze.js +0 -17
  244. package/dist/interfaces/i-app.d.ts +0 -14
  245. package/dist/interfaces/i-app.js +0 -8
  246. package/dist/interfaces/i-config-tools.d.ts +0 -15
  247. package/dist/interfaces/i-config-tools.js +0 -8
  248. package/dist/interfaces/i-devices.d.ts +0 -20
  249. package/dist/interfaces/i-devices.js +0 -8
  250. package/dist/interfaces/i-distro.d.ts +0 -23
  251. package/dist/interfaces/i-distro.js +0 -8
  252. package/dist/interfaces/i-drive-list.d.ts +0 -33
  253. package/dist/interfaces/i-drive-list.js +0 -8
  254. package/dist/interfaces/i-eggs-config.d.ts +0 -32
  255. package/dist/interfaces/i-eggs-config.js +0 -8
  256. package/dist/interfaces/i-excludes.d.ts +0 -14
  257. package/dist/interfaces/i-excludes.js +0 -8
  258. package/dist/interfaces/i-exec.d.ts +0 -11
  259. package/dist/interfaces/i-exec.js +0 -8
  260. package/dist/interfaces/i-initrd.d.ts +0 -13
  261. package/dist/interfaces/i-initrd.js +0 -8
  262. package/dist/interfaces/i-install.d.ts +0 -16
  263. package/dist/interfaces/i-install.js +0 -8
  264. package/dist/interfaces/i-installer.d.ts +0 -17
  265. package/dist/interfaces/i-installer.js +0 -8
  266. package/dist/interfaces/i-luks-passphrase.d.ts +0 -11
  267. package/dist/interfaces/i-luks-passphrase.js +0 -8
  268. package/dist/interfaces/i-materia.d.ts +0 -36
  269. package/dist/interfaces/i-materia.js +0 -8
  270. package/dist/interfaces/i-net.d.ts +0 -16
  271. package/dist/interfaces/i-net.js +0 -8
  272. package/dist/interfaces/i-os-release.d.ts +0 -5
  273. package/dist/interfaces/i-os-release.js +0 -1
  274. package/dist/interfaces/i-packages.d.ts +0 -16
  275. package/dist/interfaces/i-packages.js +0 -8
  276. package/dist/interfaces/i-partitions.d.ts +0 -16
  277. package/dist/interfaces/i-partitions.js +0 -8
  278. package/dist/interfaces/i-pxe.d.ts +0 -45
  279. package/dist/interfaces/i-pxe.js +0 -1
  280. package/dist/interfaces/i-remix.d.ts +0 -21
  281. package/dist/interfaces/i-remix.js +0 -8
  282. package/dist/interfaces/i-settings.d.ts +0 -33
  283. package/dist/interfaces/i-settings.js +0 -8
  284. package/dist/interfaces/i-user.d.ts +0 -14
  285. package/dist/interfaces/i-user.js +0 -8
  286. package/dist/interfaces/i-workdir.d.ts +0 -14
  287. package/dist/interfaces/i-workdir.js +0 -8
  288. package/dist/interfaces/i-xkb-model.d.ts +0 -24
  289. package/dist/interfaces/i-xkb-model.js +0 -8
  290. package/dist/interfaces/index.d.ts +0 -26
  291. package/dist/interfaces/index.js +0 -8
  292. package/dist/krill/classes/cfs.d.ts +0 -17
  293. package/dist/krill/classes/cfs.js +0 -39
  294. package/dist/krill/classes/krill_enums.d.ts +0 -37
  295. package/dist/krill/classes/krill_enums.js +0 -41
  296. package/dist/krill/classes/prepare.d/confirm.d.ts +0 -5
  297. package/dist/krill/classes/prepare.d/confirm.js +0 -30
  298. package/dist/krill/classes/prepare.d/keyboard.d.ts +0 -14
  299. package/dist/krill/classes/prepare.d/keyboard.js +0 -62
  300. package/dist/krill/classes/prepare.d/location.d.ts +0 -17
  301. package/dist/krill/classes/prepare.d/location.js +0 -59
  302. package/dist/krill/classes/prepare.d/network.d.ts +0 -14
  303. package/dist/krill/classes/prepare.d/network.js +0 -68
  304. package/dist/krill/classes/prepare.d/partitions.d.ts +0 -14
  305. package/dist/krill/classes/prepare.d/partitions.js +0 -86
  306. package/dist/krill/classes/prepare.d/summary.d.ts +0 -15
  307. package/dist/krill/classes/prepare.d/summary.js +0 -72
  308. package/dist/krill/classes/prepare.d/users.d.ts +0 -6
  309. package/dist/krill/classes/prepare.d/users.js +0 -63
  310. package/dist/krill/classes/prepare.d/welcome.d.ts +0 -6
  311. package/dist/krill/classes/prepare.d/welcome.js +0 -30
  312. package/dist/krill/classes/prepare.d.ts +0 -89
  313. package/dist/krill/classes/prepare.js +0 -319
  314. package/dist/krill/classes/sequence.d/add_user.d.ts +0 -20
  315. package/dist/krill/classes/sequence.d/add_user.js +0 -77
  316. package/dist/krill/classes/sequence.d/bootloader.d.ts +0 -14
  317. package/dist/krill/classes/sequence.d/bootloader.js +0 -117
  318. package/dist/krill/classes/sequence.d/bootloader_config.d.ts +0 -14
  319. package/dist/krill/classes/sequence.d/bootloader_config.js +0 -192
  320. package/dist/krill/classes/sequence.d/change_password.d.ts +0 -15
  321. package/dist/krill/classes/sequence.d/change_password.js +0 -18
  322. package/dist/krill/classes/sequence.d/del_live_user.d.ts +0 -14
  323. package/dist/krill/classes/sequence.d/del_live_user.js +0 -39
  324. package/dist/krill/classes/sequence.d/fstab.d.ts +0 -14
  325. package/dist/krill/classes/sequence.d/fstab.js +0 -177
  326. package/dist/krill/classes/sequence.d/grubcfg.d.ts +0 -17
  327. package/dist/krill/classes/sequence.d/grubcfg.js +0 -35
  328. package/dist/krill/classes/sequence.d/hostname.d.ts +0 -13
  329. package/dist/krill/classes/sequence.d/hostname.js +0 -50
  330. package/dist/krill/classes/sequence.d/initramfs.d.ts +0 -13
  331. package/dist/krill/classes/sequence.d/initramfs.js +0 -54
  332. package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +0 -14
  333. package/dist/krill/classes/sequence.d/initramfs_cfg.js +0 -35
  334. package/dist/krill/classes/sequence.d/locale.d.ts +0 -13
  335. package/dist/krill/classes/sequence.d/locale.js +0 -91
  336. package/dist/krill/classes/sequence.d/locale_cfg.d.ts +0 -10
  337. package/dist/krill/classes/sequence.d/locale_cfg.js +0 -58
  338. package/dist/krill/classes/sequence.d/m_keyboard.d.ts +0 -14
  339. package/dist/krill/classes/sequence.d/m_keyboard.js +0 -58
  340. package/dist/krill/classes/sequence.d/machine_id.d.ts +0 -15
  341. package/dist/krill/classes/sequence.d/machine_id.js +0 -33
  342. package/dist/krill/classes/sequence.d/mkfs.d.ts +0 -15
  343. package/dist/krill/classes/sequence.d/mkfs.js +0 -88
  344. package/dist/krill/classes/sequence.d/mount_fs.d.ts +0 -17
  345. package/dist/krill/classes/sequence.d/mount_fs.js +0 -68
  346. package/dist/krill/classes/sequence.d/mount_vfs.d.ts +0 -17
  347. package/dist/krill/classes/sequence.d/mount_vfs.js +0 -59
  348. package/dist/krill/classes/sequence.d/network_cfg.d.ts +0 -19
  349. package/dist/krill/classes/sequence.d/network_cfg.js +0 -73
  350. package/dist/krill/classes/sequence.d/packages.d.ts +0 -14
  351. package/dist/krill/classes/sequence.d/packages.js +0 -111
  352. package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +0 -17
  353. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +0 -73
  354. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +0 -16
  355. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +0 -51
  356. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +0 -17
  357. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +0 -77
  358. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +0 -10
  359. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +0 -33
  360. package/dist/krill/classes/sequence.d/partition.d.ts +0 -14
  361. package/dist/krill/classes/sequence.d/partition.js +0 -84
  362. package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +0 -13
  363. package/dist/krill/classes/sequence.d/remove_installer_link.js +0 -35
  364. package/dist/krill/classes/sequence.d/umount.d.ts +0 -14
  365. package/dist/krill/classes/sequence.d/umount.js +0 -28
  366. package/dist/krill/classes/sequence.d/unpackfs.d.ts +0 -13
  367. package/dist/krill/classes/sequence.d/unpackfs.js +0 -20
  368. package/dist/krill/classes/sequence.d.ts +0 -134
  369. package/dist/krill/classes/sequence.js +0 -400
  370. package/dist/krill/components/finished.d.ts +0 -16
  371. package/dist/krill/components/finished.js +0 -56
  372. package/dist/krill/components/information.d.ts +0 -8
  373. package/dist/krill/components/information.js +0 -162
  374. package/dist/krill/components/install.d.ts +0 -15
  375. package/dist/krill/components/install.js +0 -60
  376. package/dist/krill/components/keyboard.d.ts +0 -16
  377. package/dist/krill/components/keyboard.js +0 -54
  378. package/dist/krill/components/location.d.ts +0 -16
  379. package/dist/krill/components/location.js +0 -59
  380. package/dist/krill/components/network.d.ts +0 -19
  381. package/dist/krill/components/network.js +0 -65
  382. package/dist/krill/components/partitions.d.ts +0 -18
  383. package/dist/krill/components/partitions.js +0 -89
  384. package/dist/krill/components/steps.d.ts +0 -13
  385. package/dist/krill/components/steps.js +0 -148
  386. package/dist/krill/components/summary.d.ts +0 -25
  387. package/dist/krill/components/summary.js +0 -77
  388. package/dist/krill/components/title.d.ts +0 -11
  389. package/dist/krill/components/title.js +0 -35
  390. package/dist/krill/components/users.d.ts +0 -24
  391. package/dist/krill/components/users.js +0 -80
  392. package/dist/krill/components/welcome.d.ts +0 -13
  393. package/dist/krill/components/welcome.js +0 -63
  394. package/dist/krill/interfaces/i_krill.d.ts +0 -44
  395. package/dist/krill/interfaces/i_krill.js +0 -8
  396. package/dist/krill/interfaces/i_krill_config.d.ts +0 -35
  397. package/dist/krill/interfaces/i_krill_config.js +0 -8
  398. package/dist/krill/lib/get_address.d.ts +0 -8
  399. package/dist/krill/lib/get_address.js +0 -23
  400. package/dist/krill/lib/get_dns.d.ts +0 -8
  401. package/dist/krill/lib/get_dns.js +0 -23
  402. package/dist/krill/lib/get_domain.d.ts +0 -8
  403. package/dist/krill/lib/get_domain.js +0 -23
  404. package/dist/krill/lib/get_gateway.d.ts +0 -8
  405. package/dist/krill/lib/get_gateway.js +0 -23
  406. package/dist/krill/lib/get_hostname.d.ts +0 -8
  407. package/dist/krill/lib/get_hostname.js +0 -23
  408. package/dist/krill/lib/get_luks_passphrase.d.ts +0 -8
  409. package/dist/krill/lib/get_luks_passphrase.js +0 -32
  410. package/dist/krill/lib/get_netmask.d.ts +0 -8
  411. package/dist/krill/lib/get_netmask.js +0 -23
  412. package/dist/krill/lib/get_password.d.ts +0 -8
  413. package/dist/krill/lib/get_password.js +0 -36
  414. package/dist/krill/lib/get_userfullname.d.ts +0 -8
  415. package/dist/krill/lib/get_userfullname.js +0 -23
  416. package/dist/krill/lib/get_username.d.ts +0 -8
  417. package/dist/krill/lib/get_username.js +0 -23
  418. package/dist/krill/lib/select_address_type.d.ts +0 -8
  419. package/dist/krill/lib/select_address_type.js +0 -24
  420. package/dist/krill/lib/select_filesystem_type.d.ts +0 -8
  421. package/dist/krill/lib/select_filesystem_type.js +0 -40
  422. package/dist/krill/lib/select_installation_device.d.ts +0 -8
  423. package/dist/krill/lib/select_installation_device.js +0 -40
  424. package/dist/krill/lib/select_installation_mode.d.ts +0 -9
  425. package/dist/krill/lib/select_installation_mode.js +0 -25
  426. package/dist/krill/lib/select_interface.d.ts +0 -8
  427. package/dist/krill/lib/select_interface.js +0 -24
  428. package/dist/krill/lib/select_keyboard_layout.d.ts +0 -11
  429. package/dist/krill/lib/select_keyboard_layout.js +0 -36
  430. package/dist/krill/lib/select_keyboard_model.d.ts +0 -11
  431. package/dist/krill/lib/select_keyboard_model.js +0 -34
  432. package/dist/krill/lib/select_keyboard_option.d.ts +0 -11
  433. package/dist/krill/lib/select_keyboard_option.js +0 -34
  434. package/dist/krill/lib/select_keyboard_variant.d.ts +0 -11
  435. package/dist/krill/lib/select_keyboard_variant.js +0 -35
  436. package/dist/krill/lib/select_languages.d.ts +0 -8
  437. package/dist/krill/lib/select_languages.js +0 -28
  438. package/dist/krill/lib/select_regions.d.ts +0 -8
  439. package/dist/krill/lib/select_regions.js +0 -24
  440. package/dist/krill/lib/select_replaced_partition.d.ts +0 -8
  441. package/dist/krill/lib/select_replaced_partition.js +0 -31
  442. package/dist/krill/lib/select_user_swap_choice.d.ts +0 -9
  443. package/dist/krill/lib/select_user_swap_choice.js +0 -35
  444. package/dist/krill/lib/select_zones.d.ts +0 -8
  445. package/dist/krill/lib/select_zones.js +0 -518
  446. package/dist/lib/kill_me_softly.d.ts +0 -11
  447. package/dist/lib/kill_me_softly.js +0 -61
  448. package/dist/lib/utils.d.ts +0 -19
  449. package/dist/lib/utils.js +0 -65
  450. package/scripts/luks-root-bootstrap-create.sh +0 -235
  451. package/scripts/luks-root-unlock.sh +0 -172
@@ -1,12 +0,0 @@
1
- /**
2
- * ./src/classes/ovary.d/luks-home-support.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
- * Installa i file necessari per sbloccare home.img LUKS durante il boot
11
- */
12
- export declare function installHomecryptSupport(this: Ovary, squashfsRoot: string, homeImgPath: string): void;
@@ -1,75 +0,0 @@
1
- /**
2
- * ./src/classes/ovary.d/luks-home-support.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 'path';
11
- import { fileURLToPath } from 'url';
12
- import { dirname } from 'path';
13
- import Utils from '../utils.js';
14
- const __filename = fileURLToPath(import.meta.url);
15
- const __dirname = dirname(__filename);
16
- /**
17
- * Installa i file necessari per sbloccare home.img LUKS durante il boot
18
- */
19
- export function installHomecryptSupport(squashfsRoot, homeImgPath) {
20
- Utils.warning('installing encrypted home support...');
21
- // console.log("squashfsRoot:", squashfsRoot)
22
- // console.log("homeImgPath:", homeImgPath)
23
- // Leggi il template bash
24
- const templatePath = path.join(__dirname, '../../../scripts/mount-encrypted-home.sh');
25
- let bashScript = fs.readFileSync(templatePath, 'utf8');
26
- // Sostituisci il placeholder con il path reale
27
- bashScript = bashScript.replace('__HOME_IMG_PATH__', homeImgPath);
28
- // Systemd service
29
- const systemdService = `[Unit]
30
- Description=Unlock and mount encrypted home.img
31
- DefaultDependencies=no
32
- After=systemd-udev-settle.service local-fs-pre.target
33
- Before=local-fs.target display-manager.service
34
- ConditionPathExists=${homeImgPath}
35
-
36
- [Service]
37
- Type=oneshot
38
- RemainAfterExit=yes
39
- StandardInput=tty
40
- StandardOutput=journal+console
41
- StandardError=journal+console
42
- TTYPath=/dev/console
43
- TTYReset=yes
44
- TTYVHangup=yes
45
- ExecStart=/usr/local/bin/mount-encrypted-home.sh
46
- ExecStop=/bin/bash -c 'umount /home && cryptsetup close live-home'
47
-
48
- [Install]
49
- WantedBy=local-fs.target
50
- `;
51
- // Percorsi di destinazione
52
- const scriptPath = path.join(squashfsRoot, 'usr/local/bin/mount-encrypted-home.sh');
53
- const servicePath = path.join(squashfsRoot, 'etc/systemd/system/mount-encrypted-home.service');
54
- const symlinkDir = path.join(squashfsRoot, 'etc/systemd/system/local-fs.target.wants');
55
- const symlinkPath = path.join(symlinkDir, 'mount-encrypted-home.service');
56
- // Crea le directory necessarie
57
- fs.mkdirSync(path.dirname(scriptPath), { recursive: true });
58
- fs.mkdirSync(path.dirname(servicePath), { recursive: true });
59
- fs.mkdirSync(symlinkDir, { recursive: true });
60
- // Scrivi lo script
61
- fs.writeFileSync(scriptPath, bashScript);
62
- fs.chmodSync(scriptPath, 0o755);
63
- // console.log(`✓ Created: ${scriptPath}`)
64
- // Scrivi il service
65
- fs.writeFileSync(servicePath, systemdService);
66
- // console.log(`✓ Created: ${servicePath}`)
67
- // Crea il symlink per abilitare il service
68
- if (fs.existsSync(symlinkPath)) {
69
- fs.unlinkSync(symlinkPath);
70
- }
71
- fs.symlinkSync('../mount-encrypted-home.service', symlinkPath);
72
- // console.log(`✓ Enabled: mount-encrypted-home.service`)
73
- // console.log('Encrypted home support installed successfully')
74
- // console.log('Logs will be available at: /var/log/mount-encrypted-home.log')
75
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * ./src/classes/ovary.d/luks-home.ts
3
- * penguins-eggs v.25.10.x / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- */
8
- import Ovary from '../ovary.js';
9
- /**
10
- * luksHome()
11
- *
12
- * create a container LUKS with the entire
13
- * filesystem.squashfs
14
- */
15
- export declare function luksHome(this: Ovary, clone?: boolean, homecrypt?: boolean): Promise<void>;
@@ -1,140 +0,0 @@
1
- /**
2
- * ./src/classes/ovary.d/luks-home.ts
3
- * penguins-eggs v.25.10.x / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- */
8
- // packages
9
- import fs from 'fs';
10
- import { spawn } from 'node:child_process';
11
- import Utils from '../utils.js';
12
- import { exec } from '../../lib/utils.js';
13
- /**
14
- * luksHome()
15
- *
16
- * create a container LUKS with the entire
17
- * filesystem.squashfs
18
- */
19
- export async function luksHome(clone = false, homecrypt = false) {
20
- try {
21
- /**
22
- * this.luksName = 'home.img';
23
- * this.luksFile = `/tmp/${luksName}`
24
- * this.luksDevice = `/dev/mapper/${luksName}`
25
- * this.luksMappedName = this.luksName
26
- * this.luksMountpoint = `/tmp/mnt/${luksName}`
27
- * this.luksPassword = 'evolution'
28
- */
29
- console.log();
30
- console.log('====================================');
31
- console.log(` Creating ${this.luksName}`);
32
- console.log('====================================');
33
- // Utils.warning('1. Calculation of space requirements...')
34
- let sizeString = (await exec('du -sb --exclude=/home/eggs /home', { capture: true })).data.trim().split(/\s+/)[0];
35
- let size = Number.parseInt(sizeString, 10);
36
- // const fsOverhead = Math.max(size * 0.1, 100 * 1024 * 1024)
37
- // const luksSize = size + fsOverhead + (size * 0.2) // +20% di sicurezza
38
- const luksSize = Math.ceil(size * 2);
39
- Utils.warning(`homes size: ${bytesToGB(size)}`);
40
- Utils.warning(`partition LUKS ${this.luksFile} size: ${bytesToGB(luksSize)}`);
41
- Utils.warning(`creating partition LUKS: ${this.luksFile}`);
42
- await executeCommand('truncate', ['--size', `${luksSize}`, this.luksFile]);
43
- Utils.warning(`formatting ${this.luksFile} as a LUKS volume...`);
44
- await executeCommand('cryptsetup', ['--batch-mode', 'luksFormat', this.luksFile], `${this.luksPassword}\n`);
45
- this.luksUuid = (await exec(`cryptsetup luksUUID ${this.luksFile}`, { capture: true, echo: false })).data.trim();
46
- Utils.warning(`LUKS uuid: ${this.luksUuid}`);
47
- Utils.warning(`opening the LUKS volume. It will be mapped to ${this.luksDevice}`);
48
- await executeCommand('cryptsetup', ['luksOpen', this.luksFile, this.luksMappedName], `${this.luksPassword}\n`);
49
- Utils.warning(`formatting c ext4 `);
50
- await exec(`mkfs.ext4 -L live-home ${this.luksDevice}`, this.echo);
51
- Utils.warning(`mounting ${this.luksDevice} on ${this.luksMountpoint}`);
52
- if (fs.existsSync(this.luksMountpoint)) {
53
- if (!Utils.isMountpoint(this.luksMountpoint)) {
54
- await exec(`rm -rf ${this.luksMountpoint}`, this.echo);
55
- }
56
- else {
57
- throw new Error(`${this.luksMountpoint} is already mounted, process will abort!`);
58
- }
59
- }
60
- await exec(`mkdir -p ${this.luksMountpoint}`, this.echo);
61
- await exec(`mount /dev/mapper/${this.luksName} ${this.luksMountpoint}`, this.echo);
62
- Utils.warning(`copying /home on ${this.luksMountpoint}`);
63
- await exec(`rsync -ah --exclude='eggs' /home/ ${this.luksMountpoint}`, this.echo);
64
- Utils.warning(`saving user accounts info...`);
65
- // Crea directory per backup system files
66
- await exec(`mkdir -p ${this.luksMountpoint}/.system-backup`, this.echo);
67
- // Filtra solo utenti con UID >= 1000
68
- await exec(`awk -F: '$3 >= 1000 {print}' /etc/passwd > ${this.luksMountpoint}/.system-backup/passwd`, this.echo);
69
- await exec(`awk -F: '$3 >= 1000 {print}' /etc/shadow > ${this.luksMountpoint}/.system-backup/shadow`, this.echo);
70
- // Per i gruppi: salva TUTTI (non filtrare per GID)
71
- // Gli utenti possono appartenere a gruppi di sistema (sudo, audio, video, etc.)
72
- await exec(`cp /etc/group ${this.luksMountpoint}/.system-backup/group`, this.echo);
73
- await exec(`cp /etc/gshadow ${this.luksMountpoint}/.system-backup/gshadow`, this.echo);
74
- Utils.warning(`unmount ${this.luksDevice}`);
75
- await exec(`umount ${this.luksMountpoint}`, this.echo);
76
- Utils.warning(`closing LUKS volume ${this.luksMappedName}.`);
77
- await executeCommand('cryptsetup', ['close', this.luksMappedName]);
78
- Utils.warning(`moving ${this.luksName} to (ISO)/live/.`);
79
- await exec(`mv ${this.luksFile} ${this.settings.iso_work}/live`, this.echo);
80
- Utils.warning('encryption process successfully completed!');
81
- /**
82
- * YOU MUST! unlink the key on production
83
- */
84
- // fs.unlinkSync(`${this.settings.iso_work}/live/home.key`)
85
- }
86
- catch (error) {
87
- if (error instanceof Error) {
88
- Utils.error(`ERROR: ${error.message}`);
89
- }
90
- else {
91
- Utils.error(`An unknown error has occurred.`);
92
- }
93
- Utils.warning('Cleaning performed following the error...');
94
- if (fs.existsSync(this.luksMountpoint)) {
95
- await exec(`umount -lf ${this.luksMountpoint}`).catch(() => { });
96
- }
97
- if (fs.existsSync(this.luksDevice)) {
98
- await executeCommand('cryptsetup', ['luksClose', this.luksName]).catch(() => { });
99
- }
100
- await Utils.pressKeyToExit();
101
- process.exit(1);
102
- }
103
- }
104
- /**
105
- * Funzione helper per eseguire comandi esterni in modo asincrono,
106
- * gestendo lo standard input per passare le password.
107
- * Restituisce una Promise che si risolve al successo o si rigetta in caso di errore.
108
- */
109
- function executeCommand(command, args, stdinData) {
110
- return new Promise((resolve, reject) => {
111
- // Se passiamo dati a stdin, dobbiamo usare 'pipe'. Altrimenti, 'inherit'.
112
- const stdioConfig = stdinData ? ['pipe', 'inherit', 'inherit'] : 'inherit';
113
- const process = spawn(command, args, { stdio: stdioConfig });
114
- // Se fornito, scriviamo i dati (es. la password) nello stdin del processo.
115
- if (stdinData && process.stdin) {
116
- process.stdin.write(stdinData);
117
- process.stdin.end();
118
- }
119
- process.on('error', (err) => {
120
- reject(new Error(`Error starting command "${command}": ${err.message}`));
121
- });
122
- process.on('close', (code) => {
123
- if (code === 0) {
124
- resolve(); // Success
125
- }
126
- else {
127
- reject(new Error(`Command "${command} ${args.join(' ')}" ended with error code ${code}`));
128
- }
129
- });
130
- });
131
- }
132
- /**
133
- * Converte bytes in gigabytes per la visualizzazione.
134
- */
135
- function bytesToGB(bytes) {
136
- if (bytes === 0)
137
- return '0.00 GB';
138
- const gigabytes = bytes / (1024 * 1024 * 1024);
139
- return gigabytes.toFixed(2) + ' GB';
140
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * luks-root-bootstrap-builder.ts
3
- *
4
- * Crea un filesystem.squashfs bootstrap completo con Debian
5
- * per sbloccare il sistema principale cifrato
6
- */
7
- import Ovary from '../ovary.js';
8
- /**
9
- * Crea il filesystem bootstrap completo
10
- */
11
- export declare function createBootstrapFilesystem(this: Ovary, outputSquashfs: string): Promise<void>;
@@ -1,45 +0,0 @@
1
- /**
2
- * luks-root-bootstrap-builder.ts
3
- *
4
- * Crea un filesystem.squashfs bootstrap completo con Debian
5
- * per sbloccare il sistema principale cifrato
6
- */
7
- import fs from 'fs';
8
- import path from 'path';
9
- import Utils from '../utils.js';
10
- import { exec } from '../../lib/utils.js';
11
- const __dirname = path.dirname(new URL(import.meta.url).pathname);
12
- /**
13
- * Crea il filesystem bootstrap completo
14
- */
15
- export async function createBootstrapFilesystem(outputSquashfs) {
16
- Utils.warning('Creating full Debian bootstrap filesystem...');
17
- Utils.warning('This will take several minutes...');
18
- const scriptsDir = path.join(__dirname, '../../../scripts');
19
- const createScript = path.join(scriptsDir, 'luks-root-bootstrap-create.sh');
20
- const unlockScript = path.join(scriptsDir, 'luks-root-unlock.sh');
21
- // Verifica che gli script esistano
22
- if (!fs.existsSync(createScript)) {
23
- throw new Error(`Build script not found: ${createScript}`);
24
- }
25
- if (!fs.existsSync(unlockScript)) {
26
- throw new Error(`Unlock script not found: ${unlockScript}`);
27
- }
28
- try {
29
- // Esegui lo script di creazione bash
30
- Utils.warning('Executing bootstrap creation script...');
31
- await exec(`bash ${createScript} ${outputSquashfs} ${unlockScript}`, { echo: true });
32
- // Verifica che il file sia stato creato
33
- if (!fs.existsSync(outputSquashfs)) {
34
- throw new Error('Bootstrap filesystem was not created');
35
- }
36
- const stats = fs.statSync(outputSquashfs);
37
- const sizeMB = (stats.size / 1024 / 1024).toFixed(2);
38
- Utils.success(`✓ Bootstrap filesystem created: ${sizeMB} MB`);
39
- Utils.success(' Full Debian system with systemd and encrypted root unlock');
40
- }
41
- catch (error) {
42
- Utils.error(`Failed to create bootstrap filesystem: ${error}`);
43
- throw error;
44
- }
45
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * ./src/classes/ovary.d/encrypt-live-fs.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>;
@@ -1,126 +0,0 @@
1
- /**
2
- * ./src/classes/ovary.d/encrypt-live-fs.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 { spawn } from 'node:child_process';
11
- import Utils from '../utils.js';
12
- import { exec } from '../../lib/utils.js';
13
- /**
14
- * luksRoot()
15
- *
16
- * create a container LUKS with the entire
17
- * filesystem.squashfs
18
- */
19
- export async function luksRoot() {
20
- // filesystem.squashfs.real
21
- const live_fs = `${this.settings.iso_work}live/filesystem.squashfs.real`;
22
- try {
23
- /**
24
- * this.luksName = 'luks.img';
25
- * this.luksFile = `/tmp/${luksName}`
26
- * this.luksDevice = `/dev/mapper/${luksName}`
27
- * this.luksMappedName = this.luksName
28
- * this.luksMountpoint = `/tmp/mnt/${luksName}`
29
- * this.luksPassword = 'evolution'
30
- */
31
- console.log();
32
- console.log('====================================');
33
- console.log(` Creating ${this.luksName}`);
34
- console.log('====================================');
35
- // Utils.warning('1. Calculation of space requirements...')
36
- const sizeString = (await exec(`unsquashfs -s ${live_fs} | grep "Filesystem size" | sed -e 's/.*size //' -e 's/ .*//'`, { capture: true, echo: false })).data;
37
- let size = Number.parseInt(sizeString); // Dimensione in Byte
38
- // Add overhead * 1.20
39
- const luksSize = Math.ceil(size * 1.20);
40
- Utils.warning(`filesystem.squashfs size: ${bytesToGB(size)}`);
41
- Utils.warning(`partition LUKS ${this.luksFile} size: ${bytesToGB(luksSize)}`);
42
- Utils.warning(`creating partition LUKS: ${this.luksFile}`);
43
- await executeCommand('truncate', ['--size', `${luksSize}`, this.luksFile]);
44
- Utils.warning(`formatting ${this.luksFile} as a LUKS volume...`);
45
- await executeCommand('cryptsetup', ['--batch-mode', 'luksFormat', this.luksFile], `${this.luksPassword}\n`);
46
- this.luksUuid = (await exec(`cryptsetup luksUUID ${this.luksFile}`, { capture: true, echo: false })).data.trim();
47
- Utils.warning(`LUKS uuid: ${this.luksUuid}`);
48
- Utils.warning(`opening the LUKS volume. It will be mapped to ${this.luksDevice}`);
49
- await executeCommand('cryptsetup', ['luksOpen', this.luksFile, this.luksMappedName], `${this.luksPassword}\n`);
50
- Utils.warning(`formatting ext4`);
51
- await exec(`mkfs.ext4 -L live-root ${this.luksDevice}`, this.echo);
52
- Utils.warning(`mounting ${this.luksDevice} on ${this.luksMountpoint}`);
53
- if (fs.existsSync(this.luksMountpoint)) {
54
- if (!Utils.isMountpoint(this.luksMountpoint)) {
55
- await exec(`rm -rf ${this.luksMountpoint}`, this.echo);
56
- }
57
- else {
58
- throw new Error(`${this.luksMountpoint} is already mounted, process will abort!`);
59
- }
60
- }
61
- await exec(`mkdir -p ${this.luksMountpoint}`, this.echo);
62
- await exec(`mount /dev/mapper/${this.luksName} ${this.luksMountpoint}`, this.echo);
63
- Utils.warning(`moving ${live_fs} ${this.luksMountpoint}/filesystem.squashfs`);
64
- await exec(`mv ${live_fs} ${this.luksMountpoint}/filesystem.squashfs`, this.echo);
65
- Utils.warning(`unmount ${this.luksMountpoint} `);
66
- await exec(`umount ${this.luksMountpoint}`, this.echo);
67
- Utils.warning(`closing LUKS volume ${this.luksFile}.`);
68
- await executeCommand('cryptsetup', ['close', this.luksMappedName]);
69
- Utils.warning(`moving ${this.luksMappedName} on (ISO)/live.`);
70
- await exec(`mv ${this.luksFile} ${this.settings.iso_work}/live`, this.echo);
71
- }
72
- catch (error) {
73
- if (error instanceof Error) {
74
- Utils.error(`ERROR: ${error.message}`);
75
- }
76
- else {
77
- Utils.error(`An unknown error has occurred.`);
78
- }
79
- Utils.warning('Cleaning performed following the error...');
80
- if (fs.existsSync(this.luksMountpoint)) {
81
- await exec(`umount -lf ${this.luksMountpoint}`).catch(() => { });
82
- }
83
- if (fs.existsSync(this.luksDevice)) {
84
- await executeCommand('cryptsetup', ['luksClose', this.luksName]).catch(() => { });
85
- }
86
- await Utils.pressKeyToExit();
87
- process.exit(1);
88
- }
89
- }
90
- /**
91
- * Funzione helper per eseguire comandi esterni in modo asincrono,
92
- * gestendo lo standard input per passare le password.
93
- * Restituisce una Promise che si risolve al successo o si rigetta in caso di errore.
94
- */
95
- function executeCommand(command, args, stdinData) {
96
- return new Promise((resolve, reject) => {
97
- // Se passiamo dati a stdin, dobbiamo usare 'pipe'. Altrimenti, 'inherit'.
98
- const stdioConfig = stdinData ? ['pipe', 'inherit', 'inherit'] : 'inherit';
99
- const process = spawn(command, args, { stdio: stdioConfig });
100
- // Se fornito, scriviamo i dati (es. la password) nello stdin del processo.
101
- if (stdinData && process.stdin) {
102
- process.stdin.write(stdinData);
103
- process.stdin.end();
104
- }
105
- process.on('error', (err) => {
106
- reject(new Error(`Error starting command "${command}": ${err.message}`));
107
- });
108
- process.on('close', (code) => {
109
- if (code === 0) {
110
- resolve(); // Success
111
- }
112
- else {
113
- reject(new Error(`Command "${command} ${args.join(' ')}" ended with error code ${code}`));
114
- }
115
- });
116
- });
117
- }
118
- /**
119
- * Converte bytes in gigabytes per la visualizzazione.
120
- */
121
- function bytesToGB(bytes) {
122
- if (bytes === 0)
123
- return '0.00 GB';
124
- const gigabytes = bytes / (1024 * 1024 * 1024);
125
- return gigabytes.toFixed(2) + ' GB';
126
- }
@@ -1,12 +0,0 @@
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;
@@ -1,62 +0,0 @@
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 = this.settings.isoFilename;
32
- fs.writeFileSync(path.join(dotDisk, 'info'), volidContent, 'utf-8');
33
- /**
34
- * A readme now replace the old .disk/info
35
- */
36
- let readme = ``;
37
- readme += `# penguins_eggs\n`;
38
- readme += `\n`;
39
- readme += `Volinfo: ${this.volid}\n`;
40
- readme += `Image created at: ${Utils.formatDate(new Date())} using penguins_eggs v. ${Utils.getPackageVersion()})\n`;
41
- readme += `repo: [penguins-eggs](https://github.com/penguins-eggs)\n`;
42
- readme += `blog: [penguins-eggs.net](https://penguins-eggs.net)\n`;
43
- readme += `author: [Piero Proietti](mailto://piero.proietti@gmail.com)\n`;
44
- fs.writeFileSync(path.join(dotDisk, 'README.md'), readme, 'utf-8');
45
- /**
46
- * write mksquashfs as .disk/mksquashfs
47
- */
48
- fs.writeFileSync(path.join(dotDisk, 'mksquashfs'), mksquashfs, 'utf-8');
49
- /**
50
- * write mkisofs as .disk/mkisofs
51
- */
52
- fs.writeFileSync(path.join(dotDisk, 'mkisofs'), mkisofs, 'utf-8');
53
- /**
54
- * touch uuid as file name on .disk/id
55
- *
56
- * This is a DEBIAN standard
57
- */
58
- if (this.uuid && this.uuid.trim() !== '') {
59
- shx.mkdir(path.join(dotDisk, 'id'));
60
- shx.touch(path.join(dotDisk, 'id', this.uuid));
61
- }
62
- }
@@ -1,14 +0,0 @@
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>;