penguins-eggs 25.10.28 → 25.10.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (452) hide show
  1. package/.oclif.manifest.json +1 -1
  2. package/addons/eggs/theme/applications/install-system.desktop +8 -6
  3. package/assets/calamares/io.calamares.calamares.policy +25 -0
  4. package/dist/classes/bleach.d.ts +37 -0
  5. package/dist/classes/bleach.js +148 -0
  6. package/dist/classes/cli-autologin.d.ts +52 -0
  7. package/dist/classes/cli-autologin.js +252 -0
  8. package/dist/classes/compressors.d.ts +54 -0
  9. package/dist/classes/compressors.js +109 -0
  10. package/dist/classes/daddy.d.ts +26 -0
  11. package/dist/classes/daddy.js +179 -0
  12. package/dist/classes/distro.d.ts +32 -0
  13. package/dist/classes/distro.js +363 -0
  14. package/dist/classes/diversions.d.ts +53 -0
  15. package/dist/classes/diversions.js +131 -0
  16. package/dist/classes/incubation/branding.d.ts +17 -0
  17. package/dist/classes/incubation/branding.js +85 -0
  18. package/dist/classes/incubation/customize/customize-partitions.d.ts +12 -0
  19. package/dist/classes/incubation/customize/customize-partitions.js +37 -0
  20. package/dist/classes/incubation/fisherman-helper/initcpio.d.ts +1 -0
  21. package/dist/classes/incubation/fisherman-helper/initcpio.js +69 -0
  22. package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
  23. package/dist/classes/incubation/fisherman-helper/packages.js +72 -0
  24. package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
  25. package/dist/classes/incubation/fisherman-helper/settings.js +116 -0
  26. package/dist/classes/incubation/fisherman.d.ts +71 -0
  27. package/dist/classes/incubation/fisherman.js +281 -0
  28. package/dist/classes/incubation/incubator.d/alpine.d.ts +32 -0
  29. package/dist/classes/incubation/incubator.d/alpine.js +78 -0
  30. package/dist/classes/incubation/incubator.d/archlinux.d.ts +32 -0
  31. package/dist/classes/incubation/incubator.d/archlinux.js +82 -0
  32. package/dist/classes/incubation/incubator.d/bionic.d.ts +32 -0
  33. package/dist/classes/incubation/incubator.d/bionic.js +83 -0
  34. package/dist/classes/incubation/incubator.d/buster.d.ts +32 -0
  35. package/dist/classes/incubation/incubator.d/buster.js +101 -0
  36. package/dist/classes/incubation/incubator.d/fedora.d.ts +32 -0
  37. package/dist/classes/incubation/incubator.d/fedora.js +81 -0
  38. package/dist/classes/incubation/incubator.d/focal.d.ts +32 -0
  39. package/dist/classes/incubation/incubator.d/focal.js +85 -0
  40. package/dist/classes/incubation/incubator.d/manjaro.d.ts +32 -0
  41. package/dist/classes/incubation/incubator.d/manjaro.js +82 -0
  42. package/dist/classes/incubation/incubator.d/noble.d.ts +32 -0
  43. package/dist/classes/incubation/incubator.d/noble.js +102 -0
  44. package/dist/classes/incubation/incubator.d/openmamba.d.ts +32 -0
  45. package/dist/classes/incubation/incubator.d/openmamba.js +81 -0
  46. package/dist/classes/incubation/incubator.d/opensuse.d.ts +32 -0
  47. package/dist/classes/incubation/incubator.d/opensuse.js +81 -0
  48. package/dist/classes/incubation/incubator.d/trixie.d.ts +32 -0
  49. package/dist/classes/incubation/incubator.d/trixie.js +98 -0
  50. package/dist/classes/incubation/incubator.d.ts +49 -0
  51. package/dist/classes/incubation/incubator.js +383 -0
  52. package/dist/classes/incubation/installer.d.ts +13 -0
  53. package/dist/classes/incubation/installer.js +52 -0
  54. package/dist/classes/keyboards.d.ts +50 -0
  55. package/dist/classes/keyboards.js +287 -0
  56. package/dist/classes/locales.d.ts +21 -0
  57. package/dist/classes/locales.js +77 -0
  58. package/dist/classes/network.d.ts +37 -0
  59. package/dist/classes/network.js +98 -0
  60. package/dist/classes/ovary.d/bind-live-fs.d.ts +18 -0
  61. package/dist/classes/ovary.d/bind-live-fs.js +185 -0
  62. package/dist/classes/ovary.d/bind-vfs.d.ts +17 -0
  63. package/dist/classes/ovary.d/bind-vfs.js +37 -0
  64. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +13 -0
  65. package/dist/classes/ovary.d/create-xdg-autostart.js +193 -0
  66. package/dist/classes/ovary.d/edit-live-fs.d.ts +20 -0
  67. package/dist/classes/ovary.d/edit-live-fs.js +239 -0
  68. package/dist/classes/ovary.d/fertilization.d.ts +12 -0
  69. package/dist/classes/ovary.d/fertilization.js +53 -0
  70. package/dist/classes/ovary.d/finished.d.ts +13 -0
  71. package/dist/classes/ovary.d/finished.js +40 -0
  72. package/dist/classes/ovary.d/initrd.d.ts +21 -0
  73. package/dist/classes/ovary.d/initrd.js +96 -0
  74. package/dist/classes/ovary.d/kernel-copy.d.ts +12 -0
  75. package/dist/classes/ovary.d/kernel-copy.js +22 -0
  76. package/dist/classes/ovary.d/live-create-structure.d.ts +12 -0
  77. package/dist/classes/ovary.d/live-create-structure.js +70 -0
  78. package/dist/classes/ovary.d/luks-get-password.d.ts +12 -0
  79. package/dist/classes/ovary.d/luks-get-password.js +58 -0
  80. package/dist/classes/ovary.d/luks-helpers.d.ts +19 -0
  81. package/dist/classes/ovary.d/luks-helpers.js +73 -0
  82. package/dist/classes/ovary.d/luks-home-support.d.ts +12 -0
  83. package/dist/classes/ovary.d/luks-home-support.js +70 -0
  84. package/dist/classes/ovary.d/luks-home.d.ts +15 -0
  85. package/dist/classes/ovary.d/luks-home.js +132 -0
  86. package/dist/classes/ovary.d/luks-interactive-crypto-config.d.ts +47 -0
  87. package/dist/classes/ovary.d/luks-interactive-crypto-config.js +139 -0
  88. package/dist/classes/ovary.d/luks-root-initrd.d.ts +17 -0
  89. package/dist/classes/ovary.d/luks-root-initrd.js +213 -0
  90. package/dist/classes/ovary.d/luks-root.d.ts +15 -0
  91. package/dist/classes/ovary.d/luks-root.js +123 -0
  92. package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
  93. package/dist/classes/ovary.d/make-dot-disk.js +71 -0
  94. package/dist/classes/ovary.d/make-efi.d.ts +14 -0
  95. package/dist/classes/ovary.d/make-efi.js +296 -0
  96. package/dist/classes/ovary.d/make-iso.d.ts +13 -0
  97. package/dist/classes/ovary.d/make-iso.js +45 -0
  98. package/dist/classes/ovary.d/make-squashfs.d.ts +18 -0
  99. package/dist/classes/ovary.d/make-squashfs.js +111 -0
  100. package/dist/classes/ovary.d/merged.d.ts +27 -0
  101. package/dist/classes/ovary.d/merged.js +78 -0
  102. package/dist/classes/ovary.d/produce.d.ts +23 -0
  103. package/dist/classes/ovary.d/produce.js +349 -0
  104. package/dist/classes/ovary.d/rexec.d.ts +13 -0
  105. package/dist/classes/ovary.d/rexec.js +34 -0
  106. package/dist/classes/ovary.d/syslinux.d.ts +12 -0
  107. package/dist/classes/ovary.d/syslinux.js +99 -0
  108. package/dist/classes/ovary.d/user-create-live.d.ts +14 -0
  109. package/dist/classes/ovary.d/user-create-live.js +97 -0
  110. package/dist/classes/ovary.d/users-remove.d.ts +9 -0
  111. package/dist/classes/ovary.d/users-remove.js +38 -0
  112. package/dist/classes/ovary.d/xorriso-command.d.ts +14 -0
  113. package/dist/classes/ovary.d/xorriso-command.js +125 -0
  114. package/dist/classes/ovary.d.ts +111 -0
  115. package/dist/classes/ovary.js +122 -0
  116. package/dist/classes/pacman.d/alpine.d.ts +56 -0
  117. package/dist/classes/pacman.d/alpine.js +167 -0
  118. package/dist/classes/pacman.d/archlinux.d.ts +62 -0
  119. package/dist/classes/pacman.d/archlinux.js +128 -0
  120. package/dist/classes/pacman.d/debian.d.ts +65 -0
  121. package/dist/classes/pacman.d/debian.js +143 -0
  122. package/dist/classes/pacman.d/fedora.d.ts +53 -0
  123. package/dist/classes/pacman.d/fedora.js +107 -0
  124. package/dist/classes/pacman.d/openmamba.d.ts +52 -0
  125. package/dist/classes/pacman.d/openmamba.js +106 -0
  126. package/dist/classes/pacman.d/opensuse.d.ts +53 -0
  127. package/dist/classes/pacman.d/opensuse.js +109 -0
  128. package/dist/classes/pacman.d.ts +139 -0
  129. package/dist/classes/pacman.js +683 -0
  130. package/dist/classes/pve-live.d.ts +17 -0
  131. package/dist/classes/pve-live.js +52 -0
  132. package/dist/classes/pxe.d.ts +76 -0
  133. package/dist/classes/pxe.js +353 -0
  134. package/dist/classes/settings.d.ts +52 -0
  135. package/dist/classes/settings.js +185 -0
  136. package/dist/classes/sources_list.d.ts +28 -0
  137. package/dist/classes/sources_list.js +89 -0
  138. package/dist/classes/systemctl.d.ts +47 -0
  139. package/dist/classes/systemctl.js +86 -0
  140. package/dist/classes/tailor.d.ts +50 -0
  141. package/dist/classes/tailor.js +563 -0
  142. package/dist/classes/tools.d.ts +26 -0
  143. package/dist/classes/tools.js +50 -0
  144. package/dist/classes/users.d.ts +28 -0
  145. package/dist/classes/users.js +143 -0
  146. package/dist/classes/utils.d/kernel.d.ts +39 -0
  147. package/dist/classes/utils.d/kernel.js +206 -0
  148. package/dist/classes/utils.d.ts +330 -0
  149. package/dist/classes/utils.js +968 -0
  150. package/dist/classes/xdg.d.ts +45 -0
  151. package/dist/classes/xdg.js +337 -0
  152. package/dist/classes/yolk.d.ts +33 -0
  153. package/dist/classes/yolk.js +114 -0
  154. package/dist/commands/adapt.d.ts +17 -0
  155. package/dist/commands/adapt.js +33 -0
  156. package/dist/commands/analyze.d.ts +26 -0
  157. package/dist/commands/analyze.js +95 -0
  158. package/dist/commands/calamares.d.ts +29 -0
  159. package/dist/commands/calamares.js +112 -0
  160. package/dist/commands/config.d.ts +35 -0
  161. package/dist/commands/config.js +120 -0
  162. package/dist/commands/cuckoo.d.ts +17 -0
  163. package/dist/commands/cuckoo.js +61 -0
  164. package/dist/commands/dad.d.ts +21 -0
  165. package/dist/commands/dad.js +47 -0
  166. package/dist/commands/export/iso.d.ts +19 -0
  167. package/dist/commands/export/iso.js +55 -0
  168. package/dist/commands/export/pkg.d.ts +29 -0
  169. package/dist/commands/export/pkg.js +173 -0
  170. package/dist/commands/export/tarballs.d.ts +27 -0
  171. package/dist/commands/export/tarballs.js +79 -0
  172. package/dist/commands/install.d.ts +39 -0
  173. package/dist/commands/install.js +113 -0
  174. package/dist/commands/kill.d.ts +24 -0
  175. package/dist/commands/kill.js +50 -0
  176. package/dist/commands/love.d.ts +25 -0
  177. package/dist/commands/love.js +118 -0
  178. package/dist/commands/mom.d.ts +16 -0
  179. package/dist/commands/mom.js +30 -0
  180. package/dist/commands/pods.d.ts +22 -0
  181. package/dist/commands/pods.js +92 -0
  182. package/dist/commands/produce.d.ts +37 -0
  183. package/dist/commands/produce.js +232 -0
  184. package/dist/commands/status.d.ts +23 -0
  185. package/dist/commands/status.js +31 -0
  186. package/dist/commands/tools/clean.d.ts +18 -0
  187. package/dist/commands/tools/clean.js +37 -0
  188. package/dist/commands/tools/repo.d.ts +31 -0
  189. package/dist/commands/tools/repo.js +246 -0
  190. package/dist/commands/tools/skel.d.ts +18 -0
  191. package/dist/commands/tools/skel.js +44 -0
  192. package/dist/commands/tools/stat.d.ts +31 -0
  193. package/dist/commands/tools/stat.js +70 -0
  194. package/dist/commands/tools/yolk.d.ts +24 -0
  195. package/dist/commands/tools/yolk.js +45 -0
  196. package/dist/commands/update.d.ts +46 -0
  197. package/dist/commands/update.js +238 -0
  198. package/dist/commands/wardrobe/get.d.ts +23 -0
  199. package/dist/commands/wardrobe/get.js +52 -0
  200. package/dist/commands/wardrobe/list.d.ts +24 -0
  201. package/dist/commands/wardrobe/list.js +125 -0
  202. package/dist/commands/wardrobe/show.d.ts +25 -0
  203. package/dist/commands/wardrobe/show.js +97 -0
  204. package/dist/commands/wardrobe/wear.d.ts +26 -0
  205. package/dist/commands/wardrobe/wear.js +84 -0
  206. package/dist/dhcpd-proxy/classes/packet.d.ts +36 -0
  207. package/dist/dhcpd-proxy/classes/packet.js +124 -0
  208. package/dist/dhcpd-proxy/index.d.ts +4 -0
  209. package/dist/dhcpd-proxy/index.js +4 -0
  210. package/dist/dhcpd-proxy/interfaces/i-pxe.d.ts +45 -0
  211. package/dist/dhcpd-proxy/interfaces/i-pxe.js +1 -0
  212. package/dist/dhcpd-proxy/lib/packet/converters.d.ts +11 -0
  213. package/dist/dhcpd-proxy/lib/packet/converters.js +395 -0
  214. package/dist/dhcpd-proxy/lib/packet/message-types.d.ts +10 -0
  215. package/dist/dhcpd-proxy/lib/packet/message-types.js +12 -0
  216. package/dist/dhcpd-proxy/lib/packet/options.d.ts +8 -0
  217. package/dist/dhcpd-proxy/lib/packet/options.js +264 -0
  218. package/dist/dhcpd-proxy/lib/sprintf.d.ts +6 -0
  219. package/dist/dhcpd-proxy/lib/sprintf.js +130 -0
  220. package/dist/dhcpd-proxy/lib/utils.d.ts +126 -0
  221. package/dist/dhcpd-proxy/lib/utils.js +255 -0
  222. package/dist/dhcpd-proxy/simple-proxy.d.ts +11 -0
  223. package/dist/dhcpd-proxy/simple-proxy.js +118 -0
  224. package/dist/index.d.ts +8 -0
  225. package/dist/index.js +8 -0
  226. package/dist/interfaces/calamares/i-calamares-bootloader.d.ts +23 -0
  227. package/dist/interfaces/calamares/i-calamares-bootloader.js +7 -0
  228. package/dist/interfaces/calamares/i-calamares-branding.d.ts +46 -0
  229. package/dist/interfaces/calamares/i-calamares-branding.js +1 -0
  230. package/dist/interfaces/calamares/i-calamares-displaymanager.d.ts +34 -0
  231. package/dist/interfaces/calamares/i-calamares-displaymanager.js +1 -0
  232. package/dist/interfaces/calamares/i-calamares-finished.d.ts +14 -0
  233. package/dist/interfaces/calamares/i-calamares-finished.js +1 -0
  234. package/dist/interfaces/calamares/i-calamares-packages.d.ts +26 -0
  235. package/dist/interfaces/calamares/i-calamares-packages.js +1 -0
  236. package/dist/interfaces/calamares/i-calamares-partitions.d.ts +39 -0
  237. package/dist/interfaces/calamares/i-calamares-partitions.js +1 -0
  238. package/dist/interfaces/calamares/i-calamares-settings.d.ts +36 -0
  239. package/dist/interfaces/calamares/i-calamares-settings.js +1 -0
  240. package/dist/interfaces/i-addons.d.ts +12 -0
  241. package/dist/interfaces/i-addons.js +8 -0
  242. package/dist/interfaces/i-analyze.d.ts +17 -0
  243. package/dist/interfaces/i-analyze.js +17 -0
  244. package/dist/interfaces/i-app.d.ts +14 -0
  245. package/dist/interfaces/i-app.js +8 -0
  246. package/dist/interfaces/i-config-tools.d.ts +15 -0
  247. package/dist/interfaces/i-config-tools.js +8 -0
  248. package/dist/interfaces/i-devices.d.ts +20 -0
  249. package/dist/interfaces/i-devices.js +8 -0
  250. package/dist/interfaces/i-distro.d.ts +23 -0
  251. package/dist/interfaces/i-distro.js +8 -0
  252. package/dist/interfaces/i-drive-list.d.ts +33 -0
  253. package/dist/interfaces/i-drive-list.js +8 -0
  254. package/dist/interfaces/i-eggs-config.d.ts +32 -0
  255. package/dist/interfaces/i-eggs-config.js +8 -0
  256. package/dist/interfaces/i-excludes.d.ts +14 -0
  257. package/dist/interfaces/i-excludes.js +8 -0
  258. package/dist/interfaces/i-exec.d.ts +11 -0
  259. package/dist/interfaces/i-exec.js +8 -0
  260. package/dist/interfaces/i-initrd.d.ts +13 -0
  261. package/dist/interfaces/i-initrd.js +8 -0
  262. package/dist/interfaces/i-install.d.ts +16 -0
  263. package/dist/interfaces/i-install.js +8 -0
  264. package/dist/interfaces/i-installer.d.ts +17 -0
  265. package/dist/interfaces/i-installer.js +8 -0
  266. package/dist/interfaces/i-luks-passphrase.d.ts +11 -0
  267. package/dist/interfaces/i-luks-passphrase.js +8 -0
  268. package/dist/interfaces/i-materia.d.ts +36 -0
  269. package/dist/interfaces/i-materia.js +8 -0
  270. package/dist/interfaces/i-net.d.ts +16 -0
  271. package/dist/interfaces/i-net.js +8 -0
  272. package/dist/interfaces/i-os-release.d.ts +5 -0
  273. package/dist/interfaces/i-os-release.js +1 -0
  274. package/dist/interfaces/i-packages.d.ts +16 -0
  275. package/dist/interfaces/i-packages.js +8 -0
  276. package/dist/interfaces/i-partitions.d.ts +16 -0
  277. package/dist/interfaces/i-partitions.js +8 -0
  278. package/dist/interfaces/i-pxe.d.ts +45 -0
  279. package/dist/interfaces/i-pxe.js +1 -0
  280. package/dist/interfaces/i-remix.d.ts +21 -0
  281. package/dist/interfaces/i-remix.js +8 -0
  282. package/dist/interfaces/i-settings.d.ts +33 -0
  283. package/dist/interfaces/i-settings.js +8 -0
  284. package/dist/interfaces/i-user.d.ts +14 -0
  285. package/dist/interfaces/i-user.js +8 -0
  286. package/dist/interfaces/i-workdir.d.ts +14 -0
  287. package/dist/interfaces/i-workdir.js +8 -0
  288. package/dist/interfaces/i-xkb-model.d.ts +24 -0
  289. package/dist/interfaces/i-xkb-model.js +8 -0
  290. package/dist/interfaces/index.d.ts +26 -0
  291. package/dist/interfaces/index.js +8 -0
  292. package/dist/krill/classes/cfs.d.ts +17 -0
  293. package/dist/krill/classes/cfs.js +39 -0
  294. package/dist/krill/classes/krill_enums.d.ts +37 -0
  295. package/dist/krill/classes/krill_enums.js +41 -0
  296. package/dist/krill/classes/prepare.d/confirm.d.ts +5 -0
  297. package/dist/krill/classes/prepare.d/confirm.js +30 -0
  298. package/dist/krill/classes/prepare.d/keyboard.d.ts +14 -0
  299. package/dist/krill/classes/prepare.d/keyboard.js +62 -0
  300. package/dist/krill/classes/prepare.d/location.d.ts +17 -0
  301. package/dist/krill/classes/prepare.d/location.js +59 -0
  302. package/dist/krill/classes/prepare.d/network.d.ts +14 -0
  303. package/dist/krill/classes/prepare.d/network.js +68 -0
  304. package/dist/krill/classes/prepare.d/partitions.d.ts +14 -0
  305. package/dist/krill/classes/prepare.d/partitions.js +86 -0
  306. package/dist/krill/classes/prepare.d/summary.d.ts +15 -0
  307. package/dist/krill/classes/prepare.d/summary.js +72 -0
  308. package/dist/krill/classes/prepare.d/users.d.ts +6 -0
  309. package/dist/krill/classes/prepare.d/users.js +63 -0
  310. package/dist/krill/classes/prepare.d/welcome.d.ts +6 -0
  311. package/dist/krill/classes/prepare.d/welcome.js +30 -0
  312. package/dist/krill/classes/prepare.d.ts +89 -0
  313. package/dist/krill/classes/prepare.js +319 -0
  314. package/dist/krill/classes/sequence.d/add_user.d.ts +20 -0
  315. package/dist/krill/classes/sequence.d/add_user.js +77 -0
  316. package/dist/krill/classes/sequence.d/bootloader.d.ts +14 -0
  317. package/dist/krill/classes/sequence.d/bootloader.js +117 -0
  318. package/dist/krill/classes/sequence.d/bootloader_config.d.ts +14 -0
  319. package/dist/krill/classes/sequence.d/bootloader_config.js +192 -0
  320. package/dist/krill/classes/sequence.d/change_password.d.ts +15 -0
  321. package/dist/krill/classes/sequence.d/change_password.js +18 -0
  322. package/dist/krill/classes/sequence.d/del_live_user.d.ts +14 -0
  323. package/dist/krill/classes/sequence.d/del_live_user.js +39 -0
  324. package/dist/krill/classes/sequence.d/fstab.d.ts +14 -0
  325. package/dist/krill/classes/sequence.d/fstab.js +177 -0
  326. package/dist/krill/classes/sequence.d/grubcfg.d.ts +17 -0
  327. package/dist/krill/classes/sequence.d/grubcfg.js +35 -0
  328. package/dist/krill/classes/sequence.d/hostname.d.ts +13 -0
  329. package/dist/krill/classes/sequence.d/hostname.js +50 -0
  330. package/dist/krill/classes/sequence.d/initramfs.d.ts +13 -0
  331. package/dist/krill/classes/sequence.d/initramfs.js +54 -0
  332. package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +14 -0
  333. package/dist/krill/classes/sequence.d/initramfs_cfg.js +35 -0
  334. package/dist/krill/classes/sequence.d/locale.d.ts +13 -0
  335. package/dist/krill/classes/sequence.d/locale.js +91 -0
  336. package/dist/krill/classes/sequence.d/locale_cfg.d.ts +10 -0
  337. package/dist/krill/classes/sequence.d/locale_cfg.js +58 -0
  338. package/dist/krill/classes/sequence.d/m_keyboard.d.ts +14 -0
  339. package/dist/krill/classes/sequence.d/m_keyboard.js +58 -0
  340. package/dist/krill/classes/sequence.d/machine_id.d.ts +15 -0
  341. package/dist/krill/classes/sequence.d/machine_id.js +33 -0
  342. package/dist/krill/classes/sequence.d/mkfs.d.ts +15 -0
  343. package/dist/krill/classes/sequence.d/mkfs.js +88 -0
  344. package/dist/krill/classes/sequence.d/mount_fs.d.ts +17 -0
  345. package/dist/krill/classes/sequence.d/mount_fs.js +68 -0
  346. package/dist/krill/classes/sequence.d/mount_vfs.d.ts +17 -0
  347. package/dist/krill/classes/sequence.d/mount_vfs.js +59 -0
  348. package/dist/krill/classes/sequence.d/network_cfg.d.ts +19 -0
  349. package/dist/krill/classes/sequence.d/network_cfg.js +73 -0
  350. package/dist/krill/classes/sequence.d/packages.d.ts +14 -0
  351. package/dist/krill/classes/sequence.d/packages.js +111 -0
  352. package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +17 -0
  353. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +73 -0
  354. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +16 -0
  355. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +51 -0
  356. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +17 -0
  357. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +77 -0
  358. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +10 -0
  359. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +33 -0
  360. package/dist/krill/classes/sequence.d/partition.d.ts +14 -0
  361. package/dist/krill/classes/sequence.d/partition.js +84 -0
  362. package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +13 -0
  363. package/dist/krill/classes/sequence.d/remove_installer_link.js +35 -0
  364. package/dist/krill/classes/sequence.d/umount.d.ts +14 -0
  365. package/dist/krill/classes/sequence.d/umount.js +28 -0
  366. package/dist/krill/classes/sequence.d/unpackfs.d.ts +13 -0
  367. package/dist/krill/classes/sequence.d/unpackfs.js +20 -0
  368. package/dist/krill/classes/sequence.d.ts +134 -0
  369. package/dist/krill/classes/sequence.js +400 -0
  370. package/dist/krill/components/finished.d.ts +16 -0
  371. package/dist/krill/components/finished.js +56 -0
  372. package/dist/krill/components/information.d.ts +8 -0
  373. package/dist/krill/components/information.js +162 -0
  374. package/dist/krill/components/install.d.ts +15 -0
  375. package/dist/krill/components/install.js +60 -0
  376. package/dist/krill/components/keyboard.d.ts +16 -0
  377. package/dist/krill/components/keyboard.js +54 -0
  378. package/dist/krill/components/location.d.ts +16 -0
  379. package/dist/krill/components/location.js +59 -0
  380. package/dist/krill/components/network.d.ts +19 -0
  381. package/dist/krill/components/network.js +65 -0
  382. package/dist/krill/components/partitions.d.ts +18 -0
  383. package/dist/krill/components/partitions.js +89 -0
  384. package/dist/krill/components/steps.d.ts +13 -0
  385. package/dist/krill/components/steps.js +148 -0
  386. package/dist/krill/components/summary.d.ts +25 -0
  387. package/dist/krill/components/summary.js +77 -0
  388. package/dist/krill/components/title.d.ts +11 -0
  389. package/dist/krill/components/title.js +35 -0
  390. package/dist/krill/components/users.d.ts +24 -0
  391. package/dist/krill/components/users.js +80 -0
  392. package/dist/krill/components/welcome.d.ts +13 -0
  393. package/dist/krill/components/welcome.js +63 -0
  394. package/dist/krill/interfaces/i_krill.d.ts +44 -0
  395. package/dist/krill/interfaces/i_krill.js +8 -0
  396. package/dist/krill/interfaces/i_krill_config.d.ts +35 -0
  397. package/dist/krill/interfaces/i_krill_config.js +8 -0
  398. package/dist/krill/lib/get_address.d.ts +8 -0
  399. package/dist/krill/lib/get_address.js +23 -0
  400. package/dist/krill/lib/get_dns.d.ts +8 -0
  401. package/dist/krill/lib/get_dns.js +23 -0
  402. package/dist/krill/lib/get_domain.d.ts +8 -0
  403. package/dist/krill/lib/get_domain.js +23 -0
  404. package/dist/krill/lib/get_gateway.d.ts +8 -0
  405. package/dist/krill/lib/get_gateway.js +23 -0
  406. package/dist/krill/lib/get_hostname.d.ts +8 -0
  407. package/dist/krill/lib/get_hostname.js +23 -0
  408. package/dist/krill/lib/get_luks_passphrase.d.ts +8 -0
  409. package/dist/krill/lib/get_luks_passphrase.js +32 -0
  410. package/dist/krill/lib/get_netmask.d.ts +8 -0
  411. package/dist/krill/lib/get_netmask.js +23 -0
  412. package/dist/krill/lib/get_password.d.ts +8 -0
  413. package/dist/krill/lib/get_password.js +36 -0
  414. package/dist/krill/lib/get_userfullname.d.ts +8 -0
  415. package/dist/krill/lib/get_userfullname.js +23 -0
  416. package/dist/krill/lib/get_username.d.ts +8 -0
  417. package/dist/krill/lib/get_username.js +23 -0
  418. package/dist/krill/lib/select_address_type.d.ts +8 -0
  419. package/dist/krill/lib/select_address_type.js +24 -0
  420. package/dist/krill/lib/select_filesystem_type.d.ts +8 -0
  421. package/dist/krill/lib/select_filesystem_type.js +40 -0
  422. package/dist/krill/lib/select_installation_device.d.ts +8 -0
  423. package/dist/krill/lib/select_installation_device.js +40 -0
  424. package/dist/krill/lib/select_installation_mode.d.ts +9 -0
  425. package/dist/krill/lib/select_installation_mode.js +25 -0
  426. package/dist/krill/lib/select_interface.d.ts +8 -0
  427. package/dist/krill/lib/select_interface.js +24 -0
  428. package/dist/krill/lib/select_keyboard_layout.d.ts +11 -0
  429. package/dist/krill/lib/select_keyboard_layout.js +36 -0
  430. package/dist/krill/lib/select_keyboard_model.d.ts +11 -0
  431. package/dist/krill/lib/select_keyboard_model.js +34 -0
  432. package/dist/krill/lib/select_keyboard_option.d.ts +11 -0
  433. package/dist/krill/lib/select_keyboard_option.js +34 -0
  434. package/dist/krill/lib/select_keyboard_variant.d.ts +11 -0
  435. package/dist/krill/lib/select_keyboard_variant.js +35 -0
  436. package/dist/krill/lib/select_languages.d.ts +8 -0
  437. package/dist/krill/lib/select_languages.js +28 -0
  438. package/dist/krill/lib/select_regions.d.ts +8 -0
  439. package/dist/krill/lib/select_regions.js +24 -0
  440. package/dist/krill/lib/select_replaced_partition.d.ts +8 -0
  441. package/dist/krill/lib/select_replaced_partition.js +31 -0
  442. package/dist/krill/lib/select_user_swap_choice.d.ts +9 -0
  443. package/dist/krill/lib/select_user_swap_choice.js +35 -0
  444. package/dist/krill/lib/select_zones.d.ts +8 -0
  445. package/dist/krill/lib/select_zones.js +518 -0
  446. package/dist/lib/kill_me_softly.d.ts +11 -0
  447. package/dist/lib/kill_me_softly.js +61 -0
  448. package/dist/lib/utils.d.ts +19 -0
  449. package/dist/lib/utils.js +65 -0
  450. package/dracut/dracut.conf.d/50-live.conf +12 -13
  451. package/package.json +1 -1
  452. package/perrisbrewery/template/dependencies.yaml +1 -0
