penguins-eggs 8.1.0 → 9.0.9

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 (317) hide show
  1. package/README.md +256 -167
  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/addons/blissos/theme/livecd/README.md +23 -0
  15. package/{conf/distros/buster/grub/theme.cfg → addons/blissos/theme/livecd/grub.theme.cfg} +10 -10
  16. package/{conf/distros/buster/isolinux/stdmenu.template.cfg → addons/blissos/theme/livecd/isolinux.theme.cfg} +4 -0
  17. package/addons/blissos/theme/livecd/splash.png +0 -0
  18. package/addons/eggs/adapt/applications/eggs-adapt.desktop +1 -1
  19. package/addons/eggs/theme/livecd/README.md +21 -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/neon/theme/livecd/README.md +23 -0
  24. package/addons/{ufficiozero/theme/livecd/theme.cfg → neon/theme/livecd/grub.theme.cfg} +13 -12
  25. package/addons/neon/theme/livecd/isolinux.theme.cfg +46 -0
  26. package/addons/neon/theme/livecd/splash.pcx +0 -0
  27. package/addons/neon/theme/livecd/splash.png +0 -0
  28. package/addons/templates/grub.template +28 -0
  29. package/addons/templates/isolinux.template +29 -0
  30. package/addons/ufficiozero/theme/applications/install-debian.desktop +17 -2
  31. package/assets/penguins-minstall.desktop +95 -0
  32. package/bin/dev +17 -0
  33. package/bin/dev.cmd +3 -0
  34. package/bin/run +2 -4
  35. package/conf/distros/bionic/calamares/settings.yml +5 -5
  36. package/conf/distros/bookworm/README.md +9 -0
  37. package/conf/distros/bullseye/README.md +6 -8
  38. package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.sh +1 -1
  39. package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.working.sh +1 -1
  40. package/conf/distros/buster/calamares/modules/shellprocess_eggs-cleanup.yml +6 -0
  41. package/conf/distros/buster/calamares/settings.yml +14 -3
  42. package/conf/distros/chimaera/README.md +3 -0
  43. package/conf/distros/daedalus/README.md +3 -0
  44. package/conf/distros/focal/calamares/settings.yml +2 -2
  45. package/conf/distros/hirsute/README.md +1 -1
  46. package/conf/distros/impish/README.md +9 -0
  47. package/conf/distros/jammy/README.md +9 -0
  48. package/conf/distros/jessie/krill/krill-modules/sources-yolk/sources-yolk.sh +1 -1
  49. package/conf/distros/rolling/README.md +3 -0
  50. package/conf/distros/rolling/calamares/calamares-modules/remove-link/module.yml +9 -0
  51. package/conf/distros/rolling/calamares/calamares-modules/remove-link/remove-link.sh +3 -0
  52. package/conf/distros/rolling/calamares/modules/displaymanager.yml +22 -0
  53. package/conf/distros/rolling/calamares/modules/finished.yml +6 -0
  54. package/conf/distros/rolling/calamares/modules/fstab.yml +13 -0
  55. package/conf/distros/rolling/calamares/modules/locale.yml +97 -0
  56. package/conf/distros/rolling/calamares/modules/luksopenswaphookcfg.yml +6 -0
  57. package/conf/distros/rolling/calamares/modules/mount.yml +38 -0
  58. package/conf/distros/rolling/calamares/modules/packages.yml +8 -0
  59. package/conf/distros/rolling/calamares/modules/removeuser.yml +15 -0
  60. package/conf/distros/rolling/calamares/modules/unpackfs.yml +7 -0
  61. package/conf/distros/rolling/calamares/modules/users.yml +20 -0
  62. package/conf/distros/rolling/calamares/modules/welcome.yml +19 -0
  63. package/conf/distros/{bullseye → rolling}/calamares/settings.yml +17 -12
  64. package/conf/distros/thirtyfive/README.md +3 -0
  65. package/conf/distros/tumbleweed/README.md +3 -0
  66. package/conf/eggs.yaml +3 -3
  67. package/conf/exclude.list +12 -7
  68. package/conf/tools.yaml +1 -1
  69. package/lib/classes/basket.js +24 -20
  70. package/lib/classes/bleach.js +19 -19
  71. package/lib/classes/compressors.js +15 -14
  72. package/lib/classes/daddy.js +44 -31
  73. package/lib/classes/distro.d.ts +3 -2
  74. package/lib/classes/distro.js +313 -173
  75. package/lib/classes/family/archlinux.d.ts +69 -0
  76. package/lib/classes/family/archlinux.js +182 -0
  77. package/lib/classes/family/debian.d.ts +64 -0
  78. package/lib/classes/family/debian.js +227 -0
  79. package/lib/classes/family/fedora.d.ts +63 -0
  80. package/lib/classes/family/fedora.js +169 -0
  81. package/lib/classes/family/suse.d.ts +63 -0
  82. package/lib/classes/family/suse.js +169 -0
  83. package/lib/classes/i18n.js +16 -16
  84. package/lib/classes/incubation/branding.js +5 -4
  85. package/lib/classes/incubation/distros/bionic.js +1 -2
  86. package/lib/classes/incubation/distros/buster.js +2 -2
  87. package/lib/classes/incubation/distros/focal.js +3 -2
  88. package/lib/classes/incubation/distros/jessie.js +1 -25
  89. package/lib/classes/incubation/distros/{bullseye.d.ts → rolling.d.ts} +3 -3
  90. package/lib/classes/incubation/distros/{bullseye.js → rolling.js} +15 -16
  91. package/lib/classes/incubation/fisherman-helper/displaymanager.js +2 -7
  92. package/lib/classes/incubation/fisherman-helper/packages.js +31 -32
  93. package/lib/classes/incubation/fisherman.d.ts +17 -17
  94. package/lib/classes/incubation/fisherman.js +84 -71
  95. package/lib/classes/incubation/incubator.js +116 -74
  96. package/lib/classes/incubation/installer.d.ts +2 -2
  97. package/lib/classes/incubation/installer.js +6 -20
  98. package/lib/classes/initrd.d.ts +1 -1
  99. package/lib/classes/initrd.js +37 -30
  100. package/lib/classes/krill_install.js +155 -138
  101. package/lib/classes/krill_prepare.d.ts +6 -2
  102. package/lib/classes/krill_prepare.js +72 -60
  103. package/lib/classes/n8.js +6 -11
  104. package/lib/classes/ovary.d.ts +29 -11
  105. package/lib/classes/ovary.js +750 -611
  106. package/lib/classes/pacman.d.ts +55 -56
  107. package/lib/classes/pacman.js +520 -419
  108. package/lib/classes/pve-live.js +6 -6
  109. package/lib/classes/settings.js +47 -56
  110. package/lib/classes/systemctl.d.ts +6 -6
  111. package/lib/classes/systemctl.js +7 -7
  112. package/lib/classes/tools.d.ts +1 -1
  113. package/lib/classes/tools.js +10 -10
  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/bro.d.ts +14 -0
  121. package/lib/commands/bro.js +31 -0
  122. package/lib/commands/calamares.d.ts +7 -7
  123. package/lib/commands/calamares.js +22 -54
  124. package/lib/commands/config.d.ts +5 -5
  125. package/lib/commands/config.js +68 -74
  126. package/lib/commands/dad.d.ts +5 -5
  127. package/lib/commands/dad.js +11 -11
  128. package/lib/commands/export/deb.d.ts +8 -8
  129. package/lib/commands/export/deb.js +16 -16
  130. package/lib/commands/export/docs.d.ts +2 -2
  131. package/lib/commands/export/docs.js +9 -9
  132. package/lib/commands/export/iso.d.ts +4 -4
  133. package/lib/commands/export/iso.js +12 -17
  134. package/lib/commands/info.d.ts +9 -3
  135. package/lib/commands/info.js +14 -164
  136. package/lib/commands/install.d.ts +5 -4
  137. package/lib/commands/install.js +25 -15
  138. package/lib/commands/kill.d.ts +3 -3
  139. package/lib/commands/kill.js +11 -13
  140. package/lib/commands/mom.d.ts +2 -2
  141. package/lib/commands/mom.js +8 -8
  142. package/lib/commands/produce.d.ts +14 -14
  143. package/lib/commands/produce.js +48 -46
  144. package/lib/commands/remove.d.ts +5 -5
  145. package/lib/commands/remove.js +46 -57
  146. package/lib/commands/tools/clean.d.ts +3 -3
  147. package/lib/commands/tools/clean.js +10 -12
  148. package/lib/commands/tools/locales.d.ts +4 -4
  149. package/lib/commands/tools/locales.js +8 -8
  150. package/lib/commands/tools/skel.d.ts +4 -4
  151. package/lib/commands/tools/skel.js +10 -15
  152. package/lib/commands/tools/stat.d.ts +7 -4
  153. package/lib/commands/tools/stat.js +20 -13
  154. package/lib/commands/tools/yolk.d.ts +3 -3
  155. package/lib/commands/tools/yolk.js +13 -13
  156. package/lib/commands/update.d.ts +5 -10
  157. package/lib/commands/update.js +56 -72
  158. package/lib/components/elements/information.d.ts +4 -0
  159. package/lib/components/elements/information.js +166 -0
  160. package/lib/components/elements/steps.js +1 -1
  161. package/lib/components/elements/title.js +7 -10
  162. package/lib/components/finished.js +5 -5
  163. package/lib/components/install.js +5 -5
  164. package/lib/components/keyboard.js +5 -5
  165. package/lib/components/location.js +5 -5
  166. package/lib/components/network.js +5 -5
  167. package/lib/components/partitions.d.ts +2 -1
  168. package/lib/components/partitions.js +9 -7
  169. package/lib/components/summary.js +5 -5
  170. package/lib/components/users.js +6 -6
  171. package/lib/components/welcome.js +6 -6
  172. package/lib/index.d.ts +1 -1
  173. package/lib/index.js +2 -2
  174. package/lib/interfaces/i-distro.d.ts +3 -2
  175. package/lib/interfaces/i-krill.d.ts +1 -0
  176. package/lib/interfaces/i-settings.d.ts +2 -2
  177. package/lib/lib/cli-autologin.d.ts +19 -2
  178. package/lib/lib/cli-autologin.js +114 -39
  179. package/lib/lib/dependencies.d.ts +9 -6
  180. package/lib/lib/dependencies.js +22 -13
  181. package/lib/lib/get_address.js +2 -2
  182. package/lib/lib/get_dns.js +2 -2
  183. package/lib/lib/get_domain.js +2 -2
  184. package/lib/lib/get_gateway.js +2 -2
  185. package/lib/lib/get_hostname.js +2 -2
  186. package/lib/lib/get_netmask.js +2 -2
  187. package/lib/lib/get_password.js +3 -2
  188. package/lib/lib/get_root_password.js +2 -2
  189. package/lib/lib/get_userfullname.js +2 -2
  190. package/lib/lib/get_username.js +2 -2
  191. package/lib/lib/select_address_type.js +2 -5
  192. package/lib/lib/select_filesystem_type.js +5 -14
  193. package/lib/lib/select_installation_device.js +3 -3
  194. package/lib/lib/select_interface.js +1 -1
  195. package/lib/lib/select_keyboard_layout.js +2 -10
  196. package/lib/lib/select_languages.js +2 -2
  197. package/lib/lib/select_regions.js +1 -12
  198. package/lib/lib/select_user_swap_choice.js +4 -4
  199. package/lib/lib/select_zones.js +483 -62
  200. package/manpages/doc/man/eggs.html +508 -0
  201. package/manpages/doc/man/eggs.roll.gz +0 -0
  202. package/oclif.manifest.json +1 -1
  203. package/package.json +115 -107
  204. package/scripts/_eggs +246 -0
  205. package/scripts/bros/waydroid-helper.sh +92 -0
  206. package/scripts/eggs.bash +67 -21
  207. package/scripts/mom-cli.sh +6 -5
  208. package/scripts/not-used/eggs-cleanup.sh +7 -0
  209. package/scripts/not-used/install-eggs-ppa.sh +2 -0
  210. package/scripts/{mkinitramfs → not-used/mkinitramfs} +0 -0
  211. package/scripts/{pve-live.sh → not-used/pve-live.sh} +0 -0
  212. package/addons/debian/theme/applications/install-debian.desktop +0 -13
  213. package/addons/debian/theme/artwork/install-debian.png +0 -0
  214. package/addons/debian/theme/branding/branding.desc +0 -27
  215. package/addons/debian/theme/branding/debian-logo.png +0 -0
  216. package/addons/debian/theme/branding/show.qml +0 -51
  217. package/addons/debian/theme/branding/slide1.png +0 -0
  218. package/addons/debian/theme/branding/welcome.png +0 -0
  219. package/addons/deblinux/theme/README.md +0 -16
  220. package/addons/deblinux/theme/applications/install-debian.desktop +0 -13
  221. package/addons/deblinux/theme/calamares/branding/branding.desc +0 -23
  222. package/addons/deblinux/theme/calamares/branding/deblinux-logo.png +0 -0
  223. package/addons/deblinux/theme/calamares/branding/show.qml +0 -46
  224. package/addons/deblinux/theme/calamares/branding/slide1.png +0 -0
  225. package/addons/deblinux/theme/calamares/branding/welcome.png +0 -0
  226. package/addons/deblinux/theme/calamares/modules/partition.yml +0 -233
  227. package/addons/eggs/theme/livecd/grub.template.cfg +0 -60
  228. package/addons/eggs/theme/livecd/menu.template.cfg +0 -54
  229. package/addons/guadalinex/theme/README.md +0 -9
  230. package/addons/guadalinex/theme/applications/install-debian.desktop +0 -28
  231. package/addons/guadalinex/theme/artwork/install-debian.png +0 -0
  232. package/addons/guadalinex/theme/calamares/branding/guadalinex-logo.png +0 -0
  233. package/addons/guadalinex/theme/calamares/branding/show.qml +0 -85
  234. package/addons/guadalinex/theme/calamares/branding/slide1.png +0 -0
  235. package/addons/guadalinex/theme/calamares/branding/slide2.png +0 -0
  236. package/addons/guadalinex/theme/calamares/branding/slide3.png +0 -0
  237. package/addons/guadalinex/theme/calamares/branding/slide4.png +0 -0
  238. package/addons/guadalinex/theme/calamares/branding/slide5.png +0 -0
  239. package/addons/guadalinex/theme/calamares/branding/slide6.png +0 -0
  240. package/addons/guadalinex/theme/calamares/branding/slide7.png +0 -0
  241. package/addons/guadalinex/theme/calamares/branding/welcome.png +0 -0
  242. package/addons/guadalinex/theme/livecd/menu.template.cfg +0 -54
  243. package/addons/guadalinex/theme/livecd/splash.png +0 -0
  244. package/addons/guadalinex/theme/livecd/theme.cfg +0 -42
  245. package/addons/openos/theme/applications/Install-OpenOS-Neon_RLTS-Desktop.png +0 -0
  246. package/addons/openos/theme/applications/install-debian.desktop +0 -24
  247. package/addons/openos/theme/artwork/install-debian.png +0 -0
  248. package/addons/openos/theme/calamares/branding/branding.desc +0 -28
  249. package/addons/openos/theme/calamares/branding/openos-logo.png +0 -0
  250. package/addons/openos/theme/calamares/branding/show.qml +0 -203
  251. package/addons/openos/theme/calamares/branding/slide1.png +0 -0
  252. package/addons/openos/theme/calamares/branding/slide10.png +0 -0
  253. package/addons/openos/theme/calamares/branding/slide11.png +0 -0
  254. package/addons/openos/theme/calamares/branding/slide12.png +0 -0
  255. package/addons/openos/theme/calamares/branding/slide13.png +0 -0
  256. package/addons/openos/theme/calamares/branding/slide14.png +0 -0
  257. package/addons/openos/theme/calamares/branding/slide15.png +0 -0
  258. package/addons/openos/theme/calamares/branding/slide16.png +0 -0
  259. package/addons/openos/theme/calamares/branding/slide2.png +0 -0
  260. package/addons/openos/theme/calamares/branding/slide3.png +0 -0
  261. package/addons/openos/theme/calamares/branding/slide4.png +0 -0
  262. package/addons/openos/theme/calamares/branding/slide5.png +0 -0
  263. package/addons/openos/theme/calamares/branding/slide6.png +0 -0
  264. package/addons/openos/theme/calamares/branding/slide7.png +0 -0
  265. package/addons/openos/theme/calamares/branding/slide8.png +0 -0
  266. package/addons/openos/theme/calamares/branding/slide9.png +0 -0
  267. package/addons/openos/theme/calamares/branding/welcome.png +0 -0
  268. package/addons/openos/theme/calamares/branding.desc +0 -24
  269. package/addons/openos/theme/calamares/lang/calamares-default_ar.qm +0 -0
  270. package/addons/openos/theme/calamares/lang/calamares-default_en.qm +0 -0
  271. package/addons/openos/theme/calamares/lang/calamares-default_eo.qm +0 -0
  272. package/addons/openos/theme/calamares/lang/calamares-default_fr.qm +0 -0
  273. package/addons/openos/theme/calamares/lang/calamares-default_nl.qm +0 -0
  274. package/addons/openos/theme/calamares/modules/partition.yml +0 -233
  275. package/addons/openos/theme/livecd/grub.template.cfg +0 -60
  276. package/addons/openos/theme/livecd/menu.template.cfg +0 -54
  277. package/addons/openos/theme/livecd/splash.png +0 -0
  278. package/addons/openos/theme/livecd/theme.cfg +0 -42
  279. package/addons/pve/theme/applications/penguins-pve.desktop +0 -24
  280. package/addons/pve/theme/artwork/install-debian.png +0 -0
  281. package/addons/pve/theme/calamares/branding/branding.desc +0 -1
  282. package/addons/pve/theme/calamares/branding/pve-logo.png +0 -0
  283. package/addons/pve/theme/calamares/branding/show.qml +0 -227
  284. package/addons/pve/theme/calamares/branding/slide1.png +0 -0
  285. package/addons/pve/theme/calamares/branding/slide2.png +0 -0
  286. package/addons/pve/theme/calamares/branding/slide3.png +0 -0
  287. package/addons/pve/theme/calamares/branding/slide4.png +0 -0
  288. package/addons/pve/theme/calamares/branding/slide5.png +0 -0
  289. package/addons/pve/theme/calamares/branding/slide6.png +0 -0
  290. package/addons/pve/theme/calamares/branding/slide7.png +0 -0
  291. package/addons/pve/theme/calamares/branding/slide8.png +0 -0
  292. package/addons/pve/theme/calamares/branding/slide9.png +0 -0
  293. package/addons/pve/theme/calamares/branding/welcome.png +0 -0
  294. package/addons/pve/theme/calamares/modules/partition.yml +0 -233
  295. package/addons/pve/theme/livecd/README.md +0 -8
  296. package/addons/pve/theme/livecd/grub.template.cfg +0 -60
  297. package/addons/pve/theme/livecd/menu.template.cfg +0 -54
  298. package/addons/pve/theme/livecd/splash.png +0 -0
  299. package/addons/pve/theme/livecd/theme.cfg +0 -42
  300. package/addons/ufficiozero/theme/artwork/install-debian.png +0 -0
  301. package/addons/ufficiozero/theme/livecd/README.md +0 -8
  302. package/addons/ufficiozero/theme/livecd/grub.template.cfg +0 -60
  303. package/addons/ufficiozero/theme/livecd/menu.template.cfg +0 -54
  304. package/changelog.md +0 -130
  305. package/conf/distros/bullseye/calamares/calamares-modules/bootloader-config/bootloader-config.sh +0 -28
  306. package/conf/distros/bullseye/calamares/calamares-modules/bootloader-config/module.yml +0 -8
  307. package/conf/distros/buster/grub/grub.template.cfg +0 -58
  308. package/conf/distros/buster/grub/loopback.cfg +0 -1
  309. package/conf/distros/buster/isolinux/isolinux.template.cfg +0 -8
  310. package/conf/distros/buster/isolinux/menu.template.cfg +0 -56
  311. package/conf/distros/focal/grub/grub.template.cfg +0 -67
  312. package/conf/distros/focal/isolinux/menu.template.cfg +0 -54
  313. package/lib/classes/incubation/distros/beowulf.d.ts +0 -30
  314. package/lib/classes/incubation/distros/beowulf.js +0 -69
  315. package/lib/classes/krill_install_compare.d.ts +0 -200
  316. package/lib/classes/krill_install_compare.js +0 -1110
  317. package/manpages/doc/man/eggs.1.gz +0 -0
