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,413 @@
1
+ /**
2
+ * ./src/commands/tools/repo.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
+ * Debian 13 trixe, Ubuntu 24.04 noble usano il formato deb822
10
+ * * esiste un comando per modernizzare le sorgenti:
11
+ * sudo apt modernize-sources
12
+ */
13
+ import { Command, Flags } from '@oclif/core';
14
+ import fs from 'node:fs';
15
+ import path from 'node:path';
16
+ import Distro from '../../classes/distro.js';
17
+ import Utils from '../../classes/utils.js';
18
+ import { exec } from '../../lib/utils.js';
19
+ import Diversions from '../../classes/diversions.js';
20
+ const repoUrl = `https://penguins-eggs.net/repos`; // no slash at end
21
+ const repoKeyUrl = repoUrl + '/KEY.asc';
22
+ let repoPath = '/etc/apt/sources.list.d/penguins-repos'; // Base path without extension
23
+ const repoKeyPath = '/usr/share/keyrings/penguins-repos.gpg';
24
+ // RPM (Fedora/EL)
25
+ const rpmKeyUrl = repoUrl + '/rpm/RPM-GPG-KEY-penguins-eggs';
26
+ const rpmKeyOwner = 'piero.proietti@gmail.com'; // Per cercare e rimuovere la chiave
27
+ const rpmRepoFilePath = '/etc/yum.repos.d/penguins-eggs.repo'; // Percorso di destinazione
28
+ const rpmRepoFedoraUrl = repoUrl + '/rpm/fedora/penguins-eggs.repo';
29
+ const rpmRepoEl9Url = repoUrl + '/rpm/el9/penguins-eggs.repo';
30
+ // openSUSE
31
+ const opensuseRepoUrl = repoUrl + '/rpm/opensuse/penguins-eggs.repo';
32
+ const opensuseRepoName = 'penguins-eggs'; // Dal file .repo
33
+ // Alpine
34
+ const alpineRepoUrl = repoUrl + '/alpine/';
35
+ const alpineKeyName = 'piero.proietti@gmail.com-662b958c';
36
+ const alpineKeyUrl = repoUrl + `/alpine/${alpineKeyName}.rsa.pub`;
37
+ const alpineKeyPath = `/etc/apk/keys/${alpineKeyName}.rsa.pub`;
38
+ const alpineRepoFile = '/etc/apk/repositories';
39
+ /**
40
+ *
41
+ */
42
+ export default class Repo extends Command {
43
+ static description = 'add/remove penguins-repos';
44
+ static examples = ['sudo eggs tools repo --add', 'sudo eggs tools repo --remove'];
45
+ static flags = {
46
+ add: Flags.boolean({ char: 'a', description: 'add penguins-repos' }),
47
+ help: Flags.help({ char: 'h' }),
48
+ nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
49
+ remove: Flags.boolean({ char: 'r', description: 'remove penguins-repos' }),
50
+ verbose: Flags.boolean({ char: 'v', description: 'verbose' })
51
+ };
52
+ /**
53
+ *
54
+ */
55
+ async run() {
56
+ const { flags } = await this.parse(Repo);
57
+ Utils.titles(this.id + ' ' + this.argv);
58
+ const { nointeractive } = flags;
59
+ if (Utils.isRoot()) {
60
+ const distro = new Distro();
61
+ if (distro.familyId === 'alpine') {
62
+ /**
63
+ * Alpine
64
+ */
65
+ if (flags.add) {
66
+ Utils.warning(`Sei sicuro di voler aggiungere penguins-repos ai tuoi repository?`);
67
+ if (nointeractive || (await Utils.customConfirm('Seleziona sì per continuare...'))) {
68
+ await alpineRepoAdd();
69
+ }
70
+ }
71
+ else if (flags.remove) {
72
+ Utils.warning(`Sei sicuro di voler rimuovere penguins-repos dai tuoi repository?`);
73
+ if (nointeractive || (await Utils.customConfirm('Seleziona sì per continuare...'))) {
74
+ await alpineRepoRemove();
75
+ }
76
+ }
77
+ await exec('apk update');
78
+ }
79
+ else if (distro.familyId === 'archlinux') {
80
+ if (flags.add) {
81
+ Utils.warning(`Are you sure to add penguins-repos to your repositories?`);
82
+ if (await Utils.customConfirm('Select yes to continue...')) {
83
+ await archlinuxRepoAdd(distro.distroId);
84
+ }
85
+ }
86
+ else if (flags.remove) {
87
+ Utils.warning(`Are you sure to remove penguins-repos to your repositories?`);
88
+ if (await Utils.customConfirm('Select yes to continue...')) {
89
+ await archlinuxRepoRemove(distro.distroId);
90
+ }
91
+ }
92
+ }
93
+ else if (distro.familyId === 'debian') {
94
+ /**
95
+ * Debian
96
+ */
97
+ if (flags.add) {
98
+ Utils.warning(`Are you sure to add source ${path.basename(repoPath)} to your repositories?`);
99
+ if (nointeractive || (await Utils.customConfirm('Select yes to continue...'))) {
100
+ await debianRemove();
101
+ if (await is822()) {
102
+ await debianAdd822();
103
+ }
104
+ else {
105
+ await debianAdd();
106
+ }
107
+ }
108
+ }
109
+ else if (flags.remove) {
110
+ Utils.warning(`Are you sure to remove source ${path.basename(repoPath)} to your repositories?`);
111
+ if (nointeractive || (await Utils.customConfirm('Select yes to continue...'))) {
112
+ await debianRemove();
113
+ }
114
+ await exec('apt-get update');
115
+ }
116
+ }
117
+ else if (distro.familyId === 'fedora') {
118
+ /**
119
+ * RPM (Fedora/EL)
120
+ */
121
+ let repoUrl = rpmRepoFedoraUrl;
122
+ if (distro.distroId !== 'Fedora') {
123
+ repoUrl = rpmRepoEl9Url; // Supponiamo che non-Fedora in questa famiglia sia EL
124
+ Utils.warning(`Rilevato ${distro.distroId}. Utilizzo del repository EL9.`);
125
+ }
126
+ if (flags.add) {
127
+ Utils.warning(`Sei sicuro di voler aggiungere penguins-repos ai tuoi repository?`);
128
+ if (nointeractive || (await Utils.customConfirm('Seleziona sì per continuare...'))) {
129
+ await rpmRepoAdd(repoUrl, rpmKeyUrl);
130
+ }
131
+ }
132
+ else if (flags.remove) {
133
+ Utils.warning(`Sei sicuro di voler rimuovere penguins-repos dai tuoi repository?`);
134
+ if (nointeractive || (await Utils.customConfirm('Seleziona sì per continuare...'))) {
135
+ await rpmRepoRemove(rpmRepoFilePath, rpmKeyOwner);
136
+ }
137
+ }
138
+ await exec('dnf check-update');
139
+ }
140
+ else if (distro.familyId === 'opensuse') {
141
+ /**
142
+ * openSUSE
143
+ */
144
+ if (flags.add) {
145
+ Utils.warning(`Sei sicuro di voler aggiungere penguins-repos ai tuoi repository?`);
146
+ if (nointeractive || (await Utils.customConfirm('Seleziona sì per continuare...'))) {
147
+ await opensuseRepoAdd(opensuseRepoUrl);
148
+ }
149
+ }
150
+ else if (flags.remove) {
151
+ Utils.warning(`Sei sicuro di voler rimuovere penguins-repos dai tuoi repository?`);
152
+ if (nointeractive || (await Utils.customConfirm('Seleziona sì per continuare...'))) {
153
+ await opensuseRepoRemove(opensuseRepoName);
154
+ }
155
+ }
156
+ }
157
+ else {
158
+ /**
159
+ * All the others
160
+ */
161
+ Utils.warning(`Distro: ${distro.distroId}/${distro.codenameId}, cannot use penguins-repo nor chaotic-aur!`);
162
+ }
163
+ }
164
+ }
165
+ }
166
+ /**
167
+ * ARCH
168
+ */
169
+ // archlinuxRepoAdd
170
+ async function archlinuxRepoAdd(distroId = "Arch") {
171
+ console.log(`Adding penguins-repos for ${distroId}`);
172
+ const repoBlockIdentifier = '# penguins-repos';
173
+ const repoName = '[penguins-eggs]';
174
+ const keyId = 'F6773EA7D2F309BA3E5DE08A45B10F271525403F';
175
+ let serverUrl = repoUrl + '/arch';
176
+ if (Diversions.isManjaroBased(distroId)) {
177
+ serverUrl = repoUrl + '/manjaro';
178
+ }
179
+ const pacmanConfPath = '/etc/pacman.conf';
180
+ const echo = Utils.setEcho(true);
181
+ const pacmanConfContent = fs.readFileSync(pacmanConfPath, 'utf8');
182
+ if (pacmanConfContent.includes(repoName)) {
183
+ console.log(`The repository ${repoName} already exists in ${pacmanConfPath}!`);
184
+ return;
185
+ }
186
+ console.log(`Importazione della chiave GPG: ${keyId}...`);
187
+ await exec(`pacman-key --recv-key ${keyId} --keyserver keyserver.ubuntu.com`, echo);
188
+ await exec(`pacman-key --lsign-key ${keyId}`, echo);
189
+ let repoBlock = ``;
190
+ repoBlock += repoBlockIdentifier + `\n`;
191
+ repoBlock += `${repoName}\n`;
192
+ repoBlock += `SigLevel = Optional TrustAll\n`;
193
+ repoBlock += `Server = ${serverUrl}\n`;
194
+ fs.appendFileSync(pacmanConfPath, repoBlock);
195
+ let message = 'Run “sudo pacman -Syyu” to update pacman databases.';
196
+ if (Diversions.isManjaroBased(distroId)) {
197
+ message = 'Run “sudo pamac update --force-refresh" to update pacman databases.';
198
+ }
199
+ console.log('Repository successfully removed!');
200
+ console.log(message);
201
+ }
202
+ // archlinuxRepoRemove
203
+ async function archlinuxRepoRemove(distroId = 'Arch') {
204
+ console.log(`Removing penguins-repos for ${distroId}`);
205
+ const repoBlockIdentifier = '# penguins-repos';
206
+ const repoName = '[penguins-eggs]';
207
+ let serverUrl = repoUrl + '/arch';
208
+ if (Diversions.isManjaroBased(distroId)) {
209
+ serverUrl = repoUrl + '/manjaro';
210
+ }
211
+ const pacmanConfPath = '/etc/pacman.conf';
212
+ let pacmanConfContent = fs.readFileSync(pacmanConfPath, 'utf8');
213
+ if (pacmanConfContent.includes(repoName)) {
214
+ console.log(`Removing repository ${repoName} in progress...`);
215
+ let repoBlock = ``;
216
+ repoBlock += repoBlockIdentifier + `\n`;
217
+ repoBlock += `${repoName}\n`;
218
+ repoBlock += `SigLevel = Optional TrustAll\n`;
219
+ repoBlock += `Server = ${serverUrl}\n`;
220
+ pacmanConfContent = pacmanConfContent.replace(repoBlock, '');
221
+ fs.writeFileSync(pacmanConfPath, pacmanConfContent.trim());
222
+ let message = 'Run “sudo pacman -Syyu” to update pacman databases.';
223
+ if (Diversions.isManjaroBased(distroId)) {
224
+ message = 'Run “sudo pamac update --force-refresh" to update pacman databases.';
225
+ }
226
+ console.log('Repository successfully removed!');
227
+ console.log(message);
228
+ }
229
+ else {
230
+ console.log('The repository was not present in /etc/pacman.conf.');
231
+ }
232
+ }
233
+ // archlinuxAurAdd
234
+ async function archlinuxAurAdd() {
235
+ const path = '/var/cache/pacman/pkg/';
236
+ const keyring = 'chaotic-keyring.pkg.tar.zst';
237
+ const mirrorlist = 'chaotic-mirrorlist.pkg.tar.zst';
238
+ const echo = Utils.setEcho(true);
239
+ if (fs.existsSync(path + keyring) && fs.existsSync(path + mirrorlist)) {
240
+ console.log('repository Chaotic-AUR, already present!');
241
+ await archlinuxAurRemove();
242
+ process.exit();
243
+ }
244
+ await exec('pacman-key --recv-key FBA220DFC880C036 --keyserver keyserver.ubuntu.com', echo);
245
+ await exec('pacman-key --lsign-key FBA220DFC880C036', echo);
246
+ await exec("pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'", echo);
247
+ // Append to /etc/pacman.conf
248
+ const chaoticAppend = '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist\n\n';
249
+ fs.appendFileSync('/etc/pacman.conf', chaoticAppend);
250
+ }
251
+ // archlinuxAurRemove
252
+ async function archlinuxAurRemove() {
253
+ const path = '/var/cache/pacman/pkg/';
254
+ const keyring = 'chaotic-keyring.pkg.tar.zst';
255
+ const mirrorlist = 'chaotic-mirrorlist.pkg.tar.zst';
256
+ if (fs.existsSync(path + keyring) && fs.existsSync(path + mirrorlist)) {
257
+ console.log('to remove chaotic-aur:\n');
258
+ console.log(`sudo rm ${path}${keyring}`);
259
+ console.log(`sudo rm ${path}${mirrorlist}`);
260
+ console.log(`sudo nano /etc/pacman.conf`);
261
+ console.log(`remove at the end:`);
262
+ console.log(`[chaotic-aur]`);
263
+ console.log(`Include = /etc/pacman.d/chaotic-mirrorlist`);
264
+ }
265
+ }
266
+ /**
267
+ * DEBIAN
268
+ */
269
+ // debianAdd
270
+ async function debianAdd() {
271
+ await exec(`curl -fsSL ${repoKeyUrl} | gpg --dearmor -o ${repoKeyPath}`);
272
+ const content = `deb [signed-by=${repoKeyPath}] ${repoUrl}/deb stable main\n`;
273
+ fs.writeFileSync(`${repoPath}.list`, content);
274
+ }
275
+ // debianRemove
276
+ async function debianRemove() {
277
+ await exec(`rm -f ${repoKeyPath}`);
278
+ await exec(`rm -f ${repoPath}*`);
279
+ }
280
+ // is822
281
+ async function is822() {
282
+ let retval = false;
283
+ const test = `([ -f /etc/apt/sources.list.d/ubuntu.sources ] || [ -f /etc/apt/sources.list.d/debian.sources ]) && echo "1" || echo "0"`;
284
+ const is822Result = (await exec(test, { capture: true, echo: false }));
285
+ if (is822Result.code === 0) {
286
+ if (is822Result.data.trim() === '1') {
287
+ retval = true;
288
+ }
289
+ }
290
+ return retval;
291
+ }
292
+ // debianAdd822
293
+ async function debianAdd822() {
294
+ await exec(`curl -fsSL ${repoKeyUrl} | gpg --dearmor -o ${repoKeyPath}`);
295
+ let content = '';
296
+ content += `Types: deb\n`;
297
+ content += `URIs: ${repoUrl}/deb\n`; // Correct URI for packages
298
+ content += `Suites: stable\n`; // It's better to be specific
299
+ content += `Components: main\n`;
300
+ content += `Signed-By: ${repoKeyPath}\n`;
301
+ fs.writeFileSync(`${repoPath}.sources`, content);
302
+ }
303
+ // ... [funzioni DEBIAN esistenti] ...
304
+ /**
305
+ * ALPINE
306
+ */
307
+ async function alpineRepoAdd() {
308
+ console.log('Aggiunta repository Alpine...');
309
+ const echo = Utils.setEcho(true);
310
+ if (fs.existsSync(alpineKeyPath)) {
311
+ console.log('Chiave già esistente.');
312
+ }
313
+ else {
314
+ await exec(`curl -fsSL ${alpineKeyUrl} -o ${alpineKeyPath}`, echo);
315
+ }
316
+ const repoFileContent = fs.readFileSync(alpineRepoFile, 'utf8');
317
+ if (repoFileContent.includes(alpineRepoUrl)) {
318
+ console.log('La linea del repository è già presente in /etc/apk/repositories.');
319
+ }
320
+ else {
321
+ fs.appendFileSync(alpineRepoFile, `\n${alpineRepoUrl}\n`);
322
+ console.log('Repository aggiunto.');
323
+ }
324
+ console.log('Esegui "apk update" per aggiornare i repository.');
325
+ }
326
+ async function alpineRepoRemove() {
327
+ console.log('Rimozione repository Alpine...');
328
+ const echo = Utils.setEcho(true);
329
+ // Rimuovi chiave
330
+ if (fs.existsSync(alpineKeyPath)) {
331
+ await exec(`rm -f ${alpineKeyPath}`, echo);
332
+ console.log('Chiave del repository rimossa.');
333
+ }
334
+ else {
335
+ console.log('Chiave del repository non trovata.');
336
+ }
337
+ // Rimuovi da /etc/apk/repositories
338
+ if (fs.existsSync(alpineRepoFile)) {
339
+ let content = fs.readFileSync(alpineRepoFile, 'utf8');
340
+ if (content.includes(alpineRepoUrl)) {
341
+ const newLines = content.split('\n').filter(line => line.trim() !== alpineRepoUrl);
342
+ fs.writeFileSync(alpineRepoFile, newLines.join('\n'));
343
+ console.log('Linea del repository rimossa da /etc/apk/repositories.');
344
+ }
345
+ else {
346
+ console.log('Linea del repository non trovata in /etc/apk/repositories.');
347
+ }
348
+ }
349
+ console.log('Esegui "apk update" per aggiornare i repository.');
350
+ }
351
+ /**
352
+ * RPM (Fedora/EL)
353
+ */
354
+ async function rpmRepoAdd(repoUrl, keyUrl) {
355
+ console.log(`Aggiunta repository RPM da ${repoUrl}...`);
356
+ const echo = Utils.setEcho(true);
357
+ // Assicura che dnf-plugins-core sia installato
358
+ await exec('dnf install dnf-plugins-core -y', echo);
359
+ // Aggiungi repo
360
+ await exec(`dnf config-manager --add-repo ${repoUrl}`, echo);
361
+ // Importa chiave
362
+ await exec(`rpm --import ${keyUrl}`, echo);
363
+ console.log('Repository aggiunto. Esegui "dnf check-update" per aggiornare.');
364
+ }
365
+ async function rpmRepoRemove(repoFilePath, keyOwner) {
366
+ console.log('Rimozione repository RPM...');
367
+ const echo = Utils.setEcho(true);
368
+ // Rimuovi file .repo
369
+ if (fs.existsSync(repoFilePath)) {
370
+ await exec(`rm -f ${repoFilePath}`, echo);
371
+ console.log(`Rimosso ${repoFilePath}.`);
372
+ }
373
+ else {
374
+ console.log(`File repository ${repoFilePath} non trovato.`);
375
+ }
376
+ // Rimuovi chiave GPG
377
+ const findKeyCmd = `rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} %{summary}\n' | grep '${keyOwner}' | cut -d' ' -f1`;
378
+ const keyNameResult = await exec(findKeyCmd, { capture: true, echo: false });
379
+ if (keyNameResult.code === 0 && keyNameResult.data.trim() !== '') {
380
+ const keyNames = keyNameResult.data.trim().split('\n');
381
+ for (const keyName of keyNames) {
382
+ if (keyName) {
383
+ console.log(`Rimozione chiave GPG ${keyName}...`);
384
+ await exec(`rpm -e ${keyName}`, echo);
385
+ }
386
+ }
387
+ }
388
+ else {
389
+ console.log('Nessuna chiave GPG corrispondente da rimuovere.');
390
+ }
391
+ console.log('Repository rimosso. Esegui "dnf check-update" per aggiornare.');
392
+ }
393
+ /**
394
+ * openSUSE
395
+ */
396
+ async function opensuseRepoAdd(repoUrl) {
397
+ console.log(`Aggiunta repository openSUSE da ${repoUrl}...`);
398
+ const echo = Utils.setEcho(true);
399
+ // zypper ar <url>
400
+ await exec(`zypper addrepo ${repoUrl}`, echo);
401
+ // Refresh e importa chiave
402
+ await exec(`zypper --gpg-auto-import-keys refresh`, echo);
403
+ console.log('Repository aggiunto.');
404
+ }
405
+ async function opensuseRepoRemove(repoName) {
406
+ console.log(`Rimozione repository openSUSE: ${repoName}...`);
407
+ const echo = Utils.setEcho(true);
408
+ // zypper rr <name>
409
+ await exec(`zypper removerepo ${repoName}`, echo);
410
+ // Refresh
411
+ await exec(`zypper refresh`, echo);
412
+ console.log('Repository rimosso.');
413
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * ./src/commands/tools/skel.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 { Command } from '@oclif/core';
9
+ export default class Skel extends Command {
10
+ static description: string;
11
+ static examples: string[];
12
+ static flags: {
13
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
14
+ user: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ };
17
+ run(): Promise<void>;
18
+ }
@@ -0,0 +1,44 @@
1
+ /**
2
+ * ./src/commands/tools/skel.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 { Command, Flags } from '@oclif/core';
9
+ import fs from 'node:fs';
10
+ import Utils from '../../classes/utils.js';
11
+ import Xdg from '../../classes/xdg.js';
12
+ export default class Skel extends Command {
13
+ static description = 'update skel from home configuration';
14
+ static examples = ['sudo eggs tools skel', 'sudo eggs tools skel --user user-to-be-copied'];
15
+ static flags = {
16
+ help: Flags.help({ char: 'h' }),
17
+ user: Flags.string({ char: 'u', description: 'user to be used' }),
18
+ verbose: Flags.boolean({ char: 'v' })
19
+ };
20
+ async run() {
21
+ Utils.titles(this.id + ' ' + this.argv);
22
+ const { flags } = await this.parse(Skel);
23
+ let verbose = false;
24
+ if (flags.verbose) {
25
+ verbose = true;
26
+ }
27
+ let user = '';
28
+ user = flags.user ? flags.user : await Utils.getPrimaryUser();
29
+ Utils.warning(`user: ${user}`);
30
+ const homeSource = `/home/${user}`;
31
+ if (!fs.existsSync(homeSource)) {
32
+ Utils.error(`User ${user} not exist or not exist a proper home`);
33
+ Utils.warning('terminate');
34
+ process.exit(0);
35
+ }
36
+ if (Utils.isRoot()) {
37
+ Utils.titles('skel');
38
+ Xdg.skel(user, verbose);
39
+ }
40
+ else {
41
+ Utils.useRoot(this.id);
42
+ }
43
+ }
44
+ }
@@ -0,0 +1,31 @@
1
+ /**
2
+ * ./src/commands/tools/stat.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 { Command } from '@oclif/core';
9
+ /**
10
+ *
11
+ */
12
+ export default class ToolsStat extends Command {
13
+ static description: string;
14
+ static examples: string[];
15
+ static flags: {
16
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
17
+ month: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ year: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ };
20
+ /**
21
+ *
22
+ */
23
+ run(): Promise<void>;
24
+ /**
25
+ *
26
+ * @param start
27
+ * @param end
28
+ * @param type
29
+ */
30
+ show(start: string, end: string, type: string): Promise<void>;
31
+ }
@@ -0,0 +1,70 @@
1
+ /**
2
+ * ./src/commands/tools/stat.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 { Command, Flags } from '@oclif/core';
9
+ import axios from 'axios';
10
+ import https from 'node:https';
11
+ import Utils from '../../classes/utils.js';
12
+ const agent = new https.Agent({
13
+ rejectUnauthorized: false
14
+ });
15
+ /**
16
+ *
17
+ */
18
+ export default class ToolsStat extends Command {
19
+ static description = 'get statistics from sourceforge';
20
+ static examples = ['eggs tools stat', 'eggs tools stat --month', 'eggs tools stat --year'];
21
+ static flags = {
22
+ help: Flags.help({ char: 'h' }),
23
+ month: Flags.boolean({ char: 'm', description: 'current month' }),
24
+ year: Flags.boolean({ char: 'y', description: 'current year' })
25
+ };
26
+ /**
27
+ *
28
+ */
29
+ async run() {
30
+ const { args, flags } = await this.parse(ToolsStat);
31
+ Utils.titles(this.id + ' ' + this.argv);
32
+ const yesterday = new Date();
33
+ yesterday.setDate(yesterday.getDate() - 1);
34
+ // current date
35
+ // adjust 0 before single digit date
36
+ const day = ('0' + yesterday.getDate()).slice(-2);
37
+ // current month
38
+ const month = ('0' + (yesterday.getMonth() + 1)).slice(-2);
39
+ // current year
40
+ const year = yesterday.getFullYear();
41
+ const end = year + '-' + month + '-' + day;
42
+ let start = year + '-' + month + '-' + day;
43
+ if (flags.month) {
44
+ start = year + '-' + month + '-01';
45
+ }
46
+ if (flags.year) {
47
+ start = year + '-01-01';
48
+ }
49
+ this.log('start: ' + start + ', end: ' + end + '\n');
50
+ await this.show(start, end, 'Packages/DEBS');
51
+ console.log();
52
+ await this.show(start, end, 'ISOS');
53
+ }
54
+ /**
55
+ *
56
+ * @param start
57
+ * @param end
58
+ * @param type
59
+ */
60
+ async show(start, end, type) {
61
+ let url = `https://sourceforge.net/projects/penguins-eggs/files/${type}/stats/json`;
62
+ const request = '?start_date=' + start + '&end_date=' + end;
63
+ url += request;
64
+ const res = await axios.get(url, { httpsAgent: agent });
65
+ console.log(type);
66
+ for (const country of res.data.countries) {
67
+ console.log('- ' + country[0] + ': ' + country[1]);
68
+ }
69
+ }
70
+ }
@@ -0,0 +1,24 @@
1
+ /**
2
+ * ./src/commands/tools/yolk.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 { Command } from '@oclif/core';
9
+ /**
10
+ *
11
+ */
12
+ export default class ToolsYolk extends Command {
13
+ static description: string;
14
+ static dir: string;
15
+ static examples: string[];
16
+ static flags: {
17
+ help: import("@oclif/core/interfaces").BooleanFlag<void>;
18
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ };
20
+ /**
21
+ *
22
+ */
23
+ run(): Promise<void>;
24
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * ./src/commands/tools/yolk.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 { Command, Flags } from '@oclif/core';
9
+ import fs from 'node:fs';
10
+ import shx from 'shelljs';
11
+ import Utils from '../../classes/utils.js';
12
+ import Yolk from '../../classes/yolk.js';
13
+ /**
14
+ *
15
+ */
16
+ export default class ToolsYolk extends Command {
17
+ static description = 'configure eggs to install without internet';
18
+ static dir = '/var/local/yolk';
19
+ static examples = ['sudo eggs tools yolk'];
20
+ static flags = {
21
+ help: Flags.help({ char: 'h' }),
22
+ verbose: Flags.boolean({ char: 'v' })
23
+ };
24
+ /**
25
+ *
26
+ */
27
+ async run() {
28
+ Utils.titles(this.id + ' ' + this.argv);
29
+ const { flags } = await this.parse(ToolsYolk);
30
+ let verbose = false;
31
+ if (flags.verbose) {
32
+ verbose = true;
33
+ }
34
+ if (Utils.isRoot()) {
35
+ if (fs.existsSync(ToolsYolk.dir)) {
36
+ shx.exec(`rm ${ToolsYolk.dir} -rf `);
37
+ }
38
+ const yolk = new Yolk();
39
+ await yolk.create(verbose);
40
+ }
41
+ else {
42
+ Utils.useRoot(this.id);
43
+ }
44
+ }
45
+ }