@@ -0,0 +1,296 @@
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 mustache from 'mustache';
9
+ // packages
10
+ import fs from 'node:fs';
11
+ import path from 'node:path';
12
+ // classes
13
+ import { exec } from '../../lib/utils.js';
14
+ import Diversions from '../diversions.js';
15
+ import Utils from '../utils.js';
16
+ // _dirname
17
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
18
+ /**
19
+ *
20
+ * @param this
21
+ * @param theme
22
+ */
23
+ export async function makeEfi(theme = 'eggs') {
24
+ const bootloaders = Diversions.bootloaders(this.familyId);
25
+ /**
26
+ * except Debian/Devuan/Ubuntu all distros will use: not signed
27
+ * paths here for Ubuntu and Debian are the same, here checked!
28
+ */
29
+ let signed = false;
30
+ let grubEfi = path.resolve(bootloaders, `grub/x86_64-efi/monolithic/grubx64.efi`);
31
+ let shimEfi = path.resolve(bootloaders, `shim/shimx64.efi`);
32
+ if (this.familyId === "debian") {
33
+ signed = true;
34
+ if (process.arch === 'x64') {
35
+ grubEfi = path.resolve(bootloaders, `grub/x86_64-efi-signed/grubx64.efi.signed`);
36
+ shimEfi = path.resolve(bootloaders, `shim/shimx64.efi.signed`);
37
+ }
38
+ else if (process.arch === 'ia32') {
39
+ grubEfi = path.resolve(bootloaders, `grub/i386-efi-signed/grubia32.efi.signed`);
40
+ shimEfi = path.resolve(bootloaders, `shim/shimia32.efi.signed`);
41
+ }
42
+ else if (process.arch === 'arm64') {
43
+ grubEfi = path.resolve(bootloaders, `grub/arm64-efi-signed/grubaa64.efi.signed`);
44
+ shimEfi = path.resolve(bootloaders, `shim/shimaa64.efi.signed`);
45
+ }
46
+ }
47
+ if (signed) {
48
+ Utils.warning(`Your live system ${this.distroId}/${process.arch} can boot with Secure Boot enabled`);
49
+ }
50
+ else {
51
+ Utils.warning(`You must disable Secure Boot to boot live system ${this.distroId}/${process.arch}`);
52
+ }
53
+ // 2 secondi per leggere...
54
+ await new Promise(resolve => setTimeout(resolve, 2000));
55
+ const efiPath = path.join(this.settings.config.snapshot_mnt, '/efi/');
56
+ const efiWorkDir = path.join(efiPath, '/work/');
57
+ const efiMemdiskDir = path.join(efiPath, '/memdisk/');
58
+ const efiImgMnt = path.join(efiPath, 'mnt');
59
+ const isoDir = this.settings.iso_work;
60
+ // create (ISO)/boot/grub
61
+ await exec(`mkdir ${isoDir}/boot/grub/${Utils.uefiFormat()} -p`, this.echo);
62
+ // create (ISO)/EFI
63
+ await exec(`mkdir ${isoDir}/EFI/boot -p`, this.echo);
64
+ await exec(`cp ${shimEfi} ${isoDir}/EFI/boot/${bootEfiName()}`, this.echo);
65
+ await exec(`cp ${grubEfi} ${isoDir}/EFI/boot/${grubEfiName()}`, this.echo);
66
+ // clean/create all in efiPath
67
+ if (fs.existsSync(efiPath)) {
68
+ await exec(`rm -rf ${efiPath}`);
69
+ }
70
+ await exec(`mkdir ${efiPath}`, this.echo);
71
+ await exec(`mkdir ${efiMemdiskDir}`, this.echo);
72
+ await exec(`mkdir ${efiImgMnt}`, this.echo);
73
+ await exec(`mkdir ${efiWorkDir}`, this.echo);
74
+ /**
75
+ * create efi.img
76
+ */
77
+ let seeker = '';
78
+ seeker += `search --file --set=root /.disk/id/${this.uuid}\n`;
79
+ seeker += "set prefix=($root)/boot/grub\n";
80
+ seeker += "source $prefix/${grub_cpu}-efi/grub.cfg\n";
81
+ /**
82
+ * creating grub.cfg (1) seeker for usb on (efi.img)/boot/grub/grub.cfg
83
+ */
84
+ Utils.warning("creating grub.cfg seeker USB on (efi.img)/boot/grub");
85
+ await exec(`mkdir ${path.join(efiMemdiskDir, "/boot/grub -p")}`, this.echo);
86
+ const cfgSeekerUsb = `${efiMemdiskDir}/boot/grub/grub.cfg`;
87
+ let cfgSeekerUsbText = '';
88
+ cfgSeekerUsbText += `# grub.cfg seeker\n`;
89
+ cfgSeekerUsbText += `# created on ${efiMemdiskDir}, path ${cfgSeekerUsb}\n`;
90
+ cfgSeekerUsbText += `\n`;
91
+ cfgSeekerUsbText += seeker;
92
+ Utils.write(cfgSeekerUsb, cfgSeekerUsbText);
93
+ /**
94
+ * create grub.cfg (bridge) on (ISO)/boot/grub/x86_64-efi/grub.cfg
95
+ */
96
+ Utils.warning(`creating grub.cfg bridge to main. (ISO)/boot/grub/${Utils.uefiFormat()}`);
97
+ let cfgBridge = path.join(isoDir, '/boot/grub/', Utils.uefiFormat(), '/grub.cfg');
98
+ let cfgBridgeText = `# grub.cfg bridge\n`;
99
+ if (!this.hidden) {
100
+ cfgBridgeText += `# created on ${cfgBridge}\n`;
101
+ }
102
+ cfgBridgeText += `\n`;
103
+ cfgBridgeText += `source /boot/grub/grub.cfg\n`;
104
+ fs.writeFileSync(cfgBridge, cfgBridgeText);
105
+ /**
106
+ * grub bait: si applica a tutte le distro:
107
+ * /EFI/debian per tutti, tranne ubuntu
108
+ */
109
+ let pathBait = path.join(isoDir, '/EFI/debian');
110
+ if (this.distroLike === 'Ubuntu') {
111
+ pathBait = path.join(isoDir, '/EFI/ubuntu');
112
+ }
113
+ await exec(`mkdir ${pathBait} -p`, this.echo);
114
+ Utils.warning(`creating grub.cfg seeker ISO/DVD on (ISO)/EFI/${path.basename(pathBait)}`);
115
+ let cfgBait = path.join(pathBait, '/grub.cfg');
116
+ let cfgBaitText = '';
117
+ cfgBaitText += `\n`;
118
+ cfgBaitText += seeker;
119
+ Utils.write(cfgBait, cfgBaitText);
120
+ /**
121
+ * README.md, per tutti tranne distrolike Debian ed Ubuntu
122
+ */
123
+ let baitReadme = path.join(pathBait, '/README.md');
124
+ let baitReadmeText = ``;
125
+ if (this.distroLike !== 'Debian' && this.distroLike !== 'Ubuntu') {
126
+ baitReadmeText += `# penguins-eggs\n`;
127
+ baitReadmeText += '\n';
128
+ baitReadmeText += `This is just an hack, to let ${this.distroId} boot using Debian trixie bootloaders\n`;
129
+ fs.writeFileSync(baitReadme, baitReadmeText);
130
+ }
131
+ /**
132
+ * creating structure efiWordDir
133
+ */
134
+ await exec(`mkdir -p ${efiWorkDir}/boot/grub`, this.echo); // qua va grub.cfg 2
135
+ await exec(`mkdir -p ${efiWorkDir}/EFI/boot`);
136
+ /**
137
+ * create tarred efiMemdiskDir
138
+ */
139
+ const currentDir = process.cwd();
140
+ process.chdir(efiMemdiskDir);
141
+ await exec('tar -cvf memdisk boot', this.echo);
142
+ process.chdir(currentDir);
143
+ /**
144
+ * Create boot image "boot/grub/efi.img"
145
+ */
146
+ const efiImg = path.join(efiWorkDir, `boot/grub/efi.img`);
147
+ await exec(`dd if=/dev/zero of=${efiImg} bs=1M count=16`, this.echo);
148
+ await exec(`/sbin/mkdosfs -F 12 ${efiImg}`, this.echo);
149
+ await new Promise(resolve => setTimeout(resolve, 500));
150
+ // mount efi.img on mountpoint mnt-img
151
+ await exec(`mount --make-shared -o loop ${efiImg} ${efiImgMnt}`, this.echo);
152
+ await new Promise(resolve => setTimeout(resolve, 1000));
153
+ // create structure inside (efi.img)
154
+ await exec(`mkdir -p ${efiImgMnt}/boot`, this.echo);
155
+ await exec(`mkdir -p ${efiImgMnt}/EFI/boot`, this.echo);
156
+ /**
157
+ * copy grubCfg1 (grub.cfg) to (efi.img)/boot/grub
158
+ */
159
+ await exec(`cp ${cfgSeekerUsb} ${efiImgMnt}/boot/grub.cfg`, this.echo);
160
+ await exec(`cp ${shimEfi} ${efiImgMnt}/EFI/boot/${bootEfiName()}`, this.echo);
161
+ await exec(`cp ${grubEfi} ${efiImgMnt}/EFI/boot/${grubEfiName()}`, this.echo);
162
+ await new Promise(resolve => setTimeout(resolve, 1000));
163
+ if (!fs.existsSync(`${efiImgMnt}/boot/grub.cfg`)) {
164
+ console.log(`error copyng ${cfgSeekerUsb} seeker for USB on (efi.img)/boot/grub.cfg`);
165
+ process.exit(1);
166
+ }
167
+ await new Promise(resolve => setTimeout(resolve, 500));
168
+ await exec(`umount ${efiImgMnt}`, this.echo);
169
+ await new Promise(resolve => setTimeout(resolve, 500));
170
+ // Copy isoImg in ${${isoDir}/boot/grub
171
+ Utils.warning("copyng (efi.img) on (ISO)/boot/grub");
172
+ await exec(`cp ${efiImg} ${isoDir}/boot/grub`, this.echo);
173
+ /**
174
+ * creating grub.cfg (4) on (ISO)/boot/grub
175
+ */
176
+ Utils.warning("creating grub.cfg main on (ISO)/boot/grub");
177
+ // splash.png
178
+ let splashSrc = '';
179
+ const splashDest = `${efiWorkDir}/boot/grub/splash.png`;
180
+ let themeSrc = '';
181
+ const themeDest = `${isoDir}/boot/grub/theme.cfg`;
182
+ let grubTemplate = '';
183
+ if (this.hidden) {
184
+ splashSrc = path.resolve(__dirname, `../../../addons/${theme}/theme/livecd/generic-splash.png`);
185
+ grubTemplate = path.resolve(__dirname, '../../../addons/eggs/theme/livecd/generic.grub.main.cfg');
186
+ themeSrc = path.resolve(__dirname, '../../../addons/eggs/theme/livecd/generic.grub.theme.cfg');
187
+ }
188
+ else {
189
+ // copy splash to efiWorkDir
190
+ splashSrc = path.resolve(__dirname, `../../../addons/${theme}/theme/livecd/splash.png`);
191
+ if (this.theme.includes('/')) {
192
+ splashSrc = `${theme}/theme/livecd/splash.png`;
193
+ }
194
+ if (!fs.existsSync(splashSrc)) {
195
+ Utils.warning(`warning: ${splashSrc} does not exists`);
196
+ process.exit(1);
197
+ }
198
+ // select themeSrc
199
+ themeSrc = path.resolve(__dirname, `../../../addons/${theme}/theme/livecd/grub.theme.cfg`);
200
+ if (this.theme.includes('/')) {
201
+ themeSrc = `${theme}/theme/livecd/grub.theme.cfg`;
202
+ }
203
+ // copy theme
204
+ if (!fs.existsSync(themeSrc)) {
205
+ Utils.error(`error: ${themeSrc} does not exist`);
206
+ process.exit(1);
207
+ }
208
+ // selecting available fonts
209
+ if (fs.existsSync('/usr/share/grub/font.pf2')) {
210
+ await exec(`cp /usr/share/grub/font.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
211
+ }
212
+ else if (fs.existsSync('/usr/share/grub/unicode.pf2')) {
213
+ await exec(`cp /usr/share/grub/unicode.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
214
+ }
215
+ else if (fs.existsSync('/usr/share/grub/ascii.pf2')) {
216
+ await exec(`cp /usr/share/grub/ascii.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
217
+ }
218
+ // Copy workdir files to ISO/boot
219
+ await exec(`rsync -avx ${efiWorkDir}/boot ${isoDir}/`, this.echo);
220
+ /**
221
+ * prepare main grub.cfg from grub.main.cfg
222
+ */
223
+ grubTemplate = `${theme}/theme/livecd/grub.main.cfg`;
224
+ if (!fs.existsSync(grubTemplate)) {
225
+ grubTemplate = path.resolve(__dirname, '../../../addons/eggs/theme/livecd/grub.main.cfg');
226
+ }
227
+ if (!fs.existsSync(grubTemplate)) {
228
+ Utils.error(`error: ${grubTemplate} does not exist`);
229
+ process.exit(1);
230
+ }
231
+ }
232
+ // splash.png
233
+ await exec(`cp ${splashSrc} ${splashDest}`, this.echo);
234
+ // grub.theme.png
235
+ fs.copyFileSync(themeSrc, themeDest);
236
+ // grub.main.png
237
+ const kernel_parameters = Diversions.kernelParameters(this.familyId, this.volid, this.fullcrypt);
238
+ const cfgMain = path.join(isoDir, '/boot/grub/grub.cfg');
239
+ const template = fs.readFileSync(grubTemplate, 'utf8');
240
+ let fullname = this.settings.remix.fullname.toUpperCase();
241
+ if (this.hidden) {
242
+ fullname = "LINUX";
243
+ }
244
+ const view = {
245
+ fullname: fullname,
246
+ initrdImg: `/live/${path.basename(this.initrd)}`,
247
+ kernel: this.kernel,
248
+ kernel_parameters,
249
+ vmlinuz: `/live/${path.basename(this.vmlinuz)}`
250
+ };
251
+ let cfgMainText = '';
252
+ cfgMainText += `# grub.cfg (4) main\n`;
253
+ if (!this.hidden) {
254
+ cfgMainText += `# created on ${cfgMain}`;
255
+ }
256
+ cfgMainText += `\n`;
257
+ cfgMainText += mustache.render(template, view);
258
+ fs.writeFileSync(cfgMain, cfgMainText);
259
+ }
260
+ /**
261
+ * FUNCTIONS
262
+ */
263
+ /**
264
+ *
265
+ * @returns
266
+ */
267
+ function bootEfiName() {
268
+ let ben = '';
269
+ if (process.arch === 'x64') {
270
+ ben = 'bootx64.efi';
271
+ }
272
+ else if (process.arch === 'ia32') {
273
+ ben = 'bootia32.efi';
274
+ }
275
+ else if (process.arch === 'arm64') {
276
+ ben = 'bootaa64.efi';
277
+ }
278
+ return ben;
279
+ }
280
+ /**
281
+ *
282
+ * @returns
283
+ */
284
+ function grubEfiName() {
285
+ let gen = '';
286
+ if (process.arch === 'x64') {
287
+ gen = 'grubx64.efi';
288
+ }
289
+ else if (process.arch === 'ia32') {
290
+ gen = 'grub ia32.efi';
291
+ }
292
+ else if (process.arch === 'arm64') {
293
+ gen = 'grubaa64.efi';
294
+ }
295
+ return gen;
296
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * ./src/classes/ovary.d/make-iso.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
+ * makeIso
11
+ * cmd: cmd 4 xorriso
12
+ */
13
+ export declare function makeIso(this: Ovary, cmd: string, scriptOnly?: boolean): Promise<void>;
@@ -0,0 +1,45 @@
1
+ /**
2
+ * ./src/classes/ovary.d/make-iso.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ // packages
9
+ import path from 'node:path';
10
+ // classes
11
+ import { exec } from '../../lib/utils.js';
12
+ import Utils from '../utils.js';
13
+ // _dirname
14
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
15
+ /**
16
+ * makeIso
17
+ * cmd: cmd 4 xorriso
18
+ */
19
+ export async function makeIso(cmd, scriptOnly = false) {
20
+ // echo = { echo: true, ignore: false }
21
+ if (this.verbose) {
22
+ console.log('Ovary: makeIso');
23
+ }
24
+ Utils.writeX(`${this.settings.work_dir.ovarium}mkisofs`, cmd);
25
+ // Create link to iso ALLWAYS
26
+ const src = this.settings.config.snapshot_mnt + this.settings.isoFilename;
27
+ const dest = this.settings.config.snapshot_dir + this.settings.isoFilename;
28
+ await exec(`ln -s ${src} ${dest}`);
29
+ if (!scriptOnly) {
30
+ const test = (await exec(cmd, Utils.setEcho(true))).code;
31
+ if (test !== 0) {
32
+ process.exit();
33
+ }
34
+ // Create link to iso
35
+ const src = this.settings.config.snapshot_mnt + this.settings.isoFilename;
36
+ const dest = this.settings.config.snapshot_dir + this.settings.isoFilename;
37
+ await exec(`ln -s ${src} ${dest}`);
38
+ // Create md5sum, sha256sum
39
+ if (this.settings.config.make_md5sum) {
40
+ Utils.warning('creating md5, sha256');
41
+ await exec(`md5sum ${src} > ${dest.replace('.iso', '.md5')}`);
42
+ await exec(`sha256sum ${src} > ${dest.replace('.iso', '.sha256')}`);
43
+ }
44
+ }
45
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * ./src/classes/ovary.d/make-squashfs.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import Ovary from '../ovary.js';
9
+ /**
10
+ * squashFs: crea in live filesystem.squashfs
11
+ */
12
+ export declare function makeSquashfs(this: Ovary, scriptOnly?: boolean, includeRootHome?: boolean): Promise<string>;
13
+ /**
14
+ * Add or remove exclusion
15
+ * @param add {boolean} true = add, false remove
16
+ * @param exclusion {string} path to add/remove
17
+ */
18
+ export declare function addExclusion(this: Ovary, exclusion: string): void;
@@ -0,0 +1,111 @@
1
+ /**
2
+ * ./src/classes/ovary.d/make-squashfs.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ // packages
9
+ import fs from 'fs';
10
+ import path from 'node:path';
11
+ // classes
12
+ import { exec } from '../../lib/utils.js';
13
+ import Utils from '../utils.js';
14
+ // _dirname
15
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
16
+ /**
17
+ * squashFs: crea in live filesystem.squashfs
18
+ */
19
+ export async function makeSquashfs(scriptOnly = false, includeRootHome = false) {
20
+ if (this.verbose) {
21
+ console.log('Ovary: makeSquashfs');
22
+ }
23
+ /**
24
+ * exclude all the accurence of cryptdisks in rc0.d, etc
25
+ */
26
+ const fexcludes = [
27
+ '/boot/efi/EFI',
28
+ '/boot/loader/entries/',
29
+ '/etc/fstab',
30
+ '/var/lib/containers/',
31
+ '/var/lib/docker/',
32
+ '/etc/mtab',
33
+ '/etc/udev/rules.d/70-persistent-cd.rules',
34
+ '/etc/udev/rules.d/70-persistent-net.rules',
35
+ ];
36
+ for (const i in fexcludes) {
37
+ this.addExclusion(fexcludes[i]);
38
+ }
39
+ /**
40
+ * Non sò che fa, ma sicuro non serve per archlinux
41
+ */
42
+ if (this.familyId === 'debian') {
43
+ const rcd = ['rc0.d', 'rc1.d', 'rc2.d', 'rc3.d', 'rc4.d', 'rc5.d', 'rc6.d', 'rcS.d'];
44
+ let files;
45
+ // escludo per ci
46
+ for (const i in rcd) {
47
+ if (fs.existsSync(`${this.settings.work_dir.merged}/etc/${rcd[i]}`)) {
48
+ files = fs.readdirSync(`${this.settings.work_dir.merged}/etc/${rcd[i]}`);
49
+ for (const n in files) {
50
+ if (files[n].includes('cryptdisks')) {
51
+ this.addExclusion(`/etc/${rcd[i]}${files[n]}`);
52
+ }
53
+ }
54
+ }
55
+ }
56
+ }
57
+ /**
58
+ * secure
59
+ */
60
+ if (!includeRootHome) {
61
+ this.addExclusion(`root/*`);
62
+ this.addExclusion(`root/.*`);
63
+ }
64
+ this.addExclusion(this.settings.config.snapshot_dir /* .absolutePath() */);
65
+ if (fs.existsSync(`${this.settings.iso_work}/live/filesystem.squashfs`)) {
66
+ fs.unlinkSync(`${this.settings.iso_work}/live/filesystem.squashfs`);
67
+ }
68
+ const compression = `-comp ${this.settings.config.compression}`;
69
+ /**
70
+ * limit: patch per Raspberry
71
+ */
72
+ const limit = '';
73
+ if (Utils.uefiArch() === 'arm64') {
74
+ // limit = ' -processors 2 -mem 1024M'
75
+ }
76
+ /**
77
+ * mksquashfs
78
+ *
79
+ * SYNTAX: mksquashfs source1 source2 ...
80
+ * FILESYSTEM [OPTIONS]
81
+ * [-ef exclude.list]
82
+ * [-e list of exclude dirs/files]
83
+ */
84
+ let sfsName = "filesystem.squashfs";
85
+ let cmd = `mksquashfs ${this.settings.work_dir.merged} ${this.settings.iso_work}live/${sfsName} ${compression} ${limit} -no-xattrs -wildcards -ef ${this.settings.config.snapshot_excludes} ${this.settings.session_excludes}`;
86
+ cmd = cmd.replaceAll(/\s\s+/g, ' ');
87
+ Utils.writeX(`${this.settings.work_dir.ovarium}mksquashfs`, cmd);
88
+ if (!scriptOnly) {
89
+ Utils.warning('creating filesystem.squashfs on (ISO)/live');
90
+ // Utils.warning(`compression: ` + compression)
91
+ const test = (await exec(cmd, Utils.setEcho(true))).code;
92
+ if (test !== 0) {
93
+ process.exit();
94
+ }
95
+ }
96
+ return cmd;
97
+ }
98
+ /**
99
+ * Add or remove exclusion
100
+ * @param add {boolean} true = add, false remove
101
+ * @param exclusion {string} path to add/remove
102
+ */
103
+ export function addExclusion(exclusion) {
104
+ if (this.verbose) {
105
+ console.log(`add exclusion: ${exclusion}`);
106
+ }
107
+ if (exclusion.startsWith('/')) {
108
+ exclusion = exclusion.slice(1); // remove / initial Non compatible with rsync
109
+ }
110
+ this.settings.session_excludes += this.settings.session_excludes === '' ? `-e '${exclusion}' ` : ` '${exclusion}' `;
111
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * ./src/classes/ovary.d/merge.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import Ovary from '../ovary.js';
9
+ /**
10
+ * Ritorna true se c'è bisogno del mount --bind
11
+ *
12
+ * Ci sono quattro tipologie:
13
+ *
14
+ * - copied
15
+ * - mergedAndOverlay
16
+ * - merged
17
+ * - just create
18
+ */
19
+ export declare function copied(this: Ovary, dir: string): boolean;
20
+ /**
21
+ *
22
+ */
23
+ export declare function mergedAndOverlay(this: Ovary, dir: string): boolean;
24
+ /**
25
+ * merged
26
+ */
27
+ export declare function merged(this: Ovary, dir: string): boolean;
@@ -0,0 +1,78 @@
1
+ /**
2
+ * ./src/classes/ovary.d/merge.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ // packages
9
+ import path from 'node:path';
10
+ // _dirname
11
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
12
+ /**
13
+ * Ritorna true se c'è bisogno del mount --bind
14
+ *
15
+ * Ci sono quattro tipologie:
16
+ *
17
+ * - copied
18
+ * - mergedAndOverlay
19
+ * - merged
20
+ * - just create
21
+ */
22
+ export function copied(dir) {
23
+ let copied = false;
24
+ let copiedDirs = [
25
+ 'boot',
26
+ 'etc'
27
+ ];
28
+ for (const copiedDir of copiedDirs) {
29
+ if (dir === copiedDir) {
30
+ copied = true;
31
+ }
32
+ }
33
+ return copied;
34
+ }
35
+ /**
36
+ *
37
+ */
38
+ export function mergedAndOverlay(dir) {
39
+ // per Alpine ho agginto bin
40
+ const moDirs = ['bin', 'usr', 'var'];
41
+ let mergedOverlay = false;
42
+ for (const moDir of moDirs) {
43
+ if (moDir === dir) {
44
+ mergedOverlay = true;
45
+ }
46
+ }
47
+ return mergedOverlay;
48
+ }
49
+ /**
50
+ * merged
51
+ */
52
+ export function merged(dir) {
53
+ let merged = true;
54
+ if (dir === 'home') {
55
+ merged = this.clone || this.fullcrypt;
56
+ }
57
+ else {
58
+ const onlyFolders = [
59
+ 'cdrom',
60
+ 'dev',
61
+ 'media',
62
+ 'mnt',
63
+ 'proc',
64
+ 'run',
65
+ 'swapfile',
66
+ 'sys',
67
+ 'tmp'
68
+ ];
69
+ // deepiin
70
+ onlyFolders.push('data', 'recovery');
71
+ for (const onlyFolder of onlyFolders) {
72
+ if (dir === onlyFolder) {
73
+ merged = false;
74
+ }
75
+ }
76
+ }
77
+ return merged;
78
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * ./src/classes/ovary.d/produce.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import { IAddons, IExcludes } from '../../interfaces/index.js';
9
+ import Ovary from './../ovary.js';
10
+ /**
11
+ * produce
12
+ * @param clone
13
+ * @param homecrypt
14
+ * @param scriptOnly
15
+ * @param yolkRenew
16
+ * @param release
17
+ * @param myAddons
18
+ * @param nointeractive
19
+ * @param noicons
20
+ * @param includeRootHome
21
+ * @param verbose
22
+ */
23
+ export declare function produce(this: Ovary, kernel: string | undefined, clone: boolean | undefined, homecrypt: boolean | undefined, fullcrypt: boolean | undefined, hidden: boolean | undefined, scriptOnly: boolean | undefined, yolkRenew: boolean | undefined, release: boolean | undefined, myAddons: IAddons, myLinks: string[], excludes: IExcludes, nointeractive?: boolean, noicons?: boolean, includeRootHome?: boolean, verbose?: boolean): Promise<void>;