@@ -7,15 +7,18 @@
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  const tslib_1 = require("tslib");
10
- const dependencies_1 = require("../lib/dependencies");
11
- const fs = require("fs");
12
- const path = require("path");
13
- const shx = require("shelljs");
14
- const utils_1 = tslib_1.__importDefault(require("./utils"));
15
- const distro_1 = tslib_1.__importDefault(require("./distro"));
16
- const settings_1 = tslib_1.__importDefault(require("./settings"));
17
- const child_process_1 = require("child_process");
18
- const exec = require('../lib/utils').exec;
10
+ const node_fs_1 = (0, tslib_1.__importDefault)(require("node:fs"));
11
+ const node_path_1 = (0, tslib_1.__importDefault)(require("node:path"));
12
+ const shelljs_1 = (0, tslib_1.__importDefault)(require("shelljs"));
13
+ const utils_1 = (0, tslib_1.__importDefault)(require("./utils"));
14
+ const distro_1 = (0, tslib_1.__importDefault)(require("./distro"));
15
+ const settings_1 = (0, tslib_1.__importDefault)(require("./settings"));
16
+ const node_child_process_1 = require("node:child_process");
17
+ const utils_2 = require("../lib/utils");
18
+ const debian_1 = (0, tslib_1.__importDefault)(require("./family/debian"));
19
+ const fedora_1 = (0, tslib_1.__importDefault)(require("./family/fedora"));
20
+ const archlinux_1 = (0, tslib_1.__importDefault)(require("./family/archlinux"));
21
+ const suse_1 = (0, tslib_1.__importDefault)(require("./family/suse"));
19
22
  const config_file = '/etc/penguins-eggs.d/eggs.yaml';
