penguins-eggs 10.0.28 → 10.0.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/.oclif.manifest.json +1500 -2
  2. package/README.md +760 -0
  3. package/addons/README.md +0 -2
  4. package/addons/eggs/adapt/applications/eggs-adapt.desktop +1 -1
  5. package/addons/eggs/theme/livecd/isolinux.main.alpine.cfg +43 -0
  6. package/addons/eggs/theme/livecd/{isolinux.main.cfg → isolinux.main.original.cfg} +1 -1
  7. package/conf/distros/alpine/README.md +1 -1
  8. package/conf/distros/alpine/calamares/calamares-modules/bootloader-config/bootloader-config.sh +40 -0
  9. package/conf/distros/alpine/calamares/calamares-modules/bootloader-config/module.yml +9 -0
  10. package/conf/distros/alpine/calamares/calamares-modules/cleanup/cleanup.sh +13 -0
  11. package/conf/distros/alpine/calamares/calamares-modules/cleanup/module.yml +9 -0
  12. package/conf/distros/alpine/calamares/modules/bootloader.yml +57 -0
  13. package/conf/distros/alpine/calamares/modules/displaymanager.yml +23 -0
  14. package/conf/distros/alpine/calamares/modules/finished.yml +5 -0
  15. package/conf/distros/alpine/calamares/modules/fstab.yml +12 -0
  16. package/conf/distros/alpine/calamares/modules/locale.yml +98 -0
  17. package/conf/distros/alpine/calamares/modules/luksopenswaphookcfg.yml +5 -0
  18. package/conf/distros/alpine/calamares/modules/machineid.yml +17 -0
  19. package/conf/distros/alpine/calamares/modules/mount.yml +56 -0
  20. package/conf/distros/alpine/calamares/modules/packages.yml +6 -0
  21. package/conf/distros/alpine/calamares/modules/partition.yml +242 -0
  22. package/conf/distros/alpine/calamares/modules/removeuser.yml +15 -0
  23. package/conf/distros/alpine/calamares/modules/unpackfs.yml +6 -0
  24. package/conf/distros/alpine/calamares/modules/users.yml +18 -0
  25. package/conf/distros/alpine/calamares/modules/welcome.yml +19 -0
  26. package/conf/distros/alpine/calamares/settings.yml +57 -0
  27. package/conf/love.yaml +8 -0
  28. package/dist/classes/bleach.d.ts +32 -0
  29. package/dist/classes/bleach.js +136 -0
  30. package/dist/classes/cfs.d.ts +17 -0
  31. package/dist/classes/cfs.js +39 -0
  32. package/dist/classes/cli-autologin.d.ts +52 -0
  33. package/dist/classes/cli-autologin.js +230 -0
  34. package/dist/classes/compressors.d.ts +54 -0
  35. package/dist/classes/compressors.js +109 -0
  36. package/dist/classes/daddy.d.ts +26 -0
  37. package/dist/classes/daddy.js +161 -0
  38. package/dist/classes/distro.d.ts +36 -0
  39. package/dist/classes/distro.js +346 -0
  40. package/dist/classes/families/alpine.d.ts +55 -0
  41. package/dist/classes/families/alpine.js +163 -0
  42. package/dist/classes/families/archlinux.d.ts +61 -0
  43. package/dist/classes/families/archlinux.js +140 -0
  44. package/dist/classes/families/debian.d.ts +65 -0
  45. package/dist/classes/families/debian.js +138 -0
  46. package/dist/classes/families/fedora.d.ts +52 -0
  47. package/dist/classes/families/fedora.js +100 -0
  48. package/dist/classes/families/mockup.d.ts +60 -0
  49. package/dist/classes/families/mockup.js +79 -0
  50. package/dist/classes/families/opensuse.d.ts +52 -0
  51. package/dist/classes/families/opensuse.js +104 -0
  52. package/dist/classes/incubation/branding.d.ts +17 -0
  53. package/dist/classes/incubation/branding.js +89 -0
  54. package/dist/classes/incubation/distros/alpine.d.ts +32 -0
  55. package/dist/classes/incubation/distros/alpine.js +80 -0
  56. package/dist/classes/incubation/distros/bionic.d.ts +32 -0
  57. package/dist/classes/incubation/distros/bionic.js +83 -0
  58. package/dist/classes/incubation/distros/buster.d.ts +32 -0
  59. package/dist/classes/incubation/distros/buster.js +85 -0
  60. package/dist/classes/incubation/distros/jessie.d.ts +31 -0
  61. package/dist/classes/incubation/distros/jessie.js +44 -0
  62. package/dist/classes/incubation/distros/noble.d.ts +32 -0
  63. package/dist/classes/incubation/distros/noble.js +85 -0
  64. package/dist/classes/incubation/distros/rolling.d.ts +32 -0
  65. package/dist/classes/incubation/distros/rolling.js +82 -0
  66. package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +11 -0
  67. package/dist/classes/incubation/fisherman-helper/displaymanager.js +39 -0
  68. package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
  69. package/dist/classes/incubation/fisherman-helper/packages.js +72 -0
  70. package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
  71. package/dist/classes/incubation/fisherman-helper/settings.js +83 -0
  72. package/dist/classes/incubation/fisherman.d.ts +77 -0
  73. package/dist/classes/incubation/fisherman.js +251 -0
  74. package/dist/classes/incubation/incubator.d.ts +40 -0
  75. package/dist/classes/incubation/incubator.js +328 -0
  76. package/dist/classes/incubation/installer.d.ts +13 -0
  77. package/dist/classes/incubation/installer.js +64 -0
  78. package/dist/classes/keyboards.d.ts +50 -0
  79. package/dist/classes/keyboards.js +287 -0
  80. package/dist/classes/locales.d.ts +21 -0
  81. package/dist/classes/locales.js +80 -0
  82. package/dist/classes/n8.d.ts +18 -0
  83. package/dist/classes/n8.js +36 -0
  84. package/dist/classes/network.d.ts +37 -0
  85. package/dist/classes/network.js +98 -0
  86. package/dist/classes/ovary.d.ts +214 -0
  87. package/dist/classes/ovary.js +1872 -0
  88. package/dist/classes/pacman.d.ts +149 -0
  89. package/dist/classes/pacman.js +703 -0
  90. package/dist/classes/pve-live.d.ts +17 -0
  91. package/dist/classes/pve-live.js +52 -0
  92. package/dist/classes/pxe.d.ts +74 -0
  93. package/dist/classes/pxe.js +410 -0
  94. package/dist/classes/settings.d.ts +53 -0
  95. package/dist/classes/settings.js +185 -0
  96. package/dist/classes/sources_list.d.ts +28 -0
  97. package/dist/classes/sources_list.js +89 -0
  98. package/dist/classes/systemctl.d.ts +47 -0
  99. package/dist/classes/systemctl.js +86 -0
  100. package/dist/classes/tailor.d.ts +46 -0
  101. package/dist/classes/tailor.js +587 -0
  102. package/dist/classes/tools.d.ts +30 -0
  103. package/dist/classes/tools.js +54 -0
  104. package/dist/classes/users.d.ts +28 -0
  105. package/dist/classes/users.js +143 -0
  106. package/dist/classes/utils.d.ts +323 -0
  107. package/dist/classes/utils.js +951 -0
  108. package/dist/classes/xdg.d.ts +45 -0
  109. package/dist/classes/xdg.js +329 -0
  110. package/dist/classes/yolk.d.ts +33 -0
  111. package/dist/classes/yolk.js +114 -0
  112. package/dist/commands/adapt.d.ts +17 -0
  113. package/dist/commands/adapt.js +33 -0
  114. package/dist/commands/analyze.d.ts +26 -0
  115. package/dist/commands/analyze.js +95 -0
  116. package/dist/commands/calamares.d.ts +29 -0
  117. package/dist/commands/calamares.js +110 -0
  118. package/dist/commands/config.d.ts +35 -0
  119. package/dist/commands/config.js +192 -0
  120. package/dist/commands/cuckoo.d.ts +16 -0
  121. package/dist/commands/cuckoo.js +62 -0
  122. package/dist/commands/dad.d.ts +20 -0
  123. package/dist/commands/dad.js +46 -0
  124. package/dist/commands/export/deb.d.ts +19 -0
  125. package/dist/commands/export/deb.js +51 -0
  126. package/dist/commands/export/iso.d.ts +19 -0
  127. package/dist/commands/export/iso.js +55 -0
  128. package/dist/commands/install.d.ts +37 -0
  129. package/dist/commands/install.js +92 -0
  130. package/dist/commands/kill.d.ts +24 -0
  131. package/dist/commands/kill.js +50 -0
  132. package/dist/commands/love.d.ts +20 -0
  133. package/dist/commands/love.js +55 -0
  134. package/dist/commands/mom.d.ts +16 -0
  135. package/dist/commands/mom.js +30 -0
  136. package/dist/commands/produce.d.ts +34 -0
  137. package/dist/commands/produce.js +196 -0
  138. package/dist/commands/status.d.ts +23 -0
  139. package/dist/commands/status.js +31 -0
  140. package/dist/commands/syncfrom.d.ts +45 -0
  141. package/dist/commands/syncfrom.js +152 -0
  142. package/dist/commands/syncto.d.ts +40 -0
  143. package/dist/commands/syncto.js +175 -0
  144. package/dist/commands/tools/clean.d.ts +18 -0
  145. package/dist/commands/tools/clean.js +37 -0
  146. package/dist/commands/tools/ppa.d.ts +26 -0
  147. package/dist/commands/tools/ppa.js +138 -0
  148. package/dist/commands/tools/skel.d.ts +18 -0
  149. package/dist/commands/tools/skel.js +44 -0
  150. package/dist/commands/tools/stat.d.ts +31 -0
  151. package/dist/commands/tools/stat.js +70 -0
  152. package/dist/commands/tools/yolk.d.ts +24 -0
  153. package/dist/commands/tools/yolk.js +45 -0
  154. package/dist/commands/update.d.ts +47 -0
  155. package/dist/commands/update.js +140 -0
  156. package/dist/commands/wardrobe/get.d.ts +23 -0
  157. package/dist/commands/wardrobe/get.js +52 -0
  158. package/dist/commands/wardrobe/list.d.ts +24 -0
  159. package/dist/commands/wardrobe/list.js +125 -0
  160. package/dist/commands/wardrobe/show.d.ts +25 -0
  161. package/dist/commands/wardrobe/show.js +97 -0
  162. package/dist/commands/wardrobe/wear.d.ts +26 -0
  163. package/dist/commands/wardrobe/wear.js +81 -0
  164. package/dist/components/finished.d.ts +15 -0
  165. package/dist/components/finished.js +55 -0
  166. package/dist/components/information.d.ts +8 -0
  167. package/dist/components/information.js +153 -0
  168. package/dist/components/install.d.ts +15 -0
  169. package/dist/components/install.js +56 -0
  170. package/dist/components/keyboard.d.ts +16 -0
  171. package/dist/components/keyboard.js +54 -0
  172. package/dist/components/location.d.ts +16 -0
  173. package/dist/components/location.js +59 -0
  174. package/dist/components/network.d.ts +19 -0
  175. package/dist/components/network.js +65 -0
  176. package/dist/components/partitions.d.ts +16 -0
  177. package/dist/components/partitions.js +73 -0
  178. package/dist/components/steps.d.ts +13 -0
  179. package/dist/components/steps.js +148 -0
  180. package/dist/components/summary.d.ts +24 -0
  181. package/dist/components/summary.js +82 -0
  182. package/dist/components/title.d.ts +11 -0
  183. package/dist/components/title.js +35 -0
  184. package/dist/components/users.d.ts +24 -0
  185. package/dist/components/users.js +80 -0
  186. package/dist/components/welcome.d.ts +13 -0
  187. package/dist/components/welcome.js +63 -0
  188. package/dist/index.d.ts +8 -0
  189. package/dist/index.js +8 -0
  190. package/dist/interfaces/i-addons.d.ts +12 -0
  191. package/dist/interfaces/i-addons.js +8 -0
  192. package/dist/interfaces/i-analyze.d.ts +17 -0
  193. package/dist/interfaces/i-analyze.js +17 -0
  194. package/dist/interfaces/i-app.d.ts +14 -0
  195. package/dist/interfaces/i-app.js +8 -0
  196. package/dist/interfaces/i-branding.d.ts +36 -0
  197. package/dist/interfaces/i-branding.js +8 -0
  198. package/dist/interfaces/i-calamares-partition.d.ts +18 -0
  199. package/dist/interfaces/i-calamares-partition.js +8 -0
  200. package/dist/interfaces/i-config-tools.d.ts +18 -0
  201. package/dist/interfaces/i-config-tools.js +8 -0
  202. package/dist/interfaces/i-devices.d.ts +20 -0
  203. package/dist/interfaces/i-devices.js +8 -0
  204. package/dist/interfaces/i-distro.d.ts +27 -0
  205. package/dist/interfaces/i-distro.js +8 -0
  206. package/dist/interfaces/i-drive-list.d.ts +33 -0
  207. package/dist/interfaces/i-drive-list.js +8 -0
  208. package/dist/interfaces/i-eggs-config.d.ts +32 -0
  209. package/dist/interfaces/i-eggs-config.js +8 -0
  210. package/dist/interfaces/i-excludes.d.ts +14 -0
  211. package/dist/interfaces/i-excludes.js +8 -0
  212. package/dist/interfaces/i-exec.d.ts +11 -0
  213. package/dist/interfaces/i-exec.js +8 -0
  214. package/dist/interfaces/i-initrd.d.ts +13 -0
  215. package/dist/interfaces/i-initrd.js +8 -0
  216. package/dist/interfaces/i-install.d.ts +16 -0
  217. package/dist/interfaces/i-install.js +8 -0
  218. package/dist/interfaces/i-installer.d.ts +17 -0
  219. package/dist/interfaces/i-installer.js +8 -0
  220. package/dist/interfaces/i-krill-config.d.ts +33 -0
  221. package/dist/interfaces/i-krill-config.js +8 -0
  222. package/dist/interfaces/i-krill.d.ts +42 -0
  223. package/dist/interfaces/i-krill.js +8 -0
  224. package/dist/interfaces/i-materia.d.ts +41 -0
  225. package/dist/interfaces/i-materia.js +8 -0
  226. package/dist/interfaces/i-net.d.ts +16 -0
  227. package/dist/interfaces/i-net.js +8 -0
  228. package/dist/interfaces/i-packages.d.ts +16 -0
  229. package/dist/interfaces/i-packages.js +8 -0
  230. package/dist/interfaces/i-partitions.d.ts +16 -0
  231. package/dist/interfaces/i-partitions.js +8 -0
  232. package/dist/interfaces/i-pxe.d.ts +45 -0
  233. package/dist/interfaces/i-pxe.js +1 -0
  234. package/dist/interfaces/i-remix.d.ts +21 -0
  235. package/dist/interfaces/i-remix.js +8 -0
  236. package/dist/interfaces/i-settings.d.ts +33 -0
  237. package/dist/interfaces/i-settings.js +8 -0
  238. package/dist/interfaces/i-user.d.ts +14 -0
  239. package/dist/interfaces/i-user.js +8 -0
  240. package/dist/interfaces/i-workdir.d.ts +14 -0
  241. package/dist/interfaces/i-workdir.js +8 -0
  242. package/dist/interfaces/i-xkb-model.d.ts +24 -0
  243. package/dist/interfaces/i-xkb-model.js +8 -0
  244. package/dist/interfaces/index.d.ts +25 -0
  245. package/dist/interfaces/index.js +8 -0
  246. package/dist/krill/modules/add-user.d.ts +20 -0
  247. package/dist/krill/modules/add-user.js +49 -0
  248. package/dist/krill/modules/bootloader-config-alpine.d.ts +14 -0
  249. package/dist/krill/modules/bootloader-config-alpine.js +37 -0
  250. package/dist/krill/modules/bootloader-config-arch.d.ts +14 -0
  251. package/dist/krill/modules/bootloader-config-arch.js +37 -0
  252. package/dist/krill/modules/bootloader-config-debian.d.ts +10 -0
  253. package/dist/krill/modules/bootloader-config-debian.js +50 -0
  254. package/dist/krill/modules/bootloader-config.d.ts +10 -0
  255. package/dist/krill/modules/bootloader-config.js +25 -0
  256. package/dist/krill/modules/bootloader.d.ts +14 -0
  257. package/dist/krill/modules/bootloader.js +30 -0
  258. package/dist/krill/modules/change-password.d.ts +15 -0
  259. package/dist/krill/modules/change-password.js +18 -0
  260. package/dist/krill/modules/del-live-user.d.ts +14 -0
  261. package/dist/krill/modules/del-live-user.js +38 -0
  262. package/dist/krill/modules/fstab.d.ts +14 -0
  263. package/dist/krill/modules/fstab.js +121 -0
  264. package/dist/krill/modules/grubcfg.d.ts +17 -0
  265. package/dist/krill/modules/grubcfg.js +29 -0
  266. package/dist/krill/modules/hostname.d.ts +13 -0
  267. package/dist/krill/modules/hostname.js +50 -0
  268. package/dist/krill/modules/initramfs-cfg.d.ts +14 -0
  269. package/dist/krill/modules/initramfs-cfg.js +25 -0
  270. package/dist/krill/modules/initramfs.d.ts +13 -0
  271. package/dist/krill/modules/initramfs.js +48 -0
  272. package/dist/krill/modules/locale-cfg.d.ts +10 -0
  273. package/dist/krill/modules/locale-cfg.js +61 -0
  274. package/dist/krill/modules/locale.d.ts +13 -0
  275. package/dist/krill/modules/locale.js +48 -0
  276. package/dist/krill/modules/m-keyboard.d.ts +14 -0
  277. package/dist/krill/modules/m-keyboard.js +79 -0
  278. package/dist/krill/modules/m-timezone.d.ts +14 -0
  279. package/dist/krill/modules/m-timezone.js +22 -0
  280. package/dist/krill/modules/machine-id.d.ts +15 -0
  281. package/dist/krill/modules/machine-id.js +30 -0
  282. package/dist/krill/modules/mkfs.d.ts +13 -0
  283. package/dist/krill/modules/mkfs.js +48 -0
  284. package/dist/krill/modules/mount-fs.d.ts +17 -0
  285. package/dist/krill/modules/mount-fs.js +60 -0
  286. package/dist/krill/modules/mount-vfs.d.ts +17 -0
  287. package/dist/krill/modules/mount-vfs.js +40 -0
  288. package/dist/krill/modules/network-cfg.d.ts +19 -0
  289. package/dist/krill/modules/network-cfg.js +64 -0
  290. package/dist/krill/modules/packages.d.ts +14 -0
  291. package/dist/krill/modules/packages.js +111 -0
  292. package/dist/krill/modules/partition.d.ts +20 -0
  293. package/dist/krill/modules/partition.js +324 -0
  294. package/dist/krill/modules/remove-installer-link.d.ts +13 -0
  295. package/dist/krill/modules/remove-installer-link.js +35 -0
  296. package/dist/krill/modules/umount.d.ts +14 -0
  297. package/dist/krill/modules/umount.js +27 -0
  298. package/dist/krill/modules/unpackfs.d.ts +13 -0
  299. package/dist/krill/modules/unpackfs.js +19 -0
  300. package/dist/krill/prepare.d.ts +78 -0
  301. package/dist/krill/prepare.js +626 -0
  302. package/dist/krill/sequence.d.ts +159 -0
  303. package/dist/krill/sequence.js +687 -0
  304. package/dist/lib/get_address.d.ts +8 -0
  305. package/dist/lib/get_address.js +23 -0
  306. package/dist/lib/get_dns.d.ts +8 -0
  307. package/dist/lib/get_dns.js +23 -0
  308. package/dist/lib/get_domain.d.ts +8 -0
  309. package/dist/lib/get_domain.js +23 -0
  310. package/dist/lib/get_gateway.d.ts +8 -0
  311. package/dist/lib/get_gateway.js +23 -0
  312. package/dist/lib/get_hostname.d.ts +8 -0
  313. package/dist/lib/get_hostname.js +23 -0
  314. package/dist/lib/get_netmask.d.ts +8 -0
  315. package/dist/lib/get_netmask.js +23 -0
  316. package/dist/lib/get_password.d.ts +8 -0
  317. package/dist/lib/get_password.js +36 -0
  318. package/dist/lib/get_userfullname.d.ts +8 -0
  319. package/dist/lib/get_userfullname.js +23 -0
  320. package/dist/lib/get_username.d.ts +8 -0
  321. package/dist/lib/get_username.js +23 -0
  322. package/dist/lib/kill_me_softly.d.ts +11 -0
  323. package/dist/lib/kill_me_softly.js +61 -0
  324. package/dist/lib/select_address_type.d.ts +8 -0
  325. package/dist/lib/select_address_type.js +24 -0
  326. package/dist/lib/select_filesystem_type.d.ts +8 -0
  327. package/dist/lib/select_filesystem_type.js +45 -0
  328. package/dist/lib/select_installation_device.d.ts +8 -0
  329. package/dist/lib/select_installation_device.js +30 -0
  330. package/dist/lib/select_installation_mode.d.ts +8 -0
  331. package/dist/lib/select_installation_mode.js +24 -0
  332. package/dist/lib/select_interface.d.ts +8 -0
  333. package/dist/lib/select_interface.js +24 -0
  334. package/dist/lib/select_keyboard_layout.d.ts +11 -0
  335. package/dist/lib/select_keyboard_layout.js +36 -0
  336. package/dist/lib/select_keyboard_model.d.ts +11 -0
  337. package/dist/lib/select_keyboard_model.js +34 -0
  338. package/dist/lib/select_keyboard_option.d.ts +11 -0
  339. package/dist/lib/select_keyboard_option.js +34 -0
  340. package/dist/lib/select_keyboard_variant.d.ts +11 -0
  341. package/dist/lib/select_keyboard_variant.js +35 -0
  342. package/dist/lib/select_languages.d.ts +8 -0
  343. package/dist/lib/select_languages.js +28 -0
  344. package/dist/lib/select_regions.d.ts +8 -0
  345. package/dist/lib/select_regions.js +24 -0
  346. package/dist/lib/select_user_swap_choice.d.ts +8 -0
  347. package/dist/lib/select_user_swap_choice.js +34 -0
  348. package/dist/lib/select_zones.d.ts +8 -0
  349. package/dist/lib/select_zones.js +518 -0
  350. package/dist/lib/utils.d.ts +34 -0
  351. package/dist/lib/utils.js +79 -0
  352. package/manpages/doc/man/eggs.1.gz +0 -0
  353. package/manpages/doc/man/eggs.html +21 -5
  354. package/mkinitfs/README.md +9 -0
  355. package/package.json +4 -4
  356. package/scripts/_eggs +9 -2
  357. package/scripts/eggs.bash +2 -1
  358. package/addons/eggs/ichoice/applications/eggs-ichoice.desktop +0 -23
  359. package/addons/eggs/ichoice/bin/eggs-ichoice.sh +0 -44
  360. package/scripts/love +0 -25
  361. /package/{addons/eggs/adapt/bin/adapt → scripts/adapt.sh} +0 -0
