penguins-eggs 25.10.26 → 25.10.28

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 (450) hide show
  1. package/.oclif.manifest.json +1 -1
  2. package/README.md +1 -768
  3. package/addons/eggs/theme/applications/install-system.desktop +1 -1
  4. package/addons/eggs/theme/livecd/generic.grub.theme.cfg +1 -3
  5. package/addons/eggs/theme/livecd/generic.isolinux.theme.cfg +1 -2
  6. package/package.json +5 -5
  7. package/dist/classes/bleach.d.ts +0 -37
  8. package/dist/classes/bleach.js +0 -148
  9. package/dist/classes/cli-autologin.d.ts +0 -52
  10. package/dist/classes/cli-autologin.js +0 -252
  11. package/dist/classes/compressors.d.ts +0 -54
  12. package/dist/classes/compressors.js +0 -109
  13. package/dist/classes/daddy.d.ts +0 -26
  14. package/dist/classes/daddy.js +0 -175
  15. package/dist/classes/distro.d.ts +0 -32
  16. package/dist/classes/distro.js +0 -363
  17. package/dist/classes/diversions.d.ts +0 -53
  18. package/dist/classes/diversions.js +0 -131
  19. package/dist/classes/incubation/branding.d.ts +0 -17
  20. package/dist/classes/incubation/branding.js +0 -85
  21. package/dist/classes/incubation/customize/customize-partitions.d.ts +0 -4
  22. package/dist/classes/incubation/customize/customize-partitions.js +0 -29
  23. package/dist/classes/incubation/fisherman-helper/initcpio.d.ts +0 -1
  24. package/dist/classes/incubation/fisherman-helper/initcpio.js +0 -69
  25. package/dist/classes/incubation/fisherman-helper/packages.d.ts +0 -20
  26. package/dist/classes/incubation/fisherman-helper/packages.js +0 -72
  27. package/dist/classes/incubation/fisherman-helper/settings.d.ts +0 -15
  28. package/dist/classes/incubation/fisherman-helper/settings.js +0 -116
  29. package/dist/classes/incubation/fisherman.d.ts +0 -71
  30. package/dist/classes/incubation/fisherman.js +0 -281
  31. package/dist/classes/incubation/incubator.d/alpine.d.ts +0 -32
  32. package/dist/classes/incubation/incubator.d/alpine.js +0 -78
  33. package/dist/classes/incubation/incubator.d/archlinux.d.ts +0 -32
  34. package/dist/classes/incubation/incubator.d/archlinux.js +0 -82
  35. package/dist/classes/incubation/incubator.d/bionic.d.ts +0 -32
  36. package/dist/classes/incubation/incubator.d/bionic.js +0 -83
  37. package/dist/classes/incubation/incubator.d/buster.d.ts +0 -32
  38. package/dist/classes/incubation/incubator.d/buster.js +0 -101
  39. package/dist/classes/incubation/incubator.d/fedora.d.ts +0 -32
  40. package/dist/classes/incubation/incubator.d/fedora.js +0 -81
  41. package/dist/classes/incubation/incubator.d/focal.d.ts +0 -32
  42. package/dist/classes/incubation/incubator.d/focal.js +0 -85
  43. package/dist/classes/incubation/incubator.d/manjaro.d.ts +0 -32
  44. package/dist/classes/incubation/incubator.d/manjaro.js +0 -82
  45. package/dist/classes/incubation/incubator.d/noble.d.ts +0 -32
  46. package/dist/classes/incubation/incubator.d/noble.js +0 -102
  47. package/dist/classes/incubation/incubator.d/openmamba.d.ts +0 -32
  48. package/dist/classes/incubation/incubator.d/openmamba.js +0 -81
  49. package/dist/classes/incubation/incubator.d/opensuse.d.ts +0 -32
  50. package/dist/classes/incubation/incubator.d/opensuse.js +0 -81
  51. package/dist/classes/incubation/incubator.d/trixie.d.ts +0 -32
  52. package/dist/classes/incubation/incubator.d/trixie.js +0 -98
  53. package/dist/classes/incubation/incubator.d.ts +0 -48
  54. package/dist/classes/incubation/incubator.js +0 -378
  55. package/dist/classes/incubation/installer.d.ts +0 -13
  56. package/dist/classes/incubation/installer.js +0 -52
  57. package/dist/classes/keyboards.d.ts +0 -50
  58. package/dist/classes/keyboards.js +0 -287
  59. package/dist/classes/locales.d.ts +0 -21
  60. package/dist/classes/locales.js +0 -77
  61. package/dist/classes/network.d.ts +0 -37
  62. package/dist/classes/network.js +0 -98
  63. package/dist/classes/ovary.d/bind-live-fs.d.ts +0 -18
  64. package/dist/classes/ovary.d/bind-live-fs.js +0 -185
  65. package/dist/classes/ovary.d/bind-vfs.d.ts +0 -17
  66. package/dist/classes/ovary.d/bind-vfs.js +0 -37
  67. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +0 -13
  68. package/dist/classes/ovary.d/create-xdg-autostart.js +0 -194
  69. package/dist/classes/ovary.d/edit-live-fs.d.ts +0 -20
  70. package/dist/classes/ovary.d/edit-live-fs.js +0 -239
  71. package/dist/classes/ovary.d/fertilization.d.ts +0 -12
  72. package/dist/classes/ovary.d/fertilization.js +0 -53
  73. package/dist/classes/ovary.d/finished.d.ts +0 -13
  74. package/dist/classes/ovary.d/finished.js +0 -40
  75. package/dist/classes/ovary.d/initrd.d.ts +0 -21
  76. package/dist/classes/ovary.d/initrd.js +0 -96
  77. package/dist/classes/ovary.d/kernel-copy.d.ts +0 -12
  78. package/dist/classes/ovary.d/kernel-copy.js +0 -22
  79. package/dist/classes/ovary.d/live-create-structure.d.ts +0 -12
  80. package/dist/classes/ovary.d/live-create-structure.js +0 -70
  81. package/dist/classes/ovary.d/luks-get-password.d.ts +0 -12
  82. package/dist/classes/ovary.d/luks-get-password.js +0 -58
  83. package/dist/classes/ovary.d/luks-home-support.d.ts +0 -12
  84. package/dist/classes/ovary.d/luks-home-support.js +0 -75
  85. package/dist/classes/ovary.d/luks-home.d.ts +0 -15
  86. package/dist/classes/ovary.d/luks-home.js +0 -159
  87. package/dist/classes/ovary.d/luks-interactive-crypto-config.d.ts +0 -47
  88. package/dist/classes/ovary.d/luks-interactive-crypto-config.js +0 -135
  89. package/dist/classes/ovary.d/luks-root-initrd.d.ts +0 -17
  90. package/dist/classes/ovary.d/luks-root-initrd.js +0 -213
  91. package/dist/classes/ovary.d/luks-root.d.ts +0 -15
  92. package/dist/classes/ovary.d/luks-root.js +0 -185
  93. package/dist/classes/ovary.d/make-dot-disk.d.ts +0 -12
  94. package/dist/classes/ovary.d/make-dot-disk.js +0 -71
  95. package/dist/classes/ovary.d/make-efi.d.ts +0 -14
  96. package/dist/classes/ovary.d/make-efi.js +0 -290
  97. package/dist/classes/ovary.d/make-iso.d.ts +0 -13
  98. package/dist/classes/ovary.d/make-iso.js +0 -45
  99. package/dist/classes/ovary.d/make-squashfs.d.ts +0 -18
  100. package/dist/classes/ovary.d/make-squashfs.js +0 -111
  101. package/dist/classes/ovary.d/merged.d.ts +0 -27
  102. package/dist/classes/ovary.d/merged.js +0 -78
  103. package/dist/classes/ovary.d/produce.d.ts +0 -23
  104. package/dist/classes/ovary.d/produce.js +0 -354
  105. package/dist/classes/ovary.d/rexec.d.ts +0 -13
  106. package/dist/classes/ovary.d/rexec.js +0 -34
  107. package/dist/classes/ovary.d/syslinux.d.ts +0 -12
  108. package/dist/classes/ovary.d/syslinux.js +0 -95
  109. package/dist/classes/ovary.d/user-create-live.d.ts +0 -14
  110. package/dist/classes/ovary.d/user-create-live.js +0 -97
  111. package/dist/classes/ovary.d/users-remove.d.ts +0 -9
  112. package/dist/classes/ovary.d/users-remove.js +0 -38
  113. package/dist/classes/ovary.d/xorriso-command.d.ts +0 -14
  114. package/dist/classes/ovary.d/xorriso-command.js +0 -120
  115. package/dist/classes/ovary.d.ts +0 -108
  116. package/dist/classes/ovary.js +0 -119
  117. package/dist/classes/pacman.d/alpine.d.ts +0 -56
  118. package/dist/classes/pacman.d/alpine.js +0 -167
  119. package/dist/classes/pacman.d/archlinux.d.ts +0 -62
  120. package/dist/classes/pacman.d/archlinux.js +0 -128
  121. package/dist/classes/pacman.d/debian.d.ts +0 -65
  122. package/dist/classes/pacman.d/debian.js +0 -143
  123. package/dist/classes/pacman.d/fedora.d.ts +0 -53
  124. package/dist/classes/pacman.d/fedora.js +0 -107
  125. package/dist/classes/pacman.d/openmamba.d.ts +0 -52
  126. package/dist/classes/pacman.d/openmamba.js +0 -106
  127. package/dist/classes/pacman.d/opensuse.d.ts +0 -53
  128. package/dist/classes/pacman.d/opensuse.js +0 -109
  129. package/dist/classes/pacman.d.ts +0 -139
  130. package/dist/classes/pacman.js +0 -683
  131. package/dist/classes/pve-live.d.ts +0 -17
  132. package/dist/classes/pve-live.js +0 -52
  133. package/dist/classes/pxe.d.ts +0 -76
  134. package/dist/classes/pxe.js +0 -353
  135. package/dist/classes/settings.d.ts +0 -52
  136. package/dist/classes/settings.js +0 -185
  137. package/dist/classes/sources_list.d.ts +0 -28
  138. package/dist/classes/sources_list.js +0 -89
  139. package/dist/classes/systemctl.d.ts +0 -47
  140. package/dist/classes/systemctl.js +0 -86
  141. package/dist/classes/tailor.d.ts +0 -50
  142. package/dist/classes/tailor.js +0 -563
  143. package/dist/classes/tools.d.ts +0 -26
  144. package/dist/classes/tools.js +0 -50
  145. package/dist/classes/users.d.ts +0 -28
  146. package/dist/classes/users.js +0 -143
  147. package/dist/classes/utils.d/kernel.d.ts +0 -39
  148. package/dist/classes/utils.d/kernel.js +0 -206
  149. package/dist/classes/utils.d.ts +0 -330
  150. package/dist/classes/utils.js +0 -968
  151. package/dist/classes/xdg.d.ts +0 -45
  152. package/dist/classes/xdg.js +0 -337
  153. package/dist/classes/yolk.d.ts +0 -33
  154. package/dist/classes/yolk.js +0 -114
  155. package/dist/commands/adapt.d.ts +0 -17
  156. package/dist/commands/adapt.js +0 -33
  157. package/dist/commands/analyze.d.ts +0 -26
  158. package/dist/commands/analyze.js +0 -95
  159. package/dist/commands/calamares.d.ts +0 -29
  160. package/dist/commands/calamares.js +0 -112
  161. package/dist/commands/config.d.ts +0 -35
  162. package/dist/commands/config.js +0 -120
  163. package/dist/commands/cuckoo.d.ts +0 -17
  164. package/dist/commands/cuckoo.js +0 -61
  165. package/dist/commands/dad.d.ts +0 -21
  166. package/dist/commands/dad.js +0 -47
  167. package/dist/commands/export/iso.d.ts +0 -19
  168. package/dist/commands/export/iso.js +0 -55
  169. package/dist/commands/export/pkg.d.ts +0 -29
  170. package/dist/commands/export/pkg.js +0 -173
  171. package/dist/commands/export/tarballs.d.ts +0 -27
  172. package/dist/commands/export/tarballs.js +0 -79
  173. package/dist/commands/install.d.ts +0 -39
  174. package/dist/commands/install.js +0 -113
  175. package/dist/commands/kill.d.ts +0 -24
  176. package/dist/commands/kill.js +0 -50
  177. package/dist/commands/love.d.ts +0 -25
  178. package/dist/commands/love.js +0 -118
  179. package/dist/commands/mom.d.ts +0 -16
  180. package/dist/commands/mom.js +0 -30
  181. package/dist/commands/pods.d.ts +0 -22
  182. package/dist/commands/pods.js +0 -92
  183. package/dist/commands/produce.d.ts +0 -37
  184. package/dist/commands/produce.js +0 -232
  185. package/dist/commands/status.d.ts +0 -23
  186. package/dist/commands/status.js +0 -31
  187. package/dist/commands/tools/clean.d.ts +0 -18
  188. package/dist/commands/tools/clean.js +0 -37
  189. package/dist/commands/tools/repo.d.ts +0 -31
  190. package/dist/commands/tools/repo.js +0 -246
  191. package/dist/commands/tools/skel.d.ts +0 -18
  192. package/dist/commands/tools/skel.js +0 -44
  193. package/dist/commands/tools/stat.d.ts +0 -31
  194. package/dist/commands/tools/stat.js +0 -70
  195. package/dist/commands/tools/yolk.d.ts +0 -24
  196. package/dist/commands/tools/yolk.js +0 -45
  197. package/dist/commands/update.d.ts +0 -46
  198. package/dist/commands/update.js +0 -238
  199. package/dist/commands/wardrobe/get.d.ts +0 -23
  200. package/dist/commands/wardrobe/get.js +0 -52
  201. package/dist/commands/wardrobe/list.d.ts +0 -24
  202. package/dist/commands/wardrobe/list.js +0 -125
  203. package/dist/commands/wardrobe/show.d.ts +0 -25
  204. package/dist/commands/wardrobe/show.js +0 -97
  205. package/dist/commands/wardrobe/wear.d.ts +0 -26
  206. package/dist/commands/wardrobe/wear.js +0 -84
  207. package/dist/dhcpd-proxy/classes/packet.d.ts +0 -36
  208. package/dist/dhcpd-proxy/classes/packet.js +0 -124
  209. package/dist/dhcpd-proxy/index.d.ts +0 -4
  210. package/dist/dhcpd-proxy/index.js +0 -4
  211. package/dist/dhcpd-proxy/interfaces/i-pxe.d.ts +0 -45
  212. package/dist/dhcpd-proxy/interfaces/i-pxe.js +0 -1
  213. package/dist/dhcpd-proxy/lib/packet/converters.d.ts +0 -11
  214. package/dist/dhcpd-proxy/lib/packet/converters.js +0 -395
  215. package/dist/dhcpd-proxy/lib/packet/message-types.d.ts +0 -10
  216. package/dist/dhcpd-proxy/lib/packet/message-types.js +0 -12
  217. package/dist/dhcpd-proxy/lib/packet/options.d.ts +0 -8
  218. package/dist/dhcpd-proxy/lib/packet/options.js +0 -264
  219. package/dist/dhcpd-proxy/lib/sprintf.d.ts +0 -6
  220. package/dist/dhcpd-proxy/lib/sprintf.js +0 -130
  221. package/dist/dhcpd-proxy/lib/utils.d.ts +0 -126
  222. package/dist/dhcpd-proxy/lib/utils.js +0 -255
  223. package/dist/dhcpd-proxy/simple-proxy.d.ts +0 -11
  224. package/dist/dhcpd-proxy/simple-proxy.js +0 -118
  225. package/dist/index.d.ts +0 -8
  226. package/dist/index.js +0 -8
  227. package/dist/interfaces/calamares/i-calamares-bootloader.d.ts +0 -23
  228. package/dist/interfaces/calamares/i-calamares-bootloader.js +0 -7
  229. package/dist/interfaces/calamares/i-calamares-branding.d.ts +0 -46
  230. package/dist/interfaces/calamares/i-calamares-branding.js +0 -1
  231. package/dist/interfaces/calamares/i-calamares-displaymanager.d.ts +0 -34
  232. package/dist/interfaces/calamares/i-calamares-displaymanager.js +0 -1
  233. package/dist/interfaces/calamares/i-calamares-finished.d.ts +0 -14
  234. package/dist/interfaces/calamares/i-calamares-finished.js +0 -1
  235. package/dist/interfaces/calamares/i-calamares-packages.d.ts +0 -26
  236. package/dist/interfaces/calamares/i-calamares-packages.js +0 -1
  237. package/dist/interfaces/calamares/i-calamares-partitions.d.ts +0 -39
  238. package/dist/interfaces/calamares/i-calamares-partitions.js +0 -1
  239. package/dist/interfaces/calamares/i-calamares-settings.d.ts +0 -36
  240. package/dist/interfaces/calamares/i-calamares-settings.js +0 -1
  241. package/dist/interfaces/i-addons.d.ts +0 -12
  242. package/dist/interfaces/i-addons.js +0 -8
  243. package/dist/interfaces/i-analyze.d.ts +0 -17
  244. package/dist/interfaces/i-analyze.js +0 -17
  245. package/dist/interfaces/i-app.d.ts +0 -14
  246. package/dist/interfaces/i-app.js +0 -8
  247. package/dist/interfaces/i-config-tools.d.ts +0 -15
  248. package/dist/interfaces/i-config-tools.js +0 -8
  249. package/dist/interfaces/i-devices.d.ts +0 -20
  250. package/dist/interfaces/i-devices.js +0 -8
  251. package/dist/interfaces/i-distro.d.ts +0 -23
  252. package/dist/interfaces/i-distro.js +0 -8
  253. package/dist/interfaces/i-drive-list.d.ts +0 -33
  254. package/dist/interfaces/i-drive-list.js +0 -8
  255. package/dist/interfaces/i-eggs-config.d.ts +0 -32
  256. package/dist/interfaces/i-eggs-config.js +0 -8
  257. package/dist/interfaces/i-excludes.d.ts +0 -14
  258. package/dist/interfaces/i-excludes.js +0 -8
  259. package/dist/interfaces/i-exec.d.ts +0 -11
  260. package/dist/interfaces/i-exec.js +0 -8
  261. package/dist/interfaces/i-initrd.d.ts +0 -13
  262. package/dist/interfaces/i-initrd.js +0 -8
  263. package/dist/interfaces/i-install.d.ts +0 -16
  264. package/dist/interfaces/i-install.js +0 -8
  265. package/dist/interfaces/i-installer.d.ts +0 -17
  266. package/dist/interfaces/i-installer.js +0 -8
  267. package/dist/interfaces/i-luks-passphrase.d.ts +0 -11
  268. package/dist/interfaces/i-luks-passphrase.js +0 -8
  269. package/dist/interfaces/i-materia.d.ts +0 -36
  270. package/dist/interfaces/i-materia.js +0 -8
  271. package/dist/interfaces/i-net.d.ts +0 -16
  272. package/dist/interfaces/i-net.js +0 -8
  273. package/dist/interfaces/i-os-release.d.ts +0 -5
  274. package/dist/interfaces/i-os-release.js +0 -1
  275. package/dist/interfaces/i-packages.d.ts +0 -16
  276. package/dist/interfaces/i-packages.js +0 -8
  277. package/dist/interfaces/i-partitions.d.ts +0 -16
  278. package/dist/interfaces/i-partitions.js +0 -8
  279. package/dist/interfaces/i-pxe.d.ts +0 -45
  280. package/dist/interfaces/i-pxe.js +0 -1
  281. package/dist/interfaces/i-remix.d.ts +0 -21
  282. package/dist/interfaces/i-remix.js +0 -8
  283. package/dist/interfaces/i-settings.d.ts +0 -33
  284. package/dist/interfaces/i-settings.js +0 -8
  285. package/dist/interfaces/i-user.d.ts +0 -14
  286. package/dist/interfaces/i-user.js +0 -8
  287. package/dist/interfaces/i-workdir.d.ts +0 -14
  288. package/dist/interfaces/i-workdir.js +0 -8
  289. package/dist/interfaces/i-xkb-model.d.ts +0 -24
  290. package/dist/interfaces/i-xkb-model.js +0 -8
  291. package/dist/interfaces/index.d.ts +0 -26
  292. package/dist/interfaces/index.js +0 -8
  293. package/dist/krill/classes/cfs.d.ts +0 -17
  294. package/dist/krill/classes/cfs.js +0 -39
  295. package/dist/krill/classes/krill_enums.d.ts +0 -37
  296. package/dist/krill/classes/krill_enums.js +0 -41
  297. package/dist/krill/classes/prepare.d/confirm.d.ts +0 -5
  298. package/dist/krill/classes/prepare.d/confirm.js +0 -30
  299. package/dist/krill/classes/prepare.d/keyboard.d.ts +0 -14
  300. package/dist/krill/classes/prepare.d/keyboard.js +0 -62
  301. package/dist/krill/classes/prepare.d/location.d.ts +0 -17
  302. package/dist/krill/classes/prepare.d/location.js +0 -59
  303. package/dist/krill/classes/prepare.d/network.d.ts +0 -14
  304. package/dist/krill/classes/prepare.d/network.js +0 -68
  305. package/dist/krill/classes/prepare.d/partitions.d.ts +0 -14
  306. package/dist/krill/classes/prepare.d/partitions.js +0 -86
  307. package/dist/krill/classes/prepare.d/summary.d.ts +0 -15
  308. package/dist/krill/classes/prepare.d/summary.js +0 -72
  309. package/dist/krill/classes/prepare.d/users.d.ts +0 -6
  310. package/dist/krill/classes/prepare.d/users.js +0 -63
  311. package/dist/krill/classes/prepare.d/welcome.d.ts +0 -6
  312. package/dist/krill/classes/prepare.d/welcome.js +0 -30
  313. package/dist/krill/classes/prepare.d.ts +0 -89
  314. package/dist/krill/classes/prepare.js +0 -319
  315. package/dist/krill/classes/sequence.d/add_user.d.ts +0 -20
  316. package/dist/krill/classes/sequence.d/add_user.js +0 -77
  317. package/dist/krill/classes/sequence.d/bootloader.d.ts +0 -14
  318. package/dist/krill/classes/sequence.d/bootloader.js +0 -117
  319. package/dist/krill/classes/sequence.d/bootloader_config.d.ts +0 -14
  320. package/dist/krill/classes/sequence.d/bootloader_config.js +0 -192
  321. package/dist/krill/classes/sequence.d/change_password.d.ts +0 -15
  322. package/dist/krill/classes/sequence.d/change_password.js +0 -18
  323. package/dist/krill/classes/sequence.d/del_live_user.d.ts +0 -14
  324. package/dist/krill/classes/sequence.d/del_live_user.js +0 -39
  325. package/dist/krill/classes/sequence.d/fstab.d.ts +0 -14
  326. package/dist/krill/classes/sequence.d/fstab.js +0 -177
  327. package/dist/krill/classes/sequence.d/grubcfg.d.ts +0 -17
  328. package/dist/krill/classes/sequence.d/grubcfg.js +0 -35
  329. package/dist/krill/classes/sequence.d/hostname.d.ts +0 -13
  330. package/dist/krill/classes/sequence.d/hostname.js +0 -50
  331. package/dist/krill/classes/sequence.d/initramfs.d.ts +0 -13
  332. package/dist/krill/classes/sequence.d/initramfs.js +0 -54
  333. package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +0 -14
  334. package/dist/krill/classes/sequence.d/initramfs_cfg.js +0 -35
  335. package/dist/krill/classes/sequence.d/locale.d.ts +0 -13
  336. package/dist/krill/classes/sequence.d/locale.js +0 -91
  337. package/dist/krill/classes/sequence.d/locale_cfg.d.ts +0 -10
  338. package/dist/krill/classes/sequence.d/locale_cfg.js +0 -58
  339. package/dist/krill/classes/sequence.d/m_keyboard.d.ts +0 -14
  340. package/dist/krill/classes/sequence.d/m_keyboard.js +0 -58
  341. package/dist/krill/classes/sequence.d/machine_id.d.ts +0 -15
  342. package/dist/krill/classes/sequence.d/machine_id.js +0 -33
  343. package/dist/krill/classes/sequence.d/mkfs.d.ts +0 -15
  344. package/dist/krill/classes/sequence.d/mkfs.js +0 -88
  345. package/dist/krill/classes/sequence.d/mount_fs.d.ts +0 -17
  346. package/dist/krill/classes/sequence.d/mount_fs.js +0 -68
  347. package/dist/krill/classes/sequence.d/mount_vfs.d.ts +0 -17
  348. package/dist/krill/classes/sequence.d/mount_vfs.js +0 -59
  349. package/dist/krill/classes/sequence.d/network_cfg.d.ts +0 -19
  350. package/dist/krill/classes/sequence.d/network_cfg.js +0 -73
  351. package/dist/krill/classes/sequence.d/packages.d.ts +0 -14
  352. package/dist/krill/classes/sequence.d/packages.js +0 -111
  353. package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +0 -17
  354. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +0 -73
  355. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +0 -16
  356. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +0 -51
  357. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +0 -17
  358. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +0 -77
  359. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +0 -10
  360. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +0 -33
  361. package/dist/krill/classes/sequence.d/partition.d.ts +0 -14
  362. package/dist/krill/classes/sequence.d/partition.js +0 -84
  363. package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +0 -13
  364. package/dist/krill/classes/sequence.d/remove_installer_link.js +0 -35
  365. package/dist/krill/classes/sequence.d/umount.d.ts +0 -14
  366. package/dist/krill/classes/sequence.d/umount.js +0 -28
  367. package/dist/krill/classes/sequence.d/unpackfs.d.ts +0 -13
  368. package/dist/krill/classes/sequence.d/unpackfs.js +0 -20
  369. package/dist/krill/classes/sequence.d.ts +0 -134
  370. package/dist/krill/classes/sequence.js +0 -400
  371. package/dist/krill/components/finished.d.ts +0 -16
  372. package/dist/krill/components/finished.js +0 -56
  373. package/dist/krill/components/information.d.ts +0 -8
  374. package/dist/krill/components/information.js +0 -162
  375. package/dist/krill/components/install.d.ts +0 -15
  376. package/dist/krill/components/install.js +0 -60
  377. package/dist/krill/components/keyboard.d.ts +0 -16
  378. package/dist/krill/components/keyboard.js +0 -54
  379. package/dist/krill/components/location.d.ts +0 -16
  380. package/dist/krill/components/location.js +0 -59
  381. package/dist/krill/components/network.d.ts +0 -19
  382. package/dist/krill/components/network.js +0 -65
  383. package/dist/krill/components/partitions.d.ts +0 -18
  384. package/dist/krill/components/partitions.js +0 -89
  385. package/dist/krill/components/steps.d.ts +0 -13
  386. package/dist/krill/components/steps.js +0 -148
  387. package/dist/krill/components/summary.d.ts +0 -25
  388. package/dist/krill/components/summary.js +0 -77
  389. package/dist/krill/components/title.d.ts +0 -11
  390. package/dist/krill/components/title.js +0 -35
  391. package/dist/krill/components/users.d.ts +0 -24
  392. package/dist/krill/components/users.js +0 -80
  393. package/dist/krill/components/welcome.d.ts +0 -13
  394. package/dist/krill/components/welcome.js +0 -63
  395. package/dist/krill/interfaces/i_krill.d.ts +0 -44
  396. package/dist/krill/interfaces/i_krill.js +0 -8
  397. package/dist/krill/interfaces/i_krill_config.d.ts +0 -35
  398. package/dist/krill/interfaces/i_krill_config.js +0 -8
  399. package/dist/krill/lib/get_address.d.ts +0 -8
  400. package/dist/krill/lib/get_address.js +0 -23
  401. package/dist/krill/lib/get_dns.d.ts +0 -8
  402. package/dist/krill/lib/get_dns.js +0 -23
  403. package/dist/krill/lib/get_domain.d.ts +0 -8
  404. package/dist/krill/lib/get_domain.js +0 -23
  405. package/dist/krill/lib/get_gateway.d.ts +0 -8
  406. package/dist/krill/lib/get_gateway.js +0 -23
  407. package/dist/krill/lib/get_hostname.d.ts +0 -8
  408. package/dist/krill/lib/get_hostname.js +0 -23
  409. package/dist/krill/lib/get_luks_passphrase.d.ts +0 -8
  410. package/dist/krill/lib/get_luks_passphrase.js +0 -32
  411. package/dist/krill/lib/get_netmask.d.ts +0 -8
  412. package/dist/krill/lib/get_netmask.js +0 -23
  413. package/dist/krill/lib/get_password.d.ts +0 -8
  414. package/dist/krill/lib/get_password.js +0 -36
  415. package/dist/krill/lib/get_userfullname.d.ts +0 -8
  416. package/dist/krill/lib/get_userfullname.js +0 -23
  417. package/dist/krill/lib/get_username.d.ts +0 -8
  418. package/dist/krill/lib/get_username.js +0 -23
  419. package/dist/krill/lib/select_address_type.d.ts +0 -8
  420. package/dist/krill/lib/select_address_type.js +0 -24
  421. package/dist/krill/lib/select_filesystem_type.d.ts +0 -8
  422. package/dist/krill/lib/select_filesystem_type.js +0 -40
  423. package/dist/krill/lib/select_installation_device.d.ts +0 -8
  424. package/dist/krill/lib/select_installation_device.js +0 -40
  425. package/dist/krill/lib/select_installation_mode.d.ts +0 -9
  426. package/dist/krill/lib/select_installation_mode.js +0 -25
  427. package/dist/krill/lib/select_interface.d.ts +0 -8
  428. package/dist/krill/lib/select_interface.js +0 -24
  429. package/dist/krill/lib/select_keyboard_layout.d.ts +0 -11
  430. package/dist/krill/lib/select_keyboard_layout.js +0 -36
  431. package/dist/krill/lib/select_keyboard_model.d.ts +0 -11
  432. package/dist/krill/lib/select_keyboard_model.js +0 -34
  433. package/dist/krill/lib/select_keyboard_option.d.ts +0 -11
  434. package/dist/krill/lib/select_keyboard_option.js +0 -34
  435. package/dist/krill/lib/select_keyboard_variant.d.ts +0 -11
  436. package/dist/krill/lib/select_keyboard_variant.js +0 -35
  437. package/dist/krill/lib/select_languages.d.ts +0 -8
  438. package/dist/krill/lib/select_languages.js +0 -28
  439. package/dist/krill/lib/select_regions.d.ts +0 -8
  440. package/dist/krill/lib/select_regions.js +0 -24
  441. package/dist/krill/lib/select_replaced_partition.d.ts +0 -8
  442. package/dist/krill/lib/select_replaced_partition.js +0 -31
  443. package/dist/krill/lib/select_user_swap_choice.d.ts +0 -9
  444. package/dist/krill/lib/select_user_swap_choice.js +0 -35
  445. package/dist/krill/lib/select_zones.d.ts +0 -8
  446. package/dist/krill/lib/select_zones.js +0 -518
  447. package/dist/lib/kill_me_softly.d.ts +0 -11
  448. package/dist/lib/kill_me_softly.js +0 -61
  449. package/dist/lib/utils.d.ts +0 -19
  450. package/dist/lib/utils.js +0 -65
@@ -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
- }