penguins-eggs 10.1.0 → 10.1.1

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 (440) hide show
  1. package/.oclif.manifest.json +1 -32
  2. package/README.md +109 -78
  3. package/conf/derivatives.yaml +3 -0
  4. package/conf/distros/buster/calamares/modules/users.yml +1 -0
  5. package/conf/distros/noble/calamares/modules/users.yml +1 -0
  6. package/dist/classes/bleach.d.ts +32 -0
  7. package/dist/classes/bleach.js +135 -0
  8. package/dist/classes/cli-autologin.d.ts +52 -0
  9. package/dist/classes/cli-autologin.js +247 -0
  10. package/dist/classes/compressors.d.ts +54 -0
  11. package/dist/classes/compressors.js +109 -0
  12. package/dist/classes/daddy.d.ts +26 -0
  13. package/dist/classes/daddy.js +167 -0
  14. package/dist/classes/distro.d.ts +56 -0
  15. package/dist/classes/distro.js +413 -0
  16. package/dist/classes/diversions.d.ts +52 -0
  17. package/dist/classes/diversions.js +126 -0
  18. package/dist/classes/incubation/branding.d.ts +17 -0
  19. package/dist/classes/incubation/branding.js +85 -0
  20. package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +11 -0
  21. package/dist/classes/incubation/fisherman-helper/displaymanager.js +40 -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 +83 -0
  26. package/dist/classes/incubation/fisherman.d.ts +70 -0
  27. package/dist/classes/incubation/fisherman.js +263 -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/bionic.d.ts +32 -0
  31. package/dist/classes/incubation/incubator.d/bionic.js +83 -0
  32. package/dist/classes/incubation/incubator.d/buster.d.ts +32 -0
  33. package/dist/classes/incubation/incubator.d/buster.js +85 -0
  34. package/dist/classes/incubation/incubator.d/jessie.d.ts +31 -0
  35. package/dist/classes/incubation/incubator.d/jessie.js +44 -0
  36. package/dist/classes/incubation/incubator.d/noble.d.ts +32 -0
  37. package/dist/classes/incubation/incubator.d/noble.js +85 -0
  38. package/dist/classes/incubation/incubator.d/openmamba.d.ts +32 -0
  39. package/dist/classes/incubation/incubator.d/openmamba.js +81 -0
  40. package/dist/classes/incubation/incubator.d/opensuse.d.ts +32 -0
  41. package/dist/classes/incubation/incubator.d/opensuse.js +81 -0
  42. package/dist/classes/incubation/incubator.d/rolling.d.ts +32 -0
  43. package/dist/classes/incubation/incubator.d/rolling.js +80 -0
  44. package/dist/classes/incubation/incubator.d.ts +44 -0
  45. package/dist/classes/incubation/incubator.js +382 -0
  46. package/dist/classes/incubation/installer.d.ts +13 -0
  47. package/dist/classes/incubation/installer.js +52 -0
  48. package/dist/classes/keyboards.d.ts +50 -0
  49. package/dist/classes/keyboards.js +287 -0
  50. package/dist/classes/locales.d.ts +21 -0
  51. package/dist/classes/locales.js +77 -0
  52. package/dist/classes/network.d.ts +37 -0
  53. package/dist/classes/network.js +98 -0
  54. package/dist/classes/ovary.d/bind-live-fs.d.ts +18 -0
  55. package/dist/classes/ovary.d/bind-live-fs.js +177 -0
  56. package/dist/classes/ovary.d/bind-vfs.d.ts +17 -0
  57. package/dist/classes/ovary.d/bind-vfs.js +37 -0
  58. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +13 -0
  59. package/dist/classes/ovary.d/create-xdg-autostart.js +194 -0
  60. package/dist/classes/ovary.d/edit-live-fs.d.ts +20 -0
  61. package/dist/classes/ovary.d/edit-live-fs.js +245 -0
  62. package/dist/classes/ovary.d/fertilization.d.ts +12 -0
  63. package/dist/classes/ovary.d/fertilization.js +51 -0
  64. package/dist/classes/ovary.d/finished.d.ts +13 -0
  65. package/dist/classes/ovary.d/finished.js +41 -0
  66. package/dist/classes/ovary.d/initrd.d.ts +21 -0
  67. package/dist/classes/ovary.d/initrd.js +68 -0
  68. package/dist/classes/ovary.d/kernel-copy.d.ts +12 -0
  69. package/dist/classes/ovary.d/kernel-copy.js +22 -0
  70. package/dist/classes/ovary.d/live-create-structure.d.ts +12 -0
  71. package/dist/classes/ovary.d/live-create-structure.js +90 -0
  72. package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
  73. package/dist/classes/ovary.d/make-dot-disk.js +40 -0
  74. package/dist/classes/ovary.d/make-efi.d.ts +12 -0
  75. package/dist/classes/ovary.d/make-efi.js +271 -0
  76. package/dist/classes/ovary.d/make-iso.d.ts +13 -0
  77. package/dist/classes/ovary.d/make-iso.js +45 -0
  78. package/dist/classes/ovary.d/make-squashfs.d.ts +18 -0
  79. package/dist/classes/ovary.d/make-squashfs.js +110 -0
  80. package/dist/classes/ovary.d/merged.d.ts +27 -0
  81. package/dist/classes/ovary.d/merged.js +77 -0
  82. package/dist/classes/ovary.d/produce.d.ts +23 -0
  83. package/dist/classes/ovary.d/produce.js +293 -0
  84. package/dist/classes/ovary.d/rexec.d.ts +13 -0
  85. package/dist/classes/ovary.d/rexec.js +34 -0
  86. package/dist/classes/ovary.d/syslinux.d.ts +12 -0
  87. package/dist/classes/ovary.d/syslinux.js +79 -0
  88. package/dist/classes/ovary.d/user-create-live.d.ts +14 -0
  89. package/dist/classes/ovary.d/user-create-live.js +93 -0
  90. package/dist/classes/ovary.d/users-remove.d.ts +9 -0
  91. package/dist/classes/ovary.d/users-remove.js +38 -0
  92. package/dist/classes/ovary.d/xorriso-commend.d.ts +14 -0
  93. package/dist/classes/ovary.d/xorriso-commend.js +119 -0
  94. package/dist/classes/ovary.d.ts +82 -0
  95. package/dist/classes/ovary.js +86 -0
  96. package/dist/classes/pacman.d/aldos.d.ts +52 -0
  97. package/dist/classes/pacman.d/aldos.js +100 -0
  98. package/dist/classes/pacman.d/alpine.d.ts +56 -0
  99. package/dist/classes/pacman.d/alpine.js +162 -0
  100. package/dist/classes/pacman.d/archlinux.d.ts +62 -0
  101. package/dist/classes/pacman.d/archlinux.js +136 -0
  102. package/dist/classes/pacman.d/debian.d.ts +65 -0
  103. package/dist/classes/pacman.d/debian.js +143 -0
  104. package/dist/classes/pacman.d/fedora.d.ts +53 -0
  105. package/dist/classes/pacman.d/fedora.js +101 -0
  106. package/dist/classes/pacman.d/openmamba.d.ts +52 -0
  107. package/dist/classes/pacman.d/openmamba.js +100 -0
  108. package/dist/classes/pacman.d/opensuse.d.ts +53 -0
  109. package/dist/classes/pacman.d/opensuse.js +102 -0
  110. package/dist/classes/pacman.d/voidlinux.d.ts +52 -0
  111. package/dist/classes/pacman.d/voidlinux.js +90 -0
  112. package/dist/classes/pacman.d.ts +139 -0
  113. package/dist/classes/pacman.js +776 -0
  114. package/dist/classes/pve-live.d.ts +17 -0
  115. package/dist/classes/pve-live.js +52 -0
  116. package/dist/classes/pxe.d.ts +74 -0
  117. package/dist/classes/pxe.js +410 -0
  118. package/dist/classes/settings.d.ts +52 -0
  119. package/dist/classes/settings.js +185 -0
  120. package/dist/classes/sources_list.d.ts +28 -0
  121. package/dist/classes/sources_list.js +89 -0
  122. package/dist/classes/systemctl.d.ts +47 -0
  123. package/dist/classes/systemctl.js +86 -0
  124. package/dist/classes/tailor.d.ts +50 -0
  125. package/dist/classes/tailor.js +527 -0
  126. package/dist/classes/tools.d.ts +26 -0
  127. package/dist/classes/tools.js +50 -0
  128. package/dist/classes/users.d.ts +28 -0
  129. package/dist/classes/users.js +143 -0
  130. package/dist/classes/utils.d/architecture.d.ts +41 -0
  131. package/dist/classes/utils.d/architecture.js +87 -0
  132. package/dist/classes/utils.d/console-output.d.ts +26 -0
  133. package/dist/classes/utils.d/console-output.js +46 -0
  134. package/dist/classes/utils.d/filesystem.d.ts +53 -0
  135. package/dist/classes/utils.d/filesystem.js +152 -0
  136. package/dist/classes/utils.d/formatters.d.ts +32 -0
  137. package/dist/classes/utils.d/formatters.js +64 -0
  138. package/dist/classes/utils.d/kernel.d.ts +83 -0
  139. package/dist/classes/utils.d/kernel.js +288 -0
  140. package/dist/classes/utils.d/network.d.ts +43 -0
  141. package/dist/classes/utils.d/network.js +133 -0
  142. package/dist/classes/utils.d/package-info.d.ts +55 -0
  143. package/dist/classes/utils.d/package-info.js +137 -0
  144. package/dist/classes/utils.d/snapshot.d.ts +44 -0
  145. package/dist/classes/utils.d/snapshot.js +102 -0
  146. package/dist/classes/utils.d/system.d.ts +63 -0
  147. package/dist/classes/utils.d/system.js +200 -0
  148. package/dist/classes/utils.d/user-interaction.d.ts +39 -0
  149. package/dist/classes/utils.d/user-interaction.js +104 -0
  150. package/dist/classes/utils.d.ts +95 -0
  151. package/dist/classes/utils.js +111 -0
  152. package/dist/classes/xdg.d.ts +45 -0
  153. package/dist/classes/xdg.js +337 -0
  154. package/dist/classes/yolk.d.ts +33 -0
  155. package/dist/classes/yolk.js +114 -0
  156. package/dist/commands/adapt.d.ts +17 -0
  157. package/dist/commands/adapt.js +33 -0
  158. package/dist/commands/analyze.d.ts +26 -0
  159. package/dist/commands/analyze.js +95 -0
  160. package/dist/commands/calamares.d.ts +29 -0
  161. package/dist/commands/calamares.js +112 -0
  162. package/dist/commands/config.d.ts +35 -0
  163. package/dist/commands/config.js +120 -0
  164. package/dist/commands/cuckoo.d.ts +16 -0
  165. package/dist/commands/cuckoo.js +62 -0
  166. package/dist/commands/dad.d.ts +21 -0
  167. package/dist/commands/dad.js +47 -0
  168. package/dist/commands/export/iso.d.ts +19 -0
  169. package/dist/commands/export/iso.js +55 -0
  170. package/dist/commands/export/pkg.d.ts +29 -0
  171. package/dist/commands/export/pkg.js +163 -0
  172. package/dist/commands/export/tarballs.d.ts +27 -0
  173. package/dist/commands/export/tarballs.js +79 -0
  174. package/dist/commands/install.d.ts +38 -0
  175. package/dist/commands/install.js +91 -0
  176. package/dist/commands/kill.d.ts +24 -0
  177. package/dist/commands/kill.js +50 -0
  178. package/dist/commands/love.d.ts +21 -0
  179. package/dist/commands/love.js +73 -0
  180. package/dist/commands/mom.d.ts +16 -0
  181. package/dist/commands/mom.js +30 -0
  182. package/dist/commands/pods.d.ts +22 -0
  183. package/dist/commands/pods.js +92 -0
  184. package/dist/commands/produce.d.ts +35 -0
  185. package/dist/commands/produce.js +221 -0
  186. package/dist/commands/status.d.ts +23 -0
  187. package/dist/commands/status.js +31 -0
  188. package/dist/commands/syncfrom.d.ts +45 -0
  189. package/dist/commands/syncfrom.js +152 -0
  190. package/dist/commands/syncto.d.ts +40 -0
  191. package/dist/commands/syncto.js +175 -0
  192. package/dist/commands/tools/clean.d.ts +18 -0
  193. package/dist/commands/tools/clean.js +37 -0
  194. package/dist/commands/tools/ppa.d.ts +26 -0
  195. package/dist/commands/tools/ppa.js +138 -0
  196. package/dist/commands/tools/skel.d.ts +18 -0
  197. package/dist/commands/tools/skel.js +44 -0
  198. package/dist/commands/tools/stat.d.ts +31 -0
  199. package/dist/commands/tools/stat.js +70 -0
  200. package/dist/commands/tools/yolk.d.ts +24 -0
  201. package/dist/commands/tools/yolk.js +45 -0
  202. package/dist/commands/update.d.ts +51 -0
  203. package/dist/commands/update.js +219 -0
  204. package/dist/commands/wardrobe/get.d.ts +23 -0
  205. package/dist/commands/wardrobe/get.js +52 -0
  206. package/dist/commands/wardrobe/list.d.ts +24 -0
  207. package/dist/commands/wardrobe/list.js +125 -0
  208. package/dist/commands/wardrobe/show.d.ts +25 -0
  209. package/dist/commands/wardrobe/show.js +97 -0
  210. package/dist/commands/wardrobe/wear.d.ts +26 -0
  211. package/dist/commands/wardrobe/wear.js +84 -0
  212. package/dist/index.d.ts +8 -0
  213. package/dist/index.js +8 -0
  214. package/dist/index_old.d.ts +8 -0
  215. package/dist/index_old.js +8 -0
  216. package/dist/interfaces/i-addons.d.ts +12 -0
  217. package/dist/interfaces/i-addons.js +8 -0
  218. package/dist/interfaces/i-analyze.d.ts +17 -0
  219. package/dist/interfaces/i-analyze.js +17 -0
  220. package/dist/interfaces/i-app.d.ts +14 -0
  221. package/dist/interfaces/i-app.js +8 -0
  222. package/dist/interfaces/i-branding.d.ts +36 -0
  223. package/dist/interfaces/i-branding.js +8 -0
  224. package/dist/interfaces/i-calamares-displaymanager.d.ts +17 -0
  225. package/dist/interfaces/i-calamares-displaymanager.js +1 -0
  226. package/dist/interfaces/i-calamares-finished.d.ts +12 -0
  227. package/dist/interfaces/i-calamares-finished.js +1 -0
  228. package/dist/interfaces/i-calamares-packages.d.ts +28 -0
  229. package/dist/interfaces/i-calamares-packages.js +1 -0
  230. package/dist/interfaces/i-calamares-partition.d.ts +40 -0
  231. package/dist/interfaces/i-calamares-partition.js +1 -0
  232. package/dist/interfaces/i-config-tools.d.ts +15 -0
  233. package/dist/interfaces/i-config-tools.js +8 -0
  234. package/dist/interfaces/i-devices.d.ts +20 -0
  235. package/dist/interfaces/i-devices.js +8 -0
  236. package/dist/interfaces/i-distro.d.ts +23 -0
  237. package/dist/interfaces/i-distro.js +8 -0
  238. package/dist/interfaces/i-drive-list.d.ts +33 -0
  239. package/dist/interfaces/i-drive-list.js +8 -0
  240. package/dist/interfaces/i-eggs-config.d.ts +32 -0
  241. package/dist/interfaces/i-eggs-config.js +8 -0
  242. package/dist/interfaces/i-excludes.d.ts +14 -0
  243. package/dist/interfaces/i-excludes.js +8 -0
  244. package/dist/interfaces/i-exec.d.ts +11 -0
  245. package/dist/interfaces/i-exec.js +8 -0
  246. package/dist/interfaces/i-initrd.d.ts +13 -0
  247. package/dist/interfaces/i-initrd.js +8 -0
  248. package/dist/interfaces/i-install.d.ts +16 -0
  249. package/dist/interfaces/i-install.js +8 -0
  250. package/dist/interfaces/i-installer.d.ts +17 -0
  251. package/dist/interfaces/i-installer.js +8 -0
  252. package/dist/interfaces/i-luks-passphrase.d.ts +11 -0
  253. package/dist/interfaces/i-luks-passphrase.js +8 -0
  254. package/dist/interfaces/i-materia.d.ts +36 -0
  255. package/dist/interfaces/i-materia.js +8 -0
  256. package/dist/interfaces/i-net.d.ts +16 -0
  257. package/dist/interfaces/i-net.js +8 -0
  258. package/dist/interfaces/i-os-release.d.ts +5 -0
  259. package/dist/interfaces/i-os-release.js +1 -0
  260. package/dist/interfaces/i-packages.d.ts +16 -0
  261. package/dist/interfaces/i-packages.js +8 -0
  262. package/dist/interfaces/i-partitions.d.ts +16 -0
  263. package/dist/interfaces/i-partitions.js +8 -0
  264. package/dist/interfaces/i-pxe.d.ts +45 -0
  265. package/dist/interfaces/i-pxe.js +1 -0
  266. package/dist/interfaces/i-remix.d.ts +21 -0
  267. package/dist/interfaces/i-remix.js +8 -0
  268. package/dist/interfaces/i-settings.d.ts +33 -0
  269. package/dist/interfaces/i-settings.js +8 -0
  270. package/dist/interfaces/i-user.d.ts +14 -0
  271. package/dist/interfaces/i-user.js +8 -0
  272. package/dist/interfaces/i-workdir.d.ts +14 -0
  273. package/dist/interfaces/i-workdir.js +8 -0
  274. package/dist/interfaces/i-xkb-model.d.ts +24 -0
  275. package/dist/interfaces/i-xkb-model.js +8 -0
  276. package/dist/interfaces/index.d.ts +26 -0
  277. package/dist/interfaces/index.js +8 -0
  278. package/dist/krill/classes/cfs.d.ts +17 -0
  279. package/dist/krill/classes/cfs.js +39 -0
  280. package/dist/krill/classes/krill_enums.d.ts +37 -0
  281. package/dist/krill/classes/krill_enums.js +41 -0
  282. package/dist/krill/classes/prepare.d/confirm.d.ts +5 -0
  283. package/dist/krill/classes/prepare.d/confirm.js +30 -0
  284. package/dist/krill/classes/prepare.d/keyboard.d.ts +14 -0
  285. package/dist/krill/classes/prepare.d/keyboard.js +62 -0
  286. package/dist/krill/classes/prepare.d/location.d.ts +17 -0
  287. package/dist/krill/classes/prepare.d/location.js +59 -0
  288. package/dist/krill/classes/prepare.d/network.d.ts +14 -0
  289. package/dist/krill/classes/prepare.d/network.js +68 -0
  290. package/dist/krill/classes/prepare.d/partitions.d.ts +14 -0
  291. package/dist/krill/classes/prepare.d/partitions.js +86 -0
  292. package/dist/krill/classes/prepare.d/summary.d.ts +15 -0
  293. package/dist/krill/classes/prepare.d/summary.js +69 -0
  294. package/dist/krill/classes/prepare.d/users.d.ts +6 -0
  295. package/dist/krill/classes/prepare.d/users.js +63 -0
  296. package/dist/krill/classes/prepare.d/welcome.d.ts +6 -0
  297. package/dist/krill/classes/prepare.d/welcome.js +30 -0
  298. package/dist/krill/classes/prepare.d.ts +89 -0
  299. package/dist/krill/classes/prepare.js +314 -0
  300. package/dist/krill/classes/sequence.d/add_user.d.ts +20 -0
  301. package/dist/krill/classes/sequence.d/add_user.js +66 -0
  302. package/dist/krill/classes/sequence.d/bootloader.d.ts +14 -0
  303. package/dist/krill/classes/sequence.d/bootloader.js +95 -0
  304. package/dist/krill/classes/sequence.d/bootloader_config.d.ts +14 -0
  305. package/dist/krill/classes/sequence.d/bootloader_config.js +165 -0
  306. package/dist/krill/classes/sequence.d/change_password.d.ts +15 -0
  307. package/dist/krill/classes/sequence.d/change_password.js +18 -0
  308. package/dist/krill/classes/sequence.d/del_live_user.d.ts +14 -0
  309. package/dist/krill/classes/sequence.d/del_live_user.js +39 -0
  310. package/dist/krill/classes/sequence.d/fstab.d.ts +14 -0
  311. package/dist/krill/classes/sequence.d/fstab.js +189 -0
  312. package/dist/krill/classes/sequence.d/grubcfg.d.ts +17 -0
  313. package/dist/krill/classes/sequence.d/grubcfg.js +33 -0
  314. package/dist/krill/classes/sequence.d/hostname.d.ts +13 -0
  315. package/dist/krill/classes/sequence.d/hostname.js +50 -0
  316. package/dist/krill/classes/sequence.d/initramfs.d.ts +13 -0
  317. package/dist/krill/classes/sequence.d/initramfs.js +54 -0
  318. package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +14 -0
  319. package/dist/krill/classes/sequence.d/initramfs_cfg.js +35 -0
  320. package/dist/krill/classes/sequence.d/locale.d.ts +13 -0
  321. package/dist/krill/classes/sequence.d/locale.js +91 -0
  322. package/dist/krill/classes/sequence.d/locale_cfg.d.ts +10 -0
  323. package/dist/krill/classes/sequence.d/locale_cfg.js +58 -0
  324. package/dist/krill/classes/sequence.d/m_keyboard.d.ts +14 -0
  325. package/dist/krill/classes/sequence.d/m_keyboard.js +58 -0
  326. package/dist/krill/classes/sequence.d/machine_id.d.ts +15 -0
  327. package/dist/krill/classes/sequence.d/machine_id.js +33 -0
  328. package/dist/krill/classes/sequence.d/mkfs.d.ts +15 -0
  329. package/dist/krill/classes/sequence.d/mkfs.js +72 -0
  330. package/dist/krill/classes/sequence.d/mount_fs.d.ts +17 -0
  331. package/dist/krill/classes/sequence.d/mount_fs.js +68 -0
  332. package/dist/krill/classes/sequence.d/mount_vfs.d.ts +17 -0
  333. package/dist/krill/classes/sequence.d/mount_vfs.js +40 -0
  334. package/dist/krill/classes/sequence.d/network_cfg.d.ts +19 -0
  335. package/dist/krill/classes/sequence.d/network_cfg.js +73 -0
  336. package/dist/krill/classes/sequence.d/packages.d.ts +14 -0
  337. package/dist/krill/classes/sequence.d/packages.js +111 -0
  338. package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +17 -0
  339. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +73 -0
  340. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +17 -0
  341. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +36 -0
  342. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +17 -0
  343. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +78 -0
  344. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +10 -0
  345. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +32 -0
  346. package/dist/krill/classes/sequence.d/partition.d.ts +14 -0
  347. package/dist/krill/classes/sequence.d/partition.js +84 -0
  348. package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +13 -0
  349. package/dist/krill/classes/sequence.d/remove_installer_link.js +35 -0
  350. package/dist/krill/classes/sequence.d/umount.d.ts +14 -0
  351. package/dist/krill/classes/sequence.d/umount.js +28 -0
  352. package/dist/krill/classes/sequence.d/unpackfs.d.ts +13 -0
  353. package/dist/krill/classes/sequence.d/unpackfs.js +20 -0
  354. package/dist/krill/classes/sequence.d.ts +133 -0
  355. package/dist/krill/classes/sequence.js +396 -0
  356. package/dist/krill/components/finished.d.ts +16 -0
  357. package/dist/krill/components/finished.js +56 -0
  358. package/dist/krill/components/information.d.ts +8 -0
  359. package/dist/krill/components/information.js +162 -0
  360. package/dist/krill/components/install.d.ts +15 -0
  361. package/dist/krill/components/install.js +60 -0
  362. package/dist/krill/components/keyboard.d.ts +16 -0
  363. package/dist/krill/components/keyboard.js +54 -0
  364. package/dist/krill/components/location.d.ts +16 -0
  365. package/dist/krill/components/location.js +59 -0
  366. package/dist/krill/components/network.d.ts +19 -0
  367. package/dist/krill/components/network.js +65 -0
  368. package/dist/krill/components/partitions.d.ts +18 -0
  369. package/dist/krill/components/partitions.js +89 -0
  370. package/dist/krill/components/steps.d.ts +13 -0
  371. package/dist/krill/components/steps.js +148 -0
  372. package/dist/krill/components/summary.d.ts +25 -0
  373. package/dist/krill/components/summary.js +77 -0
  374. package/dist/krill/components/title.d.ts +11 -0
  375. package/dist/krill/components/title.js +35 -0
  376. package/dist/krill/components/users.d.ts +24 -0
  377. package/dist/krill/components/users.js +80 -0
  378. package/dist/krill/components/welcome.d.ts +13 -0
  379. package/dist/krill/components/welcome.js +63 -0
  380. package/dist/krill/interfaces/i_krill.d.ts +44 -0
  381. package/dist/krill/interfaces/i_krill.js +8 -0
  382. package/dist/krill/interfaces/i_krill_config.d.ts +35 -0
  383. package/dist/krill/interfaces/i_krill_config.js +8 -0
  384. package/dist/krill/lib/get_address.d.ts +8 -0
  385. package/dist/krill/lib/get_address.js +23 -0
  386. package/dist/krill/lib/get_dns.d.ts +8 -0
  387. package/dist/krill/lib/get_dns.js +23 -0
  388. package/dist/krill/lib/get_domain.d.ts +8 -0
  389. package/dist/krill/lib/get_domain.js +23 -0
  390. package/dist/krill/lib/get_gateway.d.ts +8 -0
  391. package/dist/krill/lib/get_gateway.js +23 -0
  392. package/dist/krill/lib/get_hostname.d.ts +8 -0
  393. package/dist/krill/lib/get_hostname.js +23 -0
  394. package/dist/krill/lib/get_luks_passphrase.d.ts +8 -0
  395. package/dist/krill/lib/get_luks_passphrase.js +40 -0
  396. package/dist/krill/lib/get_netmask.d.ts +8 -0
  397. package/dist/krill/lib/get_netmask.js +23 -0
  398. package/dist/krill/lib/get_password.d.ts +8 -0
  399. package/dist/krill/lib/get_password.js +36 -0
  400. package/dist/krill/lib/get_userfullname.d.ts +8 -0
  401. package/dist/krill/lib/get_userfullname.js +23 -0
  402. package/dist/krill/lib/get_username.d.ts +8 -0
  403. package/dist/krill/lib/get_username.js +23 -0
  404. package/dist/krill/lib/select_address_type.d.ts +8 -0
  405. package/dist/krill/lib/select_address_type.js +24 -0
  406. package/dist/krill/lib/select_filesystem_type.d.ts +8 -0
  407. package/dist/krill/lib/select_filesystem_type.js +39 -0
  408. package/dist/krill/lib/select_installation_device.d.ts +8 -0
  409. package/dist/krill/lib/select_installation_device.js +40 -0
  410. package/dist/krill/lib/select_installation_mode.d.ts +9 -0
  411. package/dist/krill/lib/select_installation_mode.js +25 -0
  412. package/dist/krill/lib/select_interface.d.ts +8 -0
  413. package/dist/krill/lib/select_interface.js +24 -0
  414. package/dist/krill/lib/select_keyboard_layout.d.ts +11 -0
  415. package/dist/krill/lib/select_keyboard_layout.js +36 -0
  416. package/dist/krill/lib/select_keyboard_model.d.ts +11 -0
  417. package/dist/krill/lib/select_keyboard_model.js +34 -0
  418. package/dist/krill/lib/select_keyboard_option.d.ts +11 -0
  419. package/dist/krill/lib/select_keyboard_option.js +34 -0
  420. package/dist/krill/lib/select_keyboard_variant.d.ts +11 -0
  421. package/dist/krill/lib/select_keyboard_variant.js +35 -0
  422. package/dist/krill/lib/select_languages.d.ts +8 -0
  423. package/dist/krill/lib/select_languages.js +28 -0
  424. package/dist/krill/lib/select_regions.d.ts +8 -0
  425. package/dist/krill/lib/select_regions.js +24 -0
  426. package/dist/krill/lib/select_replaced_partition.d.ts +8 -0
  427. package/dist/krill/lib/select_replaced_partition.js +31 -0
  428. package/dist/krill/lib/select_user_swap_choice.d.ts +9 -0
  429. package/dist/krill/lib/select_user_swap_choice.js +35 -0
  430. package/dist/krill/lib/select_zones.d.ts +8 -0
  431. package/dist/krill/lib/select_zones.js +518 -0
  432. package/dist/lib/kill_me_softly.d.ts +11 -0
  433. package/dist/lib/kill_me_softly.js +61 -0
  434. package/dist/lib/utils.d.ts +42 -0
  435. package/dist/lib/utils.js +87 -0
  436. package/dist/penguins-eggs_10.1.1-0_amd64.deb +0 -0
  437. package/dist/penguins-eggs_10.1.1-0_amd64.deb.sha256 +1 -0
  438. package/package.json +25 -23
  439. package/scripts/_eggs +6 -12
  440. package/scripts/eggs.bash +1 -2