@@ -0,0 +1,140 @@
1
+ /**
2
+ * ./src/classes/families/archlinux.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import fs from 'node:fs';
9
+ import shx from 'shelljs';
10
+ import { exec } from '../../lib/utils.js';
11
+ import Utils from '../utils.js';
12
+ /**
13
+ * Archlinux
14
+ * @remarks all the utilities
15
+ */
16
+ export default class Archlinux {
17
+ static packs4calamares = ['calamares-eggs']; // , 'calamares', 'calamares-git']
18
+ /**
19
+ * Archlinux: calamaresInstall
20
+ */
21
+ static async calamaresInstall(verbose = false) {
22
+ verbose = true; // serve per pacman
23
+ const echo = Utils.setEcho(verbose);
24
+ // const cal_eggs = 'arco-calamares-3.3.2-02-x86_64.pkg.tar.zst' // 2024-02-10
25
+ // const cal_eggs = 'arco-calamares-3.3.5-02-x86_64.pkg.tar.zst' // 2024-03-10
26
+ // const cal_eggs = 'calamares-garuda-3.3.5.r19.g10acebff4-1-x86_64.pkg.tar.zst' // 2024-03-10
27
+ // const cal_eggs = 'arco-calamares-3.3.6-06-x86_64.pkg.tar.zst' // 24/04/27
28
+ const cal_eggs = 'calamares-eggs-3.3.8.r39.g80ef430-1-x86_64.pkg.tar.zst'; // 12/07/24
29
+ let cmd = `wget -O /tmp/${cal_eggs} https://sourceforge.net/projects/penguins-eggs/files/PKGBUILD/${cal_eggs}/download`;
30
+ try {
31
+ await exec(cmd, echo);
32
+ cmd = `pacman -U /tmp/${cal_eggs}`;
33
+ try {
34
+ await exec(cmd, echo);
35
+ }
36
+ catch {
37
+ Utils.error(`Cannot install /tmp/${cal_eggs}`); // + e.error)
38
+ }
39
+ }
40
+ catch {
41
+ Utils.error(`Cannot download ${cal_eggs}`); // + e.error)
42
+ }
43
+ }
44
+ /**
45
+ * Archlinux: calamaresPolicies
46
+ */
47
+ static async calamaresPolicies() {
48
+ const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
49
+ await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`);
50
+ }
51
+ /**
52
+ * Archlinux: calamaresRemove
53
+ */
54
+ static async calamaresRemove(verbose = true) {
55
+ verbose = true; // serve per pacman
56
+ let removed = false;
57
+ const echo = Utils.setEcho(verbose);
58
+ const calPKGs = ['arco-calamares', 'calamares', 'calamares-garuda'];
59
+ for (const calPKG of calPKGs) {
60
+ if (await this.packagePacmanAvailable(calPKG)) {
61
+ await exec(`pacman -R ${calPKG}`, echo);
62
+ removed = true;
63
+ }
64
+ }
65
+ if (removed && fs.existsSync('/etc/calamares')) {
66
+ await exec('rm /etc/calamares -rf', echo);
67
+ }
68
+ return removed;
69
+ }
70
+ /**
71
+ * Archlinux: isInstalledWayland
72
+ * @returns true if wayland is installed
73
+ */
74
+ static isInstalledWayland() {
75
+ return this.packageIsInstalled('xwayland');
76
+ }
77
+ /**
78
+ * Archlinux: isInstalledXorg
79
+ * @returns true if xorg is installed
80
+ */
81
+ static isInstalledXorg() {
82
+ return this.packageIsInstalled('xorg-server-common');
83
+ }
84
+ /**
85
+ * Archlinux: packageInstall
86
+ * Install the package packageName
87
+ * @param packageName {string} Pacchetto Debian da installare
88
+ * @returns {boolean} True if success
89
+ */
90
+ static async packageInstall(packageName) {
91
+ let retVal = false;
92
+ if (shx.exec(`/usr/bin/pacman -Si ${packageName}`, { silent: true }) === '0') {
93
+ retVal = true;
94
+ }
95
+ return retVal;
96
+ }
97
+ /**
98
+ * Archlinux: packageIsInstalled
99
+ * restuisce VERO se il pacchetto è installato
100
+ * @param packageName
101
+ */
102
+ static packageIsInstalled(packageName) {
103
+ let installed = false;
104
+ const cmd = `/usr/bin/pacman -Qi ${packageName}`;
105
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
106
+ if (stdout.includes(packageName)) {
107
+ installed = true;
108
+ }
109
+ return installed;
110
+ }
111
+ /**
112
+ * Archlinux: packagePacmanAvailable
113
+ * restuisce VERO se il pacchetto è installato
114
+ * @param packageName
115
+ */
116
+ static async packagePacmanAvailable(packageName) {
117
+ let available = false;
118
+ const cmd = `/usr/bin/pacman -Q ${packageName} | awk '{ print $1 }'`;
119
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
120
+ if (stdout == packageName) {
121
+ available = true;
122
+ }
123
+ return available;
124
+ }
125
+ /**
126
+ * Archlinux: packagePacmanLast
127
+ * @param packageName
128
+ * @returns
129
+ */
130
+ static async packagePacmanLast(packageName) {
131
+ let version = '';
132
+ const cmd = `/usr/bin/pacman -Q ${packageName} | grep Version:`;
133
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
134
+ version = stdout.slice(9);
135
+ // console.log('===================================')
136
+ // console.log('[' + version + ']')
137
+ // console.log('===================================')
138
+ return version;
139
+ }
140
+ }
@@ -0,0 +1,65 @@
1
+ /**
2
+ * ./src/classes/families/debian.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ * Debian
10
+ * @remarks all the utilities
11
+ */
12
+ export default class Debian {
13
+ static debs4calamares: string[];
14
+ /**
15
+ * Debian: calamaresInstall
16
+ */
17
+ static calamaresInstall(verbose?: boolean): Promise<void>;
18
+ /**
19
+ * Debian: calamaresPolicies
20
+ */
21
+ static calamaresPolicies(): Promise<void>;
22
+ /**
23
+ * Debian: calamaresRemove
24
+ */
25
+ static calamaresRemove(verbose?: boolean): Promise<boolean>;
26
+ /**
27
+ * Debian: isInstalledWayland
28
+ * @returns true if wayland is installed
29
+ */
30
+ static isInstalledWayland(): boolean;
31
+ /**
32
+ * Debian: isInstalledXorg
33
+ * @returns true if xorg is installed
34
+ */
35
+ static isInstalledXorg(): boolean;
36
+ /**
37
+ * Debian: liveInstallerPolicies
38
+ * liveInstallerPolicies is NOT USED
39
+ */
40
+ static liveInstallerPolicies(): Promise<void>;
41
+ /**
42
+ * Debian: packageAptAvailable
43
+ * return TRUE if package is present on repository
44
+ * @param debPackage
45
+ */
46
+ static packageAptAvailable(packageName: string): Promise<boolean>;
47
+ /**
48
+ * Debian: packageAptLast
49
+ * @param debPackage
50
+ * @returns version
51
+ */
52
+ static packageAptLast(debPackage: string): Promise<string>;
53
+ /**
54
+ * Debian: packageInstall
55
+ * @param packageName {string} Pacchetto Debian da installare
56
+ * @returns {boolean} True if success
57
+ */
58
+ static packageInstall(packageName: string): Promise<boolean>;
59
+ /**
60
+ * Debian: packageIsInstalled
61
+ * restuisce VERO se il pacchetto è installato
62
+ * @param debPackage
63
+ */
64
+ static packageIsInstalled(debPackage: string): boolean;
65
+ }
@@ -0,0 +1,138 @@
1
+ /**
2
+ * ./src/classes/families/debian.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import fs from 'node:fs';
9
+ import shx from 'shelljs';
10
+ import { exec } from '../../lib/utils.js';
11
+ import Utils from '../utils.js';
12
+ /**
13
+ * Debian
14
+ * @remarks all the utilities
15
+ */
16
+ export default class Debian {
17
+ static debs4calamares = ['calamares', 'qml-module-qtquick2', 'qml-module-qtquick-controls'];
18
+ /**
19
+ * Debian: calamaresInstall
20
+ */
21
+ static async calamaresInstall(verbose = true) {
22
+ const echo = Utils.setEcho(verbose);
23
+ try {
24
+ await exec('apt-get update --yes', echo);
25
+ }
26
+ catch {
27
+ Utils.error('Debian.calamaresInstall() apt-get update --yes '); // + e.error as string)
28
+ }
29
+ try {
30
+ // await exec(`apt-get install --yes ${array2spaced(this.debs4calamares)}`, echo)
31
+ await exec(`apt-get install --yes ${this.debs4calamares.join(' ')}`, echo);
32
+ }
33
+ catch {
34
+ Utils.error(`Debian.calamaresInstall() apt-get install --yes ${array2spaced(this.debs4calamares)}`); // + e.error)
35
+ }
36
+ }
37
+ /**
38
+ * Debian: calamaresPolicies
39
+ */
40
+ static async calamaresPolicies() {
41
+ const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
42
+ await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`);
43
+ }
44
+ /**
45
+ * Debian: calamaresRemove
46
+ */
47
+ static async calamaresRemove(verbose = true) {
48
+ const echo = Utils.setEcho(verbose);
49
+ const retVal = false;
50
+ if (fs.existsSync('/etc/calamares')) {
51
+ await exec('rm /etc/calamares -rf', echo);
52
+ }
53
+ await exec('apt-get remove --purge --yes calamares', echo);
54
+ await exec('apt-get autoremove --yes', echo);
55
+ return retVal;
56
+ }
57
+ /**
58
+ * Debian: isInstalledWayland
59
+ * @returns true if wayland is installed
60
+ */
61
+ static isInstalledWayland() {
62
+ return this.packageIsInstalled('xwayland');
63
+ }
64
+ /**
65
+ * Debian: isInstalledXorg
66
+ * @returns true if xorg is installed
67
+ */
68
+ static isInstalledXorg() {
69
+ return this.packageIsInstalled('xserver-xorg-core');
70
+ }
71
+ /**
72
+ * Debian: liveInstallerPolicies
73
+ * liveInstallerPolicies is NOT USED
74
+ */
75
+ static async liveInstallerPolicies() {
76
+ const policyFile = '/usr/share/polkit-1/actions/com.github.pieroproietti.penguins-eggs.policy';
77
+ await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`);
78
+ }
79
+ /**
80
+ * Debian: packageAptAvailable
81
+ * return TRUE if package is present on repository
82
+ * @param debPackage
83
+ */
84
+ static async packageAptAvailable(packageName) {
85
+ let available = false;
86
+ const cmd = `apt-cache show ${packageName} | grep Package:`;
87
+ const test = `Package: ${packageName}`;
88
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
89
+ if (stdout === test) {
90
+ available = true;
91
+ }
92
+ return available;
93
+ }
94
+ /**
95
+ * Debian: packageAptLast
96
+ * @param debPackage
97
+ * @returns version
98
+ */
99
+ static async packageAptLast(debPackage) {
100
+ let version = '';
101
+ const cmd = `apt-cache show ${debPackage} | grep Version:`;
102
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
103
+ version = stdout.slice(9);
104
+ // console.log('===================================')
105
+ // console.log('[' + version + ']')
106
+ // console.log('===================================')
107
+ return version;
108
+ }
109
+ /**
110
+ * Debian: packageInstall
111
+ * @param packageName {string} Pacchetto Debian da installare
112
+ * @returns {boolean} True if success
113
+ */
114
+ static async packageInstall(packageName) {
115
+ let retVal = false;
116
+ if (shx.exec(`/usr/bin/apt-get install -y ${packageName}`, { silent: true }) === '0') {
117
+ retVal = true;
118
+ }
119
+ return retVal;
120
+ }
121
+ /**
122
+ * Debian: packageIsInstalled
123
+ * restuisce VERO se il pacchetto è installato
124
+ * @param debPackage
125
+ */
126
+ static packageIsInstalled(debPackage) {
127
+ let installed = false;
128
+ const cmd = `/usr/bin/dpkg -s ${debPackage} | grep Status:`;
129
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
130
+ if (stdout === 'Status: install ok installed') {
131
+ installed = true;
132
+ }
133
+ return installed;
134
+ }
135
+ }
136
+ function array2spaced(oArray) {
137
+ return oArray.join(' ');
138
+ }
@@ -0,0 +1,52 @@
1
+ /**
2
+ * ./src/classes/families/fedora.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ * Utils: general porpourse utils
10
+ * @remarks all the utilities
11
+ */
12
+ export default class Fedora {
13
+ static packs4calamares: string[];
14
+ /**
15
+ *
16
+ */
17
+ static calamaresInstall(verbose?: boolean): Promise<void>;
18
+ /**
19
+ * calamaresPolicies
20
+ */
21
+ static calamaresPolicies(): Promise<void>;
22
+ /**
23
+ *
24
+ */
25
+ static calamaresRemove(verbose?: boolean): Promise<boolean>;
26
+ /**
27
+ * check if it's installed wayland
28
+ * @returns true if wayland
29
+ */
30
+ static isInstalledWayland(): boolean;
31
+ /**
32
+ * check if it's installed xorg
33
+ * @returns true if xorg is installed
34
+ */
35
+ static isInstalledXorg(): boolean;
36
+ /**
37
+ * restuisce VERO se il pacchetto è installato
38
+ * @param packageName
39
+ */
40
+ static packageAvailable(packageName: string): Promise<boolean>;
41
+ /**
42
+ * Install the package packageName
43
+ * @param packageName {string} Pacchetto da installare
44
+ * @returns {boolean} True if success
45
+ */
46
+ static packageInstall(packageName: string): Promise<boolean>;
47
+ /**
48
+ * restuisce VERO se il pacchetto è installato
49
+ * @param packageName
50
+ */
51
+ static packageIsInstalled(packageName: string): boolean;
52
+ }
@@ -0,0 +1,100 @@
1
+ /**
2
+ * ./src/classes/families/fedora.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import fs from 'node:fs';
9
+ import shx from 'shelljs';
10
+ import { exec } from '../../lib/utils.js';
11
+ import Utils from '../utils.js';
12
+ /**
13
+ * Utils: general porpourse utils
14
+ * @remarks all the utilities
15
+ */
16
+ export default class Fedora {
17
+ static packs4calamares = ['calamares'];
18
+ /**
19
+ *
20
+ */
21
+ static async calamaresInstall(verbose = true) {
22
+ const echo = Utils.setEcho(verbose);
23
+ try {
24
+ await exec(`dnf install ${this.packs4calamares.join(' ')}`, echo);
25
+ }
26
+ catch {
27
+ Utils.error(`fedora.calamaresInstall()`);
28
+ }
29
+ }
30
+ /**
31
+ * calamaresPolicies
32
+ */
33
+ static async calamaresPolicies() {
34
+ const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
35
+ }
36
+ /**
37
+ *
38
+ */
39
+ static async calamaresRemove(verbose = true) {
40
+ const echo = Utils.setEcho(verbose);
41
+ const retVal = false;
42
+ if (fs.existsSync('/etc/calamares')) {
43
+ await exec('rm /etc/calamares -rf', echo);
44
+ }
45
+ await exec('dnf remove calamares', echo);
46
+ return retVal;
47
+ }
48
+ /**
49
+ * check if it's installed wayland
50
+ * @returns true if wayland
51
+ */
52
+ static isInstalledWayland() {
53
+ return this.packageIsInstalled('xorg-x11-server-Xwayland*');
54
+ }
55
+ /**
56
+ * check if it's installed xorg
57
+ * @returns true if xorg is installed
58
+ */
59
+ static isInstalledXorg() {
60
+ return this.packageIsInstalled('xorg-x11-server-Xorg.x86_64');
61
+ }
62
+ /**
63
+ * restuisce VERO se il pacchetto è installato
64
+ * @param packageName
65
+ */
66
+ static async packageAvailable(packageName) {
67
+ let available = false;
68
+ const cmd = `/usr/bin/dnf list --available ${packageName} | grep Package:`;
69
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
70
+ if (stdout.includes(packageName)) {
71
+ available = true;
72
+ }
73
+ return available;
74
+ }
75
+ /**
76
+ * Install the package packageName
77
+ * @param packageName {string} Pacchetto da installare
78
+ * @returns {boolean} True if success
79
+ */
80
+ static async packageInstall(packageName) {
81
+ let retVal = false;
82
+ if (shx.exec(`/usr/bin/dnf install ${packageName}`, { silent: true }) === '0') {
83
+ retVal = true;
84
+ }
85
+ return retVal;
86
+ }
87
+ /**
88
+ * restuisce VERO se il pacchetto è installato
89
+ * @param packageName
90
+ */
91
+ static packageIsInstalled(packageName) {
92
+ let installed = false;
93
+ const cmd = `/usr/bin/dnf list --installed ${packageName}`;
94
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
95
+ if (stdout.includes(packageName)) {
96
+ installed = true;
97
+ }
98
+ return installed;
99
+ }
100
+ }
@@ -0,0 +1,60 @@
1
+ /**
2
+ * ./src/classes/families/mockup.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ * Mockup
10
+ * @remarks all the utilities
11
+ */
12
+ export default class Mockup {
13
+ /**
14
+ * Mockup: calamaresInstall
15
+ */
16
+ static calamaresInstall(verbose?: boolean): Promise<void>;
17
+ /**
18
+ * Mockup: calamaresPolicies
19
+ */
20
+ static calamaresPolicies(): Promise<void>;
21
+ /**
22
+ * Mockup: calamaresRemove
23
+ */
24
+ static calamaresRemove(verbose?: boolean): Promise<boolean>;
25
+ /**
26
+ * Mockup: isInstalledWayland
27
+ * @returns true if wayland is installed
28
+ */
29
+ static isInstalledWayland(): boolean;
30
+ /**
31
+ * Mockup: isInstalledXorg
32
+ * @returns true if xorg is installed
33
+ */
34
+ static isInstalledXorg(): boolean;
35
+ /**
36
+ * Mockup: packageInstall
37
+ * Install the package packageName
38
+ * @param packageName {string}
39
+ * @returns {boolean} True if success
40
+ */
41
+ static packageInstall(packageName: string): Promise<boolean>;
42
+ /**
43
+ * Mockup: packageIsInstalled
44
+ * restuisce VERO se il pacchetto è installato
45
+ * @param packageName
46
+ */
47
+ static packageIsInstalled(packageName: string): boolean;
48
+ /**
49
+ * Mockup: packagePacmanAvailable
50
+ * restuisce VERO se il pacchetto è installato
51
+ * @param packageName
52
+ */
53
+ static packagePacmanAvailable(packageName: string): Promise<boolean>;
54
+ /**
55
+ * Mockup: packagePacmanLast
56
+ * @param packageName
57
+ * @returns
58
+ */
59
+ static packagePacmanLast(packageName: string): Promise<string>;
60
+ }
@@ -0,0 +1,79 @@
1
+ /**
2
+ * ./src/classes/families/mockup.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ * Mockup
10
+ * @remarks all the utilities
11
+ */
12
+ export default class Mockup {
13
+ /**
14
+ * Mockup: calamaresInstall
15
+ */
16
+ static async calamaresInstall(verbose = false) { }
17
+ /**
18
+ * Mockup: calamaresPolicies
19
+ */
20
+ static async calamaresPolicies() { }
21
+ /**
22
+ * Mockup: calamaresRemove
23
+ */
24
+ static async calamaresRemove(verbose = true) {
25
+ const removed = false;
26
+ return removed;
27
+ }
28
+ /**
29
+ * Mockup: isInstalledWayland
30
+ * @returns true if wayland is installed
31
+ */
32
+ static isInstalledWayland() {
33
+ return this.packageIsInstalled('xwayland');
34
+ }
35
+ /**
36
+ * Mockup: isInstalledXorg
37
+ * @returns true if xorg is installed
38
+ */
39
+ static isInstalledXorg() {
40
+ return this.packageIsInstalled('xorg-server-common');
41
+ }
42
+ /**
43
+ * Mockup: packageInstall
44
+ * Install the package packageName
45
+ * @param packageName {string}
46
+ * @returns {boolean} True if success
47
+ */
48
+ static async packageInstall(packageName) {
49
+ const retVal = false;
50
+ return retVal;
51
+ }
52
+ /**
53
+ * Mockup: packageIsInstalled
54
+ * restuisce VERO se il pacchetto è installato
55
+ * @param packageName
56
+ */
57
+ static packageIsInstalled(packageName) {
58
+ const installed = false;
59
+ return installed;
60
+ }
61
+ /**
62
+ * Mockup: packagePacmanAvailable
63
+ * restuisce VERO se il pacchetto è installato
64
+ * @param packageName
65
+ */
66
+ static async packagePacmanAvailable(packageName) {
67
+ const available = false;
68
+ return available;
69
+ }
70
+ /**
71
+ * Mockup: packagePacmanLast
72
+ * @param packageName
73
+ * @returns
74
+ */
75
+ static async packagePacmanLast(packageName) {
76
+ const version = '';
77
+ return version;
78
+ }
79
+ }
@@ -0,0 +1,52 @@
1
+ /**
2
+ * ./src/classes/families/suse.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ * Utils: general porpourse utils
10
+ * @remarks all the utilities
11
+ */
12
+ export default class Opensuse {
13
+ static packs4calamares: string[];
14
+ /**
15
+ *
16
+ */
17
+ static calamaresInstall(verbose?: boolean): Promise<void>;
18
+ /**
19
+ * calamaresPolicies
20
+ */
21
+ static calamaresPolicies(): Promise<void>;
22
+ /**
23
+ *
24
+ */
25
+ static calamaresRemove(verbose?: boolean): Promise<boolean>;
26
+ /**
27
+ * check if it's installed wayland
28
+ * @returns true if wayland
29
+ */
30
+ static isInstalledWayland(): boolean;
31
+ /**
32
+ * check if it's installed xorg
33
+ * @returns true if xorg is installed
34
+ */
35
+ static isInstalledXorg(): boolean;
36
+ /**
37
+ * restuisce VERO se il pacchetto è installato
38
+ * @param packageName
39
+ */
40
+ static packageAvailable(packageName: string): Promise<boolean>;
41
+ /**
42
+ * Install the package packageName
43
+ * @param packageName {string} Pacchetto da installare
44
+ * @returns {boolean} True if success
45
+ */
46
+ static packageInstall(packageName: string): Promise<boolean>;
47
+ /**
48
+ * restuisce VERO se il pacchetto è installato
49
+ * @param packageName
50
+ */
51
+ static packageIsInstalled(packageName: string): boolean;
52
+ }