penguins-eggs 25.10.28 → 25.11.8

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 (551) hide show
  1. package/.oclif.manifest.json +4 -4
  2. package/README.md +770 -3
  3. package/addons/eggs/adapt/applications/eggs-adapt.desktop +0 -0
  4. package/addons/eggs/pve/applications/eggs-pve.desktop +0 -0
  5. package/addons/eggs/rsupport/applications/eggs-rsupport.desktop +0 -0
  6. package/addons/eggs/theme/applications/install-system.desktop +8 -6
  7. package/assets/calamares/install-system.sh +0 -0
  8. package/assets/calamares/io.calamares.calamares.policy +25 -0
  9. package/assets/penguins-eggs.desktop +0 -0
  10. package/assets/penguins-krill.desktop +0 -0
  11. package/assets/penguins-links-add.desktop +0 -0
  12. package/assets/penguins-live-installer.desktop +0 -0
  13. package/bin/dev.js +0 -0
  14. package/conf/distros/alpine/calamares/calamares-modules/machineid-openrc/machineid-openrc.sh +0 -0
  15. package/conf/distros/alpine/calamares/modules/packages.mustache +1 -0
  16. package/conf/distros/alpine/calamares/modules/removeuser.mustache +2 -14
  17. package/conf/distros/alpine/calamares/modules/unpackfs.mustache +2 -2
  18. package/conf/distros/buster/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
  19. package/conf/distros/buster/calamares/calamares-modules/dpkg-unsafe-io/dpkg-unsafe-io.sh +0 -0
  20. package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
  21. package/conf/distros/buster/calamares/modules/shellprocess@boot_deploy.yml +1 -16
  22. package/conf/distros/fedora/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +0 -0
  23. package/conf/distros/noble/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
  24. package/conf/distros/noble/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
  25. package/conf/distros/noble/calamares/libexec/calamares-aptsources.sh +0 -0
  26. package/conf/distros/noble/calamares/libexec/calamares-l10n-helper.sh +0 -0
  27. package/conf/distros/noble/calamares/libexec/calamares-logs-helper.sh +1 -1
  28. package/conf/distros/noble/calamares/libexec/calamares-nomodeset.sh +0 -0
  29. package/conf/distros/noble/calamares/modules/shellprocess@boot_deploy.yml +1 -11
  30. package/conf/distros/noble/calamares/modules/shellprocess@logs.yml +1 -1
  31. package/conf/distros/opensuse/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +0 -0
  32. package/conf/distros/opensuse/calamares/settings.yml +0 -0
  33. package/conf/distros/opensuse/calamares/zstd2lzo.sh +0 -0
  34. package/conf/distros/trixie/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
  35. package/conf/distros/trixie/calamares/calamares-modules/dpkg-unsafe-io/dpkg-unsafe-io.sh +0 -0
  36. package/conf/distros/trixie/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
  37. package/conf/distros/trixie/calamares/modules/shellprocess@boot_deploy.yml +2 -10
  38. package/conf/init/unattended.sh +0 -0
  39. package/dist/classes/bleach.d.ts +37 -0
  40. package/dist/classes/bleach.js +148 -0
  41. package/dist/classes/cli-autologin.d.ts +14 -0
  42. package/dist/classes/cli-autologin.js +227 -0
  43. package/dist/classes/compressors.d.ts +54 -0
  44. package/dist/classes/compressors.js +109 -0
  45. package/dist/classes/daddy.d.ts +44 -0
  46. package/dist/classes/daddy.js +208 -0
  47. package/dist/classes/distro-hossein.d.ts +52 -0
  48. package/dist/classes/distro-hossein.js +239 -0
  49. package/dist/classes/distro.d.ts +32 -0
  50. package/dist/classes/distro.js +363 -0
  51. package/dist/classes/diversions.d.ts +19 -0
  52. package/dist/classes/diversions.js +100 -0
  53. package/dist/classes/incubation/branding.d.ts +17 -0
  54. package/dist/classes/incubation/branding.js +85 -0
  55. package/dist/classes/incubation/customize/customize-partitions.d.ts +12 -0
  56. package/dist/classes/incubation/customize/customize-partitions.js +37 -0
  57. package/dist/classes/incubation/fisherman-helper/initcpio.d.ts +1 -0
  58. package/dist/classes/incubation/fisherman-helper/initcpio.js +69 -0
  59. package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
  60. package/dist/classes/incubation/fisherman-helper/packages.js +72 -0
  61. package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
  62. package/dist/classes/incubation/fisherman-helper/settings.js +116 -0
  63. package/dist/classes/incubation/fisherman.d.ts +76 -0
  64. package/dist/classes/incubation/fisherman.js +301 -0
  65. package/dist/classes/incubation/incubator.d/alpine.d.ts +32 -0
  66. package/dist/classes/incubation/incubator.d/alpine.js +78 -0
  67. package/dist/classes/incubation/incubator.d/archlinux.d.ts +32 -0
  68. package/dist/classes/incubation/incubator.d/archlinux.js +82 -0
  69. package/dist/classes/incubation/incubator.d/bionic.d.ts +32 -0
  70. package/dist/classes/incubation/incubator.d/bionic.js +83 -0
  71. package/dist/classes/incubation/incubator.d/buster.d.ts +32 -0
  72. package/dist/classes/incubation/incubator.d/buster.js +101 -0
  73. package/dist/classes/incubation/incubator.d/fedora.d.ts +32 -0
  74. package/dist/classes/incubation/incubator.d/fedora.js +81 -0
  75. package/dist/classes/incubation/incubator.d/manjaro.d.ts +32 -0
  76. package/dist/classes/incubation/incubator.d/manjaro.js +82 -0
  77. package/dist/classes/incubation/incubator.d/noble.d.ts +32 -0
  78. package/dist/classes/incubation/incubator.d/noble.js +106 -0
  79. package/dist/classes/incubation/incubator.d/openmamba.d.ts +32 -0
  80. package/dist/classes/incubation/incubator.d/openmamba.js +81 -0
  81. package/dist/classes/incubation/incubator.d/opensuse.d.ts +32 -0
  82. package/dist/classes/incubation/incubator.d/opensuse.js +81 -0
  83. package/dist/classes/incubation/incubator.d/trixie.d.ts +32 -0
  84. package/dist/classes/incubation/incubator.d/trixie.js +98 -0
  85. package/dist/classes/incubation/incubator.d.ts +49 -0
  86. package/dist/classes/incubation/incubator.js +382 -0
  87. package/dist/classes/incubation/installer.d.ts +13 -0
  88. package/dist/classes/incubation/installer.js +52 -0
  89. package/dist/classes/keyboards.d.ts +31 -0
  90. package/dist/classes/keyboards.js +136 -0
  91. package/dist/classes/locales.d.ts +21 -0
  92. package/dist/classes/locales.js +77 -0
  93. package/dist/classes/network.d.ts +37 -0
  94. package/dist/classes/network.js +98 -0
  95. package/dist/classes/ovary.d/bind-live-fs.d.ts +18 -0
  96. package/dist/classes/ovary.d/bind-live-fs.js +185 -0
  97. package/dist/classes/ovary.d/bind-vfs.d.ts +17 -0
  98. package/dist/classes/ovary.d/bind-vfs.js +37 -0
  99. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +13 -0
  100. package/dist/classes/ovary.d/create-xdg-autostart.js +193 -0
  101. package/dist/classes/ovary.d/edit-live-fs.d.ts +20 -0
  102. package/dist/classes/ovary.d/edit-live-fs.js +239 -0
  103. package/dist/classes/ovary.d/fertilization.d.ts +12 -0
  104. package/dist/classes/ovary.d/fertilization.js +53 -0
  105. package/dist/classes/ovary.d/finished.d.ts +13 -0
  106. package/dist/classes/ovary.d/finished.js +40 -0
  107. package/dist/classes/ovary.d/initrd.d.ts +21 -0
  108. package/dist/classes/ovary.d/initrd.js +91 -0
  109. package/dist/classes/ovary.d/kernel-copy.d.ts +12 -0
  110. package/dist/classes/ovary.d/kernel-copy.js +22 -0
  111. package/dist/classes/ovary.d/live-create-structure.d.ts +12 -0
  112. package/dist/classes/ovary.d/live-create-structure.js +70 -0
  113. package/dist/classes/ovary.d/luks-get-password.d.ts +12 -0
  114. package/dist/classes/ovary.d/luks-get-password.js +58 -0
  115. package/dist/classes/ovary.d/luks-helpers.d.ts +19 -0
  116. package/dist/classes/ovary.d/luks-helpers.js +73 -0
  117. package/dist/classes/ovary.d/luks-home-support.d.ts +12 -0
  118. package/dist/classes/ovary.d/luks-home-support.js +70 -0
  119. package/dist/classes/ovary.d/luks-home.d.ts +15 -0
  120. package/dist/classes/ovary.d/luks-home.js +132 -0
  121. package/dist/classes/ovary.d/luks-interactive-crypto-config.d.ts +47 -0
  122. package/dist/classes/ovary.d/luks-interactive-crypto-config.js +139 -0
  123. package/dist/classes/ovary.d/luks-root-initrd.d.ts +17 -0
  124. package/dist/classes/ovary.d/luks-root-initrd.js +213 -0
  125. package/dist/classes/ovary.d/luks-root.d.ts +15 -0
  126. package/dist/classes/ovary.d/luks-root.js +123 -0
  127. package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
  128. package/dist/classes/ovary.d/make-dot-disk.js +71 -0
  129. package/dist/classes/ovary.d/make-efi.d.ts +14 -0
  130. package/dist/classes/ovary.d/make-efi.js +296 -0
  131. package/dist/classes/ovary.d/make-iso.d.ts +13 -0
  132. package/dist/classes/ovary.d/make-iso.js +45 -0
  133. package/dist/classes/ovary.d/make-squashfs.d.ts +18 -0
  134. package/dist/classes/ovary.d/make-squashfs.js +111 -0
  135. package/dist/classes/ovary.d/merged.d.ts +27 -0
  136. package/dist/classes/ovary.d/merged.js +78 -0
  137. package/dist/classes/ovary.d/produce.d.ts +23 -0
  138. package/dist/classes/ovary.d/produce.js +349 -0
  139. package/dist/classes/ovary.d/rexec.d.ts +13 -0
  140. package/dist/classes/ovary.d/rexec.js +34 -0
  141. package/dist/classes/ovary.d/syslinux.d.ts +12 -0
  142. package/dist/classes/ovary.d/syslinux.js +99 -0
  143. package/dist/classes/ovary.d/user-create-live.d.ts +14 -0
  144. package/dist/classes/ovary.d/user-create-live.js +97 -0
  145. package/dist/classes/ovary.d/users-remove.d.ts +9 -0
  146. package/dist/classes/ovary.d/users-remove.js +38 -0
  147. package/dist/classes/ovary.d/xorriso-command.d.ts +14 -0
  148. package/dist/classes/ovary.d/xorriso-command.js +125 -0
  149. package/dist/classes/ovary.d.ts +111 -0
  150. package/dist/classes/ovary.js +122 -0
  151. package/dist/classes/pacman.d/alpine.d.ts +56 -0
  152. package/dist/classes/pacman.d/alpine.js +167 -0
  153. package/dist/classes/pacman.d/archlinux.d.ts +62 -0
  154. package/dist/classes/pacman.d/archlinux.js +128 -0
  155. package/dist/classes/pacman.d/debian.d.ts +65 -0
  156. package/dist/classes/pacman.d/debian.js +143 -0
  157. package/dist/classes/pacman.d/fedora.d.ts +53 -0
  158. package/dist/classes/pacman.d/fedora.js +107 -0
  159. package/dist/classes/pacman.d/openmamba.d.ts +52 -0
  160. package/dist/classes/pacman.d/openmamba.js +106 -0
  161. package/dist/classes/pacman.d/opensuse.d.ts +53 -0
  162. package/dist/classes/pacman.d/opensuse.js +109 -0
  163. package/dist/classes/pacman.d.ts +139 -0
  164. package/dist/classes/pacman.js +681 -0
  165. package/dist/classes/pve-live.d.ts +17 -0
  166. package/dist/classes/pve-live.js +52 -0
  167. package/dist/classes/pxe.d.ts +76 -0
  168. package/dist/classes/pxe.js +353 -0
  169. package/dist/classes/settings.d.ts +52 -0
  170. package/dist/classes/settings.js +185 -0
  171. package/dist/classes/sources_list.d.ts +28 -0
  172. package/dist/classes/sources_list.js +89 -0
  173. package/dist/classes/systemctl.d.ts +47 -0
  174. package/dist/classes/systemctl.js +86 -0
  175. package/dist/classes/tailor.d.ts +50 -0
  176. package/dist/classes/tailor.js +563 -0
  177. package/dist/classes/tools.d.ts +26 -0
  178. package/dist/classes/tools.js +50 -0
  179. package/dist/classes/users.d.ts +28 -0
  180. package/dist/classes/users.js +143 -0
  181. package/dist/classes/utils.d/kernel.d.ts +39 -0
  182. package/dist/classes/utils.d/kernel.js +206 -0
  183. package/dist/classes/utils.d.ts +330 -0
  184. package/dist/classes/utils.js +968 -0
  185. package/dist/classes/xdg.d.ts +45 -0
  186. package/dist/classes/xdg.js +337 -0
  187. package/dist/classes/yolk.d.ts +33 -0
  188. package/dist/classes/yolk.js +114 -0
  189. package/dist/commands/adapt.d.ts +17 -0
  190. package/dist/commands/adapt.js +33 -0
  191. package/dist/commands/analyze.d.ts +26 -0
  192. package/dist/commands/analyze.js +95 -0
  193. package/dist/commands/calamares.d.ts +29 -0
  194. package/dist/commands/calamares.js +112 -0
  195. package/dist/commands/config.d.ts +35 -0
  196. package/dist/commands/config.js +120 -0
  197. package/dist/commands/cuckoo.d.ts +17 -0
  198. package/dist/commands/cuckoo.js +61 -0
  199. package/dist/commands/dad.d.ts +21 -0
  200. package/dist/commands/dad.js +47 -0
  201. package/dist/commands/export/iso.d.ts +19 -0
  202. package/dist/commands/export/iso.js +55 -0
  203. package/dist/commands/export/pkg.d.ts +29 -0
  204. package/dist/commands/export/pkg.js +173 -0
  205. package/dist/commands/export/tarballs.d.ts +27 -0
  206. package/dist/commands/export/tarballs.js +79 -0
  207. package/dist/commands/install.d.ts +39 -0
  208. package/dist/commands/install.js +113 -0
  209. package/dist/commands/kill.d.ts +24 -0
  210. package/dist/commands/kill.js +50 -0
  211. package/dist/commands/love.d.ts +25 -0
  212. package/dist/commands/love.js +118 -0
  213. package/dist/commands/mom.d.ts +16 -0
  214. package/dist/commands/mom.js +30 -0
  215. package/dist/commands/pods.d.ts +22 -0
  216. package/dist/commands/pods.js +92 -0
  217. package/dist/commands/produce.d.ts +37 -0
  218. package/dist/commands/produce.js +232 -0
  219. package/dist/commands/status.d.ts +23 -0
  220. package/dist/commands/status.js +31 -0
  221. package/dist/commands/tools/clean.d.ts +18 -0
  222. package/dist/commands/tools/clean.js +37 -0
  223. package/dist/commands/tools/repo.d.ts +31 -0
  224. package/dist/commands/tools/repo.js +413 -0
  225. package/dist/commands/tools/skel.d.ts +18 -0
  226. package/dist/commands/tools/skel.js +44 -0
  227. package/dist/commands/tools/stat.d.ts +31 -0
  228. package/dist/commands/tools/stat.js +70 -0
  229. package/dist/commands/tools/yolk.d.ts +24 -0
  230. package/dist/commands/tools/yolk.js +45 -0
  231. package/dist/commands/update.d.ts +46 -0
  232. package/dist/commands/update.js +238 -0
  233. package/dist/commands/wardrobe/get.d.ts +23 -0
  234. package/dist/commands/wardrobe/get.js +52 -0
  235. package/dist/commands/wardrobe/list.d.ts +24 -0
  236. package/dist/commands/wardrobe/list.js +125 -0
  237. package/dist/commands/wardrobe/show.d.ts +25 -0
  238. package/dist/commands/wardrobe/show.js +97 -0
  239. package/dist/commands/wardrobe/wear.d.ts +26 -0
  240. package/dist/commands/wardrobe/wear.js +84 -0
  241. package/dist/dhcpd-proxy/classes/packet.d.ts +36 -0
  242. package/dist/dhcpd-proxy/classes/packet.js +124 -0
  243. package/dist/dhcpd-proxy/index.d.ts +4 -0
  244. package/dist/dhcpd-proxy/index.js +4 -0
  245. package/dist/dhcpd-proxy/interfaces/i-pxe.d.ts +45 -0
  246. package/dist/dhcpd-proxy/interfaces/i-pxe.js +1 -0
  247. package/dist/dhcpd-proxy/lib/packet/converters.d.ts +11 -0
  248. package/dist/dhcpd-proxy/lib/packet/converters.js +395 -0
  249. package/dist/dhcpd-proxy/lib/packet/message-types.d.ts +10 -0
  250. package/dist/dhcpd-proxy/lib/packet/message-types.js +12 -0
  251. package/dist/dhcpd-proxy/lib/packet/options.d.ts +8 -0
  252. package/dist/dhcpd-proxy/lib/packet/options.js +264 -0
  253. package/dist/dhcpd-proxy/lib/sprintf.d.ts +6 -0
  254. package/dist/dhcpd-proxy/lib/sprintf.js +130 -0
  255. package/dist/dhcpd-proxy/lib/utils.d.ts +126 -0
  256. package/dist/dhcpd-proxy/lib/utils.js +255 -0
  257. package/dist/dhcpd-proxy/simple-proxy.d.ts +11 -0
  258. package/dist/dhcpd-proxy/simple-proxy.js +118 -0
  259. package/dist/index.d.ts +8 -0
  260. package/dist/index.js +8 -0
  261. package/dist/interfaces/calamares/i-calamares-bootloader.d.ts +23 -0
  262. package/dist/interfaces/calamares/i-calamares-bootloader.js +7 -0
  263. package/dist/interfaces/calamares/i-calamares-branding.d.ts +46 -0
  264. package/dist/interfaces/calamares/i-calamares-branding.js +1 -0
  265. package/dist/interfaces/calamares/i-calamares-displaymanager.d.ts +34 -0
  266. package/dist/interfaces/calamares/i-calamares-displaymanager.js +1 -0
  267. package/dist/interfaces/calamares/i-calamares-finished.d.ts +14 -0
  268. package/dist/interfaces/calamares/i-calamares-finished.js +1 -0
  269. package/dist/interfaces/calamares/i-calamares-packages.d.ts +26 -0
  270. package/dist/interfaces/calamares/i-calamares-packages.js +1 -0
  271. package/dist/interfaces/calamares/i-calamares-partitions.d.ts +39 -0
  272. package/dist/interfaces/calamares/i-calamares-partitions.js +1 -0
  273. package/dist/interfaces/calamares/i-calamares-settings.d.ts +36 -0
  274. package/dist/interfaces/calamares/i-calamares-settings.js +1 -0
  275. package/dist/interfaces/i-addons.d.ts +12 -0
  276. package/dist/interfaces/i-addons.js +8 -0
  277. package/dist/interfaces/i-analyze.d.ts +17 -0
  278. package/dist/interfaces/i-analyze.js +17 -0
  279. package/dist/interfaces/i-app.d.ts +14 -0
  280. package/dist/interfaces/i-app.js +8 -0
  281. package/dist/interfaces/i-config-tools.d.ts +15 -0
  282. package/dist/interfaces/i-config-tools.js +8 -0
  283. package/dist/interfaces/i-devices.d.ts +20 -0
  284. package/dist/interfaces/i-devices.js +8 -0
  285. package/dist/interfaces/i-distro.d.ts +23 -0
  286. package/dist/interfaces/i-distro.js +8 -0
  287. package/dist/interfaces/i-drive-list.d.ts +33 -0
  288. package/dist/interfaces/i-drive-list.js +8 -0
  289. package/dist/interfaces/i-eggs-config.d.ts +32 -0
  290. package/dist/interfaces/i-eggs-config.js +8 -0
  291. package/dist/interfaces/i-excludes.d.ts +14 -0
  292. package/dist/interfaces/i-excludes.js +8 -0
  293. package/dist/interfaces/i-exec.d.ts +11 -0
  294. package/dist/interfaces/i-exec.js +8 -0
  295. package/dist/interfaces/i-initrd.d.ts +13 -0
  296. package/dist/interfaces/i-initrd.js +8 -0
  297. package/dist/interfaces/i-install.d.ts +16 -0
  298. package/dist/interfaces/i-install.js +8 -0
  299. package/dist/interfaces/i-installer.d.ts +17 -0
  300. package/dist/interfaces/i-installer.js +8 -0
  301. package/dist/interfaces/i-luks-passphrase.d.ts +11 -0
  302. package/dist/interfaces/i-luks-passphrase.js +8 -0
  303. package/dist/interfaces/i-materia.d.ts +36 -0
  304. package/dist/interfaces/i-materia.js +8 -0
  305. package/dist/interfaces/i-net.d.ts +16 -0
  306. package/dist/interfaces/i-net.js +8 -0
  307. package/dist/interfaces/i-os-release.d.ts +5 -0
  308. package/dist/interfaces/i-os-release.js +1 -0
  309. package/dist/interfaces/i-packages.d.ts +16 -0
  310. package/dist/interfaces/i-packages.js +8 -0
  311. package/dist/interfaces/i-partitions.d.ts +16 -0
  312. package/dist/interfaces/i-partitions.js +8 -0
  313. package/dist/interfaces/i-pxe.d.ts +45 -0
  314. package/dist/interfaces/i-pxe.js +1 -0
  315. package/dist/interfaces/i-remix.d.ts +21 -0
  316. package/dist/interfaces/i-remix.js +8 -0
  317. package/dist/interfaces/i-settings.d.ts +33 -0
  318. package/dist/interfaces/i-settings.js +8 -0
  319. package/dist/interfaces/i-user.d.ts +14 -0
  320. package/dist/interfaces/i-user.js +8 -0
  321. package/dist/interfaces/i-workdir.d.ts +14 -0
  322. package/dist/interfaces/i-workdir.js +8 -0
  323. package/dist/interfaces/i-xkb-model.d.ts +24 -0
  324. package/dist/interfaces/i-xkb-model.js +8 -0
  325. package/dist/interfaces/index.d.ts +26 -0
  326. package/dist/interfaces/index.js +8 -0
  327. package/dist/krill/classes/cfs.d.ts +17 -0
  328. package/dist/krill/classes/cfs.js +39 -0
  329. package/dist/krill/classes/krill_enums.d.ts +37 -0
  330. package/dist/krill/classes/krill_enums.js +41 -0
  331. package/dist/krill/classes/prepare.d/confirm.d.ts +5 -0
  332. package/dist/krill/classes/prepare.d/confirm.js +30 -0
  333. package/dist/krill/classes/prepare.d/keyboard.d.ts +14 -0
  334. package/dist/krill/classes/prepare.d/keyboard.js +62 -0
  335. package/dist/krill/classes/prepare.d/location.d.ts +17 -0
  336. package/dist/krill/classes/prepare.d/location.js +59 -0
  337. package/dist/krill/classes/prepare.d/network.d.ts +14 -0
  338. package/dist/krill/classes/prepare.d/network.js +68 -0
  339. package/dist/krill/classes/prepare.d/partitions.d.ts +14 -0
  340. package/dist/krill/classes/prepare.d/partitions.js +86 -0
  341. package/dist/krill/classes/prepare.d/summary.d.ts +15 -0
  342. package/dist/krill/classes/prepare.d/summary.js +72 -0
  343. package/dist/krill/classes/prepare.d/users.d.ts +6 -0
  344. package/dist/krill/classes/prepare.d/users.js +63 -0
  345. package/dist/krill/classes/prepare.d/welcome.d.ts +6 -0
  346. package/dist/krill/classes/prepare.d/welcome.js +30 -0
  347. package/dist/krill/classes/prepare.d.ts +89 -0
  348. package/dist/krill/classes/prepare.js +319 -0
  349. package/dist/krill/classes/sequence.d/add_user.d.ts +20 -0
  350. package/dist/krill/classes/sequence.d/add_user.js +77 -0
  351. package/dist/krill/classes/sequence.d/bootloader.d.ts +14 -0
  352. package/dist/krill/classes/sequence.d/bootloader.js +117 -0
  353. package/dist/krill/classes/sequence.d/bootloader_config.d.ts +14 -0
  354. package/dist/krill/classes/sequence.d/bootloader_config.js +192 -0
  355. package/dist/krill/classes/sequence.d/change_password.d.ts +15 -0
  356. package/dist/krill/classes/sequence.d/change_password.js +18 -0
  357. package/dist/krill/classes/sequence.d/del_live_user.d.ts +14 -0
  358. package/dist/krill/classes/sequence.d/del_live_user.js +39 -0
  359. package/dist/krill/classes/sequence.d/fstab.d.ts +14 -0
  360. package/dist/krill/classes/sequence.d/fstab.js +177 -0
  361. package/dist/krill/classes/sequence.d/grubcfg.d.ts +17 -0
  362. package/dist/krill/classes/sequence.d/grubcfg.js +35 -0
  363. package/dist/krill/classes/sequence.d/hostname.d.ts +13 -0
  364. package/dist/krill/classes/sequence.d/hostname.js +50 -0
  365. package/dist/krill/classes/sequence.d/initramfs.d.ts +13 -0
  366. package/dist/krill/classes/sequence.d/initramfs.js +54 -0
  367. package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +14 -0
  368. package/dist/krill/classes/sequence.d/initramfs_cfg.js +35 -0
  369. package/dist/krill/classes/sequence.d/locale.d.ts +13 -0
  370. package/dist/krill/classes/sequence.d/locale.js +91 -0
  371. package/dist/krill/classes/sequence.d/locale_cfg.d.ts +10 -0
  372. package/dist/krill/classes/sequence.d/locale_cfg.js +58 -0
  373. package/dist/krill/classes/sequence.d/m_keyboard.d.ts +14 -0
  374. package/dist/krill/classes/sequence.d/m_keyboard.js +58 -0
  375. package/dist/krill/classes/sequence.d/machine_id.d.ts +15 -0
  376. package/dist/krill/classes/sequence.d/machine_id.js +33 -0
  377. package/dist/krill/classes/sequence.d/mkfs.d.ts +15 -0
  378. package/dist/krill/classes/sequence.d/mkfs.js +88 -0
  379. package/dist/krill/classes/sequence.d/mount_fs.d.ts +17 -0
  380. package/dist/krill/classes/sequence.d/mount_fs.js +68 -0
  381. package/dist/krill/classes/sequence.d/mount_vfs.d.ts +17 -0
  382. package/dist/krill/classes/sequence.d/mount_vfs.js +59 -0
  383. package/dist/krill/classes/sequence.d/network_cfg.d.ts +19 -0
  384. package/dist/krill/classes/sequence.d/network_cfg.js +73 -0
  385. package/dist/krill/classes/sequence.d/packages.d.ts +14 -0
  386. package/dist/krill/classes/sequence.d/packages.js +111 -0
  387. package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +17 -0
  388. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +73 -0
  389. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +16 -0
  390. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +51 -0
  391. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +17 -0
  392. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +77 -0
  393. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +10 -0
  394. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +33 -0
  395. package/dist/krill/classes/sequence.d/partition.d.ts +14 -0
  396. package/dist/krill/classes/sequence.d/partition.js +84 -0
  397. package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +13 -0
  398. package/dist/krill/classes/sequence.d/remove_installer_link.js +35 -0
  399. package/dist/krill/classes/sequence.d/umount.d.ts +14 -0
  400. package/dist/krill/classes/sequence.d/umount.js +28 -0
  401. package/dist/krill/classes/sequence.d/unpackfs.d.ts +13 -0
  402. package/dist/krill/classes/sequence.d/unpackfs.js +21 -0
  403. package/dist/krill/classes/sequence.d.ts +134 -0
  404. package/dist/krill/classes/sequence.js +400 -0
  405. package/dist/krill/components/finished.d.ts +16 -0
  406. package/dist/krill/components/finished.js +56 -0
  407. package/dist/krill/components/information.d.ts +8 -0
  408. package/dist/krill/components/information.js +162 -0
  409. package/dist/krill/components/install.d.ts +15 -0
  410. package/dist/krill/components/install.js +60 -0
  411. package/dist/krill/components/keyboard.d.ts +16 -0
  412. package/dist/krill/components/keyboard.js +54 -0
  413. package/dist/krill/components/location.d.ts +16 -0
  414. package/dist/krill/components/location.js +59 -0
  415. package/dist/krill/components/network.d.ts +19 -0
  416. package/dist/krill/components/network.js +65 -0
  417. package/dist/krill/components/partitions.d.ts +18 -0
  418. package/dist/krill/components/partitions.js +89 -0
  419. package/dist/krill/components/steps.d.ts +13 -0
  420. package/dist/krill/components/steps.js +148 -0
  421. package/dist/krill/components/summary.d.ts +25 -0
  422. package/dist/krill/components/summary.js +77 -0
  423. package/dist/krill/components/title.d.ts +11 -0
  424. package/dist/krill/components/title.js +35 -0
  425. package/dist/krill/components/users.d.ts +24 -0
  426. package/dist/krill/components/users.js +80 -0
  427. package/dist/krill/components/welcome.d.ts +13 -0
  428. package/dist/krill/components/welcome.js +63 -0
  429. package/dist/krill/interfaces/i_krill.d.ts +44 -0
  430. package/dist/krill/interfaces/i_krill.js +8 -0
  431. package/dist/krill/interfaces/i_krill_config.d.ts +35 -0
  432. package/dist/krill/interfaces/i_krill_config.js +8 -0
  433. package/dist/krill/lib/get_address.d.ts +8 -0
  434. package/dist/krill/lib/get_address.js +23 -0
  435. package/dist/krill/lib/get_dns.d.ts +8 -0
  436. package/dist/krill/lib/get_dns.js +23 -0
  437. package/dist/krill/lib/get_domain.d.ts +8 -0
  438. package/dist/krill/lib/get_domain.js +23 -0
  439. package/dist/krill/lib/get_gateway.d.ts +8 -0
  440. package/dist/krill/lib/get_gateway.js +23 -0
  441. package/dist/krill/lib/get_hostname.d.ts +8 -0
  442. package/dist/krill/lib/get_hostname.js +23 -0
  443. package/dist/krill/lib/get_luks_passphrase.d.ts +8 -0
  444. package/dist/krill/lib/get_luks_passphrase.js +32 -0
  445. package/dist/krill/lib/get_netmask.d.ts +8 -0
  446. package/dist/krill/lib/get_netmask.js +23 -0
  447. package/dist/krill/lib/get_password.d.ts +8 -0
  448. package/dist/krill/lib/get_password.js +36 -0
  449. package/dist/krill/lib/get_userfullname.d.ts +8 -0
  450. package/dist/krill/lib/get_userfullname.js +23 -0
  451. package/dist/krill/lib/get_username.d.ts +8 -0
  452. package/dist/krill/lib/get_username.js +23 -0
  453. package/dist/krill/lib/select_address_type.d.ts +8 -0
  454. package/dist/krill/lib/select_address_type.js +24 -0
  455. package/dist/krill/lib/select_filesystem_type.d.ts +8 -0
  456. package/dist/krill/lib/select_filesystem_type.js +40 -0
  457. package/dist/krill/lib/select_installation_device.d.ts +8 -0
  458. package/dist/krill/lib/select_installation_device.js +40 -0
  459. package/dist/krill/lib/select_installation_mode.d.ts +9 -0
  460. package/dist/krill/lib/select_installation_mode.js +25 -0
  461. package/dist/krill/lib/select_interface.d.ts +8 -0
  462. package/dist/krill/lib/select_interface.js +24 -0
  463. package/dist/krill/lib/select_keyboard_layout.d.ts +11 -0
  464. package/dist/krill/lib/select_keyboard_layout.js +36 -0
  465. package/dist/krill/lib/select_keyboard_model.d.ts +11 -0
  466. package/dist/krill/lib/select_keyboard_model.js +34 -0
  467. package/dist/krill/lib/select_keyboard_option.d.ts +11 -0
  468. package/dist/krill/lib/select_keyboard_option.js +34 -0
  469. package/dist/krill/lib/select_keyboard_variant.d.ts +11 -0
  470. package/dist/krill/lib/select_keyboard_variant.js +35 -0
  471. package/dist/krill/lib/select_languages.d.ts +8 -0
  472. package/dist/krill/lib/select_languages.js +28 -0
  473. package/dist/krill/lib/select_regions.d.ts +8 -0
  474. package/dist/krill/lib/select_regions.js +24 -0
  475. package/dist/krill/lib/select_replaced_partition.d.ts +8 -0
  476. package/dist/krill/lib/select_replaced_partition.js +31 -0
  477. package/dist/krill/lib/select_user_swap_choice.d.ts +9 -0
  478. package/dist/krill/lib/select_user_swap_choice.js +35 -0
  479. package/dist/krill/lib/select_zones.d.ts +8 -0
  480. package/dist/krill/lib/select_zones.js +518 -0
  481. package/dist/lib/kill_me_softly.d.ts +11 -0
  482. package/dist/lib/kill_me_softly.js +61 -0
  483. package/dist/lib/utils.d.ts +19 -0
  484. package/dist/lib/utils.js +65 -0
  485. package/dracut/create-symlink +0 -0
  486. package/dracut/dracut.conf.d/50-live.conf +12 -13
  487. package/dracut/export +0 -0
  488. package/dracut/export-dracut-analysis +0 -0
  489. package/dracut/export-dracut-log +0 -0
  490. package/dracut/mkisofs +0 -0
  491. package/dracut/modules.d/00debug-shell/debug-hook.sh +0 -0
  492. package/dracut/modules.d/00debug-shell/module-setup.sh +0 -0
  493. package/dracut/modules.d/90block/block-cmdline.sh +0 -0
  494. package/dracut/modules.d/90block/module-setup.sh +0 -0
  495. package/dracut/modules.d/95iso-scan/iso-scan-fallback.sh +0 -0
  496. package/dracut/modules.d/95iso-scan/iso-scan.sh +0 -0
  497. package/dracut/modules.d/95iso-scan/module-setup.sh +0 -0
  498. package/dracut/modules.d/95luks-loop/luks-loop.sh +0 -0
  499. package/dracut/modules.d/95luks-loop/module-setup.sh +0 -0
  500. package/dracut/renew-initramfs +0 -0
  501. package/dracut/sbin2bin +0 -0
  502. package/dracut/update-dracut-conf-d +0 -0
  503. package/dracut/update-dracut-modules +0 -0
  504. package/eui/eui-autostart-cinnamon.desktop +0 -0
  505. package/eui/eui-autostart-xfce.desktop +0 -0
  506. package/eui/eui-create-image.sh +0 -0
  507. package/eui/eui-start.sh +0 -0
  508. package/package.json +130 -124
  509. package/perrisbrewery/scripts/postinst +0 -0
  510. package/perrisbrewery/scripts/postrm +0 -0
  511. package/perrisbrewery/scripts/preinst +0 -0
  512. package/perrisbrewery/scripts/prerm +0 -0
  513. package/perrisbrewery/template/dependencies.yaml +7 -5
  514. package/scripts/99clean +0 -0
  515. package/scripts/adapt.sh +0 -0
  516. package/scripts/boot-encrypted-root.sh +0 -0
  517. package/scripts/bros/waydroid-helper.sh +0 -0
  518. package/scripts/lsb_release +0 -0
  519. package/scripts/mom.sh +0 -0
  520. package/scripts/mount-encrypted-home.sh +0 -0
  521. package/scripts/pve-live.service +0 -0
  522. package/scripts/pve-live.sh +0 -0
  523. package/scripts/resy +0 -0
  524. package/conf/distros/focal/calamares/calamares-modules/.keepit +0 -0
  525. package/conf/distros/focal/calamares/calamares-modules/cleanup/cleanup.sh +0 -20
  526. package/conf/distros/focal/calamares/calamares-modules/cleanup/module.yml +0 -9
  527. package/conf/distros/focal/calamares/calamares-modules/sources-yolk/module.yml +0 -8
  528. package/conf/distros/focal/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -50
  529. package/conf/distros/focal/calamares/calamares-modules/sources-yolk-undo/module.yml +0 -8
  530. package/conf/distros/focal/calamares/modules/after_bootloader_context.yml +0 -19
  531. package/conf/distros/focal/calamares/modules/automirror.yml +0 -6
  532. package/conf/distros/focal/calamares/modules/before_bootloader_context.yml +0 -19
  533. package/conf/distros/focal/calamares/modules/before_bootloader_mkdirs_context.yml +0 -11
  534. package/conf/distros/focal/calamares/modules/bootloader.yml +0 -34
  535. package/conf/distros/focal/calamares/modules/displaymanager.yml +0 -12
  536. package/conf/distros/focal/calamares/modules/finished.yml +0 -4
  537. package/conf/distros/focal/calamares/modules/fstab.yml +0 -13
  538. package/conf/distros/focal/calamares/modules/grubcfg.yml +0 -5
  539. package/conf/distros/focal/calamares/modules/locale.yml +0 -9
  540. package/conf/distros/focal/calamares/modules/machineid.yml +0 -9
  541. package/conf/distros/focal/calamares/modules/mount.yml +0 -41
  542. package/conf/distros/focal/calamares/modules/packages.mustache +0 -5
  543. package/conf/distros/focal/calamares/modules/partition.yml +0 -10
  544. package/conf/distros/focal/calamares/modules/removeuser.mustache +0 -3
  545. package/conf/distros/focal/calamares/modules/shellprocess_add386arch.yml +0 -6
  546. package/conf/distros/focal/calamares/modules/shellprocess_bug-LP#1829805.yml +0 -5
  547. package/conf/distros/focal/calamares/modules/shellprocess_logs.yml +0 -6
  548. package/conf/distros/focal/calamares/modules/unpackfs.mustache +0 -6
  549. package/conf/distros/focal/calamares/modules/users.yml +0 -19
  550. package/conf/distros/focal/calamares/modules/welcome.yml +0 -26
  551. package/conf/distros/focal/calamares/settings.yml +0 -72