20
23
  const config_tools = '/etc/penguins-eggs.d/tools.yaml';
21
24
  /**
@@ -23,82 +26,163 @@ const config_tools = '/etc/penguins-eggs.d/tools.yaml';
23
26
  * @remarks all the utilities
24
27
  */
25
28
  class Pacman {
26
- /**
27
- *
28
- */
29
29
  constructor() {
30
30
  this.distro = {};
31
31
  this.remix = {};
32
- this.settings = {};
33
- const versionLike = this.distro.versionLike;
34
32
  }
35
33
  /**
36
34
  *
37
35
  * @returns
38
36
  */
39
- static versionLike() {
37
+ static distro() {
40
38
  const remix = {};
41
39
  const distro = new distro_1.default(remix);
42
- return distro.versionLike;
40
+ return distro;
41
+ }
42
+ static whichGrubIsInstalled() {
43
+ let grubInstalled = '';
44
+ if (this.distro().familyId === 'debian') {
45
+ if (this.packageIsInstalled('grub-common')) {
46
+ grubInstalled = 'grub';
47
+ }
48
+ }
49
+ else if (this.distro().familyId === 'fedora') {
50
+ if (this.packageIsInstalled('grub2-common.noarch')) {
51
+ grubInstalled = 'grub2';
52
+ }
53
+ }
54
+ else if (this.distro().familyId === 'archlinux') {
55
+ if (this.packageIsInstalled('grub')) {
56
+ grubInstalled = 'grub';
57
+ }
58
+ }
59
+ else if (this.distro().familyId === 'suse' && this.packageIsInstalled('grub2')) {
60
+ grubInstalled = 'grub2';
61
+ }
62
+ return grubInstalled;
63
+ }
64
+ /**
65
+ * check if it's installed xorg
66
+ * @returns true if xorg is installed
67
+ */
68
+ static isInstalledXorg() {
69
+ let installed = false;
70
+ if (this.distro().familyId === 'debian') {
71
+ if (debian_1.default.isInstalledXorg()) {
72
+ installed = true;
73
+ }
74
+ }
75
+ else if (this.distro().familyId === 'fedora') {
76
+ if (fedora_1.default.isInstalledXorg()) {
77
+ installed = true;
78
+ }
79
+ }
80
+ else if (this.distro().familyId === 'archlinux') {
81
+ if (archlinux_1.default.isInstalledXorg()) {
82
+ installed = true;
83
+ }
84
+ }
85
+ else if (this.distro().familyId === 'suse' && suse_1.default.isInstalledXorg()) {
86
+ installed = true;
87
+ }
88
+ return installed;
89
+ }
90
+ /**
91
+ * check if it's installed wayland
92
+ * @returns true if wayland
93
+ */
94
+ static isInstalledWayland() {
95
+ let installed = false;
96
+ if (this.distro().familyId === 'debian') {
97
+ if (debian_1.default.isInstalledWayland()) {
98
+ installed = true;
99
+ }
100
+ }
101
+ else if (this.distro().familyId === 'fedora') {
102
+ if (fedora_1.default.isInstalledWayland()) {
103
+ installed = true;
104
+ }
105
+ }
106
+ else if (this.distro().familyId === 'archlinux') {
107
+ if (archlinux_1.default.isInstalledWayland()) {
108
+ installed = true;
109
+ }
110
+ }
111
+ else if (this.distro().familyId === 'suse' && suse_1.default.isInstalledWayland()) {
112
+ installed = true;
113
+ }
114
+ return installed;
115
+ }
116
+ /**
117
+ * Check se la macchina ha grub adatto ad efi
118
+ * Forse conviene spostarlo in pacman
119
+ */
120
+ static isUefi() {
121
+ let isUefi = false;
122
+ if (this.distro().familyId === 'debian') {
123
+ if (utils_1.default.machineArch() !== 'i386' && this.packageIsInstalled('grub-efi-' + utils_1.default.machineArch() + '-bin')) {
124
+ isUefi = true;
125
+ }
126
+ }
127
+ else if (Pacman.distro().familyId === 'fedora') {
128
+ isUefi = true;
129
+ }
130
+ else if (Pacman.distro().familyId === 'archlinux') {
131
+ isUefi = true;
132
+ }
133
+ else if (Pacman.distro().familyId === 'suse') {
134
+ isUefi = true;
135
+ }
136
+ return isUefi;
43
137
  }
44
138
  /**
45
- * controlla se è installato xserver-xorg-core
139
+ *
140
+ * @returns true se GUI
46
141
  */
47
- static async isXorg() {
48
- return Pacman.packageIsInstalled('xserver-xorg-core') || Pacman.packageIsInstalled('xserver-xorg-core-hwe-18.04');
142
+ static isInstalledGui() {
143
+ return this.isInstalledXorg() || this.isInstalledWayland();
49
144
  }
50
145
  /**
51
- * Constrolla se è installato wayland
146
+ * controlla se è operante xserver-xorg-core
52
147
  */
53
- static async isWayland() {
54
- return Pacman.packageIsInstalled('wayland');
148
+ static isRunningXorg() {
149
+ return process.env.XDG_SESSION_TYPE === 'x11';
55
150
  }
56
151
  /**
57
- * Check if the system is just CLI
152
+ * Constrolla se è operante wayland
58
153
  */
59
- static async isCli() {
60
- return !await this.isGui();
154
+ static isRunningWayland() {
155
+ return process.env.XDG_SESSION_TYPE === 'wayland';
61
156
  }
62
157
  /**
63
158
  * Check if the system is GUI able
64
159
  */
65
- static async isGui() {
66
- return await this.isXorg() || await this.isWayland();
160
+ static isRunningGui() {
161
+ return this.isRunningXorg() || this.isRunningWayland();
67
162
  }
68
163
  /**
69
- *
70
- * @returns
164
+ * Check if the system is just CLI
71
165
  */
72
- static guiEnabled() {
73
- let enabled = true;
74
- if (process.env.DISPLAY === '') {
75
- enabled = false;
76
- }
77
- return enabled;
166
+ static isRunningCli() {
167
+ return !this.isRunningGui();
78
168
  }
79
169
  /**
80
170
  * Crea array packages dei pacchetti da installare
81
171
  */
82
- static packages(verbose = false) {
83
- const packages = dependencies_1.depCommon;
84
- const arch = utils_1.default.machineArch();
85
- dependencies_1.depArch.forEach((dep) => {
86
- if (dep.arch.includes(arch)) {
87
- packages.push(dep.package);
88
- }
89
- });
90
- const version = Pacman.versionLike();
91
- dependencies_1.depVersions.forEach((dep) => {
92
- if (dep.versions.includes(version)) {
93
- packages.push(dep.package);
94
- }
95
- });
96
- const initType = shx.exec('ps --no-headers -o comm 1', { silent: !verbose }).trim();
97
- dependencies_1.depInit.forEach((dep) => {
98
- if (dep.init.includes(initType)) {
99
- packages.push(dep.package);
100
- }
101
- });
172
+ static packages(remove = false, verbose = false) {
173
+ let packages = [];
174
+ if (this.distro().familyId === 'debian') {
175
+ packages = debian_1.default.packages(remove, verbose);
176
+ }
177
+ else if (this.distro().familyId === 'fedora') {
178
+ packages = fedora_1.default.packages(remove, verbose);
179
+ }
180
+ else if (this.distro().familyId === 'archlinux') {
181
+ packages = archlinux_1.default.packages(remove, verbose);
182
+ }
183
+ else if (this.distro().familyId === 'suse') {
184
+ packages = suse_1.default.packages(remove, verbose);
185
+ }
102
186
  return packages;
103
187
  }
104
188
  /**
@@ -106,46 +190,9 @@ class Pacman {
106
190
  */
107
191
  static async prerequisitesCheck(verbose = false) {
108
192
  let installed = true;
109
- // Controllo depCommon e depArch SOLO se il pacchetto è npm
110
- if (utils_1.default.isNpmPackage()) {
111
- // controllo depCommon
112
- dependencies_1.depCommon.forEach(dep => {
113
- if (!this.packageIsInstalled(dep)) {
114
- installed = false;
115
- }
116
- });
117
- if (installed) {
118
- // controllo depArch
119
- const arch = utils_1.default.machineArch();
120
- dependencies_1.depArch.forEach((dep) => {
121
- if (dep.arch.includes(arch)) {
122
- if (!this.packageIsInstalled(dep.package)) {
123
- installed = false;
124
- }
125
- }
126
- });
127
- }
128
- }
129
- // Controlli da effettuare SEMPRE version e init
130
- if (installed) {
131
- const version = Pacman.versionLike();
132
- dependencies_1.depVersions.forEach((dep) => {
133
- if (dep.versions.includes(version)) {
134
- if (!this.packageIsInstalled(dep.package)) {
135
- installed = false;
136
- }
137
- }
138
- });
139
- }
140
- if (installed) {
141
- const initType = shx.exec('ps --no-headers -o comm 1', { silent: !verbose }).trim();
142
- dependencies_1.depInit.forEach((dep) => {
143
- if (dep.init.includes(initType)) {
144
- if (!this.packageIsInstalled(dep.package)) {
145
- installed = false;
146
- }
147
- }
148
- });
193
+ const packages = this.packages(false, verbose);
194
+ if (packages.length > 0) {
195
+ installed = false;
149
196
  }
150
197
  return installed;
151
198
  }
@@ -153,42 +200,19 @@ class Pacman {
153
200
  *
154
201
  */
155
202
  static async prerequisitesInstall(verbose = true) {
156
- const echo = utils_1.default.setEcho(verbose);
157
- const retVal = false;
158
- const versionLike = Pacman.versionLike();
159
- // console.log(`apt-get install --yes ${array2spaced(this.packages(verbose))}`)
160
- await exec(`apt-get install --yes ${dependencies_1.array2spaced(this.packages(verbose))}`, echo);
161
- // localization
162
- if ((versionLike === 'buster') || (versionLike === 'beowulf') || (versionLike === 'bullseye') || (versionLike === 'stretch') || (versionLike === 'jessie')) {
163
- await exec(`apt-get install --yes --no-install-recommends ${dependencies_1.array2spaced(this.packagesLocalisation(verbose))}`, echo);
164
- }
165
- if (await Pacman.isCli()) {
166
- /**
167
- * live-config-getty-generator
168
- *
169
- * Viene rimosso in naked, altrimenti non funziona il login
170
- * generando un errore getty.
171
- * Sarebbe utile individuarne le ragioni, forse rompe anche sul desktop
172
- * non permettendo di cambiare terminale e loggarsi
173
- *
174
- * A che serve?
175
- */
176
- await exec(`rm /lib/systemd/system-generators/live-config-getty-generator`);
203
+ let retVal = false;
204
+ if (this.distro().familyId === 'debian') {
205
+ retVal = await debian_1.default.prerequisitesInstall(verbose);
177
206
  }
178
- return retVal;
179
- }
180
- /**
181
- *
182
- */
183
- static async prerequisitesRemove(verbose = true) {
184
- const echo = utils_1.default.setEcho(verbose);
185
- const retVal = false;
186
- const versionLike = Pacman.versionLike();
187
- await exec(`apt-get purge --yes ${dependencies_1.array2spaced(this.filterInstalled(this.packages(verbose)))}`, echo);
188
- if ((versionLike === 'buster') || (versionLike === 'beowulf')) {
189
- await exec(`apt-get purge --yes ${dependencies_1.array2spaced(this.filterInstalled(this.packagesLocalisation(verbose)))}`, echo);
207
+ else if (this.distro().familyId === 'fedora') {
208
+ retVal = await fedora_1.default.prerequisitesInstall(verbose);
209
+ }
210
+ else if (this.distro().familyId === 'archlinux') {
211
+ retVal = await archlinux_1.default.prerequisitesInstall(verbose);
212
+ }
213
+ else if (this.distro().familyId === 'suse') {
214
+ retVal = await suse_1.default.prerequisitesInstall(verbose);
190
215
  }
191
- await exec('apt-get autoremove --yes', echo);
192
216
  return retVal;
193
217
  }
194
218
  /**
@@ -196,11 +220,17 @@ class Pacman {
196
220
  */
197
221
  static async calamaresCheck() {
198
222
  let installed = true;
199
- for (const i in this.debs4calamares) {
200
- if (!this.packageIsInstalled(this.debs4calamares[i])) {
201
- installed = false;
202
- break;
203
- }
223
+ if (this.distro().familyId === 'debian') {
224
+ installed = await debian_1.default.calamaresCheck();
225
+ }
226
+ else if (this.distro().familyId === 'fedora') {
227
+ installed = await fedora_1.default.calamaresCheck();
228
+ }
229
+ else if (this.distro().familyId === 'archlinux') {
230
+ installed = await archlinux_1.default.calamaresCheck();
231
+ }
232
+ else if (this.distro().familyId === 'suse') {
233
+ installed = await suse_1.default.calamaresCheck();
204
234
  }
205
235
  return installed;
206
236
  }
@@ -208,10 +238,8 @@ class Pacman {
208
238
  * Controlla se calamares è installabile
209
239
  * @returns
210
240
  */
211
- static calamaresAble() {
212
- const remix = {};
213
- const distro = new distro_1.default(remix);
214
- let result = distro.calamaresAble;
241
+ static isCalamaresAvailable() {
242
+ let result = this.distro().isCalamaresAvailable;
215
243
  if (process.arch === 'armel' || process.arch === 'arm64') {
216
244
  result = false;
217
245
  }
@@ -221,45 +249,64 @@ class Pacman {
221
249
  *
222
250
  */
223
251
  static async calamaresInstall(verbose = true) {
224
- const echo = utils_1.default.setEcho(verbose);
225
- if (this.isGui()) {
226
- try {
227
- await exec('apt-get update --yes', echo);
252
+ if (this.isInstalledGui()) {
253
+ if (this.distro().familyId === 'debian') {
254
+ await debian_1.default.calamaresInstall(verbose);
228
255
  }
229
- catch (e) {
230
- utils_1.default.error('Pacman.calamaresInstall() apt-get update --yes ' + e.error);
256
+ else if (this.distro().familyId === 'fedora') {
257
+ await fedora_1.default.calamaresInstall(verbose);
231
258
  }
232
- try {
233
- await exec(`apt-get install --yes ${dependencies_1.array2spaced(this.debs4calamares)}`, echo);
259
+ else if (this.distro().familyId === 'archlinux') {
260
+ await archlinux_1.default.calamaresInstall(verbose);
234
261
  }
235
- catch (e) {
236
- utils_1.default.error(`Pacman.calamaresInstall() apt-get install --yes ${dependencies_1.array2spaced(this.debs4calamares)}` + e.error);
262
+ else if (this.distro().familyId === 'suse') {
263
+ await suse_1.default.calamaresInstall(verbose);
237
264
  }
238
265
  }
239
- else {
240
- console.log("It's not possible to use calamares in a system without GUI");
266
+ }
267
+ /**
268
+ * calamaresPolicies
269
+ */
270
+ static async calamaresPolicies() {
271
+ if (this.distro().familyId === 'debian') {
272
+ await debian_1.default.calamaresPolicies();
273
+ }
274
+ else if (this.distro().familyId === 'fedora') {
275
+ await fedora_1.default.calamaresPolicies();
276
+ }
277
+ else if (this.distro().familyId === 'archlinux') {
278
+ await archlinux_1.default.calamaresPolicies();
279
+ }
280
+ else if (this.distro().familyId === 'suse') {
281
+ await suse_1.default.calamaresPolicies();
241
282
  }
242
283
  }
243
284
  /**
244
285
  *
245
286
  */
246
287
  static async calamaresRemove(verbose = true) {
247
- const echo = utils_1.default.setEcho(verbose);
248
- const retVal = false;
249
- if (fs.existsSync('/etc/calamares')) {
250
- await exec('rm /etc/calamares -rf', echo);
288
+ let retVal = false;
289
+ if (this.distro().familyId === 'debian') {
290
+ retVal = await debian_1.default.calamaresRemove(verbose);
291
+ }
292
+ else if (this.distro().familyId === 'fedora') {
293
+ retVal = await fedora_1.default.calamaresRemove(verbose);
294
+ }
295
+ else if (this.distro().familyId === 'archlinux') {
296
+ retVal = await archlinux_1.default.calamaresRemove(verbose);
297
+ }
298
+ else if (this.distro().familyId === 'suse') {
299
+ retVal = await suse_1.default.calamaresRemove(verbose);
251
300
  }
252
- await exec(`apt-get remove --purge --yes calamares`, echo);
253
- await exec('apt-get autoremove --yes', echo);
254
301
  return retVal;
255
302
  }
256
303
  /**
257
304
  * Restituisce VERO se i file di configurazione SONO presenti
258
305
  */
259
306
  static configurationCheck() {
260
- const confExists = fs.existsSync(config_file);
261
- const listExists = fs.existsSync('/usr/local/share/penguins-eggs/exclude.list');
262
- return (confExists && listExists);
307
+ const confExists = node_fs_1.default.existsSync(config_file);
308
+ const listExists = node_fs_1.default.existsSync('/usr/local/share/penguins-eggs/exclude.list');
309
+ return confExists && listExists;
263
310
  }
264
311
  /**
265
312
  * Ritorna vero se machine-id è uguale
@@ -268,10 +315,8 @@ class Pacman {
268
315
  const settings = new settings_1.default();
269
316
  await settings.load();
270
317
  const result = utils_1.default.machineId() !== settings.config.machine_id;
271
- if (verbose) {
272
- if (result) {
273
- console.log('configurationMachineNew: True');
274
- }
318
+ if (verbose && result) {
319
+ console.log('configurationMachineNew: True');
275
320
  }
276
321
  return result;
277
322
  }
@@ -298,23 +343,13 @@ class Pacman {
298
343
  config.timezone = 'Europe/Rome';
299
344
  config.pmount_fixed = false;
300
345
  const env = process.env;
301
- if (env.LANG !== undefined) {
302
- config.locales_default = env.LANG;
303
- }
304
- else {
305
- config.locales_default = 'en_US.UTF-8';
306
- }
307
- if (config.locales_default === 'en_US.UTF-8') {
308
- config.locales = ['en_US.UTF-8'];
309
- }
310
- else {
311
- config.locales = [config.locales_default, 'en_US.UTF-8'];
312
- }
346
+ config.locales_default = env.LANG !== undefined ? env.LANG : 'en_US.UTF-8';
347
+ config.locales = config.locales_default === 'en_US.UTF-8' ? ['en_US.UTF-8'] : [config.locales_default, 'en_US.UTF-8'];
313
348
  if (!this.packageIsInstalled('calamares')) {
314
349
  config.force_installer = false;
315
- console.log(`Due the lacks of calamares package set force_installer = false`);
350
+ console.log('Due the lacks of calamares package set force_installer = false');
316
351
  }
317
- if (!utils_1.default.isUefi()) {
352
+ if (!Pacman.isUefi()) {
318
353
  config.make_efi = false;
319
354
  console.log('Due the lacks of grub-efi-' + utils_1.default.machineArch() + '-bin package set make_efi = false');
320
355
  }
@@ -332,239 +367,346 @@ class Pacman {
332
367
  */
333
368
  static async configurationInstall(links = true, verbose = true) {
334
369
  const confRoot = '/etc/penguins-eggs.d';
335
- if (!fs.existsSync(confRoot)) {
336
- child_process_1.execSync(`mkdir ${confRoot}`);
370
+ if (!node_fs_1.default.existsSync(confRoot)) {
371
+ (0, node_child_process_1.execSync)(`mkdir ${confRoot}`);
337
372
  }
338
373
  const addons = `${confRoot}/addons`;
339
374
  const distros = `${confRoot}/distros`;
340
- if (fs.existsSync(addons)) {
341
- child_process_1.execSync(`rm -rf ${addons}`);
375
+ if (node_fs_1.default.existsSync(addons)) {
376
+ (0, node_child_process_1.execSync)(`rm -rf ${addons}`);
342
377
  }
343
- if (fs.existsSync(distros)) {
344
- child_process_1.execSync(`rm -rf ${distros}`);
378
+ if (node_fs_1.default.existsSync(distros)) {
379
+ (0, node_child_process_1.execSync)(`rm -rf ${distros}`);
345
380
  }
346
- child_process_1.execSync(`mkdir -p ${distros}`);
347
- shx.ln('-s', path.resolve(__dirname, '../../addons'), addons);
348
- shx.cp(path.resolve(__dirname, '../../conf/README.md'), '/etc/penguins-eggs.d/');
349
- shx.cp(path.resolve(__dirname, '../../conf/tools.yaml'), config_tools);
381
+ (0, node_child_process_1.execSync)(`mkdir -p ${distros}`);
382
+ shelljs_1.default.ln('-s', node_path_1.default.resolve(__dirname, '../../addons'), addons);
383
+ shelljs_1.default.cp(node_path_1.default.resolve(__dirname, '../../conf/README.md'), '/etc/penguins-eggs.d/');
384
+ shelljs_1.default.cp(node_path_1.default.resolve(__dirname, '../../conf/tools.yaml'), config_tools);
350
385
  // creazione del file delle esclusioni
351
- shx.mkdir('-p', '/usr/local/share/penguins-eggs/');
352
- shx.cp(path.resolve(__dirname, '../../conf/exclude.list'), '/usr/local/share/penguins-eggs');
353
- await Pacman.configurationFresh();
386
+ shelljs_1.default.mkdir('-p', '/usr/local/share/penguins-eggs/');
387
+ shelljs_1.default.cp(node_path_1.default.resolve(__dirname, '../../conf/exclude.list'), '/usr/local/share/penguins-eggs');
388
+ await this.configurationFresh();
354
389
  }
355
390
  /**
356
391
  * Rimozione dei file di configurazione
357
392
  */
358
393
  static async configurationRemove(verbose = true) {
359
394
  const echo = utils_1.default.setEcho(verbose);
360
- if (fs.existsSync('/etc/penguins-eggs.d')) {
361
- await exec('rm /etc/penguins-eggs.d -rf', echo);
395
+ if (node_fs_1.default.existsSync('/etc/penguins-eggs.d')) {
396
+ await (0, utils_2.exec)('rm /etc/penguins-eggs.d -rf', echo);
362
397
  }
363
- if (fs.existsSync('/usr/local/share/penguins-eggs/exclude.list')) {
364
- await exec('rm /usr/local/share/penguins-eggs/exclude.list', echo);
365
- }
366
- if (fs.existsSync('/etc/calamares')) {
367
- await exec('rm /etc/calamares -rf', echo);
368
- }
369
- }
370
- /**
371
- *
372
- */
373
- static distroTemplateCheck() {
374
- const versionLike = Pacman.versionLike();
375
- return fs.existsSync(`/etc/penguins-eggs.d/distros/${versionLike}`);
376
- }
377
- /**
378
- *
379
- */
380
- static async distroTemplateInstall(verbose = false) {
381
- if (verbose) {
382
- console.log('installDistroTemplate');
398
+ if (node_fs_1.default.existsSync('/usr/local/share/penguins-eggs/exclude.list')) {
399
+ await (0, utils_2.exec)('rm /usr/local/share/penguins-eggs/exclude.list', echo);
383
400
  }
384
- const rootPen = utils_1.default.rootPenguin();
385
- const versionLike = Pacman.versionLike();
386
- if (utils_1.default.isDebPackage()) {
387
- await Pacman.links4Debs(false, verbose);
401
+ if (node_fs_1.default.existsSync('/etc/calamares')) {
402
+ await (0, utils_2.exec)('rm /etc/calamares -rf', echo);
388
403
  }
389
- // L = follow links è OK da source, ora il problema è copiare i link da npm o rifarli
390
- const cmd = `cp -rL ${rootPen}/conf/distros/${versionLike} /etc/penguins-eggs.d/distros`;
391
- child_process_1.execSync(cmd);
392
404
  }
393
405
  /**
394
406
  *
395
407
  * @param verbose
396
408
  */
397
409
  static async autocompleteInstall(verbose = false) {
398
- await exec(`cp ${__dirname}/../../scripts/eggs.bash /etc/bash_completion.d/`);
399
- if (verbose) {
400
- console.log('autocomplete installed...');
410
+ if (this.distro().familyId === 'debian') {
411
+ if (Pacman.packageIsInstalled('bash-completion')) {
412
+ if (node_fs_1.default.existsSync('/usr/share/bash-completion/completions/')) {
413
+ await (0, utils_2.exec)(`cp ${__dirname}/../../scripts/eggs.bash /usr/share/bash-completion/completions/`);
414
+ }
415
+ else if (node_fs_1.default.existsSync('/etc/bash_completion.d/')) {
416
+ await (0, utils_2.exec)(`cp ${__dirname}/../../scripts/eggs.bash /etc/bash_completion.d/`);
417
+ }
418
+ }
419
+ }
420
+ else if (this.distro().familyId === 'archlinux') {
421
+ if (Pacman.packageIsInstalled('bash-completion')) {
422
+ await (0, utils_2.exec)(`cp ${__dirname}/../../scripts/eggs.bash /usr/share/bash-completion/completions/`);
423
+ }
401
424
  }
402
425
  }
403
426
  /**
404
- * Installa manPage
405
- */
427
+ * Installa manPage
428
+ */
406
429
  static async manPageInstall(verbose = false) {
407
- const man1Dir = '/usr/share/man/man1/';
408
- if (!fs.existsSync(man1Dir)) {
409
- exec(`mkdir ${man1Dir} -p`);
410
- }
411
- const manPage = path.resolve(__dirname, '../../manpages/doc/man/eggs.1.gz');
412
- if (fs.existsSync(manPage)) {
413
- exec(`cp ${manPage} ${man1Dir}`);
414
- }
415
- if (shx.exec('which mandb', { silent: true }).stdout.trim() !== '') {
416
- await exec(`mandb > /dev/null`);
417
- if (verbose) {
418
- console.log('manPage eggs installed...');
430
+ const manPageSrc = node_path_1.default.resolve(__dirname, '../../manpages/doc/man/eggs.roll.gz');
431
+ if (node_fs_1.default.existsSync(manPageSrc)) {
432
+ const man1Dir = '/usr/share/man/man1/';
433
+ if (!node_fs_1.default.existsSync(man1Dir)) {
434
+ (0, utils_2.exec)(`mkdir ${man1Dir} -p`);
435
+ }
436
+ const manPageDest = man1Dir + 'eggs.1.gz';
437
+ (0, utils_2.exec)(`cp ${manPageSrc} ${manPageDest}`);
438
+ if (shelljs_1.default.exec('which mandb', { silent: true }).stdout.trim() !== '') {
439
+ await (0, utils_2.exec)('mandb > /dev/null');
440
+ if (verbose) {
441
+ console.log('manPage eggs installed...');
442
+ }
419
443
  }
420
444
  }
421
445
  }
422
446
  /**
423
- *
424
- * @param rootPen
425
- */
426
- static async links4Debs(remove = false, verbose = false) {
427
- if (utils_1.default.isDebPackage() || !utils_1.default.isSources()) {
428
- const rootPen = utils_1.default.rootPenguin();
429
- // Debian 10 - Buster
430
- const buster = `${rootPen}/conf/distros/buster`;
431
- // Debian 11 - bullseye
432
- const bullseye = `${rootPen}/conf/distros/bullseye`;
433
- await this.ln(`${buster}/grub`, `${bullseye}/grub`, remove, verbose);
434
- await this.ln(`${buster}/isolinux`, `${bullseye}/isolinux`, remove, verbose);
435
- await this.ln(`${buster}/locales`, `${bullseye}/locales`, remove, verbose);
436
- await this.ln(`${buster}/calamares/calamares-modules/remove-link`, `${bullseye}/calamares/calamares-modules/remove-link`, remove, verbose);
437
- await this.ln(`${buster}/calamares/calamares-modules/sources-yolk`, `${bullseye}/calamares/calamares-modules/sources-yolk`, remove, verbose);
438
- await this.ln(`${buster}/calamares/calamares-modules/sources-yolk-unmount`, `${bullseye}/calamares/calamares-modules/sources-yolk-unmount`, remove, verbose);
439
- await this.ln(`${buster}/calamares/modules`, `${bullseye}/calamares/modules`, remove, verbose);
440
- // Debian 8 - jessie
441
- const jessie = `${rootPen}/conf/distros/jessie`;
442
- await this.ln(`${buster}/grub`, `${jessie}/grub`, remove, verbose);
443
- await this.ln(`${buster}/isolinux`, `${jessie}/isolinux`, remove, verbose);
444
- await this.ln(`${buster}/locales`, `${jessie}/locales`, remove, verbose);
445
- // Debian 9 - stretch
446
- const stretch = `${rootPen}/conf/distros/stretch`;
447
- await this.ln(`${buster}/grub`, `${stretch}/grub`, remove, verbose);
448
- await this.ln(`${buster}/isolinux`, `${stretch}/isolinux`, remove, verbose);
449
- await this.ln(`${buster}/locales`, `${stretch}/locales`, remove, verbose);
450
- await this.ln(`${jessie}/krill`, `${stretch}/krill`, remove, verbose);
451
- // Devuan beowulf
452
- const beowulf = `${rootPen}/conf/distros/beowulf`;
453
- await this.ln(`${buster}/grub`, `${beowulf}/grub`, remove, verbose);
454
- await this.ln(`${buster}/isolinux`, `${beowulf}/isolinux`, remove, verbose);
455
- await this.ln(`${buster}/locales`, `${beowulf}/locales`, remove, verbose);
456
- await this.ln(`${buster}/calamares`, `${beowulf}/calamares`, remove, verbose);
457
- // Ubuntu 20.04 - focal
458
- const focal = `${rootPen}/conf/distros/focal`;
459
- await this.ln(`${buster}/grub/loopback.cfg`, `${focal}/grub/loopback.cfg`, remove, verbose);
460
- await this.ln(`${buster}/grub/theme.cfg`, `${focal}/grub/theme.cfg`, remove, verbose);
461
- await this.ln(`${buster}/isolinux/isolinux.template.cfg`, `${focal}/isolinux/isolinux.template.cfg`, remove, verbose);
462
- await this.ln(`${buster}/isolinux/stdmenu.template.cfg`, `${focal}/isolinux/stdmenu.template.cfg`, remove, verbose);
463
- await this.ln(`${buster}/calamares/calamares-modules/remove-link`, `${focal}/calamares/calamares-modules/remove-link`, remove, verbose);
464
- await this.ln(`${buster}/calamares/calamares-modules/sources-yolk`, `${focal}/calamares/calamares-modules/sources-yolk`, remove, verbose);
465
- await this.ln(`${buster}/calamares/calamares-modules/sources-yolk-unmount`, `${focal}/calamares/calamares-modules/sources-yolk-unmount`, remove, verbose);
466
- await this.ln(`${buster}/calamares/modules/packages.yml`, `${focal}/calamares/modules/packages.yml`, remove, verbose);
467
- await this.ln(`${buster}/calamares/modules/removeuser.yml`, `${focal}/calamares/modules/removeuser.yml`, remove, verbose);
468
- await this.ln(`${buster}/calamares/modules/displaymanager.yml`, `${focal}/calamares/modules/displaymanager.yml`, remove, verbose);
469
- // Patch a colori
470
- // await this.ln(`${buster}/calamares/calamares-modules/bootloader-config`, `${focal}/calamares/calamares-modules/bootloader-config`, remove, verbose)
471
- // Ubuntu 18.04 - bionic
472
- const bionic = `${rootPen}/conf/distros/bionic`;
473
- await this.ln(`${focal}/grub`, `${bionic}/grub`, remove, verbose);
474
- await this.ln(`${focal}/isolinux`, `${bionic}/isolinux`, remove, verbose);
475
- await this.ln(`${buster}/calamares/calamares-modules/remove-link`, `${bionic}/calamares/calamares-modules/remove-link`, remove, verbose);
476
- await this.ln(`${buster}/calamares/calamares-modules/sources-yolk`, `${bionic}/calamares/calamares-modules/sources-yolk`, remove, verbose);
477
- await this.ln(`${buster}/calamares/calamares-modules/sources-yolk-unmount`, `${bionic}/calamares/calamares-modules/sources-yolk-unmount`, remove, verbose);
478
- await this.ln(`${buster}/calamares/modules/packages.yml`, `${bionic}/calamares/modules/packages.yml`, remove, verbose);
479
- await this.ln(`${buster}/calamares/modules/removeuser.yml`, `${bionic}/calamares/modules/removeuser.yml`, remove, verbose);
480
- await this.ln(`${buster}/calamares/modules/unpackfs.yml`, `${bionic}/calamares/modules/unpackfs.yml`, remove, verbose);
481
- await this.ln(`${buster}/calamares/modules/displaymanager.yml`, `${bionic}/calamares/modules/displaymanager.yml`, remove, verbose);
482
- // Ubuntu 20.10 groovy
483
- const groovy = `${rootPen}/conf/distros/groovy`;
484
- await this.ln(`${focal}/calamares`, `${groovy}/calamares`, remove, verbose);
485
- await this.ln(`${focal}/grub`, `${groovy}/grub`, remove, verbose);
486
- await this.ln(`${focal}/isolinux`, `${groovy}/isolinux`, remove, verbose);
487
- await this.ln(`${focal}/locale.gen.template`, `${groovy}/locale.gen.template`, remove, verbose);
488
- await this.ln(`${buster}/calamares/modules/displaymanager.yml`, `${groovy}/calamares/modules/displaymanager.yml`, remove, verbose);
489
- // Ubuntu 21.04 hirsute
490
- const hirsute = `${rootPen}/conf/distros/hirsute`;
491
- await this.ln(`${focal}/calamares`, `${hirsute}/calamares`, remove, verbose);
492
- await this.ln(`${focal}/grub`, `${hirsute}/grub`, remove, verbose);
493
- await this.ln(`${focal}/isolinux`, `${hirsute}/isolinux`, remove, verbose);
494
- await this.ln(`${focal}/locale.gen.template`, `${hirsute}/locale.gen.template`, remove, verbose);
495
- await this.ln(`${buster}/calamares/modules/displaymanager.yml`, `${hirsute}/calamares/modules/displaymanager.yml`, remove, verbose);
496
- }
447
+ * distroTemplateCheck
448
+ */
449
+ static distroTemplateCheck() {
450
+ const versionLike = this.distro().versionLike;
451
+ return node_fs_1.default.existsSync(`/etc/penguins-eggs.d/distros/${versionLike}`);
497
452
  }
498
453
  /**
499
454
  *
500
- * @param mode
501
- * @param src
502
- * @param dest
503
- * @param verbose
504
455
  */
505
- static async ln(src, dest, remove = false, verbose = false) {
506
- const rel = path.relative(dest, src).substring(3);
507
- // Cancella il symlink se esiste
508
- if (fs.existsSync(dest)) {
509
- if (verbose) {
510
- console.log(`remove ${dest}`);
511
- }
512
- fs.unlinkSync(dest);
513
- }
514
- if (!remove) {
515
- const dirname = path.dirname(dest);
516
- const basename = path.basename(dest);
517
- process.chdir(dirname);
518
- if (verbose) {
519
- console.log(`cd ${dirname}`);
520
- console.log(`ln -s ${rel} ${basename}\n`);
521
- }
522
- fs.symlinkSync(rel, basename);
456
+ static async distroTemplateInstall(verbose = false) {
457
+ if (verbose) {
458
+ console.log('distroTemplateInstall');
459
+ }
460
+ const echo = utils_1.default.setEcho(verbose);
461
+ const rootPen = utils_1.default.rootPenguin();
462
+ await (0, utils_2.exec)(`mkdir /etc/penguins-eggs.d/distros/${this.distro().versionLike}`);
463
+ /**
464
+ * Debian 10 - Buster: è il master per tutte le distro
465
+ */
466
+ const buster = `${rootPen}/conf/distros/buster`;
467
+ /**
468
+ * Debian 8 jessie: eredita grub, isolinux e locales da buster, contiene krill al posto di calamares
469
+ */
470
+ if (this.distro().versionLike === 'jessie') {
471
+ const dest = '/etc/penguins-eggs.d/distros/jessie';
472
+ await (0, utils_2.exec)(`cp -r ${buster}/locales ${dest}/locales`, echo);
473
+ await (0, utils_2.exec)(`cp -r ${rootPen}/conf/distros/jessie/krill ${dest}/krill`, echo);
474
+ /**
475
+ * Debian 9 stretch: eredita grub, isolinux e locales da buster, contiene krill al posto di calamares
476
+ */
477
+ }
478
+ else if (this.distro().versionLike === 'stretch') {
479
+ const dest = '/etc/penguins-eggs.d/distros/stretch';
480
+ await (0, utils_2.exec)(`cp -r ${buster}/locales ${dest}/locales`, echo);
481
+ await (0, utils_2.exec)(`cp -r ${rootPen}/conf/distros/jessie/krill ${dest}/krill`, echo);
482
+ /**
483
+ * Debian 10 buster: eredita tutto da buster
484
+ */
485
+ }
486
+ else if (this.distro().versionLike === 'buster') {
487
+ const dest = '/etc/penguins-eggs.d/distros/buster';
488
+ await (0, utils_2.exec)(`cp -r ${buster}/locales ${dest}/locales`, echo);
489
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares ${dest}/calamares`, echo);
490
+ /**
491
+ * Debian 11 bullseye: eredita tutto da buster
492
+ */
493
+ }
494
+ else if (this.distro().versionLike === 'bullseye') {
495
+ const dest = '/etc/penguins-eggs.d/distros/bullseye';
496
+ await (0, utils_2.exec)(`cp -r ${buster}/locales ${dest}/locales`, echo);
497
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares ${dest}/calamares`, echo);
498
+ /**
499
+ * Debian 12 bookworm: eredita tutto da buster
500
+ */
501
+ }
502
+ else if (this.distro().versionLike === 'bookworm') {
503
+ const dest = '/etc/penguins-eggs.d/distros/bookworm';
504
+ await (0, utils_2.exec)(`cp -r ${buster}/locales ${dest}/locales`, echo);
505
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares ${dest}/calamares`, echo);
506
+ /***********************************************************************************
507
+ * Devuan
508
+ **********************************************************************************/
509
+ /**
510
+ * Devuan beowulf: eredita tutto da buster
511
+ */
512
+ }
513
+ else if (this.distro().versionLike === 'beowulf') {
514
+ const dest = '/etc/penguins-eggs.d/distros/beowulf';
515
+ await (0, utils_2.exec)(`cp -r ${buster}/locales ${dest}/locales`, echo);
516
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares ${dest}/calamares`, echo);
517
+ /**
518
+ * Devuan chimaera: eredita tutto da buster
519
+ */
520
+ }
521
+ else if (this.distro().versionLike === 'chimaera') {
522
+ const dest = '/etc/penguins-eggs.d/distros/chimaera';
523
+ await (0, utils_2.exec)(`cp -r ${buster}/locales ${dest}/locales`, echo);
524
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares ${dest}/calamares`, echo);
525
+ /**
526
+ * Devuan daedalus: eredita tutto da buster
527
+ */
528
+ }
529
+ else if (this.distro().versionLike === 'daedalus') {
530
+ const dest = '/etc/penguins-eggs.d/distros/daedalus';
531
+ await (0, utils_2.exec)(`cp -r ${buster}/locales ${dest}/locales`, echo);
532
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares ${dest}/calamares`, echo);
533
+ /***********************************************************************************
534
+ * Ubuntu
535
+ **********************************************************************************/
536
+ /**
537
+ * Ubuntu 10.04 bionic: eredita da bionic, focal grub ed isolinux, da buster i seguenti
538
+ */
539
+ }
540
+ else if (this.distro().versionLike === 'bionic') {
541
+ const dest = '/etc/penguins-eggs.d/distros/bionic';
542
+ const bionic = `${rootPen}/conf/distros/bionic/*`;
543
+ await (0, utils_2.exec)(`cp -r ${bionic} ${dest}`, echo);
544
+ // quindi da focal
545
+ const focal = `${rootPen}/conf/distros/focal/*`;
546
+ await (0, utils_2.exec)(`cp -r ${focal} ${dest}`, echo);
547
+ // Poi da buster
548
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/remove-link ${dest}/calamares/calamares-modules/remove-link`, echo);
549
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/sources-yolk ${dest}/calamares/calamares-modules/sources-yolk`, echo);
550
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/sources-yolk-unmount ${dest}/calamares/calamares-modules/sources-yolk-unmount`, echo);
551
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/packages.yml ${dest}/calamares/modules/packages.yml`, echo);
552
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/removeuser.yml ${dest}/calamares/modules/removeuser.yml`, echo);
553
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/unpackfs.yml ${dest}/calamares/modules/unpackfs.yml`, echo);
554
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/displaymanager.yml ${dest}/calamares/modules/displaymanager.yml`, echo);
555
+ /**
556
+ * Ubuntu focal: eredita da focal e buster
557
+ */
558
+ }
559
+ else if (this.distro().versionLike === 'focal') {
560
+ const dest = '/etc/penguins-eggs.d/distros/focal';
561
+ const focal = `${rootPen}/conf/distros/focal/*`;
562
+ await (0, utils_2.exec)(`cp -r ${focal} ${dest}`, echo);
563
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/remove-link ${dest}/calamares/calamares-modules/remove-link`, echo);
564
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/sources-yolk ${dest}/calamares/calamares-modules/sources-yolk`, echo);
565
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/sources-yolk-unmount ${dest}/calamares/calamares-modules/sources-yolk-unmount`, echo);
566
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/packages.yml ${dest}/calamares/modules/packages.yml`, echo);
567
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/removeuser.yml ${dest}/calamares/modules/removeuser.yml`, echo);
568
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/unpackfs.yml ${dest}/calamares/modules/unpackfs.yml`, echo);
569
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/displaymanager.yml ${dest}/calamares/modules/displaymanager.yml`, echo);
570
+ /**
571
+ * Ubuntu 20.10 groovy: eredita da focal e buster
572
+ */
573
+ }
574
+ else if (this.distro().versionLike === 'groovy') {
575
+ const dest = '/etc/penguins-eggs.d/distros/groovy';
576
+ const focal = `${rootPen}/conf/distros/focal/*`;
577
+ await (0, utils_2.exec)(`cp -r ${focal} ${dest}`, echo);
578
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/remove-link ${dest}/calamares/calamares-modules/remove-link`, echo);
579
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/sources-yolk ${dest}/calamares/calamares-modules/sources-yolk`, echo);
580
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/sources-yolk-unmount ${dest}/calamares/calamares-modules/sources-yolk-unmount`, echo);
581
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/packages.yml ${dest}/calamares/modules/packages.yml`, echo);
582
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/removeuser.yml ${dest}/calamares/modules/removeuser.yml`, echo);
583
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/unpackfs.yml ${dest}/calamares/modules/unpackfs.yml`, echo);
584
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/displaymanager.yml ${dest}/calamares/modules/displaymanager.yml`, echo);
585
+ /**
586
+ * Ubuntu 21.04 hirsute: eredita da focal e buster
587
+ */
588
+ }
589
+ else if (this.distro().versionLike === 'hirsute') {
590
+ const dest = '/etc/penguins-eggs.d/distros/hirsute';
591
+ const focal = `${rootPen}/conf/distros/focal/*`;
592
+ await (0, utils_2.exec)(`cp -r ${focal} ${dest}`, echo);
593
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/remove-link ${dest}/calamares/calamares-modules/remove-link`, echo);
594
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/sources-yolk ${dest}/calamares/calamares-modules/sources-yolk`, echo);
595
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/sources-yolk-unmount ${dest}/calamares/calamares-modules/sources-yolk-unmount`, echo);
596
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/packages.yml ${dest}/calamares/modules/packages.yml`, echo);
597
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/removeuser.yml ${dest}/calamares/modules/removeuser.yml`, echo);
598
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/unpackfs.yml ${dest}/calamares/modules/unpackfs.yml`, echo);
599
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/displaymanager.yml ${dest}/calamares/modules/displaymanager.yml`, echo);
600
+ /**
601
+ * Ubuntu 21.10 impish: eredita da focal e buster
602
+ */
603
+ }
604
+ else if (this.distro().versionLike === 'impish') {
605
+ const dest = '/etc/penguins-eggs.d/distros/impish';
606
+ const focal = `${rootPen}/conf/distros/focal/*`;
607
+ await (0, utils_2.exec)(`cp -r ${focal} ${dest}`, echo);
608
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/remove-link ${dest}/calamares/calamares-modules/remove-link`, echo);
609
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/sources-yolk ${dest}/calamares/calamares-modules/sources-yolk`, echo);
610
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/sources-yolk-unmount ${dest}/calamares/calamares-modules/sources-yolk-unmount`, echo);
611
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/packages.yml ${dest}/calamares/modules/packages.yml`, echo);
612
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/removeuser.yml ${dest}/calamares/modules/removeuser.yml`, echo);
613
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/unpackfs.yml ${dest}/calamares/modules/unpackfs.yml`, echo);
614
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/displaymanager.yml ${dest}/calamares/modules/displaymanager.yml`, echo);
615
+ /**
616
+ * Ubuntu 22.04 jammy: eredita da focal e buster
617
+ */
618
+ }
619
+ else if (this.distro().versionLike === 'jammy') {
620
+ const dest = '/etc/penguins-eggs.d/distros/jammy';
621
+ const focal = `${rootPen}/conf/distros/focal/*`;
622
+ await (0, utils_2.exec)(`cp -r ${focal} ${dest}`, echo);
623
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/remove-link ${dest}/calamares/calamares-modules/remove-link`, echo);
624
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/sources-yolk ${dest}/calamares/calamares-modules/sources-yolk`, echo);
625
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/calamares-modules/sources-yolk-unmount ${dest}/calamares/calamares-modules/sources-yolk-unmount`, echo);
626
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/packages.yml ${dest}/calamares/modules/packages.yml`, echo);
627
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/removeuser.yml ${dest}/calamares/modules/removeuser.yml`, echo);
628
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/unpackfs.yml ${dest}/calamares/modules/unpackfs.yml`, echo);
629
+ await (0, utils_2.exec)(`cp -r ${buster}/calamares/modules/displaymanager.yml ${dest}/calamares/modules/displaymanager.yml`, echo);
630
+ /***********************************************************************************
631
+ * Fedora
632
+ **********************************************************************************/
633
+ /**
634
+ * Fedora 35 ThirtyFive: eredita da ThirtyFive
635
+ */
636
+ }
637
+ else if (this.distro().versionLike === 'thirtyfive') {
638
+ const dest = '/etc/penguins-eggs.d/distros/thirtyfive/';
639
+ const thirtytive = `${rootPen}/conf/distros/thirtyfive/*`;
640
+ await (0, utils_2.exec)(`cp -r ${thirtytive} ${dest}`, echo);
641
+ /***********************************************************************************
642
+ * Arch Linux
643
+ **********************************************************************************/
644
+ /**
645
+ * Endeavour rolling: eredita da rolling
646
+ */
647
+ }
648
+ else if (this.distro().versionLike === 'rolling') {
649
+ const dest = '/etc/penguins-eggs.d/distros/rolling/';
650
+ const rolling = `${rootPen}/conf/distros/rolling/*`;
651
+ await (0, utils_2.exec)(`cp -r ${rolling} ${dest}`, echo);
652
+ /***********************************************************************************
653
+ * openSuse
654
+ **********************************************************************************/
655
+ /**
656
+ * openSUSE tumbleweed: eredita da tumbleweed
657
+ */
658
+ }
659
+ else if (this.distro().versionLike === 'tumbleweed') {
660
+ const dest = '/etc/penguins-eggs.d/distros/tumbleweed/';
661
+ const tumbleweed = `${rootPen}/conf/distros/tumbleweed/*`;
662
+ await (0, utils_2.exec)(`cp -r ${tumbleweed} ${dest}`, echo);
523
663
  }
524
664
  }
525
665
  /**
526
- * restuisce VERO se il pacchetto è installato
527
- * @param debPackage
528
- */
529
- static packageIsInstalled(debPackage) {
666
+ * restuisce VERO se il pacchetto è installato
667
+ * @param debPackage
668
+ */
669
+ static packageIsInstalled(packageName) {
530
670
  let installed = false;
531
- const cmd = `/usr/bin/dpkg -s ${debPackage} | grep Status:`;
532
- const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
533
- if (stdout === 'Status: install ok installed') {
534
- installed = true;
671
+ if (this.distro().familyId === 'debian') {
672
+ installed = debian_1.default.packageIsInstalled(packageName);
673
+ }
674
+ else if (this.distro().familyId === 'fedora') {
675
+ installed = fedora_1.default.packageIsInstalled(packageName);
676
+ }
677
+ else if (this.distro().familyId === 'archlinux') {
678
+ installed = archlinux_1.default.packageIsInstalled(packageName);
679
+ }
680
+ else if (this.distro().familyId === 'suse') {
681
+ installed = suse_1.default.packageIsInstalled(packageName);
535
682
  }
536
683
  return installed;
537
684
  }
538
685
  /**
539
- * restuisce VERO se il pacchetto è installato
540
- * @param debPackage
541
- */
542
- static async packageAptAvailable(debPackage) {
543
- let disponible = false;
544
- const cmd = `apt-cache show ${debPackage} | grep Package:`;
545
- const test = `Package: ${debPackage}`;
546
- const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
547
- // console.log('===================================')
548
- // console.log('[' + stdout + ']')
549
- // console.log('[' + test + ']')
550
- // console.log('===================================')
551
- if (stdout === test) {
552
- disponible = true;
686
+ * restuisce VERO se il pacchetto è installato
687
+ * @param debPackage
688
+ */
689
+ static async packageAptAvailable(packageName) {
690
+ let available = false;
691
+ if (this.distro().familyId === 'debian') {
692
+ available = debian_1.default.packageIsInstalled(packageName);
553
693
  }
554
- return disponible;
694
+ return available;
555
695
  }
696
+ /**
697
+ *
698
+ * @param debPackage
699
+ * @returns
700
+ */
556
701
  static async packageAptLast(debPackage) {
557
702
  let version = '';
558
- const cmd = `apt-cache show ${debPackage} | grep Version:`;
559
- const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
560
- version = stdout.substring(9);
561
- // console.log('===================================')
562
- // console.log('[' + version + ']')
563
- // console.log('===================================')
703
+ if (this.distro().familyId === 'debian') {
704
+ version = await debian_1.default.packageAptLast(debPackage);
705
+ }
564
706
  return version;
565
707
  }
566
708
  static async packageNpmLast(packageNpm = 'penguins-eggs') {
567
- return shx.exec('npm show ' + packageNpm + ' version', { silent: true }).stdout.trim();
709
+ return shelljs_1.default.exec('npm show ' + packageNpm + ' version', { silent: true }).stdout.trim();
568
710
  }
569
711
  /**
570
712
  *
@@ -572,7 +714,7 @@ class Pacman {
572
714
  */
573
715
  static async commandIsInstalled(cmd) {
574
716
  let installed = false;
575
- const stdout = shx.exec(`command -v ${cmd}`, { silent: true }).stdout.trim();
717
+ const stdout = shelljs_1.default.exec(`command -v ${cmd}`, { silent: true }).stdout.trim();
576
718
  if (stdout !== '') {
577
719
  installed = true;
578
720
  }
@@ -582,23 +724,32 @@ class Pacman {
582
724
  return installed;
583
725
  }
584
726
  /**
585
- * Install the package debPackage
586
- * @param debPackage {string} Pacchetto Debian da installare
727
+ * Install the package packageName
728
+ * @param packageName {string} Pacchetto Debian da installare
587
729
  * @returns {boolean} True if success
588
730
  */
589
- static async packageInstall(debPackage) {
731
+ static async packageInstall(packageName) {
590
732
  let retVal = false;
591
- if (shx.exec(`/usr/bin/apt-get install -y ${debPackage}`, { silent: true }) === '0') {
592
- retVal = true;
733
+ if (this.distro().familyId === 'debian') {
734
+ retVal = await debian_1.default.packageInstall(packageName);
735
+ }
736
+ else if (this.distro().familyId === 'archlinux') {
737
+ retVal = await archlinux_1.default.packageInstall(packageName);
738
+ }
739
+ else if (this.distro().familyId === 'fedora') {
740
+ retVal = await fedora_1.default.packageInstall(packageName);
593
741
  }
594
742
  return retVal;
595
743
  }
596
744
  /**
597
745
  *
598
746
  * @param packages array packages
747
+ *
748
+ * Probabilmente da rimuovere, viene usata solo da prerequisitesRemove
749
+ *
599
750
  */
600
751
  static filterInstalled(packages) {
601
- let installed = [];
752
+ const installed = [];
602
753
  for (const i in packages) {
603
754
  if (Pacman.packageIsInstalled(packages[i])) {
604
755
  installed.push(packages[i]);
@@ -606,56 +757,6 @@ class Pacman {
606
757
  }
607
758
  return installed;
608
759
  }
609
- /**
610
- * @param remove
611
- * @param verbose
612
- *
613
- * Va solo a runtime, l'idea era di localizzare per naked
614
- */
615
- static packagesLocalisation(remove = false, verbose = false) {
616
- const versionLike = Pacman.versionLike();
617
- const packages = [];
618
- const settings = new settings_1.default();
619
- settings.load();
620
- const locales = settings.config.locales;
621
- if ((versionLike === 'jessie') ||
622
- (versionLike === 'stretch') ||
623
- (versionLike === 'buster') ||
624
- versionLike === 'bullseye' ||
625
- (versionLike === 'beowulf')) {
626
- for (let i = 0; i < locales.length; i++) {
627
- if (locales[i] === process.env.LANG) {
628
- continue;
629
- }
630
- if (locales[i] === `it_IT.UTF-8`) {
631
- packages.push('task-italian');
632
- }
633
- else if (locales[i] === `en_US.UTF-8`) {
634
- packages.push('task-english');
635
- }
636
- else if (locales[i] === `es_PE.UTF-8`) {
637
- packages.push('task-spanish');
638
- }
639
- else if (locales[i] === `pt_BR.UTF-8`) {
640
- packages.push('task-brazilian-portuguese');
641
- }
642
- else if (locales[i] === `fr_FR.UTF-8`) {
643
- packages.push('task-french');
644
- }
645
- else if (locales[i] === `de_DE.UTF-8`) {
646
- packages.push('task-german');
647
- }
648
- else if (locales[i] === `pl_PL.UTF-8`) {
649
- packages.push('task-polish');
650
- }
651
- else if (locales[i] === `de_DE.UTF-8`) {
652
- packages.push('task-russian');
653
- }
654
- }
655
- packages.push('live-task-localisation');
656
- }
657
- return packages;
658
- }
659
760
  }
660
761
  exports.default = Pacman;
661
762
  Pacman.debs4calamares = ['calamares', 'qml-module-qtquick2', 'qml-module-qtquick-controls'];