penguins-eggs 9.6.34 → 10.0.0

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 (351) hide show
  1. package/.oclif.manifest.json +1458 -1
  2. package/README.md +823 -8
  3. package/addons/eggs/theme/livecd/grub.main.cfg +4 -4
  4. package/addons/eggs/theme/livecd/isolinux.main.cfg +5 -5
  5. package/bin/dev.cmd +1 -1
  6. package/bin/dev.js +6 -0
  7. package/bin/run.js +5 -0
  8. package/conf/derivatives.yaml +2 -0
  9. package/conf/distros/buster/calamares/calamares-modules/bootloader-config/bootloader-config.sh +3 -3
  10. package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.sh +1 -1
  11. package/conf/distros/buster/calamares/modules/fstab.yml +1 -1
  12. package/conf/distros/focal/calamares/modules/fstab.yml +1 -1
  13. package/conf/{exclude.list.homes → exclude.list.d/home.list} +6 -1
  14. package/conf/{exclude.list.template → exclude.list.d/master.list} +15 -24
  15. package/conf/exclude.list.d/var.list +21 -0
  16. package/conf/tools.yaml +1 -3
  17. package/dist/classes/bleach.d.ts +37 -0
  18. package/dist/classes/bleach.js +43 -91
  19. package/dist/classes/cfs.d.ts +17 -0
  20. package/dist/classes/cfs.js +15 -12
  21. package/dist/classes/compressors.d.ts +53 -0
  22. package/dist/classes/compressors.js +51 -58
  23. package/dist/classes/daddy.d.ts +18 -0
  24. package/dist/classes/daddy.js +93 -101
  25. package/dist/classes/distro.d.ts +26 -0
  26. package/dist/classes/distro.js +45 -27
  27. package/dist/classes/families/archlinux.d.ts +61 -0
  28. package/dist/classes/families/archlinux.js +56 -113
  29. package/dist/classes/families/debian.d.ts +65 -0
  30. package/dist/classes/families/debian.js +68 -143
  31. package/dist/classes/families/fedora.d.ts +52 -0
  32. package/dist/classes/families/fedora.js +43 -99
  33. package/dist/classes/families/mockup.d.ts +60 -0
  34. package/dist/classes/families/mockup.js +27 -46
  35. package/dist/classes/families/suse.d.ts +52 -0
  36. package/dist/classes/families/suse.js +45 -97
  37. package/dist/classes/incubation/branding.d.ts +17 -0
  38. package/dist/classes/incubation/branding.js +33 -32
  39. package/dist/classes/incubation/distros/bionic.d.ts +32 -0
  40. package/dist/classes/incubation/distros/bionic.js +15 -15
  41. package/dist/classes/incubation/distros/buster.d.ts +32 -0
  42. package/dist/classes/incubation/distros/buster.js +15 -15
  43. package/dist/classes/incubation/distros/focal.d.ts +32 -0
  44. package/dist/classes/incubation/distros/focal.js +15 -15
  45. package/dist/classes/incubation/distros/jessie.d.ts +31 -0
  46. package/dist/classes/incubation/distros/jessie.js +11 -13
  47. package/dist/classes/incubation/distros/rolling.d.ts +32 -0
  48. package/dist/classes/incubation/distros/rolling.js +15 -16
  49. package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +11 -0
  50. package/dist/classes/incubation/fisherman-helper/displaymanager.js +8 -9
  51. package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
  52. package/dist/classes/incubation/fisherman-helper/packages.js +17 -17
  53. package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
  54. package/dist/classes/incubation/fisherman-helper/settings.js +30 -28
  55. package/dist/classes/incubation/fisherman.d.ts +77 -0
  56. package/dist/classes/incubation/fisherman.js +137 -132
  57. package/dist/classes/incubation/incubator.d.ts +40 -0
  58. package/dist/classes/incubation/incubator.js +93 -87
  59. package/dist/classes/incubation/installer.d.ts +13 -0
  60. package/dist/classes/incubation/installer.js +27 -12
  61. package/dist/classes/initrd.d.ts +41 -0
  62. package/dist/classes/initrd.js +42 -44
  63. package/dist/classes/keyboards.d.ts +50 -0
  64. package/dist/classes/keyboards.js +110 -107
  65. package/dist/classes/locales.d.ts +21 -0
  66. package/dist/classes/locales.js +30 -34
  67. package/dist/classes/n8.d.ts +17 -0
  68. package/dist/classes/n8.js +16 -22
  69. package/dist/classes/network.d.ts +37 -0
  70. package/dist/classes/network.js +21 -25
  71. package/dist/classes/ovary.d.ts +205 -0
  72. package/dist/classes/ovary.js +1262 -1334
  73. package/dist/classes/pacman.d.ts +149 -0
  74. package/dist/classes/pacman.js +347 -426
  75. package/dist/classes/pve-live.d.ts +17 -0
  76. package/dist/classes/pve-live.js +23 -25
  77. package/dist/classes/pxe.d.ts +65 -0
  78. package/dist/classes/pxe.js +206 -210
  79. package/dist/classes/settings.d.ts +53 -0
  80. package/dist/classes/settings.js +99 -102
  81. package/dist/classes/sources_list.d.ts +28 -0
  82. package/dist/classes/sources_list.js +35 -39
  83. package/dist/classes/systemctl.d.ts +47 -0
  84. package/dist/classes/systemctl.js +35 -39
  85. package/dist/classes/tailor.d.ts +46 -0
  86. package/dist/classes/tailor.js +225 -241
  87. package/dist/classes/tools.d.ts +30 -0
  88. package/dist/classes/tools.js +20 -26
  89. package/dist/classes/users.d.ts +28 -0
  90. package/dist/classes/users.js +22 -16
  91. package/dist/classes/utils.d.ts +318 -0
  92. package/dist/classes/utils.js +91 -76
  93. package/dist/classes/xdg.d.ts +45 -0
  94. package/dist/classes/xdg.js +129 -133
  95. package/dist/classes/yolk.d.ts +33 -0
  96. package/dist/classes/yolk.js +54 -60
  97. package/dist/commands/adapt.d.ts +17 -0
  98. package/dist/commands/adapt.js +21 -25
  99. package/dist/commands/analyze.d.ts +26 -0
  100. package/dist/commands/analyze.js +60 -74
  101. package/dist/commands/calamares.d.ts +29 -0
  102. package/dist/commands/calamares.js +53 -60
  103. package/dist/commands/config.d.ts +36 -0
  104. package/dist/commands/config.js +120 -142
  105. package/dist/commands/cuckoo.d.ts +16 -0
  106. package/dist/commands/cuckoo.js +24 -28
  107. package/dist/commands/dad.d.ts +19 -0
  108. package/dist/commands/dad.js +26 -30
  109. package/dist/commands/export/deb.d.ts +19 -0
  110. package/dist/commands/export/deb.js +33 -42
  111. package/dist/commands/export/iso.d.ts +19 -0
  112. package/dist/commands/export/iso.js +24 -28
  113. package/dist/commands/install.d.ts +37 -0
  114. package/dist/commands/install.js +68 -68
  115. package/dist/commands/kill.d.ts +24 -0
  116. package/dist/commands/kill.js +31 -38
  117. package/dist/commands/mom.d.ts +16 -0
  118. package/dist/commands/mom.js +20 -22
  119. package/dist/commands/produce.d.ts +33 -0
  120. package/dist/commands/produce.js +100 -92
  121. package/dist/commands/status.d.ts +23 -0
  122. package/dist/commands/status.js +14 -20
  123. package/dist/commands/syncfrom.d.ts +45 -0
  124. package/dist/commands/syncfrom.js +99 -109
  125. package/dist/commands/syncto.d.ts +40 -0
  126. package/dist/commands/syncto.js +152 -216
  127. package/dist/commands/tools/clean.d.ts +18 -0
  128. package/dist/commands/tools/clean.js +21 -25
  129. package/dist/commands/tools/ppa.d.ts +26 -0
  130. package/dist/commands/tools/ppa.js +46 -50
  131. package/dist/commands/tools/skel.d.ts +18 -0
  132. package/dist/commands/tools/skel.js +27 -31
  133. package/dist/commands/tools/stat.d.ts +31 -0
  134. package/dist/commands/tools/stat.js +21 -25
  135. package/dist/commands/tools/yolk.d.ts +24 -0
  136. package/dist/commands/tools/yolk.js +23 -27
  137. package/dist/commands/update.d.ts +47 -0
  138. package/dist/commands/update.js +66 -70
  139. package/dist/commands/wardrobe/get.d.ts +23 -0
  140. package/dist/commands/wardrobe/get.js +26 -28
  141. package/dist/commands/wardrobe/list.d.ts +24 -0
  142. package/dist/commands/wardrobe/list.js +69 -67
  143. package/dist/commands/wardrobe/show.d.ts +25 -0
  144. package/dist/commands/wardrobe/show.js +57 -52
  145. package/dist/commands/wardrobe/wear.d.ts +26 -0
  146. package/dist/commands/wardrobe/wear.js +39 -41
  147. package/dist/components/finished.d.ts +15 -0
  148. package/dist/components/finished.js +37 -42
  149. package/dist/components/information.d.ts +8 -0
  150. package/dist/components/information.js +155 -0
  151. package/dist/components/install.d.ts +15 -0
  152. package/dist/components/install.js +31 -35
  153. package/dist/components/keyboard.d.ts +16 -0
  154. package/dist/components/keyboard.js +37 -40
  155. package/dist/components/location.d.ts +16 -0
  156. package/dist/components/location.js +38 -38
  157. package/dist/components/network.d.ts +19 -0
  158. package/dist/components/network.js +47 -48
  159. package/dist/components/partitions.d.ts +16 -0
  160. package/dist/components/partitions.js +47 -51
  161. package/dist/components/steps.d.ts +13 -0
  162. package/dist/components/steps.js +148 -0
  163. package/dist/components/summary.d.ts +24 -0
  164. package/dist/components/summary.js +53 -54
  165. package/dist/components/title.d.ts +12 -0
  166. package/dist/components/title.js +35 -0
  167. package/dist/components/users.d.ts +24 -0
  168. package/dist/components/users.js +43 -43
  169. package/dist/components/welcome.d.ts +13 -0
  170. package/dist/components/welcome.js +37 -38
  171. package/dist/index.d.ts +8 -0
  172. package/dist/index.js +8 -5
  173. package/dist/interfaces/i-addons.d.ts +13 -0
  174. package/dist/interfaces/i-addons.js +8 -3
  175. package/dist/interfaces/i-analyze.d.ts +17 -0
  176. package/dist/interfaces/i-analyze.js +11 -16
  177. package/dist/interfaces/i-app.d.ts +14 -0
  178. package/dist/interfaces/i-app.js +8 -2
  179. package/dist/interfaces/i-branding.d.ts +36 -0
  180. package/dist/interfaces/i-branding.js +8 -2
  181. package/dist/interfaces/i-calamares-partition.d.ts +18 -0
  182. package/dist/interfaces/i-calamares-partition.js +3 -4
  183. package/dist/interfaces/i-config-tools.d.ts +18 -0
  184. package/dist/interfaces/i-config-tools.js +8 -2
  185. package/dist/interfaces/i-devices.d.ts +20 -0
  186. package/dist/interfaces/i-devices.js +8 -2
  187. package/dist/interfaces/i-distro.d.ts +27 -0
  188. package/dist/interfaces/i-distro.js +3 -4
  189. package/dist/interfaces/i-drive-list.d.ts +33 -0
  190. package/dist/interfaces/i-drive-list.js +3 -4
  191. package/dist/interfaces/i-eggs-config.d.ts +32 -0
  192. package/dist/interfaces/i-eggs-config.js +3 -4
  193. package/dist/interfaces/i-excludes.d.ts +14 -0
  194. package/dist/interfaces/i-excludes.js +8 -0
  195. package/dist/interfaces/i-exec.d.ts +11 -0
  196. package/dist/interfaces/i-exec.js +3 -4
  197. package/dist/interfaces/i-initrd.d.ts +13 -0
  198. package/dist/interfaces/i-initrd.js +8 -2
  199. package/dist/interfaces/i-install.d.ts +16 -0
  200. package/dist/interfaces/i-install.js +8 -2
  201. package/dist/interfaces/i-installer.d.ts +17 -0
  202. package/dist/interfaces/i-installer.js +8 -2
  203. package/dist/interfaces/i-krill-config.d.ts +33 -0
  204. package/dist/interfaces/i-krill-config.js +3 -4
  205. package/dist/interfaces/i-krill.d.ts +42 -0
  206. package/dist/interfaces/i-krill.js +8 -2
  207. package/dist/interfaces/i-materia.d.ts +41 -0
  208. package/dist/interfaces/i-materia.js +8 -2
  209. package/dist/interfaces/i-net.d.ts +16 -0
  210. package/dist/interfaces/i-net.js +8 -2
  211. package/dist/interfaces/i-packages.d.ts +29 -0
  212. package/dist/interfaces/i-packages.js +3 -4
  213. package/dist/interfaces/i-partitions.d.ts +16 -0
  214. package/dist/interfaces/i-partitions.js +8 -2
  215. package/dist/interfaces/i-pxe.d.ts +21 -0
  216. package/dist/interfaces/i-pxe.js +8 -39
  217. package/dist/interfaces/i-remix.d.ts +21 -0
  218. package/dist/interfaces/i-remix.js +3 -4
  219. package/dist/interfaces/i-settings.d.ts +39 -0
  220. package/dist/interfaces/i-settings.js +8 -2
  221. package/dist/interfaces/i-user.d.ts +14 -0
  222. package/dist/interfaces/i-user.js +8 -2
  223. package/dist/interfaces/i-workdir.d.ts +14 -0
  224. package/dist/interfaces/i-workdir.js +8 -2
  225. package/dist/interfaces/i-xkb-model.d.ts +24 -0
  226. package/dist/interfaces/i-xkb-model.js +8 -2
  227. package/dist/interfaces/index.d.ts +25 -0
  228. package/dist/interfaces/index.js +3 -4
  229. package/dist/krill/modules/add-user.d.ts +20 -0
  230. package/dist/krill/modules/add-user.js +11 -15
  231. package/dist/krill/modules/bootloader-config-arch.d.ts +14 -0
  232. package/dist/krill/modules/bootloader-config-arch.js +15 -11
  233. package/dist/krill/modules/bootloader-config-debian.d.ts +10 -0
  234. package/dist/krill/modules/bootloader-config-debian.js +20 -16
  235. package/dist/krill/modules/bootloader-config.d.ts +10 -0
  236. package/dist/krill/modules/bootloader-config.js +3 -6
  237. package/dist/krill/modules/bootloader.d.ts +14 -0
  238. package/dist/krill/modules/bootloader.js +9 -13
  239. package/dist/krill/modules/change-password.d.ts +15 -0
  240. package/dist/krill/modules/change-password.js +5 -8
  241. package/dist/krill/modules/del-live-user.d.ts +14 -0
  242. package/dist/krill/modules/del-live-user.js +8 -12
  243. package/dist/krill/modules/fstab.d.ts +14 -0
  244. package/dist/krill/modules/fstab.js +69 -46
  245. package/dist/krill/modules/grubcfg.d.ts +17 -0
  246. package/dist/krill/modules/grubcfg.js +8 -17
  247. package/dist/krill/modules/hostname.d.ts +13 -0
  248. package/dist/krill/modules/hostname.js +11 -17
  249. package/dist/krill/modules/initramfs-cfg.d.ts +14 -0
  250. package/dist/krill/modules/initramfs-cfg.js +6 -15
  251. package/dist/krill/modules/initramfs.d.ts +13 -0
  252. package/dist/krill/modules/initramfs.js +17 -19
  253. package/dist/krill/modules/locale-cfg.d.ts +10 -0
  254. package/dist/krill/modules/locale-cfg.js +8 -12
  255. package/dist/krill/modules/locale.d.ts +13 -0
  256. package/dist/krill/modules/locale.js +7 -11
  257. package/dist/krill/modules/m-keyboard.d.ts +14 -0
  258. package/dist/krill/modules/m-keyboard.js +14 -18
  259. package/dist/krill/modules/m-timezone.d.ts +14 -0
  260. package/dist/krill/modules/m-timezone.js +8 -12
  261. package/dist/krill/modules/machine-id.d.ts +15 -0
  262. package/dist/krill/modules/machine-id.js +6 -10
  263. package/dist/krill/modules/mkfs.d.ts +13 -0
  264. package/dist/krill/modules/mkfs.js +33 -23
  265. package/dist/krill/modules/mount-fs.d.ts +17 -0
  266. package/dist/krill/modules/mount-fs.js +20 -26
  267. package/dist/krill/modules/mount-vfs.d.ts +17 -0
  268. package/dist/krill/modules/mount-vfs.js +16 -21
  269. package/dist/krill/modules/network-cfg.d.ts +19 -0
  270. package/dist/krill/modules/network-cfg.js +28 -31
  271. package/dist/krill/modules/packages.d.ts +14 -0
  272. package/dist/krill/modules/packages.js +17 -21
  273. package/dist/krill/modules/partition.d.ts +20 -0
  274. package/dist/krill/modules/partition.js +80 -86
  275. package/dist/krill/modules/remove-installer-link.d.ts +13 -0
  276. package/dist/krill/modules/remove-installer-link.js +7 -11
  277. package/dist/krill/modules/umount.d.ts +14 -0
  278. package/dist/krill/modules/umount.js +9 -13
  279. package/dist/krill/modules/unpackfs.d.ts +13 -0
  280. package/dist/krill/modules/unpackfs.js +7 -11
  281. package/dist/krill/prepare.d.ts +77 -0
  282. package/dist/krill/{krill-prepare.js → prepare.js} +136 -130
  283. package/dist/krill/sequence.d.ts +156 -0
  284. package/dist/krill/sequence.js +640 -0
  285. package/dist/lib/cli-autologin.d.ts +43 -0
  286. package/dist/lib/cli-autologin.js +88 -92
  287. package/dist/lib/get_address.d.ts +8 -0
  288. package/dist/lib/get_address.js +9 -11
  289. package/dist/lib/get_dns.d.ts +8 -0
  290. package/dist/lib/get_dns.js +9 -11
  291. package/dist/lib/get_domain.d.ts +8 -0
  292. package/dist/lib/get_domain.js +9 -11
  293. package/dist/lib/get_gateway.d.ts +8 -0
  294. package/dist/lib/get_gateway.js +9 -11
  295. package/dist/lib/get_hostname.d.ts +8 -0
  296. package/dist/lib/get_hostname.js +9 -11
  297. package/dist/lib/get_netmask.d.ts +8 -0
  298. package/dist/lib/get_netmask.js +9 -11
  299. package/dist/lib/get_password.d.ts +8 -0
  300. package/dist/lib/get_password.js +10 -13
  301. package/dist/lib/get_userfullname.d.ts +8 -0
  302. package/dist/lib/get_userfullname.js +9 -11
  303. package/dist/lib/get_username.d.ts +8 -0
  304. package/dist/lib/get_username.js +9 -12
  305. package/dist/lib/kill_me_softly.d.ts +11 -0
  306. package/dist/lib/kill_me_softly.js +19 -24
  307. package/dist/lib/select_address_type.d.ts +8 -0
  308. package/dist/lib/select_address_type.js +9 -12
  309. package/dist/lib/select_filesystem_type.d.ts +8 -0
  310. package/dist/lib/select_filesystem_type.js +19 -17
  311. package/dist/lib/select_installation_device.d.ts +8 -0
  312. package/dist/lib/select_installation_device.js +11 -15
  313. package/dist/lib/select_installation_mode.d.ts +8 -0
  314. package/dist/lib/select_installation_mode.js +9 -11
  315. package/dist/lib/select_interface.d.ts +8 -0
  316. package/dist/lib/select_interface.js +9 -12
  317. package/dist/lib/select_keyboard_layout.d.ts +11 -0
  318. package/dist/lib/select_keyboard_layout.js +11 -15
  319. package/dist/lib/select_keyboard_model.d.ts +11 -0
  320. package/dist/lib/select_keyboard_model.js +11 -15
  321. package/dist/lib/select_keyboard_option.d.ts +11 -0
  322. package/dist/lib/select_keyboard_option.js +11 -15
  323. package/dist/lib/select_keyboard_variant.d.ts +11 -0
  324. package/dist/lib/select_keyboard_variant.js +11 -15
  325. package/dist/lib/select_languages.d.ts +8 -0
  326. package/dist/lib/select_languages.js +11 -15
  327. package/dist/lib/select_regions.d.ts +8 -0
  328. package/dist/lib/select_regions.js +9 -11
  329. package/dist/lib/select_user_swap_choice.d.ts +8 -0
  330. package/dist/lib/select_user_swap_choice.js +13 -17
  331. package/dist/lib/select_zones.d.ts +8 -0
  332. package/dist/lib/select_zones.js +9 -11
  333. package/dist/lib/utils.d.ts +34 -0
  334. package/dist/lib/utils.js +24 -14
  335. package/manpages/doc/man/eggs.1.gz +0 -0
  336. package/manpages/doc/man/eggs.html +130 -76
  337. package/package.json +55 -74
  338. package/scripts/_eggs +9 -7
  339. package/scripts/eggs.bash +4 -4
  340. package/LICENSE +0 -339
  341. package/bin/dev +0 -17
  342. package/bin/run +0 -5
  343. package/conf/exclude.list.custom +0 -3
  344. package/dist/components/elements/information.js +0 -194
  345. package/dist/components/elements/steps.js +0 -152
  346. package/dist/components/elements/title.js +0 -36
  347. package/dist/interfaces/i-filters.js +0 -3
  348. package/dist/krill/krill-sequence.js +0 -645
  349. package/dist/lib/dependencies.js +0 -120
  350. package/manpages/doc/man/README.md +0 -0
  351. /package/conf/{exclude.list.usr → exclude.list.d/usr.list} +0 -0
