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
File without changes
File without changes
@@ -1,12 +1,14 @@
1
1
  [Desktop Entry]
2
2
  Type=Application
3
3
  Version=1.0
4
- Name=Install system
5
- GenericName=Live Installer
6
- Comment=Install the operating system to disk
7
- Exec=/usr/bin/calamares_polkit %f
4
+ Name=Install System
5
+ GenericName=System Installer
6
+ Keywords=calamares;system;installer;
7
+ TryExec=calamares
8
+ Exec=sh -c "pkexec calamares"
9
+ Comment=Calamares — System Installer
10
+ Icon=install-system.png
8
11
  Terminal=false
9
12
  StartupNotify=true
10
- Type=Application
11
13
  Categories=Qt;System;
12
- Icon=install-system.png
14
+ X-AppStream-Ignore=true
File without changes
@@ -0,0 +1,25 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- SPDX-FileCopyrightText: no
3
+ SPDX-License-Identifier: CC0-1.0
4
+ -->
5
+ <!DOCTYPE policyconfig PUBLIC
6
+ "-//freedesktop//DTD PolicyKit Policy Configuration 1.0//EN"
7
+ "http://www.freedesktop.org/standards/PolicyKit/1/policyconfig.dtd">
8
+ <policyconfig>
9
+
10
+ <vendor>Calamares</vendor>
11
+ <vendor_url>https://calamares.io/</vendor_url>
12
+
13
+ <action id="io.calamares.calamares.pkexec.run">
14
+ <description>Run Installer</description>
15
+ <message>Authentication is required to run the installation program</message>
16
+ <icon_name>drive-harddisk</icon_name>
17
+ <defaults>
18
+ <allow_any>no</allow_any>
19
+ <allow_inactive>no</allow_inactive>
20
+ <allow_active>auth_admin</allow_active>
21
+ </defaults>
22
+ <annotate key="org.freedesktop.policykit.exec.path">/usr/bin/calamares</annotate>
23
+ <annotate key="org.freedesktop.policykit.exec.allow_gui">true</annotate>
24
+ </action>
25
+ </policyconfig>
File without changes
File without changes
File without changes
File without changes
package/bin/dev.js CHANGED
File without changes
@@ -1,3 +1,4 @@
1
+ # A mustache template for module: packages.conf
1
2
  ---
2
3
  backend: {{{backend}}}
3
4
 
@@ -1,15 +1,3 @@
1
- # Debian Buster
2
- # removeuser
3
- # SPDX-FileCopyrightText: no
4
- # SPDX-License-Identifier: CC0-1.0
5
- #
6
- # Removes a single user (with userdel) from the system.
7
- # This is typically used in OEM setups or if the live user
8
- # spills into the target system.
9
- #
10
- # The module never fails; if userdel fails, this is logged
11
- # but the module still reports success and installation / setup
12
- # continues as normal.
1
+ # A mustache template for module: removeuser.conf
13
2
  ---
14
- # Username in the target system to be removed.
15
- username: {{username}}
3
+ username: {{{username}}}
@@ -1,6 +1,6 @@
1
- # Debian/bookworm
1
+ # A mustache template for module: unpackfs.conf
2
2
  ---
3
3
  unpack:
4
- - source: {{source}}
4
+ - source: {{{source}}}
5
5
  sourcefs: "squashfs"
6
6
  destination: ""
@@ -1,24 +1,9 @@
1
1
  # SPDX-FileCopyrightText: 2020 Harald Sitter <sitter@kde.org>
2
2
  # SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
3
3
  #
4
- # This is run outside the chroot!
5
- # As per at least 20.04+ /boot on the squashfs no longer contains the initrd
6
- # or vmlinuz, instead we'll first fish the kernel out of the ISO.
7
- #
8
- # NB: initrd is handled by the initramfs module.
9
4
  ---
10
5
  message: "Preparing the boot environment..."
11
6
  dontChroot: true
12
7
  timeout: 300
13
8
  script:
14
- # Si tratta di una soluzione un po' improvvisata, ma sufficiente per la versione 20.04+, poiché non è più necessario
15
- # considerare la differenza tra firmato e non firmato, quindi quanto riportato di seguito è praticamente
16
- # sufficiente. La gestione degli errori è però un po' carente.
17
- # Riconfigureremo il kernel nel modulo boot_reconfigure per garantire che gli hook
18
- # vengano eseguiti secondo necessità.
19
-
20
- # ubuntu
21
- # cp --preserve=timestamps /lib/live/mount/medium/live/vmlinuz-`uname -r` ${ROOT}/boot/vmlinuz-`uname -r`
22
-
23
- # debian
24
- - cp --preserve=timestamps /run/live/medium/live/vmlinuz-`uname -r` ${ROOT}/boot/vmlinuz-`uname -r`
9
+ - cp --preserve=timestamps __LIVE_MEDIUM_PATH__live/vmlinuz-`uname -r` ${ROOT}/boot/vmlinuz-`uname -r`
@@ -18,7 +18,7 @@ else
18
18
  echo "WARNING: Cannot find calamares/session.log"
19
19
  fi
20
20
 
21
- cp /lib/live/mount/medium/.disk/info $install_dir/media-info
21
+ cp __LIVE_MEDIUM_PATH__.disk/info $install_dir/media-info
22
22
  #cp /var/log/casper.log $install_dir/casper.log
23
23
  cp /var/log/syslog $install_dir/syslog
24
24
 
@@ -1,19 +1,9 @@
1
1
  # SPDX-FileCopyrightText: 2020 Harald Sitter <sitter@kde.org>
2
2
  # SPDX-License-Identifier: GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
3
3
  #
4
- # This is run outside the chroot!
5
- # As per at least 20.04+ /boot on the squashfs no longer contains the initrd
6
- # or vmlinuz, instead we'll first fish the kernel out of the ISO.
7
- #
8
- # NB: initrd is handled by the initramfs module.
9
4
  ---
10
5
  message: "Preparing the boot environment..."
11
6
  dontChroot: true
12
7
  timeout: 300
13
8
  script:
14
- # This is a teeny tiny bit hacky but sufficient for 20.04+ as we don't have
15
- # to consider signed vs. unsinged anymore, so the below is practically
16
- # sufficient. Error handling is a bit on the weak side though.
17
- - cp --preserve=timestamps /lib/live/mount/medium/live/vmlinuz-`uname -r` ${ROOT}/boot/vmlinuz-`uname -r`
18
- # We'll reconfigure the kernel in the boot_reconfigure module to ensure hooks
19
- # are run as needed.
9
+ - cp --preserve=timestamps __LIVE_MEDIUM_PATH__live/vmlinuz-`uname -r` ${ROOT}/boot/vmlinuz-`uname -r`
@@ -5,4 +5,4 @@ message: "Logs.."
5
5
  dontChroot: true
6
6
  timeout: 30
7
7
  script:
8
- - "/usr/libexec/calamares//calamares-logs-helper.sh ${ROOT}"
8
+ - "/usr/libexec/calamares/calamares-logs-helper.sh ${ROOT}"
File without changes
File without changes
@@ -11,13 +11,5 @@ message: "Preparing the boot environment..."
11
11
  dontChroot: true
12
12
  timeout: 300
13
13
  script:
