penguins-eggs 8.1.3 → 9.0.16

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 (323) hide show
  1. package/README.md +332 -168
  2. package/addons/README.md +78 -84
  3. package/addons/{pve → blissos}/theme/applications/install-debian.desktop +0 -0
  4. package/addons/{deblinux → blissos}/theme/artwork/install-debian.png +0 -0
  5. package/addons/blissos/theme/calamares/branding/blissos-logo.png +0 -0
  6. package/addons/{guadalinex → blissos}/theme/calamares/branding/branding.desc +0 -0
  7. package/addons/blissos/theme/calamares/branding/languages.png +0 -0
  8. package/addons/blissos/theme/calamares/branding/show.qml +75 -0
  9. package/addons/blissos/theme/calamares/branding/slide1.png +0 -0
  10. package/addons/blissos/theme/calamares/branding/slide2.png +0 -0
  11. package/addons/blissos/theme/calamares/branding/slide3.png +0 -0
  12. package/addons/blissos/theme/calamares/branding/welcome.png +0 -0
  13. package/addons/{guadalinex → blissos}/theme/calamares/modules/partition.yml +1 -1
  14. package/{conf/distros/buster/grub/theme.cfg → addons/blissos/theme/livecd/grub.theme.cfg} +10 -9
  15. package/{conf/distros/buster/isolinux/stdmenu.template.cfg → addons/blissos/theme/livecd/isolinux.theme.cfg} +4 -0
  16. package/addons/blissos/theme/livecd/splash.png +0 -0
  17. package/addons/eggs/adapt/applications/eggs-adapt.desktop +1 -1
  18. package/addons/eggs/theme/calamares/branding/show.qml +1 -1
  19. package/addons/eggs/theme/livecd/README.md +19 -6
  20. package/addons/eggs/theme/livecd/{theme.cfg → grub.theme.cfg} +13 -12
  21. package/addons/eggs/theme/livecd/isolinux.theme.cfg +46 -0
  22. package/addons/eggs/theme/livecd/splash.png +0 -0
  23. package/addons/{ufficiozero/theme/livecd/theme.cfg → neon/theme/livecd/grub.theme.cfg} +13 -12
  24. package/addons/neon/theme/livecd/isolinux.theme.cfg +46 -0
  25. package/addons/neon/theme/livecd/splash.png +0 -0
  26. package/addons/templates/grub.template +28 -0
  27. package/addons/templates/isolinux.template +29 -0
  28. package/addons/ufficiozero/theme/applications/install-debian.desktop +17 -2
  29. package/bin/dev +17 -0
  30. package/bin/dev.cmd +3 -0
  31. package/bin/run +2 -4
  32. package/conf/distros/bionic/calamares/settings.yml +5 -5
  33. package/conf/distros/bookworm/README.md +9 -0
  34. package/conf/distros/bullseye/README.md +6 -8
  35. package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.sh +1 -1
  36. package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.working.sh +1 -1
  37. package/conf/distros/buster/calamares/modules/shellprocess_eggs-cleanup.yml +6 -0
  38. package/conf/distros/buster/calamares/settings.yml +14 -3
  39. package/conf/distros/chimaera/README.md +3 -0
  40. package/conf/distros/daedalus/README.md +3 -0
  41. package/conf/distros/focal/calamares/settings.yml +2 -2
  42. package/conf/distros/hirsute/README.md +1 -1
  43. package/conf/distros/impish/README.md +9 -0
  44. package/conf/distros/jammy/README.md +9 -0
  45. package/conf/distros/jessie/krill/krill-modules/sources-yolk/sources-yolk.sh +1 -1
  46. package/conf/distros/rolling/README.md +3 -0
  47. package/conf/distros/rolling/calamares/calamares-modules/remove-link/module.yml +9 -0
  48. package/conf/distros/rolling/calamares/calamares-modules/remove-link/remove-link.sh +3 -0
  49. package/conf/distros/rolling/calamares/modules/displaymanager.yml +22 -0
  50. package/conf/distros/rolling/calamares/modules/finished.yml +6 -0
  51. package/conf/distros/rolling/calamares/modules/fstab.yml +13 -0
  52. package/conf/distros/rolling/calamares/modules/locale.yml +97 -0
  53. package/conf/distros/rolling/calamares/modules/luksopenswaphookcfg.yml +6 -0
  54. package/conf/distros/rolling/calamares/modules/mount.yml +38 -0
  55. package/conf/distros/rolling/calamares/modules/packages.yml +8 -0
  56. package/conf/distros/rolling/calamares/modules/removeuser.yml +15 -0
  57. package/conf/distros/rolling/calamares/modules/unpackfs.yml +7 -0
  58. package/conf/distros/rolling/calamares/modules/users.yml +20 -0
  59. package/conf/distros/rolling/calamares/modules/welcome.yml +19 -0
  60. package/conf/distros/{bullseye → rolling}/calamares/settings.yml +17 -12
  61. package/conf/distros/thirtyfive/README.md +3 -0
  62. package/conf/distros/tumbleweed/README.md +3 -0
  63. package/conf/eggs.yaml +3 -3
  64. package/conf/exclude.list +12 -7
  65. package/conf/tools.yaml +1 -1
  66. package/lib/classes/basket.js +24 -20
  67. package/lib/classes/bleach.js +19 -19
  68. package/lib/classes/compressors.js +15 -14
  69. package/lib/classes/daddy.js +44 -31
  70. package/lib/classes/distro.d.ts +3 -2
  71. package/lib/classes/distro.js +314 -175
  72. package/lib/classes/family/archlinux.d.ts +69 -0
  73. package/lib/classes/family/archlinux.js +182 -0
  74. package/lib/classes/family/debian.d.ts +64 -0
  75. package/lib/classes/family/debian.js +227 -0
  76. package/lib/classes/family/fedora.d.ts +63 -0
  77. package/lib/classes/family/fedora.js +169 -0
  78. package/lib/classes/family/suse.d.ts +63 -0
  79. package/lib/classes/family/suse.js +169 -0
  80. package/lib/classes/i18n.js +16 -16
  81. package/lib/classes/incubation/branding.js +5 -4
  82. package/lib/classes/incubation/distros/bionic.js +1 -2
  83. package/lib/classes/incubation/distros/buster.js +2 -2
  84. package/lib/classes/incubation/distros/focal.js +3 -2
  85. package/lib/classes/incubation/distros/jessie.js +1 -25
  86. package/lib/classes/incubation/distros/{bullseye.d.ts → rolling.d.ts} +3 -3
  87. package/lib/classes/incubation/distros/{bullseye.js → rolling.js} +15 -16
  88. package/lib/classes/incubation/fisherman-helper/displaymanager.js +2 -7
  89. package/lib/classes/incubation/fisherman-helper/packages.js +31 -32
  90. package/lib/classes/incubation/fisherman.d.ts +17 -17
  91. package/lib/classes/incubation/fisherman.js +84 -71
  92. package/lib/classes/incubation/incubator.js +116 -74
  93. package/lib/classes/incubation/installer.d.ts +2 -2
  94. package/lib/classes/incubation/installer.js +6 -20
  95. package/lib/classes/initrd.d.ts +1 -1
  96. package/lib/classes/initrd.js +37 -30
  97. package/lib/classes/krill_install.d.ts +4 -4
  98. package/lib/classes/krill_install.js +166 -162
  99. package/lib/classes/krill_prepare.d.ts +6 -2
  100. package/lib/classes/krill_prepare.js +73 -60
  101. package/lib/classes/n8.js +6 -11
  102. package/lib/classes/ovary.d.ts +34 -25
  103. package/lib/classes/ovary.js +771 -688
  104. package/lib/classes/pacman.d.ts +55 -56
  105. package/lib/classes/pacman.js +524 -436
  106. package/lib/classes/pve-live.js +6 -6
  107. package/lib/classes/settings.js +47 -56
  108. package/lib/classes/systemctl.d.ts +6 -6
  109. package/lib/classes/systemctl.js +7 -7
  110. package/lib/classes/tools.d.ts +1 -1
  111. package/lib/classes/tools.js +10 -10
  112. package/lib/classes/users.d.ts +21 -0
  113. package/lib/classes/users.js +129 -0
  114. package/lib/classes/utils.d.ts +10 -13
  115. package/lib/classes/utils.js +128 -107
  116. package/lib/classes/xdg.js +112 -91
  117. package/lib/classes/yolk.js +38 -31
  118. package/lib/commands/adapt.d.ts +3 -3
  119. package/lib/commands/adapt.js +12 -12
  120. package/lib/commands/analyze.d.ts +25 -0
  121. package/lib/commands/analyze.js +74 -0
  122. package/lib/commands/bro.d.ts +14 -0
  123. package/lib/commands/bro.js +31 -0
  124. package/lib/commands/calamares.d.ts +7 -7
  125. package/lib/commands/calamares.js +22 -54
  126. package/lib/commands/config.d.ts +5 -5
  127. package/lib/commands/config.js +69 -79
  128. package/lib/commands/dad.d.ts +5 -5
  129. package/lib/commands/dad.js +11 -11
  130. package/lib/commands/export/deb.d.ts +8 -8
  131. package/lib/commands/export/deb.js +16 -16
  132. package/lib/commands/export/docs.d.ts +2 -2
  133. package/lib/commands/export/docs.js +9 -9
  134. package/lib/commands/export/iso.d.ts +4 -4
  135. package/lib/commands/export/iso.js +12 -17
  136. package/lib/commands/info.d.ts +9 -3
  137. package/lib/commands/info.js +14 -164
  138. package/lib/commands/install.d.ts +5 -5
  139. package/lib/commands/install.js +28 -42
  140. package/lib/commands/kill.d.ts +3 -3
  141. package/lib/commands/kill.js +11 -13
  142. package/lib/commands/mom.d.ts +2 -2
  143. package/lib/commands/mom.js +8 -8
  144. package/lib/commands/produce.d.ts +14 -14
  145. package/lib/commands/produce.js +48 -46
  146. package/lib/commands/remove.d.ts +5 -5
  147. package/lib/commands/remove.js +46 -57
  148. package/lib/commands/syncfrom.d.ts +37 -0
  149. package/lib/commands/syncfrom.js +156 -0
  150. package/lib/commands/syncto.d.ts +48 -0
  151. package/lib/commands/syncto.js +219 -0
  152. package/lib/commands/tools/clean.d.ts +3 -3
  153. package/lib/commands/tools/clean.js +10 -12
  154. package/lib/commands/tools/locales.d.ts +4 -4
  155. package/lib/commands/tools/locales.js +8 -8
  156. package/lib/commands/tools/skel.d.ts +4 -4
  157. package/lib/commands/tools/skel.js +10 -15
  158. package/lib/commands/tools/stat.d.ts +7 -4
  159. package/lib/commands/tools/stat.js +20 -13
  160. package/lib/commands/tools/yolk.d.ts +3 -3
  161. package/lib/commands/tools/yolk.js +13 -13
  162. package/lib/commands/update.d.ts +5 -10
  163. package/lib/commands/update.js +56 -72
  164. package/lib/components/elements/information.d.ts +4 -0
  165. package/lib/components/elements/information.js +166 -0
  166. package/lib/components/elements/steps.js +1 -1
  167. package/lib/components/elements/title.js +7 -10
  168. package/lib/components/finished.js +5 -5
  169. package/lib/components/install.js +5 -5
  170. package/lib/components/keyboard.js +5 -5
  171. package/lib/components/location.js +5 -5
  172. package/lib/components/network.js +5 -5
  173. package/lib/components/partitions.d.ts +2 -1
  174. package/lib/components/partitions.js +9 -7
  175. package/lib/components/summary.js +5 -5
  176. package/lib/components/users.js +6 -6
  177. package/lib/components/welcome.js +6 -6
  178. package/lib/index.d.ts +1 -1
  179. package/lib/index.js +2 -2
  180. package/lib/interfaces/i-analyze.d.ts +13 -0
  181. package/lib/interfaces/i-analyze.js +18 -0
  182. package/lib/interfaces/i-distro.d.ts +3 -2
  183. package/lib/interfaces/i-krill.d.ts +1 -0
  184. package/lib/interfaces/i-settings.d.ts +2 -2
  185. package/lib/lib/cli-autologin.d.ts +19 -2
  186. package/lib/lib/cli-autologin.js +114 -39
  187. package/lib/lib/dependencies.d.ts +9 -6
  188. package/lib/lib/dependencies.js +22 -13
  189. package/lib/lib/get_address.js +2 -2
  190. package/lib/lib/get_dns.js +2 -2
  191. package/lib/lib/get_domain.js +2 -2
  192. package/lib/lib/get_gateway.js +2 -2
  193. package/lib/lib/get_hostname.js +2 -2
  194. package/lib/lib/get_netmask.js +2 -2
  195. package/lib/lib/get_password.js +3 -2
  196. package/lib/lib/get_root_password.js +2 -2
  197. package/lib/lib/get_userfullname.js +2 -2
  198. package/lib/lib/get_username.js +2 -2
  199. package/lib/lib/select_address_type.js +2 -5
  200. package/lib/lib/select_filesystem_type.js +5 -14
  201. package/lib/lib/select_installation_device.js +3 -3
  202. package/lib/lib/select_interface.js +1 -1
  203. package/lib/lib/select_keyboard_layout.js +2 -10
  204. package/lib/lib/select_languages.js +2 -2
  205. package/lib/lib/select_regions.js +1 -12
  206. package/lib/lib/select_user_swap_choice.js +4 -4
  207. package/lib/lib/select_zones.js +483 -62
  208. package/manpages/doc/man/eggs.html +508 -0
  209. package/manpages/doc/man/eggs.roll.gz +0 -0
  210. package/oclif.manifest.json +1 -1
  211. package/package.json +115 -107
  212. package/scripts/_eggs +275 -0
  213. package/scripts/bros/waydroid-helper.sh +92 -0
  214. package/scripts/eggs.bash +68 -19
  215. package/scripts/mom-cli.sh +6 -5
  216. package/scripts/not-used/eggs-cleanup.sh +7 -0
  217. package/scripts/not-used/install-eggs-ppa.sh +2 -0
  218. package/scripts/{mkinitramfs → not-used/mkinitramfs} +0 -0
  219. package/scripts/{pve-live.sh → not-used/pve-live.sh} +0 -0
  220. package/addons/debian/theme/applications/install-debian.desktop +0 -13
  221. package/addons/debian/theme/artwork/install-debian.png +0 -0
  222. package/addons/debian/theme/branding/branding.desc +0 -27
  223. package/addons/debian/theme/branding/debian-logo.png +0 -0
  224. package/addons/debian/theme/branding/show.qml +0 -51
  225. package/addons/debian/theme/branding/slide1.png +0 -0
  226. package/addons/debian/theme/branding/welcome.png +0 -0
  227. package/addons/deblinux/theme/README.md +0 -16
  228. package/addons/deblinux/theme/applications/install-debian.desktop +0 -13
  229. package/addons/deblinux/theme/calamares/branding/branding.desc +0 -23
  230. package/addons/deblinux/theme/calamares/branding/deblinux-logo.png +0 -0
  231. package/addons/deblinux/theme/calamares/branding/show.qml +0 -46
  232. package/addons/deblinux/theme/calamares/branding/slide1.png +0 -0
  233. package/addons/deblinux/theme/calamares/branding/welcome.png +0 -0
  234. package/addons/deblinux/theme/calamares/modules/partition.yml +0 -233
  235. package/addons/eggs/theme/calamares/branding/4tation.png +0 -0
  236. package/addons/eggs/theme/livecd/grub.template.cfg +0 -60
  237. package/addons/eggs/theme/livecd/menu.template.cfg +0 -54
  238. package/addons/guadalinex/theme/README.md +0 -9
  239. package/addons/guadalinex/theme/applications/install-debian.desktop +0 -28
  240. package/addons/guadalinex/theme/artwork/install-debian.png +0 -0
  241. package/addons/guadalinex/theme/calamares/branding/guadalinex-logo.png +0 -0
  242. package/addons/guadalinex/theme/calamares/branding/show.qml +0 -85
  243. package/addons/guadalinex/theme/calamares/branding/slide1.png +0 -0
  244. package/addons/guadalinex/theme/calamares/branding/slide2.png +0 -0
  245. package/addons/guadalinex/theme/calamares/branding/slide3.png +0 -0
  246. package/addons/guadalinex/theme/calamares/branding/slide4.png +0 -0
  247. package/addons/guadalinex/theme/calamares/branding/slide5.png +0 -0
  248. package/addons/guadalinex/theme/calamares/branding/slide6.png +0 -0
  249. package/addons/guadalinex/theme/calamares/branding/slide7.png +0 -0
  250. package/addons/guadalinex/theme/calamares/branding/welcome.png +0 -0
  251. package/addons/guadalinex/theme/livecd/menu.template.cfg +0 -54
  252. package/addons/guadalinex/theme/livecd/splash.png +0 -0
  253. package/addons/guadalinex/theme/livecd/theme.cfg +0 -42
  254. package/addons/openos/theme/applications/Install-OpenOS-Neon_RLTS-Desktop.png +0 -0
  255. package/addons/openos/theme/applications/install-debian.desktop +0 -24
  256. package/addons/openos/theme/artwork/install-debian.png +0 -0
  257. package/addons/openos/theme/calamares/branding/branding.desc +0 -28
  258. package/addons/openos/theme/calamares/branding/openos-logo.png +0 -0
  259. package/addons/openos/theme/calamares/branding/show.qml +0 -203
  260. package/addons/openos/theme/calamares/branding/slide1.png +0 -0
  261. package/addons/openos/theme/calamares/branding/slide10.png +0 -0
  262. package/addons/openos/theme/calamares/branding/slide11.png +0 -0
  263. package/addons/openos/theme/calamares/branding/slide12.png +0 -0
  264. package/addons/openos/theme/calamares/branding/slide13.png +0 -0
  265. package/addons/openos/theme/calamares/branding/slide14.png +0 -0
  266. package/addons/openos/theme/calamares/branding/slide15.png +0 -0
  267. package/addons/openos/theme/calamares/branding/slide16.png +0 -0
  268. package/addons/openos/theme/calamares/branding/slide2.png +0 -0
  269. package/addons/openos/theme/calamares/branding/slide3.png +0 -0
  270. package/addons/openos/theme/calamares/branding/slide4.png +0 -0
  271. package/addons/openos/theme/calamares/branding/slide5.png +0 -0
  272. package/addons/openos/theme/calamares/branding/slide6.png +0 -0
  273. package/addons/openos/theme/calamares/branding/slide7.png +0 -0
  274. package/addons/openos/theme/calamares/branding/slide8.png +0 -0
  275. package/addons/openos/theme/calamares/branding/slide9.png +0 -0
  276. package/addons/openos/theme/calamares/branding/welcome.png +0 -0
  277. package/addons/openos/theme/calamares/branding.desc +0 -24
  278. package/addons/openos/theme/calamares/lang/calamares-default_ar.qm +0 -0
  279. package/addons/openos/theme/calamares/lang/calamares-default_en.qm +0 -0
  280. package/addons/openos/theme/calamares/lang/calamares-default_eo.qm +0 -0
  281. package/addons/openos/theme/calamares/lang/calamares-default_fr.qm +0 -0
  282. package/addons/openos/theme/calamares/lang/calamares-default_nl.qm +0 -0
  283. package/addons/openos/theme/calamares/modules/partition.yml +0 -233
  284. package/addons/openos/theme/livecd/grub.template.cfg +0 -60
  285. package/addons/openos/theme/livecd/menu.template.cfg +0 -54
  286. package/addons/openos/theme/livecd/splash.png +0 -0
  287. package/addons/openos/theme/livecd/theme.cfg +0 -42
  288. package/addons/pve/theme/applications/penguins-pve.desktop +0 -24
  289. package/addons/pve/theme/artwork/install-debian.png +0 -0
  290. package/addons/pve/theme/calamares/branding/branding.desc +0 -1
  291. package/addons/pve/theme/calamares/branding/pve-logo.png +0 -0
  292. package/addons/pve/theme/calamares/branding/show.qml +0 -227
  293. package/addons/pve/theme/calamares/branding/slide1.png +0 -0
  294. package/addons/pve/theme/calamares/branding/slide2.png +0 -0
  295. package/addons/pve/theme/calamares/branding/slide3.png +0 -0
  296. package/addons/pve/theme/calamares/branding/slide4.png +0 -0
  297. package/addons/pve/theme/calamares/branding/slide5.png +0 -0
  298. package/addons/pve/theme/calamares/branding/slide6.png +0 -0
  299. package/addons/pve/theme/calamares/branding/slide7.png +0 -0
  300. package/addons/pve/theme/calamares/branding/slide8.png +0 -0
  301. package/addons/pve/theme/calamares/branding/slide9.png +0 -0
  302. package/addons/pve/theme/calamares/branding/welcome.png +0 -0
  303. package/addons/pve/theme/calamares/modules/partition.yml +0 -233
  304. package/addons/pve/theme/livecd/README.md +0 -8
  305. package/addons/pve/theme/livecd/grub.template.cfg +0 -60
  306. package/addons/pve/theme/livecd/menu.template.cfg +0 -54
  307. package/addons/pve/theme/livecd/splash.png +0 -0
  308. package/addons/pve/theme/livecd/theme.cfg +0 -42
  309. package/addons/ufficiozero/theme/artwork/install-debian.png +0 -0
  310. package/addons/ufficiozero/theme/livecd/README.md +0 -8
  311. package/addons/ufficiozero/theme/livecd/grub.template.cfg +0 -60
  312. package/addons/ufficiozero/theme/livecd/menu.template.cfg +0 -54
  313. package/conf/distros/bullseye/calamares/calamares-modules/bootloader-config/bootloader-config.sh +0 -28
  314. package/conf/distros/bullseye/calamares/calamares-modules/bootloader-config/module.yml +0 -8
  315. package/conf/distros/buster/grub/grub.template.cfg +0 -58
  316. package/conf/distros/buster/grub/loopback.cfg +0 -1
  317. package/conf/distros/buster/isolinux/isolinux.template.cfg +0 -8
  318. package/conf/distros/buster/isolinux/menu.template.cfg +0 -56
  319. package/conf/distros/focal/grub/grub.template.cfg +0 -67
  320. package/conf/distros/focal/isolinux/menu.template.cfg +0 -54
  321. package/lib/classes/incubation/distros/beowulf.d.ts +0 -30
  322. package/lib/classes/incubation/distros/beowulf.js +0 -69
  323. package/manpages/doc/man/eggs.1.gz +0 -0