@@ -1,109 +1,43 @@
1
- "use strict";
2
- /* eslint-disable no-console */
3
1
  /**
4
- * penguins-eggs
5
- * classes/families: archilinux.ts
6
- * author: Piero Proietti
7
- * email: piero.proietti@gmail.com
8
- * license: MIT
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- const tslib_1 = require("tslib");
12
- const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
13
- const shelljs_1 = tslib_1.__importDefault(require("shelljs"));
14
- const utils_1 = tslib_1.__importDefault(require("../utils"));
15
- const pacman_1 = tslib_1.__importDefault(require("../pacman"));
16
- const dependencies_1 = require("../../lib/dependencies");
17
- const utils_2 = require("../../lib/utils");
2
+ * ./src/classes/families/archlinux.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import fs from 'node:fs';
9
+ import shx from 'shelljs';
10
+ import { exec } from '../../lib/utils.js';
11
+ import Utils from '../utils.js';
18
12
  /**
19
13
  * Archlinux
20
14
  * @remarks all the utilities
21
15
  */
22
- class Archlinux {
23
- /**
24
- * Archlinux: isInstalledXorg
25
- * @returns true if xorg is installed
26
- */
27
- static isInstalledXorg() {
28
- return this.packageIsInstalled('xorg-server-common');
29
- }
30
- /**
31
- * Archlinux: isInstalledWayland
32
- * @returns true if wayland is installed
33
- */
34
- static isInstalledWayland() {
35
- return this.packageIsInstalled('xwayland');
36
- }
37
- /**
38
- * Archlinux: packages
39
- * Create array packages to install/remove
40
- */
41
- static packages(remove = false, verbose = false) {
42
- const packages = ['']; // 'arch-install-scripts', 'e2fsprogs', 'erofs-utils', 'findutils', 'gzip', 'libarchive', 'libisoburn', 'mtools', 'openssl', 'rsync', 'sed', 'syslinux', 'squashfs-tools']
43
- const toInstall = [];
44
- const toRemove = [];
45
- for (const elem of packages) {
46
- if (!this.packageIsInstalled(elem)) {
47
- toInstall.push(elem);
48
- }
49
- else {
50
- toRemove.push(elem);
51
- }
52
- }
53
- if (remove) {
54
- return toRemove;
55
- }
56
- return toInstall;
57
- }
58
- /**
59
- * Archlinux: prerequisitesInstall
60
- */
61
- static async prerequisitesInstall(verbose = true) {
62
- const echo = utils_1.default.setEcho(verbose);
63
- const retVal = false;
64
- await (0, utils_2.exec)(`pacman -Sy ${(0, dependencies_1.array2spaced)(this.packages(false, verbose))}`, echo);
65
- if (!pacman_1.default.isInstalledGui()) {
66
- /**
67
- * live-config-getty-generator
68
- *
69
- * Viene rimosso in naked, altrimenti non funziona il login
70
- * generando un errore getty.
71
- * Sarebbe utile individuarne le ragioni, forse rompe anche sul desktop
72
- * non permettendo di cambiare terminale e loggarsi
73
- *
74
- * A che serve?
75
- */
76
- const fileToRemove = '/lib/systemd/system-generators/live-config-getty-generator';
77
- if (node_fs_1.default.existsSync(fileToRemove)) {
78
- await (0, utils_2.exec)(`rm ${fileToRemove}`);
79
- }
80
- }
81
- return retVal;
82
- }
16
+ export default class Archlinux {
17
+ static packs4calamares = ['calamares-eggs']; // , 'calamares', 'calamares-git']
83
18
  /**
84
19
  * Archlinux: calamaresInstall
85
20
  */
86
21
  static async calamaresInstall(verbose = false) {
87
22
  verbose = true; // serve per pacman
88
- const echo = utils_1.default.setEcho(verbose);
89
- // const cal_eggs = 'calamares-eggs-3.3.0.r10707.4b3278058-1-x86_64.pkg.tar.zst' // 2023-09-04
90
- // const cal_eggs = 'arco-calamares-git-3.3.0.r10680.9becd7d1b-1-x86_64.pkg.tar.zst' // 2023-09-20
91
- // const cal_eggs = 'arco-calamares-3.3.0.alpha5-02-x86_64.pkg.tar.zst' // 2023-10-25
92
- // const cal_eggs = 'arco-calamares-3.3.0.alpha10-03-x86_64.pkg.tar.zst' // 2023-12-23
93
- const cal_eggs = 'arco-calamares-3.3.2-02-x86_64.pkg.tar.zst'; // 2024-02-10
23
+ const echo = Utils.setEcho(verbose);
24
+ // const cal_eggs = 'arco-calamares-3.3.2-02-x86_64.pkg.tar.zst' // 2024-02-10
25
+ // const cal_eggs = 'arco-calamares-3.3.5-02-x86_64.pkg.tar.zst' // 2024-03-10
26
+ // const cal_eggs = 'calamares-garuda-3.3.5.r19.g10acebff4-1-x86_64.pkg.tar.zst' // 2024-03-10
27
+ const cal_eggs = 'arco-calamares-3.3.6-06-x86_64.pkg.tar.zst'; // 24/04/27
94
28
  let cmd = `wget -O /tmp/${cal_eggs} https://sourceforge.net/projects/penguins-eggs/files/PKGBUILD/${cal_eggs}/download`;
95
29
  try {
96
- await (0, utils_2.exec)(cmd, echo);
30
+ await exec(cmd, echo);
97
31
  cmd = `pacman -U /tmp/${cal_eggs}`;
98
32
  try {
99
- await (0, utils_2.exec)(cmd, echo);
33
+ await exec(cmd, echo);
100
34
  }
101
35
  catch {
102
- utils_1.default.error(`Cannot install /tmp/${cal_eggs}`); // + e.error)
36
+ Utils.error(`Cannot install /tmp/${cal_eggs}`); // + e.error)
103
37
  }
104
38
  }
105
39
  catch {
106
- utils_1.default.error(`Cannot download ${cal_eggs}`); // + e.error)
40
+ Utils.error(`Cannot download ${cal_eggs}`); // + e.error)
107
41
  }
108
42
  }
109
43
  /**
@@ -111,7 +45,7 @@ class Archlinux {
111
45
  */
112
46
  static async calamaresPolicies() {
113
47
  const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
114
- await (0, utils_2.exec)(`sed -i 's/auth_admin/yes/' ${policyFile}`);
48
+ await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`);
115
49
  }
116
50
  /**
117
51
  * Archlinux: calamaresRemove
@@ -119,39 +53,36 @@ class Archlinux {
119
53
  static async calamaresRemove(verbose = true) {
120
54
  verbose = true; // serve per pacman
121
55
  let removed = false;
122
- const echo = utils_1.default.setEcho(verbose);
123
- let calPKGs = [
56
+ const echo = Utils.setEcho(verbose);
57
+ const calPKGs = [
124
58
  'arco-calamares',
125
- 'arco-calamares-git',
126
59
  'calamares',
127
- 'calamares-git',
60
+ 'calamares-garuda',
128
61
  ];
129
62
  for (const calPKG of calPKGs) {
130
63
  if (await this.packagePacmanAvailable(calPKG)) {
131
- await (0, utils_2.exec)(`pacman -R ${calPKG}`, echo);
64
+ await exec(`pacman -R ${calPKG}`, echo);
132
65
  removed = true;
133
66
  }
134
67
  }
135
- if (removed) {
136
- if (node_fs_1.default.existsSync('/etc/calamares')) {
137
- await (0, utils_2.exec)('rm /etc/calamares -rf', echo);
138
- }
68
+ if (removed && fs.existsSync('/etc/calamares')) {
69
+ await exec('rm /etc/calamares -rf', echo);
139
70
  }
140
71
  return removed;
141
72
  }
142
73
  /**
143
- * Archlinux: packageIsInstalled
144
- * restuisce VERO se il pacchetto è installato
145
- * @param packageName
74
+ * Archlinux: isInstalledWayland
75
+ * @returns true if wayland is installed
146
76
  */
147
- static packageIsInstalled(packageName) {
148
- let installed = false;
149
- const cmd = `/usr/bin/pacman -Qi ${packageName}`;
150
- const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
151
- if (stdout.includes(packageName)) {
152
- installed = true;
153
- }
154
- return installed;
77
+ static isInstalledWayland() {
78
+ return this.packageIsInstalled('xwayland');
79
+ }
80
+ /**
81
+ * Archlinux: isInstalledXorg
82
+ * @returns true if xorg is installed
83
+ */
84
+ static isInstalledXorg() {
85
+ return this.packageIsInstalled('xorg-server-common');
155
86
  }
156
87
  /**
157
88
  * Archlinux: packageInstall
@@ -161,11 +92,25 @@ class Archlinux {
161
92
  */
162
93
  static async packageInstall(packageName) {
163
94
  let retVal = false;
164
- if (shelljs_1.default.exec(`/usr/bin/pacman -Si ${packageName}`, { silent: true }) === '0') {
95
+ if (shx.exec(`/usr/bin/pacman -Si ${packageName}`, { silent: true }) === '0') {
165
96
  retVal = true;
166
97
  }
167
98
  return retVal;
168
99
  }
100
+ /**
101
+ * Archlinux: packageIsInstalled
102
+ * restuisce VERO se il pacchetto è installato
103
+ * @param packageName
104
+ */
105
+ static packageIsInstalled(packageName) {
106
+ let installed = false;
107
+ const cmd = `/usr/bin/pacman -Qi ${packageName}`;
108
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
109
+ if (stdout.includes(packageName)) {
110
+ installed = true;
111
+ }
112
+ return installed;
113
+ }
169
114
  /**
170
115
  * Archlinux: packagePacmanAvailable
171
116
  * restuisce VERO se il pacchetto è installato
@@ -174,7 +119,7 @@ class Archlinux {
174
119
  static async packagePacmanAvailable(packageName) {
175
120
  let available = false;
176
121
  const cmd = `/usr/bin/pacman -Q ${packageName} | awk '{ print $1 }'`;
177
- const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
122
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
178
123
  if (stdout == packageName) {
179
124
  available = true;
180
125
  }
@@ -188,7 +133,7 @@ class Archlinux {
188
133
  static async packagePacmanLast(packageName) {
189
134
  let version = '';
190
135
  const cmd = `/usr/bin/pacman -Q ${packageName} | grep Version:`;
191
- const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
136
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
192
137
  version = stdout.slice(9);
193
138
  // console.log('===================================')
194
139
  // console.log('[' + version + ']')
@@ -196,5 +141,3 @@ class Archlinux {
196
141
  return version;
197
142
  }
198
143
  }
199
- Archlinux.packs4calamares = ['calamares-eggs']; // , 'calamares', 'calamares-git']
200
- exports.default = Archlinux;
@@ -0,0 +1,65 @@
1
+ /**
2
+ * ./src/classes/families/debian.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ * Debian
10
+ * @remarks all the utilities
11
+ */
12
+ export default class Debian {
13
+ static debs4calamares: string[];
14
+ /**
15
+ * Debian: calamaresInstall
16
+ */
17
+ static calamaresInstall(verbose?: boolean): Promise<void>;
18
+ /**
19
+ * Debian: calamaresPolicies
20
+ */
21
+ static calamaresPolicies(): Promise<void>;
22
+ /**
23
+ * Debian: calamaresRemove
24
+ */
25
+ static calamaresRemove(verbose?: boolean): Promise<boolean>;
26
+ /**
27
+ * Debian: isInstalledWayland
28
+ * @returns true if wayland is installed
29
+ */
30
+ static isInstalledWayland(): boolean;
31
+ /**
32
+ * Debian: isInstalledXorg
33
+ * @returns true if xorg is installed
34
+ */
35
+ static isInstalledXorg(): boolean;
36
+ /**
37
+ * Debian: liveInstallerPolicies
38
+ * liveInstallerPolicies is NOT USED
39
+ */
40
+ static liveInstallerPolicies(): Promise<void>;
41
+ /**
42
+ * Debian: packageAptAvailable
43
+ * return TRUE if package is present on repository
44
+ * @param debPackage
45
+ */
46
+ static packageAptAvailable(packageName: string): Promise<boolean>;
47
+ /**
48
+ * Debian: packageAptLast
49
+ * @param debPackage
50
+ * @returns version
51
+ */
52
+ static packageAptLast(debPackage: string): Promise<string>;
53
+ /**
54
+ * Debian: packageInstall
55
+ * @param packageName {string} Pacchetto Debian da installare
56
+ * @returns {boolean} True if success
57
+ */
58
+ static packageInstall(packageName: string): Promise<boolean>;
59
+ /**
60
+ * Debian: packageIsInstalled
61
+ * restuisce VERO se il pacchetto è installato
62
+ * @param debPackage
63
+ */
64
+ static packageIsInstalled(debPackage: string): boolean;
65
+ }
@@ -1,127 +1,37 @@
1
- "use strict";
2
1
  /**
3
- * penguins-eggs
4
- * classes/families: debian.ts
5
- * author: Piero Proietti
6
- * email: piero.proietti@gmail.com
7
- * license: MIT
8
- */
9
- Object.defineProperty(exports, "__esModule", { value: true });
10
- const tslib_1 = require("tslib");
11
- const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
12
- const shelljs_1 = tslib_1.__importDefault(require("shelljs"));
13
- const utils_1 = tslib_1.__importDefault(require("../utils"));
14
- const pacman_1 = tslib_1.__importDefault(require("../pacman"));
15
- const utils_2 = require("../../lib/utils");
16
- const dependencies_1 = require("../../lib/dependencies");
2
+ * ./src/classes/families/debian.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import fs from 'node:fs';
9
+ import shx from 'shelljs';
10
+ import { exec } from '../../lib/utils.js';
11
+ import Utils from '../utils.js';
17
12
  /**
18
13
  * Debian
19
14
  * @remarks all the utilities
20
15
  */
21
- class Debian {
22
- /**
23
- * Debian: isInstalledXorg
24
- * @returns true if xorg is installed
25
- */
26
- static isInstalledXorg() {
27
- return this.packageIsInstalled('xserver-xorg-core');
28
- }
29
- /**
30
- * Debian: isInstalledWayland
31
- * @returns true if wayland is installed
32
- */
33
- static isInstalledWayland() {
34
- return this.packageIsInstalled('xwayland');
35
- }
36
- /**
37
- * Debian: packages
38
- * Create array packages to install/remove
39
- */
40
- static packages(remove = false, verbose = false) {
41
- let packages = [];
42
- const toInstall = [];
43
- const toRemove = [];
44
- for (const elem of dependencies_1.depCommon) {
45
- if (!this.packageIsInstalled(elem)) {
46
- toInstall.push(elem);
47
- }
48
- else {
49
- toRemove.push(elem);
50
- }
51
- }
52
- const arch = utils_1.default.uefiArch();
53
- for (const dep of dependencies_1.depArch) {
54
- if (dep.arch.includes(arch)) {
55
- if (!this.packageIsInstalled(dep.package)) {
56
- toInstall.push(dep.package);
57
- }
58
- else {
59
- toRemove.push(dep.package);
60
- }
61
- }
62
- }
63
- /**
64
- * depending on init/systemd
65
- */
66
- const initType = shelljs_1.default.exec('ps --no-headers -o comm 1', { silent: !verbose }).trim();
67
- for (const dep of dependencies_1.depInit) {
68
- if (dep.init.includes(initType)) {
69
- if (!this.packageIsInstalled(dep.package)) {
70
- toInstall.push(dep.package);
71
- }
72
- else {
73
- toRemove.push(dep.package);
74
- }
75
- }
76
- }
77
- packages = toInstall;
78
- if (remove) {
79
- packages = toRemove;
80
- }
81
- return packages;
82
- }
83
- /**
84
- * Debian: prerequisitesInstall
85
- * install prerequisites
86
- */
87
- static async prerequisitesInstall(verbose = true) {
88
- const echo = utils_1.default.setEcho(verbose);
89
- const retVal = false;
90
- await (0, utils_2.exec)(`apt-get install --yes ${(0, dependencies_1.array2spaced)(this.packages(false, verbose))}`, echo);
91
- if (!pacman_1.default.isInstalledGui()) {
92
- /**
93
- * live-config-getty-generator
94
- *
95
- * Viene rimosso in naked, altrimenti non funziona il login
96
- * generando un errore getty.
97
- * Sarebbe utile individuarne le ragioni, forse rompe anche sul desktop
98
- * non permettendo di cambiare terminale e loggarsi
99
- *
100
- * A che serve?
101
- */
102
- const fileToRemove = '/lib/systemd/system-generators/live-config-getty-generator';
103
- if (node_fs_1.default.existsSync(fileToRemove)) {
104
- await (0, utils_2.exec)(`rm ${fileToRemove}`);
105
- }
106
- }
107
- return retVal;
108
- }
16
+ export default class Debian {
17
+ static debs4calamares = ['calamares', 'qml-module-qtquick2', 'qml-module-qtquick-controls'];
109
18
  /**
110
19
  * Debian: calamaresInstall
111
20
  */
112
21
  static async calamaresInstall(verbose = true) {
113
- const echo = utils_1.default.setEcho(verbose);
22
+ const echo = Utils.setEcho(verbose);
114
23
  try {
115
- await (0, utils_2.exec)('apt-get update --yes', echo);
24
+ await exec('apt-get update --yes', echo);
116
25
  }
117
26
  catch {
118
- utils_1.default.error('Debian.calamaresInstall() apt-get update --yes '); // + e.error as string)
27
+ Utils.error('Debian.calamaresInstall() apt-get update --yes '); // + e.error as string)
119
28
  }
120
29
  try {
121
- await (0, utils_2.exec)(`apt-get install --yes ${(0, dependencies_1.array2spaced)(this.debs4calamares)}`, echo);
30
+ // await exec(`apt-get install --yes ${array2spaced(this.debs4calamares)}`, echo)
31
+ await exec(`apt-get install --yes ${this.debs4calamares.join(' ')}`, echo);
122
32
  }
123
33
  catch {
124
- utils_1.default.error(`Debian.calamaresInstall() apt-get install --yes ${(0, dependencies_1.array2spaced)(this.debs4calamares)}`); // + e.error)
34
+ Utils.error(`Debian.calamaresInstall() apt-get install --yes ${array2spaced(this.debs4calamares)}`); // + e.error)
125
35
  }
126
36
  }
127
37
  /**
@@ -129,54 +39,42 @@ class Debian {
129
39
  */
130
40
  static async calamaresPolicies() {
131
41
  const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
132
- await (0, utils_2.exec)(`sed -i 's/auth_admin/yes/' ${policyFile}`);
42
+ await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`);
133
43
  }
134
44
  /**
135
45
  * Debian: calamaresRemove
136
46
  */
137
47
  static async calamaresRemove(verbose = true) {
138
- const echo = utils_1.default.setEcho(verbose);
48
+ const echo = Utils.setEcho(verbose);
139
49
  const retVal = false;
140
- if (node_fs_1.default.existsSync('/etc/calamares')) {
141
- await (0, utils_2.exec)('rm /etc/calamares -rf', echo);
50
+ if (fs.existsSync('/etc/calamares')) {
51
+ await exec('rm /etc/calamares -rf', echo);
142
52
  }
143
- await (0, utils_2.exec)('apt-get remove --purge --yes calamares', echo);
144
- await (0, utils_2.exec)('apt-get autoremove --yes', echo);
53
+ await exec('apt-get remove --purge --yes calamares', echo);
54
+ await exec('apt-get autoremove --yes', echo);
145
55
  return retVal;
146
56
  }
147
57
  /**
148
- * Debian: liveInstallerPolicies
149
- * liveInstallerPolicies is NOT USED
58
+ * Debian: isInstalledWayland
59
+ * @returns true if wayland is installed
150
60
  */
151
- static async liveInstallerPolicies() {
152
- const policyFile = '/usr/share/polkit-1/actions/com.github.pieroproietti.penguins-eggs.policy';
153
- await (0, utils_2.exec)(`sed -i 's/auth_admin/yes/' ${policyFile}`);
61
+ static isInstalledWayland() {
62
+ return this.packageIsInstalled('xwayland');
154
63
  }
155
64
  /**
156
- * Debian: packageIsInstalled
157
- * restuisce VERO se il pacchetto è installato
158
- * @param debPackage
65
+ * Debian: isInstalledXorg
66
+ * @returns true if xorg is installed
159
67
  */
160
- static packageIsInstalled(debPackage) {
161
- let installed = false;
162
- const cmd = `/usr/bin/dpkg -s ${debPackage} | grep Status:`;
163
- const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
164
- if (stdout === 'Status: install ok installed') {
165
- installed = true;
166
- }
167
- return installed;
68
+ static isInstalledXorg() {
69
+ return this.packageIsInstalled('xserver-xorg-core');
168
70
  }
169
71
  /**
170
- * Debian: packageInstall
171
- * @param packageName {string} Pacchetto Debian da installare
172
- * @returns {boolean} True if success
72
+ * Debian: liveInstallerPolicies
73
+ * liveInstallerPolicies is NOT USED
173
74
  */
174
- static async packageInstall(packageName) {
175
- let retVal = false;
176
- if (shelljs_1.default.exec(`/usr/bin/apt-get install -y ${packageName}`, { silent: true }) === '0') {
177
- retVal = true;
178
- }
179
- return retVal;
75
+ static async liveInstallerPolicies() {
76
+ const policyFile = '/usr/share/polkit-1/actions/com.github.pieroproietti.penguins-eggs.policy';
77
+ await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`);
180
78
  }
181
79
  /**
182
80
  * Debian: packageAptAvailable
@@ -187,7 +85,7 @@ class Debian {
187
85
  let available = false;
188
86
  const cmd = `apt-cache show ${packageName} | grep Package:`;
189
87
  const test = `Package: ${packageName}`;
190
- const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
88
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
191
89
  if (stdout === test) {
192
90
  available = true;
193
91
  }
@@ -201,13 +99,40 @@ class Debian {
201
99
  static async packageAptLast(debPackage) {
202
100
  let version = '';
203
101
  const cmd = `apt-cache show ${debPackage} | grep Version:`;
204
- const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
102
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
205
103
  version = stdout.slice(9);
206
104
  // console.log('===================================')
207
105
  // console.log('[' + version + ']')
208
106
  // console.log('===================================')
209
107
  return version;
210
108
  }
109
+ /**
110
+ * Debian: packageInstall
111
+ * @param packageName {string} Pacchetto Debian da installare
112
+ * @returns {boolean} True if success
113
+ */
114
+ static async packageInstall(packageName) {
115
+ let retVal = false;
116
+ if (shx.exec(`/usr/bin/apt-get install -y ${packageName}`, { silent: true }) === '0') {
117
+ retVal = true;
118
+ }
119
+ return retVal;
120
+ }
121
+ /**
122
+ * Debian: packageIsInstalled
123
+ * restuisce VERO se il pacchetto è installato
124
+ * @param debPackage
125
+ */
126
+ static packageIsInstalled(debPackage) {
127
+ let installed = false;
128
+ const cmd = `/usr/bin/dpkg -s ${debPackage} | grep Status:`;
129
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
130
+ if (stdout === 'Status: install ok installed') {
131
+ installed = true;
132
+ }
133
+ return installed;
134
+ }
135
+ }
136
+ function array2spaced(oArray) {
137
+ return oArray.join(' ');
211
138
  }
212
- Debian.debs4calamares = ['calamares', 'qml-module-qtquick2', 'qml-module-qtquick-controls'];
213
- exports.default = Debian;
@@ -0,0 +1,52 @@
1
+ /**
2
+ * ./src/classes/families/fedora.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ * Utils: general porpourse utils
10
+ * @remarks all the utilities
11
+ */
12
+ export default class Fedora {
13
+ static packs4calamares: string[];
14
+ /**
15
+ *
16
+ */
17
+ static calamaresInstall(verbose?: boolean): Promise<void>;
18
+ /**
19
+ * calamaresPolicies
20
+ */
21
+ static calamaresPolicies(): Promise<void>;
22
+ /**
23
+ *
24
+ */
25
+ static calamaresRemove(verbose?: boolean): Promise<boolean>;
26
+ /**
27
+ * check if it's installed wayland
28
+ * @returns true if wayland
29
+ */
30
+ static isInstalledWayland(): boolean;
31
+ /**
32
+ * check if it's installed xorg
33
+ * @returns true if xorg is installed
34
+ */
35
+ static isInstalledXorg(): boolean;
36
+ /**
37
+ * restuisce VERO se il pacchetto è installato
38
+ * @param packageName
39
+ */
40
+ static packageAvailable(packageName: string): Promise<boolean>;
41
+ /**
42
+ * Install the package packageName
43
+ * @param packageName {string} Pacchetto da installare
44
+ * @returns {boolean} True if success
45
+ */
46
+ static packageInstall(packageName: string): Promise<boolean>;
47
+ /**
48
+ * restuisce VERO se il pacchetto è installato
49
+ * @param packageName
50
+ */
51
+ static packageIsInstalled(packageName: string): boolean;
52
+ }