14
- # Si tratta di una soluzione un po' improvvisata, ma sufficiente per la versione 20.04+, poiché non è più necessario
15
- # considerare la differenza tra firmato e non firmato, quindi quanto riportato di seguito è praticamente
16
- # sufficiente. La gestione degli errori è però un po' carente.
17
- # Riconfigureremo il kernel nel modulo boot_reconfigure per garantire che gli hook
18
- # vengano eseguiti secondo necessità.
19
-
20
- # INITRAMFS = '/run/live/medium/'
21
- # DRACUT = '/run/initramfs/live/'
22
- - cp --preserve=timestamps /run/live/medium/live/vmlinuz-`uname -r` ${ROOT}/boot/vmlinuz-`uname -r`
23
- #- cp --preserve=timestamps /run/initramfs/live/live/vmlinuz-`uname -r` ${ROOT}/boot/vmlinuz-`uname -r`
14
+ - cp --preserve=timestamps __LIVE_MEDIUM_PATH__live/vmlinuz-`uname -r` ${ROOT}/boot/vmlinuz-`uname -r`
15
+
File without changes
@@ -0,0 +1,37 @@
1
+ /**
2
+ * ./src/classes/bleach.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ * Bleach:
10
+ */
11
+ export default class Bleach {
12
+ /**
13
+ * clean
14
+ * @param verbose
15
+ */
16
+ clean(verbose?: boolean): Promise<void>;
17
+ /**
18
+ *
19
+ * @param verbose
20
+ */
21
+ private cleanFastpack;
22
+ /**
23
+ * cleanHistory
24
+ * @param verbose
25
+ */
26
+ private cleanHistory;
27
+ /**
28
+ * cleanJournal
29
+ * @param verbose
30
+ */
31
+ private cleanJournal;
32
+ /**
33
+ * cleanSystemCache
34
+ * @param verbose
35
+ */
36
+ private cleanSystemCache;
37
+ }
@@ -0,0 +1,148 @@
1
+ /**
2
+ * ./src/classes/bleach.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import fs from 'node:fs';
9
+ // libraries
10
+ import { exec } from '../lib/utils.js';
11
+ import Distro from './distro.js';
12
+ import Utils from './utils.js';
13
+ /**
14
+ * Bleach:
15
+ */
16
+ export default class Bleach {
17
+ /**
18
+ * clean
19
+ * @param verbose
20
+ */
21
+ async clean(verbose = false) {
22
+ let echo = { capture: false, echo: false, ignore: true };
23
+ if (verbose) {
24
+ echo = { capture: false, echo: true, ignore: true };
25
+ Utils.warning('cleaning the system');
26
+ }
27
+ const distro = new Distro();
28
+ if (distro.familyId === 'alpine') {
29
+ await exec('apk cache clean', echo);
30
+ await exec('apk cache purge', echo);
31
+ }
32
+ else if (distro.familyId === 'archlinux') {
33
+ await exec('yes | sudo pacman -Scc', Utils.setEcho(true));
34
+ }
35
+ else if (distro.familyId === 'debian') {
36
+ await exec('apt-get clean', echo);
37
+ await exec('apt-get autoclean', echo);
38
+ await exec(`rm /var/lib/apt/lists/lock -rf`, echo);
39
+ }
40
+ else if (distro.familyId === 'fedora' || distro.familyId === 'openmamba') {
41
+ await exec(`dnf remove $(dnf repoquery --installonly --latest-limit=-1 -q)`);
42
+ await exec(`dnf clean all`, echo);
43
+ }
44
+ else if (distro.familyId === 'opensuse') {
45
+ await exec(`zypper clean`, echo);
46
+ }
47
+ else if (distro.familyId === 'voidlinux') {
48
+ await exec(`xbps-remove -O`, echo);
49
+ }
50
+ await this.cleanFastpack(verbose);
51
+ await this.cleanHistory(verbose);
52
+ await this.cleanJournal(verbose);
53
+ await this.cleanSystemCache(verbose);
54
+ }
55
+ /**
56
+ *
57
+ * @param verbose
58
+ */
59
+ async cleanFastpack(verbose = false) {
60
+ let echo = { capture: false, echo: false, ignore: true };
61
+ if (verbose) {
62
+ echo = { capture: false, echo: true, ignore: true };
63
+ Utils.warning('cleaning fastpack');
64
+ }
65
+ await exec(`rm /var/tmp/flatpak-cache-* -rf`, echo);
66
+ }
67
+ /**
68
+ * cleanHistory
69
+ * @param verbose
70
+ */
71
+ async cleanHistory(verbose = false) {
72
+ if (verbose) {
73
+ Utils.warning('cleaning bash history');
74
+ }
75
+ const dest = '/root/.bash_history';
76
+ if (fs.existsSync(dest)) {
77
+ await rm(dest, verbose);
78
+ }
79
+ }
80
+ /**
81
+ * cleanJournal
82
+ * @param verbose
83
+ */
84
+ async cleanJournal(verbose = false) {
85
+ let echo = { capture: false, echo: false, ignore: true };
86
+ if (verbose) {
87
+ echo = { capture: false, echo: true, ignore: true };
88
+ Utils.warning('cleaning journald');
89
+ }
90
+ if (Utils.isSystemd()) {
91
+ try {
92
+ await exec('journalctl --rotate', echo);
93
+ await exec('journalctl --vacuum-time=1s', echo);
94
+ }
95
+ catch (error) {
96
+ Utils.error(error);
97
+ }
98
+ }
99
+ else {
100
+ // Truncate logs, remove archived logs.
101
+ await exec('find /var/log -name "*gz" -print0 | xargs -0r rm -f', echo);
102
+ await exec('find /var/log/ -type f -exec truncate -s 0 {} \\;', echo);
103
+ }
104
+ }
105
+ /**
106
+ * cleanSystemCache
107
+ * @param verbose
108
+ */
109
+ async cleanSystemCache(verbose = false) {
110
+ let echo = { capture: false, echo: false, ignore: true };
111
+ if (verbose) {
112
+ echo = { capture: false, echo: true, ignore: true };
113
+ Utils.warning('cleaning system cache');
114
+ }
115
+ // Clear PageCache only.
116
+ await exec('sync; echo 1 > /proc/sys/vm/drop_caches', echo);
117
+ // Clear dentries and inodes.
118
+ await exec('sync; echo 2 > /proc/sys/vm/drop_caches', echo);
119
+ // Clear PageCache, dentries and inodes.
120
+ await exec('sync; echo 3 > /proc/sys/vm/drop_caches', echo);
121
+ }
122
+ }
123
+ /**
124
+ *
125
+ * @param dest
126
+ */
127
+ async function rm(dest = '', verbose = false) {
128
+ let echo = { capture: false, echo: false, ignore: true };
129
+ if (verbose) {
130
+ echo = { capture: false, echo: true, ignore: true };
131
+ }
132
+ if (fs.existsSync(dest)) {
133
+ await exec(`rm ${dest} -rf`, echo);
134
+ }
135
+ else {
136
+ console.log(`non esiste ${dest}`);
137
+ }
138
+ }
139
+ async function rmdir(dest = '', verbose = false) {
140
+ let echo = { capture: false, echo: false, ignore: true };
141
+ if (verbose) {
142
+ echo = { capture: false, echo: true, ignore: true };
143
+ }
144
+ const result = fs.readdirSync(dest);
145
+ if (result.length > 0) {
146
+ await exec(`rm ${dest} -rf`, echo);
147
+ }
148
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ./src/lib/cli-autologin.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * modified by: Hossein Seilani
6
+ * license: MIT
7
+ */
8
+ export default class CliAutologin {
9
+ add(distro: string, version: string, user: string, userPasswd: string, rootPasswd: string, chroot?: string): Promise<void>;
10
+ addIssue(distro: string, version: string, user: string, userPasswd: string, rootPasswd: string, chroot?: string): Promise<void>;
11
+ addMotd(distro: string, version: string, user: string, userPasswd: string, rootPasswd: string, chroot?: string): Promise<void>;
12
+ remove(chroot?: string): Promise<void>;
13
+ private msgRemove;
14
+ }
@@ -0,0 +1,227 @@
1
+ /**
2
+ * ./src/lib/cli-autologin.ts
3
+ * penguins-eggs v.25.7.x / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * modified by: Hossein Seilani
6
+ * license: MIT
7
+ */
8
+ import chalk from 'chalk';
9
+ import { execSync } from 'node:child_process';
10
+ // 🔧 [Change 1] - Removed unused `{ link }` import to clean up unnecessary dependencies.
11
+ import fs from 'node:fs';
12
+ import path from 'node:path';
13
+ // libraries
14
+ import { exec } from '../lib/utils.js';
15
+ import Pacman from './pacman.js';
16
+ import Utils from './utils.js';
17
+ const startMessage = 'eggs-start-message';
18
+ const stopMessage = 'eggs-stop-message';
19
+ export default class CliAutologin {
20
+ async add(distro, version, user, userPasswd, rootPasswd, chroot = '/') {
21
+ // 🔧 [Change 2] - Added parameter validation to prevent running with missing credentials.
22
+ // This prevents undefined users or empty passwords from breaking the autologin setup.
23
+ if (!user || !userPasswd || !rootPasswd) {
24
+ throw new Error('Missing user credentials for CLI autologin setup.');
25
+ }
26
+ if (Utils.isSystemd()) {
27
+ Utils.warning("systemd: creating CLI autologin");
28
+ const fileOverride = `${chroot}/etc/systemd/system/getty@.service.d/override.conf`;
29
+ const dirOverride = path.dirname(fileOverride);
30
+ // 🔧 [Change 3] - Replaced raw `rm -rf` shell command with the safer Node.js `fs.rmSync()`.
31
+ // This avoids potential shell injection or accidental file deletion outside the target directory.
32
+ if (fs.existsSync(dirOverride)) {
33
+ try {
34
+ fs.rmSync(dirOverride, { recursive: true, force: true });
35
+ }
36
+ catch (err) {
37
+ Utils.error(`Failed to remove ${dirOverride}: ${err}`);
38
+ }
39
+ }
40
+ // Exclude OpenSUSE since it uses a different login mechanism.
41
+ if (distro !== 'Opensuse') {
42
+ // 🔧 [Change 4] - Used `fs.mkdirSync()` instead of shell command for better cross-platform reliability.
43
+ fs.mkdirSync(dirOverride, { recursive: true });
44
+ let content = '';
45
+ content += '[Service]\n';
46
+ content += 'ExecStart=\n';
47
+ content += `ExecStart=-/sbin/agetty --noclear --autologin ${user} %I $TERM\n`;
48
+ // 🔧 [Change 5] - Wrapped file operations in try/catch for safe I/O handling.
49
+ // Prevents crash if permission denied or disk error occurs.
50
+ try {
51
+ fs.writeFileSync(fileOverride, content);
52
+ fs.chmodSync(fileOverride, 0o755);
53
+ }
54
+ catch (err) {
55
+ Utils.error(`Failed to write ${fileOverride}: ${err}`);
56
+ }
57
+ }
58
+ await this.addIssue(distro, version, user, userPasswd, rootPasswd, chroot);
59
+ await this.addMotd(distro, version, user, userPasswd, rootPasswd, chroot);
60
+ }
61
+ else if (Utils.isOpenRc()) {
62
+ Utils.warning("openrc: creating CLI autologin");
63
+ const inittab = chroot + '/etc/inittab';
64
+ // 🔧 [Change 6] - Automatically creates a backup of `/etc/inittab` before making modifications.
65
+ // This allows easy rollback in case autologin configuration fails.
66
+ if (fs.existsSync(inittab)) {
67
+ fs.copyFileSync(inittab, `${inittab}.bak`);
68
+ }
69
+ let content = '';
70
+ const search = `tty1::respawn:/sbin/getty 38400 tty1`;
71
+ const replace = `tty1::respawn:/sbin/getty -L 38400 tty1 -n -l /bin/autologin`;
72
+ const lines = fs.readFileSync(inittab, 'utf8').split('\n');
73
+ for (let i = 0; i < lines.length; i++) {
74
+ if (lines[i].includes(search))
75
+ lines[i] = replace;
76
+ content += lines[i] + '\n';
77
+ }
78
+ console.log(`Writing ${inittab}`);
79
+ fs.writeFileSync(inittab, content, 'utf-8');
80
+ const autologin = chroot + '/bin/autologin';
81
+ content = '#!/bin/sh\n';
82
+ content += `/bin/login -f ${user}\n`;
83
+ fs.writeFileSync(autologin, content, 'utf-8');
84
+ execSync(`chmod +x ${autologin}`);
85
+ await this.addIssue(distro, version, user, userPasswd, rootPasswd, chroot);
86
+ await this.addMotd(distro, version, user, userPasswd, rootPasswd, chroot);
87
+ }
88
+ else if (Utils.isSysvinit()) {
89
+ Utils.warning("sysvinit: creating CLI autologin");
90
+ const inittab = chroot + '/etc/inittab';
91
+ // 🔧 [Change 7] - Added backup for SysVInit `inittab` as well.
92
+ // Provides consistency and safety across all init systems.
93
+ if (fs.existsSync(inittab)) {
94
+ fs.copyFileSync(inittab, `${inittab}.bak`);
95
+ }
96
+ const search = '1:2345:respawn:/sbin/getty';
97
+ const replace = `1:2345:respawn:/sbin/getty --autologin ${user} 38400 tty1`;
98
+ let content = '';
99
+ const lines = fs.readFileSync(inittab, 'utf8').split('\n');
100
+ for (let i = 0; i < lines.length; i++) {
101
+ if (lines[i].includes(search))
102
+ lines[i] = replace;
103
+ content += lines[i] + '\n';
104
+ }
105
+ fs.writeFileSync(inittab, content, 'utf-8');
106
+ await this.addMotd(distro, version, user, userPasswd, rootPasswd, chroot);
107
+ await this.addIssue(distro, version, user, userPasswd, rootPasswd, chroot);
108
+ }
109
+ }
110
+ async addIssue(distro, version, user, userPasswd, rootPasswd, chroot = '/') {
111
+ const fileIssue = `${chroot}/etc/issue`;
112
+ if (fs.existsSync(fileIssue)) {
113
+ if (!fs.lstatSync(fileIssue).isSymbolicLink()) {
114
+ this.msgRemove(fileIssue);
115
+ let content = fs.readFileSync(fileIssue, 'utf8');
116
+ content += startMessage + '\n';
117
+ content += `This is a ${distro}/${version} system created by Penguins' eggs.\n`;
118
+ content += `You can login with user: ${chalk.bold(user)} and password: ${chalk.bold(userPasswd)}, root password: ${chalk.bold(rootPasswd)}\n`;
119
+ content += stopMessage + '\n';
120
+ // 🔧 [Change 8] - File writing is now protected by try/catch for reliability.
121
+ // Prevents the script from crashing if write permission is missing.
122
+ try {
123
+ fs.writeFileSync(fileIssue, content);
124
+ }
125
+ catch (err) {
126
+ Utils.error(`Failed to write ${fileIssue}: ${err}`);
127
+ }
128
+ }
129
+ }
130
+ }
131
+ async addMotd(distro, version, user, userPasswd, rootPasswd, chroot = '/') {
132
+ const fileMotd = `${chroot}/etc/motd`;
133
+ let installer = 'sudo eggs install';
134
+ if (Pacman.calamaresExists()) {
135
+ if (Pacman.packageIsInstalled('plasma-desktop')) {
136
+ installer = 'startplasma-wayland to run GUI and launch calamares';
137
+ }
138
+ else if (Pacman.packageIsInstalled('xfce4')) {
139
+ installer = 'startxfce4 to run GUI and launch calamares installer';
140
+ }
141
+ }
142
+ if (!fs.existsSync(fileMotd)) {
143
+ await exec(`touch ${fileMotd}`);
144
+ }
145
+ this.msgRemove(fileMotd);
146
+ let eggsMotd = fs.readFileSync(fileMotd, 'utf8');
147
+ eggsMotd += startMessage + '\n';
148
+ eggsMotd += Utils.flag() + '\n';
149
+ eggsMotd += `You are logged as: ${chalk.bold(user)} your password is: ${chalk.bold(userPasswd)}, root password: ${chalk.bold(rootPasswd)}\n\n`;
150
+ eggsMotd += `install : ${chalk.bold(installer)}\n`;
151
+ eggsMotd += ` --unattended : ${chalk.bold('sudo eggs install --unattended')}\n`;
152
+ eggsMotd += ` --chroot : ${chalk.bold('sudo eggs install --chroot')}\n`;
153
+ eggsMotd += ` --help : ${chalk.bold('sudo eggs install --help')}\n\n`;
154
+ eggsMotd += stopMessage + '\n';
155
+ // 🔧 [Change 9] - Same as above: safe write with error handling to improve reliability.
156
+ try {
157
+ fs.writeFileSync(fileMotd, eggsMotd);
158
+ }
159
+ catch (err) {
160
+ Utils.error(`Failed to write ${fileMotd}: ${err}`);
161
+ }
162
+ }
163
+ async remove(chroot = '/') {
164
+ if (Utils.isSystemd()) {
165
+ const fileOverride = `${chroot}/etc/systemd/system/getty@.service.d/override.conf`;
166
+ const dirOverride = path.dirname(fileOverride);
167
+ // 🔧 [Change 10] - Replaced shell-based deletion with `fs.rmSync()` for safety and consistency.
168
+ if (fs.existsSync(dirOverride)) {
169
+ try {
170
+ fs.rmSync(dirOverride, { recursive: true, force: true });
171
+ }
172
+ catch (err) {
173
+ Utils.error(`Failed to remove ${dirOverride}: ${err}`);
174
+ }
175
+ }
176
+ this.msgRemove(`${chroot}/etc/motd`);
177
+ this.msgRemove(`${chroot}/etc/issue`);
178
+ }
179
+ else if (Utils.isOpenRc()) {
180
+ const inittab = chroot + '/etc/inittab';
181
+ const search = 'autologin';
182
+ const replace = `tty1::respawn:/sbin/getty 38400 tty1`;
183
+ let content = '';
184
+ const lines = fs.readFileSync(inittab, 'utf8').split('\n');
185
+ for (let i = 0; i < lines.length; i++) {
186
+ if (lines[i].includes(search))
187
+ lines[i] = replace;
188
+ content += lines[i] + '\n';
189
+ }
190
+ fs.writeFileSync(inittab, content, 'utf-8');
191
+ this.msgRemove(`${chroot}/etc/motd`);
192
+ this.msgRemove(`${chroot}/etc/issue`);
193
+ const autologin = `${chroot}/bin/autologin`;
194
+ // 🔧 [Change 11] - Added safety check before deleting `/bin/autologin`.
195
+ // Prevents accidental removal of unrelated files outside chroot.
196
+ if (autologin.startsWith(chroot)) {
197
+ execSync(`rm -f ${autologin}`);
198
+ }
199
+ }
200
+ else if (Utils.isSysvinit()) {
201
+ const inittab = chroot + '/etc/inittab';
202
+ const search = '--autologin';
203
+ const replace = '1:2345:respawn:/sbin/getty 38400 tty1 ';
204
+ let content = '';
205
+ const lines = fs.readFileSync(inittab, 'utf8').split('\n');
206
+ for (let i = 0; i < lines.length; i++) {
207
+ if (lines[i].includes(search))
208
+ lines[i] = replace;
209
+ content += lines[i] + '\n';
210
+ }
211
+ fs.writeFileSync(inittab, content, 'utf-8');
212
+ this.msgRemove(`${chroot}/etc/motd`);
213
+ this.msgRemove(`${chroot}/etc/issue`);
214
+ }
215
+ }
216
+ async msgRemove(path) {
217
+ if (fs.existsSync(path)) {
218
+ if (!fs.lstatSync(path).isSymbolicLink()) {
219
+ // 🔧 [Change 12] - Rewrote cleanup logic using a regular expression to remove the block
220
+ // between `eggs-start-message` and `eggs-stop-message`. More efficient and cleaner.
221
+ let content = fs.readFileSync(path, 'utf8');
222
+ content = content.replace(/eggs-start-message[\s\S]*?eggs-stop-message/g, '');
223
+ fs.writeFileSync(path, content, 'utf-8');
224
+ }
225
+ }
226
+ }
227
+ }