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,52 +0,0 @@
1
- /**
2
- * ./src/classes/pve-live.ts
3
- * penguins-eggs v.25.7.x / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- */
8
- /**
9
- * This will create a symbolic link from the system’s copy of the service file (usually in /lib/systemd/system or /etc/systemd/system)
10
- * into the location on disk where systemd looks for autostart files (usually /etc/systemd/system/some_target.target.wants.
11
- * We will go over what a target is later in this guide).
12
- * To disable the service from starting automatically, you can type:
13
- * sudo systemctl disable application.service
14
- * This will remove the symbolic link that indicated that the service should be started automatically.
15
- */
16
- import path from 'node:path';
17
- import shx from 'shelljs';
18
- import Systemctl from './systemctl.js';
19
- // _dirname
20
- const __dirname = path.dirname(new URL(import.meta.url).pathname);
21
- export default class PveLive {
22
- systemctl = {};
23
- constructor() {
24
- this.systemctl = new Systemctl();
25
- }
26
- create(root = '/') {
27
- // console.log("root:" + root)
28
- shx.cp(path.resolve(__dirname, '../../scripts/pve-live.sh'), `${root}/usr/bin/`);
29
- shx.exec(`chmod +x ${root}/usr/bin/pve-live.sh`);
30
- // console.log(`pve-live: ${root}/usr/bin/pve-live.sh`)
31
- shx.cp(path.resolve(__dirname, '../../scripts/pve-live.service'), `${root}/lib/systemd/system/`);
32
- shx.exec(`chmod +x ${root}/lib/systemd/system/pve-live.service`);
33
- // console.log(`pve-service: ${root}lib/systemd/system/pve-live.service`)
34
- // enable service
35
- const src = `${root}/usr/lib/systemd/system`;
36
- const dest = `${root}/etc/systemd/system/multi-user.target.wants`;
37
- shx.exec(`ln -s ${src}/pve-live.service ${dest}/pve-live.service`);
38
- // Utils.pressKeyToExit("check it!",true)
39
- }
40
- disable() {
41
- this.systemctl.disable('pve-live');
42
- }
43
- enable() {
44
- this.systemctl.enable('pve-live');
45
- }
46
- start() {
47
- this.systemctl.start('pve-live');
48
- }
49
- stop() {
50
- this.systemctl.stop('pve-live');
51
- }
52
- }
@@ -1,76 +0,0 @@
1
- /**
2
- * ./src/classes/pxe.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 { IDhcpOptions, ITftpOptions } from '../dhcpd-proxy/interfaces/i-pxe.js';
9
- import Distro from './distro.js';
10
- import Settings from './settings.js';
11
- /**
12
- * Pxe:
13
- */
14
- export default class Pxe {
15
- bootLabel: string;
16
- echo: {};
17
- eggRoot: string;
18
- initrdImg: string;
19
- isos: string[];
20
- nest: string;
21
- pxeRoot: string;
22
- distro: Distro;
23
- settings: Settings;
24
- vmlinuz: string;
25
- /**
26
- * constructor
27
- * @param nest
28
- * @param pxeRoot
29
- */
30
- constructor(nest?: string, pxeRoot?: string, verbose?: boolean);
31
- /**
32
- * fertilization()
33
- *
34
- * cuckoo's nest
35
- */
36
- fertilization(): Promise<void>;
37
- /**
38
- * build
39
- */
40
- build(): Promise<void>;
41
- /**
42
- *
43
- * @param dhcpOptions
44
- */
45
- dhcpdStart(dhcpOptions: IDhcpOptions): void;
46
- /**
47
- * start http server for images
48
- */
49
- httpStart(): Promise<void>;
50
- /**
51
- * start tftp
52
- */
53
- tftpStart(tftpOptions: ITftpOptions): Promise<void>;
54
- /**
55
- * configure PXE http server
56
- */
57
- private http;
58
- /**
59
- * configure PXE bios
60
- */
61
- private bios;
62
- /**
63
- * uefi: uso ipxe solo per chainload di grub
64
- */
65
- private uefi;
66
- /**
67
- * grubCfg
68
- * @param familyId
69
- */
70
- private grubCfg;
71
- /**
72
- * Metodo helper per ottenere i parametri corretti per GRUB
73
- * in base alla famiglia della distribuzione.
74
- */
75
- private _getKernelParameters;
76
- }
@@ -1,353 +0,0 @@
1
- /**
2
- * ./src/classes/pxe.ts
3
- * penguins-eggs v.25.7.x / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- */
8
- import fs from 'node:fs';
9
- import path from 'node:path';
10
- import { startSimpleProxy } from '../dhcpd-proxy/simple-proxy.js';
11
- import express from 'express';
12
- // @ts-ignore
13
- import tftp from 'tftp';
14
- import { exec } from '../lib/utils.js';
15
- import Distro from './distro.js';
16
- import Settings from './settings.js';
17
- import Utils from './utils.js';
18
- import Diversions from './diversions.js';
19
- // _dirname
20
- const __dirname = path.dirname(new URL(import.meta.url).pathname);
21
- /**
22
- * Pxe:
23
- */
24
- export default class Pxe {
25
- bootLabel = '';
26
- echo = {};
27
- eggRoot = '';
28
- initrdImg = '';
29
- isos = []; // cuckoo's eggs
30
- nest = '';
31
- pxeRoot = '';
32
- distro = {};
33
- settings = {};
34
- vmlinuz = '';
35
- /**
36
- * constructor
37
- * @param nest
38
- * @param pxeRoot
39
- */
40
- constructor(nest = '', pxeRoot = '', verbose = false) {
41
- this.nest = nest;
42
- this.pxeRoot = pxeRoot;
43
- this.echo = Utils.setEcho(verbose);
44
- }
45
- /**
46
- * fertilization()
47
- *
48
- * cuckoo's nest
49
- */
50
- async fertilization() {
51
- this.settings = new Settings();
52
- this.settings.load();
53
- this.distro = new Distro();
54
- if (Utils.isLive()) {
55
- this.eggRoot = this.distro.liveMediumPath;
56
- }
57
- else {
58
- this.eggRoot = this.settings.config.snapshot_mnt + 'iso/';
59
- }
60
- if (!Utils.isLive() && !fs.existsSync(this.settings.config.snapshot_mnt)) {
61
- console.log('no image available, build an image with: sudo eggs produce');
62
- process.exit();
63
- }
64
- /**
65
- * se pxeRoot non esiste viene creato
66
- */
67
- if (!fs.existsSync(this.pxeRoot)) {
68
- await exec(`mkdir ${this.pxeRoot} -p`);
69
- }
70
- /**
71
- * Ricerca delle ISOs
72
- * installed: /home/eggs/.mnt/iso/live
73
- * live: this.iso/live
74
- */
75
- const isos = [];
76
- const pathFiles = this.eggRoot + 'live';
77
- const files = fs.readdirSync(pathFiles);
78
- // rieva nome vmlinuz e initrdImg
79
- for (const file of files) {
80
- if (path.basename(file).slice(0, 7) === 'vmlinuz') {
81
- this.vmlinuz = path.basename(file);
82
- }
83
- if (path.basename(file).slice(0, 4) === 'init') {
84
- this.initrdImg = path.basename(file);
85
- }
86
- }
87
- /**
88
- * bootLabel
89
- */
90
- this.bootLabel = 'not found';
91
- if (fs.existsSync(this.eggRoot + '/.disk/mkisofs')) {
92
- const a = fs.readFileSync(this.eggRoot + '/.disk/mkisofs', 'utf8');
93
- const b = a.slice(Math.max(0, a.indexOf('-o ') + 3));
94
- const c = b.slice(0, Math.max(0, b.indexOf(' ')));
95
- this.bootLabel = c.slice(Math.max(0, c.lastIndexOf('/') + 1));
96
- }
97
- console.log(`eggRoot: ${this.eggRoot}`);
98
- console.log(`bootLabel: ${this.bootLabel}`);
99
- console.log(`vmlinuz: ${this.vmlinuz}`);
100
- console.log(`initrd: ${this.initrdImg}`);
101
- }
102
- /**
103
- * build
104
- */
105
- async build() {
106
- const echoYes = Utils.setEcho(true);
107
- // pxeRoot erase
108
- if (fs.existsSync(this.pxeRoot)) {
109
- await exec(`rm ${this.pxeRoot} -rf`, this.echo);
110
- }
111
- // Struttura
112
- await exec(`mkdir ${this.pxeRoot} -p`, this.echo);
113
- await exec(`ln -s ${this.eggRoot}live ${this.pxeRoot}/live`, this.echo);
114
- await exec(`ln -s ${this.nest}.disk ${this.pxeRoot}/.disk`, this.echo);
115
- // Link supplementari distro
116
- if (this.distro.familyId === 'archlinux') {
117
- let filesystemName = `arch/x86_64/airootfs.sfs`;
118
- if (Diversions.isManjaroBased(this.settings.distro.distroId)) {
119
- filesystemName = `manjaro/x86_64/livefs.sfs`;
120
- }
121
- await exec(`mkdir ${this.pxeRoot}/${path.dirname(filesystemName)} -p`, this.echo);
122
- await exec(`ln -s ${this.eggRoot}/live/filesystem.squashfs ${this.pxeRoot}/${filesystemName}`, this.echo);
123
- }
124
- // Firewall per fedora
125
- if (this.distro.familyId === 'fedora' || this.distro.familyId === 'opensuse') {
126
- await exec(`firewall-cmd --add-service=dhcp --permanent`, this.echo);
127
- await exec(`firewall-cmd --add-service=tftp --permanent`, this.echo);
128
- await exec(`firewall-cmd --add-service=http --permanent`, this.echo);
129
- await exec(`firewall-cmd --reload`, this.echo);
130
- }
131
- await this.grubCfg();
132
- await this.bios();
133
- await this.uefi();
134
- await this.http();
135
- }
136
- /**
137
- *
138
- * @param dhcpOptions
139
- */
140
- dhcpdStart(dhcpOptions) {
141
- startSimpleProxy(dhcpOptions);
142
- }
143
- /**
144
- * start http server for images
145
- */
146
- async httpStart() {
147
- const port = 80;
148
- const httpRoot = this.pxeRoot + '/';
149
- // 1. Crea un'applicazione Express
150
- const app = express();
151
- // 2. Usa il middleware di Express per servire i file statici.
152
- app.use(express.static(httpRoot));
153
- // 3. Avvia il server
154
- app.listen(port, () => {
155
- console.log(`HTTP server (Express) listening on 0.0.0.0:${port}`);
156
- console.log(`Serving files from ${httpRoot}`);
157
- });
158
- }
159
- /**
160
- * start tftp
161
- */
162
- async tftpStart(tftpOptions) {
163
- const tftpServer = tftp.createServer(tftpOptions);
164
- console.log('tftp listening: ' + tftpOptions.host + ':' + tftpOptions.port);
165
- tftpServer.on('error', (error) => {
166
- // Errors from the main socket
167
- // The current transfers are not aborted
168
- console.error(error);
169
- });
170
- tftpServer.on('request', (req, res) => {
171
- req.on('error', (error) => {
172
- // Error from the request
173
- // The connection is already closed
174
- console.error('[' + req.stats.remoteAddress + ':' + req.stats.remotePort + '] (' + req.file + ') ' + error.message);
175
- });
176
- });
177
- tftpServer.listen();
178
- }
179
- /**
180
- * configure PXE http server
181
- */
182
- async http() {
183
- const file = `${this.pxeRoot}/index.html`;
184
- let content = '';
185
- content += "<html><title>Penguin's eggs PXE server</title>";
186
- content += '<div style="background-image:url(\'/splash.png\');background-repeat:no-repeat;width: 640;height:480;padding:5px;border:1px solid black;">';
187
- content += '<h1>Cuckoo PXE server</h1>';
188
- content += `<body>address: <a href=http://${Utils.address()}>${Utils.address()}</a><br/>`;
189
- if (Utils.isLive()) {
190
- content += 'started from live iso image<br/>';
191
- }
192
- else {
193
- content += 'Serving:<li>';
194
- for (const iso of this.isos) {
195
- content += `<ul><a href='http://${Utils.address()}/${iso}'>${iso}</a></ul>`;
196
- }
197
- content += '</li>';
198
- }
199
- content += "source: <a href='https://github.com/pieroproietti/penguins-eggs'>https://github.com/pieroproietti/penguins-eggs</a><br/>";
200
- content += "manual: <a href='https://penguins-eggs.net/book/italiano9.2.html'>italiano</a>, <a href='https://penguins--eggs-net.translate.goog/book/italiano9.2?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en'>translated</a><br/>";
201
- content += "discuss: <a href='https://t.me/penguins_eggs'>Telegram group<br/></body</html>";
202
- fs.writeFileSync(file, content);
203
- }
204
- /**
205
- * configure PXE bios
206
- */
207
- async bios() {
208
- const bootloaders = Diversions.bootloaders(this.distro.familyId);
209
- await exec(`cp ${__dirname}/../../addons/eggs/theme/livecd/isolinux.theme.cfg ${this.pxeRoot}/isolinux.theme.cfg`, this.echo);
210
- await exec(`cp ${__dirname}/../../addons/eggs/theme/livecd/splash.png ${this.pxeRoot}/splash.png`, this.echo);
211
- // ipxe.pxe
212
- await exec(`ln -s ${bootloaders}ipxe/ipxe.pxe ${this.pxeRoot}/ipxe.pxe`, this.echo);
213
- // snponly.efi
214
- await exec(`ln -s ${bootloaders}ipxe/snponly.efi ${this.pxeRoot}/snponly.efi`, this.echo);
215
- // pxe
216
- await exec(`cp ${bootloaders}PXELINUX/pxelinux.0 ${this.pxeRoot}/pxelinux.0`, this.echo);
217
- await exec(`cp ${bootloaders}PXELINUX/lpxelinux.0 ${this.pxeRoot}/lpxelinux.0`, this.echo);
218
- // syslinux
219
- await exec(`ln -s ${bootloaders}syslinux/modules/bios/ldlinux.c32 ${this.pxeRoot}/ldlinux.c32`, this.echo);
220
- await exec(`ln -s ${bootloaders}syslinux/modules/bios/vesamenu.c32 ${this.pxeRoot}/vesamenu.c32`, this.echo);
221
- await exec(`ln -s ${bootloaders}syslinux/modules/bios/libcom32.c32 ${this.pxeRoot}/libcom32.c32`, this.echo);
222
- await exec(`ln -s ${bootloaders}syslinux/modules/bios/libutil.c32 ${this.pxeRoot}/libutil.c32`, this.echo);
223
- await exec(`ln -s ${bootloaders}syslinux/modules/bios/memdisk ${this.pxeRoot}/memdisk`, this.echo);
224
- await exec(`mkdir ${this.pxeRoot}/pxelinux.cfg`, this.echo);
225
- let content = '';
226
- content += '# eggs: pxelinux.cfg/default\n';
227
- content += '# search path for the c32 support libraries (libcom32, libutil etc.)\n';
228
- content += `path /\n`;
229
- content += 'include isolinux.theme.cfg\n';
230
- content += 'UI vesamenu.c32\n';
231
- content += '\n';
232
- content += `menu title cuckoo: when you need a flying PXE server! ${Utils.address()}\n`;
233
- content += 'PROMPT 0\n';
234
- content += 'TIMEOUT 200\n';
235
- content += '\n';
236
- content += `label ${this.distro.distroId}\n`;
237
- content += `menu label ${this.bootLabel.replace('.iso', '')}\n`;
238
- content += `kernel http://${Utils.address()}/live/${path.basename(this.vmlinuz)}\n`;
239
- const kernelParams = this._getKernelParameters();
240
- content += `append initrd=http://${Utils.address()}/live/${path.basename(this.initrdImg)} ${kernelParams}\n`;
241
- const file = `${this.pxeRoot}/pxelinux.cfg/default`;
242
- fs.writeFileSync(file, content);
243
- }
244
- /**
245
- * uefi: uso ipxe solo per chainload di grub
246
- */
247
- async uefi() {
248
- let content = '#!ipxe\n';
249
- content += 'dhcp\n';
250
- content += `chain http://${Utils.address()}/grub.efi\n`;
251
- const file = `${this.pxeRoot}/autoexec.ipxe`;
252
- fs.writeFileSync(file, content);
253
- }
254
- /**
255
- * grubCfg
256
- * @param familyId
257
- */
258
- async grubCfg() {
259
- const bootloaders = Diversions.bootloaders(this.distro.familyId);
260
- const echoYes = Utils.setEcho(true);
261
- /**
262
- * On Debian bookworm:
263
- */
264
- await exec(`mkdir -p ${this.pxeRoot}/grub`, this.echo);
265
- if (this.distro.familyId === 'debian') {
266
- if (process.arch === 'x64') {
267
- await exec(`cp ${bootloaders}/grub/x86_64-efi-signed/grubnetx64.efi.signed ${this.pxeRoot}/grub.efi`, this.echo);
268
- await exec(`cp -r ${bootloaders}/grub/x86_64-efi ${this.pxeRoot}/grub`, this.echo);
269
- }
270
- else if (process.arch === 'ia32') {
271
- await exec(`cp ${bootloaders}/grub/i386-efi-signed/grubnetia32.efi.signed ${this.pxeRoot}/grub.efi`, this.echo);
272
- await exec(`cp -r ${bootloaders}/grub/i386-efi ${this.pxeRoot}/grub`, this.echo);
273
- }
274
- else if (process.arch === 'arm64') {
275
- await exec(`cp ${bootloaders}/grub/arm64-efi-signed/grubnetaa64.efi.signed ${this.pxeRoot}/grub.efi`, this.echo);
276
- await exec(`cp -r ${bootloaders}/grub/arm64-efi ${this.pxeRoot}/grub`, this.echo);
277
- }
278
- }
279
- else {
280
- /**
281
- * le altre distribuzione not signed
282
- */
283
- await exec(`cp ${bootloaders}grub/x86_64-efi/monolithic/grubnetx64.efi ${this.pxeRoot}/grub.efi`, this.echo);
284
- await exec(`cp -r ${bootloaders}/grub/x86_64-efi ${this.pxeRoot}/grub`, this.echo);
285
- }
286
- // Genera il file grub.cfg
287
- const grubName = `${this.pxeRoot}/grub/grub.cfg`; // Il file deve chiamarsi grub.cfg
288
- let grubContent = '';
289
- grubContent += `set timeout=10\n`;
290
- grubContent += `set default=0\n\n`;
291
- // Titolo del menu dinamico
292
- grubContent += `menuentry "${this.bootLabel.replace('.iso', '')} via PXE" {\n`;
293
- grubContent += ` echo "Booting ${this.bootLabel.replace('.iso', '')}..."\n`;
294
- grubContent += ` echo "Loading Linux Kernel..."\n`;
295
- const kernelParams = this._getKernelParameters();
296
- grubContent += ` linux (http,${Utils.address()})/live/${path.basename(this.vmlinuz)} ${kernelParams}\n`;
297
- grubContent += ` echo "Loading Initial Ramdisk..."\n`;
298
- grubContent += ` initrd (http,${Utils.address()})/live/${path.basename(this.initrdImg)}\n`;
299
- grubContent += `}\n`;
300
- fs.writeFileSync(grubName, grubContent, 'utf-8');
301
- }
302
- /**
303
- * Metodo helper per ottenere i parametri corretti per GRUB
304
- * in base alla famiglia della distribuzione.
305
- */
306
- _getKernelParameters() {
307
- let lp = '';
308
- // .replaceAll(/\s\s+/g, ' ')
309
- switch (this.distro.familyId) {
310
- case 'alpine':
311
- lp = `alpine_repo=http://${Utils.address()}/live/filesystem.squashfs \
312
- modules=loop,squashfs,sd-mod,usb-storage,virtio-net,e1000e \
313
- acpi=off \
314
- ip=dhcp`;
315
- break;
316
- case 'archlinux':
317
- let basedir = 'archisobasedir=arch';
318
- let hook = 'archiso_http_srv';
319
- if (Diversions.isManjaroBased(this.distro.distroId)) {
320
- basedir = '';
321
- hook = 'miso_http_srv';
322
- }
323
- lp = `${hook}=http://${Utils.address()}/ \
324
- ${basedir} \
325
- ip=dhcp \
326
- copytoram=n`;
327
- break;
328
- case 'debian':
329
- lp = `fetch=http://${Utils.address()}/live/filesystem.squashfs \
330
- boot=live \
331
- config \
332
- noswap \
333
- noprompt \
334
- ip=dhcp`;
335
- break;
336
- case 'fedora':
337
- case 'openmamba':
338
- case 'opensuse':
339
- lp = `initrd=http://${Utils.address()}/live/${path.basename(this.initrdImg)} \
340
- root=live:http://${Utils.address()}/live/filesystem.squashfs \
341
- rootfstype=auto \
342
- ro \
343
- rd.live.image \
344
- rd.luks=0 \
345
- rd.md=0 \
346
- rd.dm=0\n`;
347
- break;
348
- default:
349
- console.warn(`Attenzione: famiglia distro '${this.distro.familyId}' non riconosciuta per GRUB.`);
350
- }
351
- return lp.replaceAll(/\s\s+/g, ' ');
352
- }
353
- }
@@ -1,52 +0,0 @@
1
- /**
2
- * ./src/classes/settings.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 { IApp, IDistro, IRemix, IWorkDir } from '../interfaces/index.js';
9
- import { IEggsConfig } from '../interfaces/index.js';
10
- import Incubator from './incubation/incubator.js';
11
- /**
12
- * Setting
13
- */
14
- export default class Settings {
15
- app: IApp;
16
- config: IEggsConfig;
17
- distro: IDistro;
18
- i686: boolean;
19
- incubator: Incubator;
20
- initrd_image: string;
21
- initrdImg: string;
22
- isLive: boolean;
23
- iso_work: string;
24
- isoFilename: string;
25
- kernel_image: string;
26
- remix: IRemix;
27
- session_excludes: string;
28
- vmlinuz: string;
29
- work_dir: IWorkDir;
30
- constructor(compression?: string);
31
- /**
32
- * Calculate and show free space on the disk
33
- * @returns {void}
34
- */
35
- listFreeSpace(): Promise<void>;
36
- /**
37
- * Load configuration from config_file
38
- * @returns {boolean} Success
39
- */
40
- load(): Promise<boolean>;
41
- /**
42
- *
43
- * @param basename
44
- * @param theme
45
- */
46
- loadRemix(theme?: string): Promise<void>;
47
- /**
48
- *
49
- * @param config
50
- */
51
- save(config: IEggsConfig): Promise<void>;
52
- }