@@ -0,0 +1,681 @@
1
+ /**
2
+ * ./src/classes/pacman.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 { execSync } from 'node:child_process';
9
+ import fs from 'node:fs';
10
+ // _dirname
11
+ import path from 'node:path';
12
+ import shx from 'shelljs';
13
+ import { exec } from '../lib/utils.js';
14
+ import Distro from './distro.js';
15
+ import Diversions from './diversions.js';
16
+ import Alpine from './pacman.d/alpine.js';
17
+ import Archlinux from './pacman.d/archlinux.js';
18
+ import Debian from './pacman.d/debian.js';
19
+ import Fedora from './pacman.d/fedora.js';
20
+ import Openmamba from './pacman.d/openmamba.js';
21
+ import Opensuse from './pacman.d/opensuse.js';
22
+ import Settings from './settings.js';
23
+ import Utils from './utils.js';
24
+ const __dirname = path.dirname(new URL(import.meta.url).pathname);
25
+ const config_file = '/etc/penguins-eggs.d/eggs.yaml';
26
+ const config_tools = '/etc/penguins-eggs.d/tools.yaml';
27
+ /**
28
+ * Utils: general porpouse utils
29
+ * @remarks all the utilities
30
+ */
31
+ export default class Pacman {
32
+ static debs4calamares = ['calamares', 'qml-module-qtquick2', 'qml-module-qtquick-controls'];
33
+ distro = {};
34
+ remix = {};
35
+ /**
36
+ *
37
+ * @param verbose
38
+ */
39
+ static async autocompleteInstall(verbose = false) {
40
+ if (Pacman.packageIsInstalled('bash-completion')) {
41
+ if (fs.existsSync('/usr/share/bash-completion/completions/')) {
42
+ await exec(`cp ${__dirname}/../../scripts/eggs.bash /usr/share/bash-completion/completions/`);
43
+ }
44
+ else if (fs.existsSync('/etc/bash_completion.d/')) {
45
+ await exec(`cp ${__dirname}/../../scripts/eggs.bash /etc/bash_completion.d/`);
46
+ }
47
+ }
48
+ }
49
+ /**
50
+ * return true if calamares is installed
51
+ */
52
+ static calamaresExists() {
53
+ return this.commandIsInstalled('calamares');
54
+ }
55
+ /**
56
+ *
57
+ */
58
+ static async calamaresInstall(verbose = false) {
59
+ if (this.isInstalledGui()) {
60
+ const familyId = this.distro().familyId;
61
+ if (familyId === 'alpine') {
62
+ await Alpine.calamaresInstall(verbose);
63
+ }
64
+ else if (familyId === 'archlinux') {
65
+ if (Diversions.isManjaroBased(this.distro().distroId)) {
66
+ await exec(`pacman -Sy --noconfirm calamares`, Utils.setEcho(true));
67
+ }
68
+ else {
69
+ await Archlinux.calamaresInstall(verbose);
70
+ }
71
+ }
72
+ else if (familyId === 'debian') {
73
+ await Debian.calamaresInstall(verbose);
74
+ }
75
+ else if (familyId === 'fedora') {
76
+ await Fedora.calamaresInstall(verbose);
77
+ }
78
+ else if (familyId === 'openmamba') {
79
+ await Openmamba.calamaresInstall(verbose);
80
+ }
81
+ else if (familyId === 'opensuse') {
82
+ await Opensuse.calamaresInstall(verbose);
83
+ }
84
+ }
85
+ }
86
+ /**
87
+ * calamaresPolicies
88
+ */
89
+ static async calamaresPolicies(verbose = false) {
90
+ const familyId = this.distro().familyId;
91
+ if (familyId === 'alpine') {
92
+ await Alpine.calamaresPolicies(verbose);
93
+ }
94
+ else if (familyId === 'archlinux') {
95
+ await Archlinux.calamaresPolicies(verbose);
96
+ }
97
+ else if (familyId === 'debian') {
98
+ await Debian.calamaresPolicies(verbose);
99
+ }
100
+ else if (familyId === 'fedora') {
101
+ await Fedora.calamaresPolicies(verbose);
102
+ }
103
+ else if (familyId === 'openmamba') {
104
+ await Openmamba.calamaresPolicies(verbose);
105
+ }
106
+ else if (familyId === 'opensuse') {
107
+ await Opensuse.calamaresPolicies(verbose);
108
+ }
109
+ }
110
+ /**
111
+ *
112
+ */
113
+ static async calamaresRemove(verbose = true) {
114
+ let retVal = false;
115
+ const familyId = this.distro().familyId;
116
+ if (familyId === 'alpine') {
117
+ retVal = await Alpine.calamaresRemove(verbose);
118
+ }
119
+ else if (familyId === 'archlinux') {
120
+ retVal = await Archlinux.calamaresRemove(verbose);
121
+ }
122
+ else if (familyId === 'debian') {
123
+ retVal = await Debian.calamaresRemove(verbose);
124
+ }
125
+ else if (familyId === 'fedora') {
126
+ retVal = await Fedora.calamaresRemove(verbose);
127
+ }
128
+ else if (familyId === 'openmamba') {
129
+ retVal = await Openmamba.calamaresRemove(verbose);
130
+ }
131
+ else if (familyId === 'opensuse') {
132
+ retVal = await Opensuse.calamaresRemove(verbose);
133
+ }
134
+ return retVal;
135
+ }
136
+ /**
137
+ *
138
+ * @param cmd
139
+ */
140
+ static commandIsInstalled(cmd) {
141
+ let installed = false;
142
+ // if (shx.exec(`command -V ${cmd} &>/dev/null`).code == 0) {
143
+ // remove output
144
+ if (shx.exec(`command -V ${cmd} >/dev/null 2>&1`).code == 0) {
145
+ installed = true;
146
+ }
147
+ return installed;
148
+ }
149
+ /**
150
+ * Restituisce VERO se i file di configurazione SONO presenti
151
+ */
152
+ static configurationCheck() {
153
+ const confExists = fs.existsSync(config_file);
154
+ return confExists;
155
+ }
156
+ /**
157
+ *
158
+ */
159
+ static async configurationFresh() {
160
+ const config = {};
161
+ config.version = Utils.getPackageVersion();
162
+ config.snapshot_dir = '/home/eggs';
163
+ config.snapshot_prefix = '';
164
+ config.snapshot_excludes = '/etc/penguins-eggs.d/exclude.list';
165
+ config.snapshot_basename = ''; // before default was hostname
166
+ config.user_opt = 'live';
167
+ config.user_opt_passwd = 'evolution';
168
+ config.root_passwd = 'evolution';
169
+ config.theme = 'eggs';
170
+ config.force_installer = true;
171
+ config.make_efi = true;
172
+ config.make_md5sum = false;
173
+ config.make_isohybrid = true;
174
+ config.compression = 'xz';
175
+ config.ssh_pass = false;
176
+ config.timezone = 'America/New_York';
177
+ config.pmount_fixed = false;
178
+ if (!this.calamaresExists()) {
179
+ config.force_installer = false;
180
+ // console.log('Due the lacks of calamares package set force_installer = false')
181
+ }
182
+ if (!Pacman.isUefi() && Utils.uefiArch() !== 'i386') {
183
+ config.make_efi = false;
184
+ console.log('Due the lacks of grub-efi-' + Utils.uefiArch() + '-bin package set make_efi = false');
185
+ }
186
+ /**
187
+ * Salvo la configurazione di eggs.yaml
188
+ */
189
+ config.machine_id = Utils.machineId();
190
+ config.vmlinuz = Utils.vmlinuz();
191
+ config.initrd_img = Utils.initrdImg();
192
+ const settings = new Settings();
193
+ await settings.save(config);
194
+ }
195
+ /**
196
+ * Creazione del file di configurazione /etc/penguins-eggs
197
+ */
198
+ static async configurationInstall(links = true, verbose = false) {
199
+ const confRoot = '/etc/penguins-eggs.d';
200
+ if (!fs.existsSync(confRoot)) {
201
+ execSync(`mkdir ${confRoot}`);
202
+ }
203
+ if (verbose) {
204
+ console.log('configuration install: ' + confRoot);
205
+ }
206
+ const addons = `${confRoot}/addons`;
207
+ if (fs.existsSync(addons)) {
208
+ execSync(`rm -rf ${addons}`);
209
+ }
210
+ const distros = `${confRoot}/distros`;
211
+ if (fs.existsSync(distros)) {
212
+ execSync(`rm -rf ${distros}`);
213
+ }
214
+ execSync(`mkdir -p ${distros}`);
215
+ /**
216
+ * We use /etc/penguins-eggs.d/init for our init scripts:
217
+ * # unattended.sh -> eggs install --unattended
218
+ * # cuckoo -> eggs cuckoo
219
+ */
220
+ const init = `${confRoot}/init`;
221
+ if (fs.existsSync(init)) {
222
+ execSync(`rm -rf ${init}`);
223
+ }
224
+ execSync(`mkdir -p ${init}`);
225
+ shx.ln('-s', path.resolve(__dirname, '../../addons'), addons);
226
+ shx.cp(path.resolve(__dirname, '../../conf/README.md'), confRoot);
227
+ shx.cp(path.resolve(__dirname, '../../conf/derivatives.yaml'), confRoot);
228
+ shx.cp(path.resolve(__dirname, '../../conf/derivatives_fedora.yaml'), confRoot);
229
+ shx.cp(path.resolve(__dirname, '../../conf/krill.yaml'), confRoot);
230
+ shx.cp(path.resolve(__dirname, '../../conf/love.yaml'), confRoot);
231
+ shx.cp(path.resolve(__dirname, '../../conf/tools.yaml'), config_tools);
232
+ shx.cp(path.resolve(__dirname, '../../conf/yolk.yaml'), confRoot);
233
+ // init
234
+ shx.cp(path.resolve(__dirname, '../../conf/init/unattended.sh'), '/etc/penguins-eggs.d/init');
235
+ shx.chmod('+x', '/etc/penguins-eggs.d/init/unattended.sh');
236
+ shx.cp(path.resolve(__dirname, '../../conf/init/cuckoo.sh'), '/etc/penguins-eggs.d/init');
237
+ shx.chmod('+x', '/etc/penguins-eggs.d/init/cuckoo.sh');
238
+ // creazione cartella exclude.list.d
239
+ execSync(`mkdir -p /etc/penguins-eggs.d/exclude.list.d`);
240
+ shx.cp(path.resolve(__dirname, '../../conf/exclude.list.d/*'), '/etc/penguins-eggs.d/exclude.list.d');
241
+ await this.configurationFresh();
242
+ }
243
+ /**
244
+ * Ritorna vero se machine-id è uguale
245
+ */
246
+ static async configurationMachineNew(verbose = false) {
247
+ const settings = new Settings();
248
+ await settings.load();
249
+ const result = Utils.machineId() !== settings.config.machine_id;
250
+ if (verbose && result) {
251
+ console.log('configurationMachineNew: True');
252
+ }
253
+ return result;
254
+ }
255
+ /**
256
+ * Rimozione dei file di configurazione
257
+ */
258
+ static async configurationRemove(verbose = true) {
259
+ const echo = Utils.setEcho(verbose);
260
+ if (fs.existsSync('/etc/penguins-eggs.d')) {
261
+ await exec('rm /etc/penguins-eggs.d -rf', echo);
262
+ }
263
+ if (fs.existsSync('/etc/calamares')) {
264
+ await exec('rm /etc/calamares -rf', echo);
265
+ }
266
+ }
267
+ /**
268
+ *
269
+ * @returns
270
+ */
271
+ static distro() {
272
+ return new Distro();
273
+ }
274
+ /**
275
+ * distroTemplateCheck
276
+ */
277
+ static distroTemplateCheck() {
278
+ const { distroUniqueId } = this.distro();
279
+ // console.log(distroUniqueId)
280
+ return fs.existsSync(`/etc/penguins-eggs.d/distros/${distroUniqueId}`);
281
+ }
282
+ /**
283
+ *
284
+ */
285
+ static async distroTemplateInstall(verbose = false) {
286
+ if (verbose) {
287
+ console.log('distroTemplateInstall');
288
+ }
289
+ const echo = Utils.setEcho(verbose);
290
+ const rootPen = Utils.rootPenguin();
291
+ await exec(`mkdir /etc/penguins-eggs.d/distros/${this.distro().distroUniqueId}`);
292
+ /**
293
+ * Debian 10 - Buster: è il master per tutte le altre
294
+ */
295
+ const buster = `${rootPen}/conf/distros/buster`;
296
+ const trixie = `${rootPen}/conf/distros/trixie`;
297
+ const distroUniqueId = this.distro().distroUniqueId;
298
+ /***********************************************************************************
299
+ * Alpine
300
+ **********************************************************************************/
301
+ if (distroUniqueId === 'alpine') {
302
+ // eredita solo da alpine
303
+ const dest = '/etc/penguins-eggs.d/distros/alpine/';
304
+ const alpine = `${rootPen}/conf/distros/alpine/`;
305
+ await exec(`cp -r ${alpine}/calamares ${dest}/calamares`, echo);
306
+ /***********************************************************************************
307
+ * Arch Linux
308
+ **********************************************************************************/
309
+ }
310
+ else if (distroUniqueId === 'archlinux') {
311
+ const dest = '/etc/penguins-eggs.d/distros/archlinux/';
312
+ const arch = `${rootPen}/conf/distros/archlinux/*`;
313
+ await exec(`cp -r ${arch} ${dest}`, echo);
314
+ /***********************************************************************************
315
+ * Manjaro
316
+ **********************************************************************************/
317
+ }
318
+ else if (distroUniqueId === 'manjaro') {
319
+ const dest = '/etc/penguins-eggs.d/distros/manjaro/';
320
+ const manjaro = `${rootPen}/conf/distros/manjaro/*`;
321
+ await exec(`cp -r ${manjaro} ${dest}`, echo);
322
+ /***********************************************************************************
323
+ * Debian
324
+ **********************************************************************************/
325
+ /**
326
+ * Debian 10 buster: eredita tutto da buster
327
+ */
328
+ }
329
+ else if (distroUniqueId === 'buster') {
330
+ const dest = '/etc/penguins-eggs.d/distros/buster';
331
+ await exec(`cp -r ${buster}/calamares ${dest}/calamares`, echo);
332
+ /**
333
+ * Debian 11 bullseye: eredita tutto da buster
334
+ */
335
+ }
336
+ else if (distroUniqueId === 'bullseye') {
337
+ const dest = '/etc/penguins-eggs.d/distros/bullseye';
338
+ await exec(`cp -r ${buster}/calamares ${dest}/calamares`, echo);
339
+ /**
340
+ * Debian 12 bookworm: eredita tutto da buster
341
+ */
342
+ }
343
+ else if (distroUniqueId === 'bookworm') {
344
+ const dest = '/etc/penguins-eggs.d/distros/bookworm';
345
+ await exec(`cp -r ${buster}/calamares ${dest}/calamares`, echo);
346
+ /**
347
+ * Debian 13 trixie: eredita tutto da trixie
348
+ */
349
+ }
350
+ else if (distroUniqueId === 'trixie') {
351
+ const dest = '/etc/penguins-eggs.d/distros/trixie';
352
+ await exec(`cp -r ${trixie}/calamares ${dest}/calamares`, echo);
353
+ /**
354
+ * Debian 14 forky eredita tutto da trixie
355
+ */
356
+ }
357
+ else if (distroUniqueId === 'forky') {
358
+ const dest = '/etc/penguins-eggs.d/distros/forky';
359
+ await exec(`cp -r ${trixie}/calamares ${dest}/calamares`, echo);
360
+ /***********************************************************************************
361
+ * Devuan
362
+ **********************************************************************************/
363
+ /**
364
+ * Devuan beowulf: eredita tutto da buster
365
+ */
366
+ }
367
+ else if (distroUniqueId === 'beowulf') {
368
+ const dest = '/etc/penguins-eggs.d/distros/beowulf';
369
+ await exec(`cp -r ${buster}/calamares ${dest}/calamares`, echo);
370
+ /**
371
+ * Devuan chimaera: eredita tutto da buster
372
+ */
373
+ }
374
+ else if (distroUniqueId === 'chimaera') {
375
+ const dest = '/etc/penguins-eggs.d/distros/chimaera';
376
+ await exec(`cp -r ${buster}/calamares ${dest}/calamares`, echo);
377
+ /**
378
+ * Devuan daedalus: eredita tutto da buster
379
+ */
380
+ }
381
+ else if (distroUniqueId === 'daedalus') {
382
+ const dest = '/etc/penguins-eggs.d/distros/daedalus';
383
+ await exec(`cp -r ${buster}/calamares ${dest}/calamares`, echo);
384
+ /**
385
+ * Devuan excalibur: eredita tutto da trixie
386
+ */
387
+ }
388
+ else if (distroUniqueId === 'excalibur') {
389
+ const dest = '/etc/penguins-eggs.d/distros/excalibur';
390
+ await exec(`cp -r ${trixie}/calamares ${dest}/calamares`, echo);
391
+ /***********************************************************************************
392
+ * Fedora
393
+ **********************************************************************************/
394
+ }
395
+ else if (distroUniqueId === 'fedora') {
396
+ const dest = '/etc/penguins-eggs.d/distros/fedora/';
397
+ const fedora = `${rootPen}/conf/distros/fedora/*`;
398
+ await exec(`cp -r ${fedora} ${dest}`, echo);
399
+ /***********************************************************************************
400
+ * openmamba
401
+ **********************************************************************************/
402
+ }
403
+ else if (distroUniqueId === 'openmamba') {
404
+ // eredita solo da openmamba
405
+ const dest = '/etc/penguins-eggs.d/distros/openmamba/';
406
+ const mamba = `${rootPen}/conf/distros/openmamba/*`;
407
+ await exec(`cp -r ${mamba} ${dest}`, echo);
408
+ /***********************************************************************************
409
+ * opensuse
410
+ **********************************************************************************/
411
+ }
412
+ else if (distroUniqueId === 'opensuse') {
413
+ const dest = '/etc/penguins-eggs.d/distros/opensuse/';
414
+ const suse = `${rootPen}/conf/distros/opensuse/*`;
415
+ await exec(`cp -r ${suse} ${dest}`, echo);
416
+ /***********************************************************************************
417
+ * Ubuntu
418
+ **********************************************************************************/
419
+ /**
420
+ * Ubuntu focal: eredita da noble
421
+ */
422
+ }
423
+ else if (distroUniqueId === 'focal') {
424
+ const dest = '/etc/penguins-eggs.d/distros/focal';
425
+ const noble = `${rootPen}/conf/distros/noble`;
426
+ await exec(`cp -r ${noble}/* ${dest}`, echo);
427
+ /**
428
+ * Ubuntu 22.04 jammy: eredita da noble
429
+ */
430
+ }
431
+ else if (distroUniqueId === 'jammy') {
432
+ const dest = '/etc/penguins-eggs.d/distros/jammy';
433
+ const noble = `${rootPen}/conf/distros/noble`;
434
+ await exec(`cp -r ${noble}/* ${dest}`, echo);
435
+ /**
436
+ * Ubuntu noble: e la nuova baseline per ubuntu
437
+ *
438
+ */
439
+ }
440
+ else if (this.distro().distroUniqueId === 'noble') {
441
+ const dest = '/etc/penguins-eggs.d/distros/noble';
442
+ const noble = `${rootPen}/conf/distros/noble`;
443
+ await exec(`cp -r ${noble}/* ${dest}`, echo);
444
+ /**
445
+ * Ubuntu rhino: devel
446
+ *
447
+ */
448
+ }
449
+ else if (distroUniqueId === 'devel') {
450
+ const dest = '/etc/penguins-eggs.d/distros/devel';
451
+ const noble = `${rootPen}/conf/distros/noble`;
452
+ await exec(`cp -r ${noble}/* ${dest}`, echo);
453
+ }
454
+ }
455
+ /**
456
+ * Controlla se calamares è installabile
457
+ * @returns
458
+ */
459
+ static isCalamaresAvailable() {
460
+ let result = this.distro().isCalamaresAvailable;
461
+ if (process.arch === 'arm' || process.arch === 'arm64') {
462
+ result = false;
463
+ }
464
+ return result;
465
+ }
466
+ /**
467
+ *
468
+ * @returns true se GUI
469
+ */
470
+ static isInstalledGui() {
471
+ return this.isInstalledXorg() || this.isInstalledWayland();
472
+ }
473
+ /**
474
+ * check if it's installed wayland
475
+ * @returns true if wayland
476
+ */
477
+ static isInstalledWayland() {
478
+ let installed = false;
479
+ const familyId = this.distro().familyId;
480
+ if (familyId === 'alpine') {
481
+ if (Alpine.packageIsInstalled('xwayland*')) {
482
+ installed = true;
483
+ }
484
+ }
485
+ else if (familyId === 'archlinux') {
486
+ if (Archlinux.packageIsInstalled('xwayland')) {
487
+ installed = true;
488
+ }
489
+ }
490
+ else if (familyId === 'debian') {
491
+ if (Debian.packageIsInstalled('xwayland')) {
492
+ installed = true;
493
+ }
494
+ }
495
+ else if (familyId === 'fedora') {
496
+ if (Fedora.packageIsInstalled('xorg-x11-server-Xwayland*')) {
497
+ installed = true;
498
+ }
499
+ }
500
+ else if (familyId === 'openmamba') {
501
+ if (Openmamba.packageIsInstalled('wayland')) {
502
+ installed = true;
503
+ }
504
+ }
505
+ else if (familyId === 'opensuse') {
506
+ if (Opensuse.packageIsInstalled('wayland')) {
507
+ installed = true;
508
+ }
509
+ }
510
+ return installed;
511
+ }
512
+ /**
513
+ * check if it's installed xorg
514
+ * @returns
515
+ */
516
+ static isInstalledXorg() {
517
+ let installed = false;
518
+ const familyId = this.distro().familyId;
519
+ if (familyId === 'alpine') {
520
+ if (Alpine.packageIsInstalled('xorg-server')) {
521
+ installed = true;
522
+ }
523
+ }
524
+ else if (familyId === 'archlinux') {
525
+ if (Archlinux.packageIsInstalled('xorg-server-common')) {
526
+ installed = true;
527
+ }
528
+ }
529
+ else if (familyId === 'debian') {
530
+ if (Debian.packageIsInstalled('xserver-xorg-core')) {
531
+ installed = true;
532
+ }
533
+ }
534
+ else if (familyId === 'fedora') {
535
+ if (Fedora.packageIsInstalled('xorg-x11-server-Xorg.x86_64')) {
536
+ installed = true;
537
+ }
538
+ }
539
+ else if (familyId === 'openmamba') {
540
+ if (Openmamba.packageIsInstalled('xorg-server')) {
541
+ installed = true;
542
+ }
543
+ }
544
+ else if (familyId === 'opensuse') {
545
+ if (Opensuse.packageIsInstalled('xorg-x11-server')) {
546
+ installed = true;
547
+ }
548
+ }
549
+ return installed;
550
+ }
551
+ /**
552
+ * Check if the system is just CLI
553
+ */
554
+ static isRunningCli() {
555
+ return !this.isRunningGui();
556
+ }
557
+ /**
558
+ * Check if the system is GUI able
559
+ */
560
+ static isRunningGui() {
561
+ return this.isRunningXorg() || this.isRunningWayland();
562
+ }
563
+ /**
564
+ * Constrolla se è operante wayland
565
+ */
566
+ static isRunningWayland() {
567
+ return process.env.XDG_SESSION_TYPE === 'wayland';
568
+ }
569
+ /**
570
+ * controlla se è operante xserver-xorg-core
571
+ */
572
+ static isRunningXorg() {
573
+ return process.env.XDG_SESSION_TYPE === 'x11';
574
+ }
575
+ /**
576
+ * Check se la macchina ha grub adatto ad efi
577
+ * Forse conviene spostarlo in pacman
578
+ */
579
+ static isUefi() {
580
+ let isUefi = false;
581
+ if (this.distro().familyId === 'debian') {
582
+ if (Utils.uefiArch() !== 'i386' && this.packageIsInstalled('grub-efi-' + Utils.uefiArch() + '-bin')) {
583
+ isUefi = true;
584
+ }
585
+ }
586
+ else {
587
+ isUefi = true;
588
+ }
589
+ return isUefi;
590
+ }
591
+ /**
592
+ * Installa manPage
593
+ */
594
+ static async manPageInstall(verbose = false) {
595
+ const manPageSrc = path.resolve(__dirname, '../../manpages/doc/man/eggs.roll.gz');
596
+ if (fs.existsSync(manPageSrc)) {
597
+ const man1Dir = '/usr/share/man/man1/';
598
+ if (!fs.existsSync(man1Dir)) {
599
+ exec(`mkdir ${man1Dir} -p`);
600
+ }
601
+ const manPageDest = man1Dir + 'eggs.1.gz';
602
+ exec(`cp ${manPageSrc} ${manPageDest}`);
603
+ if (shx.exec('which mandb', { silent: true }).stdout.trim() !== '') {
604
+ await exec('mandb > /dev/null');
605
+ if (verbose) {
606
+ console.log('manPage eggs installed...');
607
+ }
608
+ }
609
+ }
610
+ }
611
+ /**
612
+ *
613
+ * @param debPackage
614
+ * @returns
615
+ */
616
+ static async packageAptLast(debPackage) {
617
+ let version = '';
618
+ if (this.distro().familyId === 'debian') {
619
+ version = await Debian.packageAptLast(debPackage);
620
+ }
621
+ return version;
622
+ }
623
+ /**
624
+ * Install the package packageName
625
+ * @param packageName {string} Pacchetto Debian da installare
626
+ * @returns {boolean} True if success
627
+ */
628
+ static async packageInstall(packageName) {
629
+ let retVal = false;
630
+ const familyId = this.distro().familyId;
631
+ if (familyId === 'alpine') {
632
+ retVal = await Alpine.packageInstall(packageName);
633
+ }
634
+ else if (familyId === 'archlinux') {
635
+ retVal = await Archlinux.packageInstall(packageName);
636
+ }
637
+ else if (familyId === 'debian') {
638
+ retVal = await Debian.packageInstall(packageName);
639
+ }
640
+ else if (familyId === 'fedora') {
641
+ retVal = await Fedora.packageInstall(packageName);
642
+ }
643
+ else if (familyId === 'openmamba') {
644
+ retVal = await Openmamba.packageInstall(packageName);
645
+ }
646
+ else if (familyId === 'opensuse') {
647
+ retVal = await Opensuse.packageInstall(packageName);
648
+ }
649
+ return retVal;
650
+ }
651
+ /**
652
+ * restuisce VERO se il pacchetto è installato
653
+ * @param debPackage
654
+ */
655
+ static packageIsInstalled(packageName) {
656
+ let installed = false;
657
+ const familyId = this.distro().familyId;
658
+ if (familyId === 'alpine') {
659
+ installed = Alpine.packageIsInstalled(packageName);
660
+ }
661
+ else if (familyId === 'archlinux') {
662
+ installed = Archlinux.packageIsInstalled(packageName);
663
+ }
664
+ else if (familyId === 'debian') {
665
+ installed = Debian.packageIsInstalled(packageName);
666
+ }
667
+ else if (familyId === 'fedora') {
668
+ installed = Fedora.packageIsInstalled(packageName);
669
+ }
670
+ else if (familyId === 'openmamba') {
671
+ installed = Openmamba.packageIsInstalled(packageName);
672
+ }
673
+ else if (familyId === 'opensuse') {
674
+ installed = Opensuse.packageIsInstalled(packageName);
675
+ }
676
+ return installed;
677
+ }
678
+ static async packageNpmLast(packageNpm = 'penguins-eggs') {
679
+ return shx.exec('npm show ' + packageNpm + ' version', { silent: true }).stdout.trim();
680
+ }
681
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * ./src/classes/pve-live.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import Systemctl from './systemctl.js';
9
+ export default class PveLive {
10
+ systemctl: Systemctl;
11
+ constructor();
12
+ create(root?: string): void;
13
+ disable(): void;
14
+ enable(): void;
15
+ start(): void;
16
+ stop(): void;
17
+ }