@@ -0,0 +1,271 @@
1
+ /**
2
+ * ./src/classes/ovary.d/make-efi.ts
3
+ * penguins-eggs v.10.0.0 / 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
+ * makeEFI
20
+ */
21
+ export async function makeEfi(theme = 'eggs') {
22
+ Utils.warning("creating efi configuration...");
23
+ const efiPath = path.join(this.settings.config.snapshot_mnt, '/efi/');
24
+ const efiWorkDir = path.join(efiPath, '/work/');
25
+ const efiMemdiskDir = path.join(efiPath, '/memdisk/');
26
+ const efiMnt = path.join(efiPath, '/mnt/');
27
+ const isoDir = this.settings.iso_work;
28
+ const readmes = `${isoDir}/READMES`;
29
+ let readmeContent = `# README\n`;
30
+ /**
31
+ * check: grub/grub2 command MUST to exists
32
+ */
33
+ const grubName = Diversions.grubName(this.familyId);
34
+ if (grubName === '') {
35
+ Utils.error('Cannot find command grub/grub2.');
36
+ process.exit(1);
37
+ }
38
+ /**
39
+ * GAE = Grub Arch Efi path+grubx86.efi/signed
40
+ */
41
+ let GAE = srcGAES();
42
+ if (!fs.existsSync(srcGAE())) {
43
+ GAE = srcGAE();
44
+ }
45
+ if (!fs.existsSync(GAE)) {
46
+ if (this.familyId === 'debian') {
47
+ console.log(`error: cannot find ${GAE}`);
48
+ process.exit(1);
49
+ }
50
+ }
51
+ // Create READMES on ISO
52
+ await exec(`mkdir ${readmes}`);
53
+ // clean/create all in efiPath
54
+ if (fs.existsSync(efiPath)) {
55
+ await exec(`rm -rf ${efiPath}`);
56
+ }
57
+ await exec(`mkdir ${efiPath}`, this.echo);
58
+ await exec(`mkdir ${efiMemdiskDir}`, this.echo);
59
+ await exec(`mkdir ${efiMnt}`, this.echo);
60
+ await exec(`mkdir ${efiWorkDir}`, this.echo);
61
+ const grub1 = `${efiMemdiskDir}/boot/grub/grub.cfg`;
62
+ let grubText1 = `# grub.cfg 1\n`;
63
+ /**
64
+ * create efi.img
65
+ */
66
+ await exec(`mkdir ${path.join(efiMemdiskDir, "/boot")}`, this.echo);
67
+ await exec(`mkdir ${path.join(efiMemdiskDir, "/boot/grub")}`, this.echo);
68
+ // create grub.cfg 1 in memdisk
69
+ Utils.warning("creating grub.cfg (1) in (efi.img)/boot/grub");
70
+ grubText1 += `# created on ${efiMemdiskDir}\n`;
71
+ grubText1 += `\n`;
72
+ grubText1 += `search --set=root --file /.disk/id/${this.uuid}\n`;
73
+ grubText1 += 'set prefix=($root)/boot/grub\n';
74
+ grubText1 += `configfile ($root)/boot/grub/grub.cfg\n`;
75
+ Utils.write(grub1, grubText1);
76
+ /**
77
+ * creating structure efiWordDir
78
+ */
79
+ await exec(`mkdir -p ${efiWorkDir}/boot/grub`, this.echo);
80
+ await exec(`mkdir -p ${efiWorkDir}/EFI/boot`);
81
+ /**
82
+ * create tarred efiMemdiskDir
83
+ */
84
+ const currentDir = process.cwd();
85
+ process.chdir(efiMemdiskDir);
86
+ await exec('tar -cvf memdisk boot', this.echo);
87
+ process.chdir(currentDir);
88
+ /**
89
+ * Create boot image "boot/grub/efi.img"
90
+ */
91
+ const efiImg = `${efiWorkDir}boot/grub/efi.img`;
92
+ await exec(`dd if=/dev/zero of=${efiImg} bs=1M count=16`, this.echo);
93
+ await exec(`/sbin/mkdosfs -F 12 ${efiImg}`, this.echo);
94
+ // mount efi.img on mnt-img
95
+ await exec(`mount -o loop ${efiImg} ${efiMnt}`, this.echo);
96
+ // create structure inside efiMnt
97
+ await exec(`mkdir ${efiMnt}/boot`, this.echo);
98
+ await exec(`mkdir ${efiMnt}/boot/grub`, this.echo);
99
+ await exec(`mkdir ${efiMnt}/boot/grub/x86_64-efi`, this.echo);
100
+ await exec(`cp -r /usr/lib/grub/x86_64-efi/*.mod ${efiMnt}/boot/grub/x86_64-efi/`, this.echo);
101
+ await exec(`mkdir ${efiMnt}/EFI`, this.echo);
102
+ await exec(`mkdir ${efiMnt}/EFI/boot`, this.echo);
103
+ /**
104
+ * copy grub.cfg to (efi.img)/boot/grub
105
+ */
106
+ await exec(`cp ${grub1} ${efiMnt}/boot/grub`);
107
+ // readme
108
+ readmeContent += `## copyng on (efi.img) ${efiMnt}\n`;
109
+ readmeContent += `${grub1} copied to /boot/grub`;
110
+ if (this.settings.distro.codenameLikeId === 'bookworm' ||
111
+ this.settings.distro.codenameLikeId === 'daedalus') {
112
+ /**
113
+ * (efi.img)/EFI/boot/bootx84.efi (shimx64.efi)
114
+ * (efi.img)/EFI/boot/grubx84.efi
115
+ */
116
+ Utils.warning(`copy ${srcShim()} to ${efiMnt}/EFI/boot/${bootArchEfi()}`);
117
+ Utils.warning(`copy ${srcGAES()} to ${efiMnt}/EFI/boot/${nameGAE()}`);
118
+ await exec(`cp ${srcShim()} ${efiMnt}/EFI/boot/${bootArchEfi()}`, this.echo);
119
+ await exec(`cp ${srcGAES()} ${efiMnt}/EFI/boot/${nameGAE()}`, this.echo);
120
+ readmeContent += `${srcShim()} copied as ${bootArchEfi()}\n`;
121
+ readmeContent += `${GAE} copied as ${nameGAE()}\n`;
122
+ }
123
+ else {
124
+ /**
125
+ * we need to build bootx64.efi
126
+ */
127
+ Utils.warning(`create ${bootArchEfi()} not signed and copy as ${bootArchEfi()}`);
128
+ await exec(`${grubName}-mkimage -O "${Utils.uefiFormat()}" \
129
+ -m "${efiMemdiskDir}/memdisk" \
130
+ -o "${efiMemdiskDir}/${bootArchEfi()}" \
131
+ -p '(memdisk)/boot/grub' \
132
+ search iso9660 configfile normal memdisk tar cat part_msdos part_gpt fat ext2 ntfs ntfscomp hfsplus chain boot linux squash4 loopback`, this.echo);
133
+ await exec(`cp ${efiMemdiskDir}/${bootArchEfi()} ${efiMnt}/EFI/boot/`, this.echo);
134
+ // Rolf patch: copiare i file mod da /usr/lib/grub/x86_64-efi a ${isoDir}/boot/grub/x86_64-efi
135
+ await exec(`cp -r /usr/lib/grub/x86_64-efi/*.mod ${isoDir}/boot/grub/x86_64-efi/`, this.echo);
136
+ // Creare EFI
137
+ readmeContent += `created grubx64.efi not signed and copied as ${bootArchEfi()}\n`;
138
+ }
139
+ // replicate EFI on ISO
140
+ await exec(`cp -r ${efiMnt}/EFI ${isoDir}/EFI`, this.echo);
141
+ // umount efiMnt
142
+ await exec(`umount ${efiMnt}`, this.echo);
143
+ /**
144
+ * creating grub.cfg (2) on (iso)/boot/grub
145
+ */
146
+ Utils.warning("creating grub.cfg (2) on (iso)/boot/grub");
147
+ // copy splash to efiWorkDir
148
+ const splashDest = `${efiWorkDir}/boot/grub/splash.png`;
149
+ let splashSrc = path.resolve(__dirname, `../../../addons/${theme}/theme/livecd/splash.png`);
150
+ if (this.theme.includes('/')) {
151
+ splashSrc = `${theme}/theme/livecd/splash.png`;
152
+ }
153
+ if (!fs.existsSync(splashSrc)) {
154
+ Utils.warning('Cannot find: ' + splashSrc);
155
+ process.exit(1);
156
+ }
157
+ await exec(`cp ${splashSrc} ${splashDest}`, this.echo);
158
+ // select themeSrc
159
+ let themeSrc = path.resolve(__dirname, `../../../addons/${theme}/theme/livecd/grub.theme.cfg`);
160
+ if (this.theme.includes('/')) {
161
+ themeSrc = `${theme}/theme/livecd/grub.theme.cfg`;
162
+ }
163
+ // copy theme
164
+ const themeDest = `${isoDir}/boot/grub/theme.cfg`;
165
+ if (!fs.existsSync(themeSrc)) {
166
+ Utils.warning('Cannot find: ' + themeSrc);
167
+ process.exit(1);
168
+ }
169
+ fs.copyFileSync(themeSrc, themeDest);
170
+ // selecting available fonts
171
+ if (fs.existsSync('/usr/share/grub/font.pf2')) {
172
+ await exec(`cp /usr/share/grub/font.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
173
+ }
174
+ else if (fs.existsSync('/usr/share/grub/unicode.pf2')) {
175
+ await exec(`cp /usr/share/grub/unicode.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
176
+ }
177
+ else if (fs.existsSync('/usr/share/grub/ascii.pf2')) {
178
+ await exec(`cp /usr/share/grub/ascii.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
179
+ }
180
+ // Copy workdir files to ISO/boot
181
+ await exec(`rsync -avx ${efiWorkDir}/boot ${isoDir}/`, this.echo);
182
+ readmeContent += `\n`;
183
+ readmeContent += `## Copyng on ${isoDir}\n`;
184
+ readmeContent += `rsync -avx ${efiWorkDir}/boot (iso)/boot\n`;
185
+ /**
186
+ * prepare main grub.cfg from grub.main.cfg
187
+ */
188
+ let grubTemplate = `${theme}/theme/livecd/grub.main.cfg`;
189
+ if (!fs.existsSync(grubTemplate)) {
190
+ grubTemplate = path.resolve(__dirname, '../../../addons/eggs/theme/livecd/grub.main.cfg');
191
+ }
192
+ if (!fs.existsSync(grubTemplate)) {
193
+ Utils.warning('Cannot find: ' + grubTemplate);
194
+ process.exit(1);
195
+ }
196
+ const kernel_parameters = Diversions.kernelParameters(this.familyId, this.volid); // this.kernelParameters()
197
+ const g2 = path.join(isoDir, '/boot/grub/grub.cfg');
198
+ const template = fs.readFileSync(grubTemplate, 'utf8');
199
+ const view = {
200
+ fullname: this.settings.remix.fullname.toUpperCase(),
201
+ initrdImg: `/live/${path.basename(this.initrd)}`,
202
+ kernel: this.kernel,
203
+ kernel_parameters,
204
+ vmlinuz: `/live/${path.basename(this.vmlinuz)}`
205
+ };
206
+ let grubText2 = `# grub.cfg 2\n`;
207
+ grubText2 += ` # created on ${g2}`;
208
+ grubText2 += `\n`;
209
+ grubText2 += mustache.render(template, view);
210
+ fs.writeFileSync(g2, grubText2);
211
+ /**
212
+ * create loopback.cfg
213
+ */
214
+ fs.writeFileSync(`${isoDir}/boot/grub/loopback.cfg`, 'source /boot/grub/grub.cfg\n');
215
+ /**
216
+ * create (iso)/boot/grub/x86_64-efi/grub.cfg
217
+ */
218
+ fs.writeFileSync(`${isoDir}/boot/grub/${Utils.uefiFormat()}/grub.cfg`, 'source /boot/grub/grub.cfg\n');
219
+ /**
220
+ * config.cfg
221
+ */
222
+ await exec(`cp ${path.resolve(__dirname, `../../../assets/config.cfg`)} ${isoDir}/boot/grub`);
223
+ fs.writeFileSync(`${readmes}/grub1.cfg`, grubText1);
224
+ fs.writeFileSync(`${readmes}/grub2.cfg`, grubText2);
225
+ fs.writeFileSync(`${readmes}/README.md`, readmeContent);
226
+ }
227
+ /**
228
+ *
229
+ * @returns
230
+ */
231
+ function bootArchEfi() {
232
+ let bn = 'nothing.efi';
233
+ if (process.arch === 'x64') {
234
+ bn = 'bootx64.efi';
235
+ }
236
+ else if (process.arch === 'arm64') {
237
+ bn = 'bootaa64.efi';
238
+ }
239
+ return bn;
240
+ }
241
+ /**
242
+ * FUNCTIONS
243
+ */
244
+ function nameGAE() {
245
+ let bn = 'nothing.efi';
246
+ if (process.arch === 'x64') {
247
+ bn = 'grubx64.efi';
248
+ }
249
+ else if (process.arch === 'arm64') {
250
+ bn = 'grubaa64.efi';
251
+ }
252
+ return bn;
253
+ }
254
+ function nameGAES() {
255
+ return nameGAE() + '.signed';
256
+ }
257
+ function srcGAE() {
258
+ return '/usr/lib/grub/' + Utils.uefiFormat() + '/monolithic/' + nameGAE();
259
+ }
260
+ function srcGAES() {
261
+ let signedGrub = `/usr/lib/grub/${Utils.uefiFormat()}-signed/${nameGAES()}`;
262
+ if (!fs.existsSync(signedGrub)) {
263
+ Utils.warning(`cannot find ${signedGrub}`);
264
+ }
265
+ return signedGrub;
266
+ }
267
+ function srcShim() {
268
+ const signedShim = '/usr/lib/shim/shimx64.efi.signed';
269
+ const unsignedShim = '/usr/lib/shim/shimx64.efi';
270
+ return fs.existsSync(signedShim) ? signedShim : unsignedShim;
271
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * ./src/classes/ovary.d/make-iso.ts
3
+ * penguins-eggs v.10.0.0 / 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.10.0.0 / 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 ALLWAYES
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.10.0.0 / 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, unsecure?: 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,110 @@
1
+ /**
2
+ * ./src/classes/ovary.d/make-squashfs.ts
3
+ * penguins-eggs v.10.0.0 / 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, unsecure = 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 (!unsecure) {
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 cmd = `mksquashfs ${this.settings.work_dir.merged} ${this.settings.iso_work}live/filesystem.squashfs ${compression} ${limit} -no-xattrs -wildcards -ef ${this.settings.config.snapshot_excludes} ${this.settings.session_excludes}`;
85
+ cmd = cmd.replaceAll(/\s\s+/g, ' ');
86
+ Utils.writeX(`${this.settings.work_dir.ovarium}mksquashfs`, cmd);
87
+ if (!scriptOnly) {
88
+ Utils.warning('creating filesystem.squashfs on ISO/live');
89
+ // Utils.warning(`compression: ` + compression)
90
+ const test = (await exec(cmd, Utils.setEcho(true))).code;
91
+ if (test !== 0) {
92
+ process.exit();
93
+ }
94
+ }
95
+ return cmd;
96
+ }
97
+ /**
98
+ * Add or remove exclusion
99
+ * @param add {boolean} true = add, false remove
100
+ * @param exclusion {string} path to add/remove
101
+ */
102
+ export function addExclusion(exclusion) {
103
+ if (this.verbose) {
104
+ console.log(`add exclusion: ${exclusion}`);
105
+ }
106
+ if (exclusion.startsWith('/')) {
107
+ exclusion = exclusion.slice(1); // remove / initial Non compatible with rsync
108
+ }
109
+ this.settings.session_excludes += this.settings.session_excludes === '' ? `-e '${exclusion}' ` : ` '${exclusion}' `;
110
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * ./src/classes/ovary.d/merge.ts
3
+ * penguins-eggs v.10.0.0 / 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 tre 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,77 @@
1
+ /**
2
+ * ./src/classes/ovary.d/merge.ts
3
+ * penguins-eggs v.10.0.0 / 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 tre 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
+ const moDirs = ['usr', 'var'];
40
+ let mergedOverlay = false;
41
+ for (const moDir of moDirs) {
42
+ if (moDir === dir) {
43
+ mergedOverlay = true;
44
+ }
45
+ }
46
+ return mergedOverlay;
47
+ }
48
+ /**
49
+ * merged
50
+ */
51
+ export function merged(dir) {
52
+ let merged = true;
53
+ if (dir === 'home') {
54
+ merged = this.clone;
55
+ }
56
+ else {
57
+ const justMks = [
58
+ 'cdrom',
59
+ 'dev',
60
+ 'media',
61
+ 'mnt',
62
+ 'proc',
63
+ 'run',
64
+ 'swapfile',
65
+ 'sys',
66
+ 'tmp'
67
+ ];
68
+ // deepiin
69
+ justMks.push('data', 'recovery');
70
+ for (const justMk of justMks) {
71
+ if (dir === justMk) {
72
+ merged = false;
73
+ }
74
+ }
75
+ }
76
+ return merged;
77
+ }
@@ -0,0 +1,23 @@
1
+ /**
2
+ * ./src/classes/ovary.d/produce.ts
3
+ * penguins-eggs v.10.0.0 / 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 cryptedclone
14
+ * @param scriptOnly
15
+ * @param yolkRenew
16
+ * @param release
17
+ * @param myAddons
18
+ * @param nointeractive
19
+ * @param noicons
20
+ * @param unsecure
21
+ * @param verbose
22
+ */
23
+ export declare function produce(this: Ovary, kernel: string | undefined, clone: boolean | undefined, cryptedclone: boolean | undefined, scriptOnly: boolean | undefined, yolkRenew: boolean | undefined, release: boolean | undefined, myAddons: IAddons, myLinks: string[], excludes: IExcludes, nointeractive?: boolean, noicons?: boolean, unsecure?: boolean, verbose?: boolean): Promise<void>;