@@ -0,0 +1,182 @@
1
+ "use strict";
2
+ /**
3
+ * penguins-eggs-v8
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const tslib_1 = require("tslib");
10
+ const node_fs_1 = (0, tslib_1.__importDefault)(require("node:fs"));
11
+ const shelljs_1 = (0, tslib_1.__importDefault)(require("shelljs"));
12
+ const utils_1 = (0, tslib_1.__importDefault)(require("../utils"));
13
+ const pacman_1 = (0, tslib_1.__importDefault)(require("../pacman"));
14
+ const dependencies_1 = require("../../lib/dependencies");
15
+ const utils_2 = require("../../lib/utils");
16
+ /**
17
+ * Utils: general porpourse utils
18
+ * @remarks all the utilities
19
+ */
20
+ class Archlinux {
21
+ /**
22
+ * check if it's installed xorg
23
+ * @returns true if xorg is installed
24
+ */
25
+ static isInstalledXorg() {
26
+ return this.packageIsInstalled('xorg-server-common');
27
+ }
28
+ /**
29
+ * check if it's installed wayland
30
+ * @returns true if wayland
31
+ */
32
+ static isInstalledWayland() {
33
+ return this.packageIsInstalled('xwayland');
34
+ }
35
+ /**
36
+ * Crea array pacchetti da installare/rimuovere
37
+ */
38
+ static packages(remove = false, verbose = false) {
39
+ const packages = ['arch-install-scripts', 'awk', 'dosfstools', 'e2fsprogs', 'erofs-utils', 'findutils', 'gzip', 'libarchive', 'libisoburn', 'mtools', 'openssl', 'pacman', 'rsync', 'sed', 'syslinux', 'squashfs-tools'];
40
+ const toInstall = [];
41
+ const toRemove = [];
42
+ for (const elem of packages) {
43
+ if (!this.packageIsInstalled(elem)) {
44
+ toInstall.push(elem);
45
+ }
46
+ else {
47
+ toRemove.push(elem);
48
+ }
49
+ }
50
+ if (remove) {
51
+ return toRemove;
52
+ }
53
+ return toInstall;
54
+ }
55
+ /**
56
+ *
57
+ */
58
+ static async prerequisitesInstall(verbose = true) {
59
+ const echo = utils_1.default.setEcho(verbose);
60
+ const retVal = false;
61
+ await (0, utils_2.exec)(`pacman -Sy ${(0, dependencies_1.array2spaced)(this.packages(false, verbose))}`, echo);
62
+ if (!pacman_1.default.isInstalledGui()) {
63
+ /**
64
+ * live-config-getty-generator
65
+ *
66
+ * Viene rimosso in naked, altrimenti non funziona il login
67
+ * generando un errore getty.
68
+ * Sarebbe utile individuarne le ragioni, forse rompe anche sul desktop
69
+ * non permettendo di cambiare terminale e loggarsi
70
+ *
71
+ * A che serve?
72
+ */
73
+ const fileToRemove = '/lib/systemd/system-generators/live-config-getty-generator';
74
+ if (node_fs_1.default.existsSync(fileToRemove)) {
75
+ await (0, utils_2.exec)(`rm ${fileToRemove}`);
76
+ }
77
+ }
78
+ return retVal;
79
+ }
80
+ /**
81
+ * Torna verso se calamares è installato
82
+ */
83
+ static async calamaresCheck() {
84
+ let installed = true;
85
+ for (const i in this.packs4calamares) {
86
+ if (!this.packageIsInstalled(this.packs4calamares[i])) {
87
+ installed = false;
88
+ break;
89
+ }
90
+ }
91
+ return installed;
92
+ }
93
+ /**
94
+ *
95
+ */
96
+ static async calamaresInstall(verbose = false) {
97
+ verbose = true; // serve per pacman
98
+ const echo = utils_1.default.setEcho(verbose);
99
+ try {
100
+ // inserito flag --noconfirm
101
+ await (0, utils_2.exec)(`pacman -Sy --noconfirm ${(0, dependencies_1.array2spaced)(this.packs4calamares)}`, echo);
102
+ }
103
+ catch {
104
+ utils_1.default.error(`Archlinux.calamaresInstall() pacman -Sy ${(0, dependencies_1.array2spaced)(this.packs4calamares)}`); // + e.error)
105
+ }
106
+ }
107
+ /**
108
+ * calamaresPolicies
109
+ */
110
+ static async calamaresPolicies() {
111
+ const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
112
+ await (0, utils_2.exec)(`sed -i 's/auth_admin/yes/' ${policyFile}`);
113
+ }
114
+ /**
115
+ *
116
+ */
117
+ static async calamaresRemove(verbose = true) {
118
+ verbose = true; // serve per pacman
119
+ const echo = utils_1.default.setEcho(verbose);
120
+ const retVal = false;
121
+ if (node_fs_1.default.existsSync('/etc/calamares')) {
122
+ await (0, utils_2.exec)('rm /etc/calamares -rf', echo);
123
+ }
124
+ await (0, utils_2.exec)('yay -Rns calamares', echo);
125
+ return retVal;
126
+ }
127
+ /**
128
+ * restuisce VERO se il pacchetto è installato
129
+ * @param packageName
130
+ */
131
+ static packageIsInstalled(packageName) {
132
+ let installed = false;
133
+ const cmd = `/usr/bin/pacman -Qi ${packageName}`;
134
+ const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
135
+ if (stdout.includes(packageName)) {
136
+ installed = true;
137
+ }
138
+ return installed;
139
+ }
140
+ /**
141
+ * Install the package packageName
142
+ * @param packageName {string} Pacchetto Debian da installare
143
+ * @returns {boolean} True if success
144
+ */
145
+ static async packageInstall(packageName) {
146
+ let retVal = false;
147
+ if (shelljs_1.default.exec(`/usr/bin/pacman -Si ${packageName}`, { silent: true }) === '0') {
148
+ retVal = true;
149
+ }
150
+ return retVal;
151
+ }
152
+ /**
153
+ * restuisce VERO se il pacchetto è installato
154
+ * @param packageName
155
+ */
156
+ static async packageAptAvailable(packageName) {
157
+ let available = false;
158
+ const cmd = `/usr/bin/pacman -Q ${packageName} | grep Package:`;
159
+ const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
160
+ if (stdout.includes(packageName)) {
161
+ available = true;
162
+ }
163
+ return available;
164
+ }
165
+ /**
166
+ *
167
+ * @param packageName
168
+ * @returns
169
+ */
170
+ static async packageAptLast(packageName) {
171
+ let version = '';
172
+ const cmd = `/usr/bin/pacman -Q ${packageName} | grep Version:`;
173
+ const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
174
+ version = stdout.slice(9);
175
+ // console.log('===================================')
176
+ // console.log('[' + version + ']')
177
+ // console.log('===================================')
178
+ return version;
179
+ }
180
+ }
181
+ exports.default = Archlinux;
182
+ Archlinux.packs4calamares = ['calamares'];
@@ -0,0 +1,64 @@
1
+ /**
2
+ * penguins-eggs-v8
3
+ * author: Piero Proietti
4
+ * email: piero.proietti@gmail.com
5
+ * license: MIT
6
+ */
7
+ /**
8
+ * Utils: general porpourse utils
9
+ * @remarks all the utilities
10
+ */
11
+ export default class Debian {
12
+ static debs4calamares: string[];
13
+ /**
14
+ * check if it's installed xorg
15
+ * @returns true if xorg is installed
16
+ */
17
+ static isInstalledXorg(): boolean;
18
+ /**
19
+ * check if it's installed wayland
20
+ * @returns true if wayland
21
+ */
22
+ static isInstalledWayland(): boolean;
23
+ /**
24
+ * Crea array packages dei pacchetti da installare
25
+ */
26
+ static packages(remove?: boolean, verbose?: boolean): string[];
27
+ /**
28
+ *
29
+ */
30
+ static prerequisitesInstall(verbose?: boolean): Promise<boolean>;
31
+ /**
32
+ * Torna verso se calamares è installato
33
+ */
34
+ static calamaresCheck(): Promise<boolean>;
35
+ /**
36
+ *
37
+ */
38
+ static calamaresInstall(verbose?: boolean): Promise<void>;
39
+ /**
40
+ * calamaresPolicies
41
+ */
42
+ static calamaresPolicies(): Promise<void>;
43
+ /**
44
+ *
45
+ */
46
+ static calamaresRemove(verbose?: boolean): Promise<boolean>;
47
+ /**
48
+ * restuisce VERO se il pacchetto è installato
49
+ * @param debPackage
50
+ */
51
+ static packageIsInstalled(debPackage: string): boolean;
52
+ /**
53
+ * Install the package packageName
54
+ * @param packageName {string} Pacchetto Debian da installare
55
+ * @returns {boolean} True if success
56
+ */
57
+ static packageInstall(packageName: string): Promise<boolean>;
58
+ /**
59
+ * restuisce VERO se il pacchetto è installato
60
+ * @param debPackage
61
+ */
62
+ static packageAptAvailable(packageName: string): Promise<boolean>;
63
+ static packageAptLast(debPackage: string): Promise<string>;
64
+ }
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ /**
3
+ * penguins-eggs-v8
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const tslib_1 = require("tslib");
10
+ const node_fs_1 = (0, tslib_1.__importDefault)(require("node:fs"));
11
+ const shelljs_1 = (0, tslib_1.__importDefault)(require("shelljs"));
12
+ const utils_1 = (0, tslib_1.__importDefault)(require("../utils"));
13
+ const pacman_1 = (0, tslib_1.__importDefault)(require("../pacman"));
14
+ const utils_2 = require("../../lib/utils");
15
+ const dependencies_1 = require("../../lib/dependencies");
16
+ /**
17
+ * Utils: general porpourse utils
18
+ * @remarks all the utilities
19
+ */
20
+ class Debian {
21
+ /**
22
+ * check if it's installed xorg
23
+ * @returns true if xorg is installed
24
+ */
25
+ static isInstalledXorg() {
26
+ let test = 'xserver-xorg-core';
27
+ if (pacman_1.default.distro().versionLike === 'bionic') {
28
+ /**
29
+ * BUT_ on Ubuntu bionic we have:
30
+ * xserver-xorg-core-hwe-18.04
31
+ */
32
+ test = 'xserver-xorg-core-hwe-18.04';
33
+ }
34
+ return this.packageIsInstalled(test);
35
+ }
36
+ /**
37
+ * check if it's installed wayland
38
+ * @returns true if wayland
39
+ */
40
+ static isInstalledWayland() {
41
+ return this.packageIsInstalled('xwayland');
42
+ }
43
+ /**
44
+ * Crea array packages dei pacchetti da installare
45
+ */
46
+ static packages(remove = false, verbose = false) {
47
+ let packages = [];
48
+ const toInstall = [];
49
+ const toRemove = [];
50
+ if (!utils_1.default.isDebPackage()) {
51
+ for (const elem of dependencies_1.depCommon) {
52
+ if (!this.packageIsInstalled(elem)) {
53
+ toInstall.push(elem);
54
+ }
55
+ else {
56
+ toRemove.push(elem);
57
+ }
58
+ }
59
+ const arch = utils_1.default.machineArch();
60
+ for (const dep of dependencies_1.depArch) {
61
+ if (dep.arch.includes(arch)) {
62
+ if (!this.packageIsInstalled(dep.package)) {
63
+ toInstall.push(dep.package);
64
+ }
65
+ else {
66
+ toRemove.push(dep.package);
67
+ }
68
+ }
69
+ }
70
+ }
71
+ // Version e initType da controllare
72
+ const version = pacman_1.default.distro().versionLike;
73
+ for (const dep of dependencies_1.depVersions) {
74
+ if (dep.versions.includes(version)) {
75
+ if (!this.packageIsInstalled(dep.package)) {
76
+ toInstall.push(dep.package);
77
+ }
78
+ else {
79
+ toRemove.push(dep.package);
80
+ }
81
+ }
82
+ }
83
+ const initType = shelljs_1.default.exec('ps --no-headers -o comm 1', { silent: !verbose }).trim();
84
+ for (const dep of dependencies_1.depInit) {
85
+ if (dep.init.includes(initType)) {
86
+ if (!this.packageIsInstalled(dep.package)) {
87
+ toInstall.push(dep.package);
88
+ }
89
+ else {
90
+ toRemove.push(dep.package);
91
+ }
92
+ }
93
+ }
94
+ packages = toInstall;
95
+ if (remove) {
96
+ packages = toRemove;
97
+ }
98
+ return packages;
99
+ }
100
+ /**
101
+ *
102
+ */
103
+ static async prerequisitesInstall(verbose = true) {
104
+ const echo = utils_1.default.setEcho(verbose);
105
+ const retVal = false;
106
+ await (0, utils_2.exec)(`apt-get install --yes ${(0, dependencies_1.array2spaced)(this.packages(false, verbose))}`, echo);
107
+ if (!pacman_1.default.isInstalledGui()) {
108
+ /**
109
+ * live-config-getty-generator
110
+ *
111
+ * Viene rimosso in naked, altrimenti non funziona il login
112
+ * generando un errore getty.
113
+ * Sarebbe utile individuarne le ragioni, forse rompe anche sul desktop
114
+ * non permettendo di cambiare terminale e loggarsi
115
+ *
116
+ * A che serve?
117
+ */
118
+ const fileToRemove = '/lib/systemd/system-generators/live-config-getty-generator';
119
+ if (node_fs_1.default.existsSync(fileToRemove)) {
120
+ await (0, utils_2.exec)(`rm ${fileToRemove}`);
121
+ }
122
+ }
123
+ return retVal;
124
+ }
125
+ /**
126
+ * Torna verso se calamares è installato
127
+ */
128
+ static async calamaresCheck() {
129
+ let installed = true;
130
+ for (const i in this.debs4calamares) {
131
+ if (!this.packageIsInstalled(this.debs4calamares[i])) {
132
+ installed = false;
133
+ break;
134
+ }
135
+ }
136
+ return installed;
137
+ }
138
+ /**
139
+ *
140
+ */
141
+ static async calamaresInstall(verbose = true) {
142
+ const echo = utils_1.default.setEcho(verbose);
143
+ try {
144
+ await (0, utils_2.exec)('apt-get update --yes', echo);
145
+ }
146
+ catch {
147
+ utils_1.default.error('Debian.calamaresInstall() apt-get update --yes '); // + e.error as string)
148
+ }
149
+ try {
150
+ await (0, utils_2.exec)(`apt-get install --yes ${(0, dependencies_1.array2spaced)(this.debs4calamares)}`, echo);
151
+ }
152
+ catch {
153
+ utils_1.default.error(`Debian.calamaresInstall() apt-get install --yes ${(0, dependencies_1.array2spaced)(this.debs4calamares)}`); // + e.error)
154
+ }
155
+ }
156
+ /**
157
+ * calamaresPolicies
158
+ */
159
+ static async calamaresPolicies() {
160
+ const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
161
+ await (0, utils_2.exec)(`sed -i 's/auth_admin/yes/' ${policyFile}`);
162
+ }
163
+ /**
164
+ *
165
+ */
166
+ static async calamaresRemove(verbose = true) {
167
+ const echo = utils_1.default.setEcho(verbose);
168
+ const retVal = false;
169
+ if (node_fs_1.default.existsSync('/etc/calamares')) {
170
+ await (0, utils_2.exec)('rm /etc/calamares -rf', echo);
171
+ }
172
+ await (0, utils_2.exec)('apt-get remove --purge --yes calamares', echo);
173
+ await (0, utils_2.exec)('apt-get autoremove --yes', echo);
174
+ return retVal;
175
+ }
176
+ /**
177
+ * restuisce VERO se il pacchetto è installato
178
+ * @param debPackage
179
+ */
180
+ static packageIsInstalled(debPackage) {
181
+ let installed = false;
182
+ const cmd = `/usr/bin/dpkg -s ${debPackage} | grep Status:`;
183
+ const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
184
+ if (stdout === 'Status: install ok installed') {
185
+ installed = true;
186
+ }
187
+ return installed;
188
+ }
189
+ /**
190
+ * Install the package packageName
191
+ * @param packageName {string} Pacchetto Debian da installare
192
+ * @returns {boolean} True if success
193
+ */
194
+ static async packageInstall(packageName) {
195
+ let retVal = false;
196
+ if (shelljs_1.default.exec(`/usr/bin/apt-get install -y ${packageName}`, { silent: true }) === '0') {
197
+ retVal = true;
198
+ }
199
+ return retVal;
200
+ }
201
+ /**
202
+ * restuisce VERO se il pacchetto è installato
203
+ * @param debPackage
204
+ */
205
+ static async packageAptAvailable(packageName) {
206
+ let available = false;
207
+ const cmd = `apt-cache show ${packageName} | grep Package:`;
208
+ const test = `Package: ${packageName}`;
209
+ const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
210
+ if (stdout === test) {
211
+ available = true;
212
+ }
213
+ return available;
214
+ }
215
+ static async packageAptLast(debPackage) {
216
+ let version = '';
217
+ const cmd = `apt-cache show ${debPackage} | grep Version:`;
218
+ const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
219
+ version = stdout.slice(9);
220
+ // console.log('===================================')
221
+ // console.log('[' + version + ']')
222
+ // console.log('===================================')
223
+ return version;
224
+ }
225
+ }
226
+ exports.default = Debian;
227
+ Debian.debs4calamares = ['calamares', 'qml-module-qtquick2', 'qml-module-qtquick-controls'];
@@ -0,0 +1,63 @@
1
+ /**
2
+ * penguins-eggs-v8
3
+ * author: Piero Proietti
4
+ * email: piero.proietti@gmail.com
5
+ * license: MIT
6
+ */
7
+ /**
8
+ * Utils: general porpourse utils
9
+ * @remarks all the utilities
10
+ */
11
+ export default class Fedora {
12
+ static packs4calamares: string[];
13
+ /**
14
+ * check if it's installed xorg
15
+ * @returns true if xorg is installed
16
+ */
17
+ static isInstalledXorg(): boolean;
18
+ /**
19
+ * check if it's installed wayland
20
+ * @returns true if wayland
21
+ */
22
+ static isInstalledWayland(): boolean;
23
+ /**
24
+ * Crea array pacchetti da installare/rimuovere
25
+ */
26
+ static packages(remove?: boolean, verbose?: boolean): string[];
27
+ /**
28
+ *
29
+ */
30
+ static prerequisitesInstall(verbose?: boolean): Promise<boolean>;
31
+ /**
32
+ * Torna verso se calamares è installato
33
+ */
34
+ static calamaresCheck(): Promise<boolean>;
35
+ /**
36
+ *
37
+ */
38
+ static calamaresInstall(verbose?: boolean): Promise<void>;
39
+ /**
40
+ * calamaresPolicies
41
+ */
42
+ static calamaresPolicies(): Promise<void>;
43
+ /**
44
+ *
45
+ */
46
+ static calamaresRemove(verbose?: boolean): Promise<boolean>;
47
+ /**
48
+ * restuisce VERO se il pacchetto è installato
49
+ * @param packageName
50
+ */
51
+ static packageIsInstalled(packageName: string): boolean;
52
+ /**
53
+ * Install the package packageName
54
+ * @param packageName {string} Pacchetto da installare
55
+ * @returns {boolean} True if success
56
+ */
57
+ static packageInstall(packageName: string): Promise<boolean>;
58
+ /**
59
+ * restuisce VERO se il pacchetto è installato
60
+ * @param packageName
61
+ */
62
+ static packageAvailable(packageName: string): Promise<boolean>;
63
+ }
@@ -0,0 +1,169 @@
1
+ "use strict";
2
+ /**
3
+ * penguins-eggs-v8
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ const tslib_1 = require("tslib");
10
+ const node_fs_1 = (0, tslib_1.__importDefault)(require("node:fs"));
11
+ const shelljs_1 = (0, tslib_1.__importDefault)(require("shelljs"));
12
+ const utils_1 = (0, tslib_1.__importDefault)(require("../utils"));
13
+ const pacman_1 = (0, tslib_1.__importDefault)(require("../pacman"));
14
+ const dependencies_1 = require("../../lib/dependencies");
15
+ const utils_2 = require("../../lib/utils");
16
+ /**
17
+ * Utils: general porpourse utils
18
+ * @remarks all the utilities
19
+ */
20
+ class Fedora {
21
+ /**
22
+ * check if it's installed xorg
23
+ * @returns true if xorg is installed
24
+ */
25
+ static isInstalledXorg() {
26
+ return this.packageIsInstalled('xorg-x11-server-Xorg.x86_64');
27
+ }
28
+ /**
29
+ * check if it's installed wayland
30
+ * @returns true if wayland
31
+ */
32
+ static isInstalledWayland() {
33
+ return this.packageIsInstalled('xorg-x11-server-Xwayland*');
34
+ }
35
+ /**
36
+ * Crea array pacchetti da installare/rimuovere
37
+ */
38
+ static packages(remove = false, verbose = false) {
39
+ // Preso qualcosa da livecd-tools
40
+ const packages = ['xorriso', 'xz-lzma-compat', 'syslinux', 'squashfs-tools'];
41
+ const toInstall = [];
42
+ const toRemove = [];
43
+ for (const elem of packages) {
44
+ if (!this.packageIsInstalled(elem)) {
45
+ toInstall.push(elem);
46
+ }
47
+ else {
48
+ toRemove.push(elem);
49
+ }
50
+ }
51
+ if (remove) {
52
+ return toRemove;
53
+ }
54
+ return toInstall;
55
+ }
56
+ /**
57
+ *
58
+ */
59
+ static async prerequisitesInstall(verbose = true) {
60
+ const echo = utils_1.default.setEcho(verbose);
61
+ const retVal = false;
62
+ await (0, utils_2.exec)(`dnf install ${(0, dependencies_1.array2spaced)(this.packages(false, verbose))}`, echo);
63
+ if (!pacman_1.default.isInstalledGui()) {
64
+ /**
65
+ * live-config-getty-generator
66
+ *
67
+ * Viene rimosso in naked, altrimenti non funziona il login
68
+ * generando un errore getty.
69
+ * Sarebbe utile individuarne le ragioni, forse rompe anche sul desktop
70
+ * non permettendo di cambiare terminale e loggarsi
71
+ *
72
+ * A che serve?
73
+ */
74
+ const fileToRemove = '/lib/systemd/system-generators/live-config-getty-generator';
75
+ if (node_fs_1.default.existsSync(fileToRemove)) {
76
+ await (0, utils_2.exec)(`rm ${fileToRemove}`);
77
+ }
78
+ }
79
+ return retVal;
80
+ }
81
+ /**
82
+ * Torna verso se calamares è installato
83
+ */
84
+ static async calamaresCheck() {
85
+ let installed = true;
86
+ for (const i in this.packs4calamares) {
87
+ if (!this.packageIsInstalled(this.packs4calamares[i])) {
88
+ installed = false;
89
+ break;
90
+ }
91
+ }
92
+ return installed;
93
+ }
94
+ /**
95
+ *
96
+ */
97
+ static async calamaresInstall(verbose = true) {
98
+ const echo = utils_1.default.setEcho(verbose);
99
+ try {
100
+ await (0, utils_2.exec)(`dnf install ${(0, dependencies_1.array2spaced)(this.packs4calamares)}`, echo);
101
+ }
102
+ catch {
103
+ utils_1.default.error(`Fedora.calamaresInstall() pacman -Sy ${(0, dependencies_1.array2spaced)(this.packs4calamares)}`); // + e.error)
104
+ }
105
+ }
106
+ /**
107
+ * calamaresPolicies
108
+ */
109
+ static async calamaresPolicies() {
110
+ const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
111
+ /**
112
+ * Su fedora occorre vedere come fare!
113
+ */
114
+ // await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`)
115
+ }
116
+ /**
117
+ *
118
+ */
119
+ static async calamaresRemove(verbose = true) {
120
+ const echo = utils_1.default.setEcho(verbose);
121
+ const retVal = false;
122
+ if (node_fs_1.default.existsSync('/etc/calamares')) {
123
+ await (0, utils_2.exec)('rm /etc/calamares -rf', echo);
124
+ }
125
+ await (0, utils_2.exec)('yay -Rns calamares', echo);
126
+ return retVal;
127
+ }
128
+ /**
129
+ * restuisce VERO se il pacchetto è installato
130
+ * @param packageName
131
+ */
132
+ static packageIsInstalled(packageName) {
133
+ let installed = false;
134
+ // rpm -qa | grep -i nano
135
+ const cmd = `/usr/bin/dnf list --installed ${packageName}`;
136
+ const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
137
+ if (stdout.includes(packageName)) {
138
+ installed = true;
139
+ }
140
+ return installed;
141
+ }
142
+ /**
143
+ * Install the package packageName
144
+ * @param packageName {string} Pacchetto da installare
145
+ * @returns {boolean} True if success
146
+ */
147
+ static async packageInstall(packageName) {
148
+ let retVal = false;
149
+ if (shelljs_1.default.exec(`/usr/bin/dnf install ${packageName}`, { silent: true }) === '0') {
150
+ retVal = true;
151
+ }
152
+ return retVal;
153
+ }
154
+ /**
155
+ * restuisce VERO se il pacchetto è installato
156
+ * @param packageName
157
+ */
158
+ static async packageAvailable(packageName) {
159
+ let available = false;
160
+ const cmd = `/usr/bin/dnf list --available ${packageName} | grep Package:`;
161
+ const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
162
+ if (stdout.includes(packageName)) {
163
+ available = true;
164
+ }
165
+ return available;
166
+ }
167
+ }
168
+ exports.default = Fedora;
169
+ Fedora.packs4calamares = ['calamares'];