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,63 +1,99 @@
1
- "use strict";
2
1
  /**
3
- * penguins-eggs
4
- * class: settings.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");
2
+ * ./src/classes/settings.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 chalk from 'chalk';
9
+ import yaml from 'js-yaml';
11
10
  // packages
12
- const node_fs_1 = tslib_1.__importDefault(require("node:fs"));
13
- const node_os_1 = tslib_1.__importDefault(require("node:os"));
14
- const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
15
- const shelljs_1 = tslib_1.__importDefault(require("shelljs"));
16
- const chalk_1 = tslib_1.__importDefault(require("chalk"));
11
+ import fs from 'node:fs';
12
+ // pjson
13
+ import { createRequire } from 'node:module';
14
+ import os from 'node:os';
15
+ import shx from 'shelljs';
16
+ const require = createRequire(import.meta.url);
17
17
  const pjson = require('../../package.json');
18
+ import Distro from './distro.js';
19
+ import Pacman from './pacman.js';
18
20
  // classes
19
- const utils_1 = tslib_1.__importDefault(require("./utils"));
20
- const distro_1 = tslib_1.__importDefault(require("./distro"));
21
- const pacman_1 = tslib_1.__importDefault(require("./pacman"));
21
+ import Utils from './utils.js';
22
22
  const config_file = '/etc/penguins-eggs.d/eggs.yaml';
23
23
  /**
24
24
  * Setting
25
25
  */
26
- class Settings {
26
+ export default class Settings {
27
+ app = {};
28
+ config = {};
29
+ distro = {};
30
+ efi_work = '';
31
+ i686 = false;
32
+ incubator = {};
33
+ initrd_image = '';
34
+ initrdImg = '';
35
+ isLive = false;
36
+ iso_work = '';
37
+ isoFilename = '';
38
+ kernel_image = '';
39
+ remix = {};
40
+ session_excludes = '';
41
+ vmlinuz = '';
42
+ work_dir = {}; // resulting name of the iso
27
43
  constructor(compression = '') {
28
- this.app = {};
29
- this.config = {};
30
- this.remix = {};
31
- this.work_dir = {};
32
- this.distro = {};
33
- this.incubator = {};
34
- this.i686 = false;
35
- this.isLive = false;
36
- this.efi_work = '';
37
- this.iso_work = '';
38
- this.kernel_image = '';
39
- this.initrd_image = '';
40
- this.vmlinuz = '';
41
- this.initrdImg = '';
42
- this.session_excludes = '';
43
- this.isoFilename = ''; // resulting name of the iso
44
44
  this.config.compression = compression;
45
45
  this.app.author = 'Piero Proietti';
46
46
  this.app.homepage = 'https://github.com/pieroproietti/penguins-eggs';
47
47
  this.app.mail = 'piero.proietti@gmail.com';
48
48
  this.app.name = pjson.name;
49
49
  this.app.version = pjson.version;
50
- this.isLive = utils_1.default.isLive();
51
- this.i686 = utils_1.default.isi686();
52
- this.distro = new distro_1.default(this.remix);
50
+ this.isLive = Utils.isLive();
51
+ this.i686 = Utils.isi686();
52
+ this.distro = new Distro(this.remix);
53
53
  }
54
54
  /**
55
- *
56
- * @param config
55
+ * Calculate and show free space on the disk
56
+ * @returns {void}
57
57
  */
58
- async save(config) {
59
- const ordered = utils_1.default.sortObjectKeys(config);
60
- node_fs_1.default.writeFileSync(config_file, js_yaml_1.default.dump(ordered), 'utf-8');
58
+ async listFreeSpace() {
59
+ if (!fs.existsSync(this.config.snapshot_dir)) {
60
+ fs.mkdirSync(this.config.snapshot_dir);
61
+ if (!fs.existsSync(this.config.snapshot_mnt)) {
62
+ fs.mkdirSync(this.config.snapshot_mnt);
63
+ }
64
+ }
65
+ /** Lo spazio usato da SquashFS non è stimabile da live
66
+ * errore buffer troppo piccolo
67
+ */
68
+ const gb = 1_048_576;
69
+ let spaceAvailable = 0;
70
+ if (!Utils.isLive()) {
71
+ console.log(`Disk space used: ${Math.round((Utils.getUsedSpace() / gb) * 10) / 10} GB`);
72
+ }
73
+ spaceAvailable = Number(shx
74
+ .exec(`df "${this.config.snapshot_mnt}" | /usr/bin/awk 'NR==2 {print $4}'`, {
75
+ silent: true,
76
+ })
77
+ .stdout.trim());
78
+ console.log(`Space available: ${Math.round((spaceAvailable / gb) * 10) / 10} GB`);
79
+ console.log(`There are ${Utils.getSnapshotCount(this.config.snapshot_mnt)} snapshots taking ${Math.round((Utils.getSnapshotSize(this.config.snapshot_mnt) / gb) * 10) / 10} GB of disk space.`);
80
+ console.log();
81
+ if (spaceAvailable > gb * 3) {
82
+ console.log(chalk.cyanBright('The free space should be sufficient to hold the'));
83
+ console.log(chalk.cyanBright('compressed data from the system'));
84
+ }
85
+ else {
86
+ console.log(chalk.redBright('The free space should be insufficient') + '.');
87
+ console.log();
88
+ if (Utils.isMountpoint(this.config.snapshot_mnt)) {
89
+ console.log('If necessary, you can create more available space');
90
+ console.log('by removing previous snapshots and saved copies.');
91
+ }
92
+ else {
93
+ console.log(`You can mount a free partition under ${this.config.snapshot_mnt}`);
94
+ }
95
+ console.log();
96
+ }
61
97
  }
62
98
  /**
63
99
  * Load configuration from config_file
@@ -65,12 +101,12 @@ class Settings {
65
101
  */
66
102
  async load() {
67
103
  const foundSettings = true;
68
- if (!node_fs_1.default.existsSync(config_file)) {
104
+ if (!fs.existsSync(config_file)) {
69
105
  console.log(`cannot find configuration file ${config_file},`);
70
106
  console.log('please generate it with: sudo eggs config');
71
107
  process.exit(1);
72
108
  }
73
- this.config = js_yaml_1.default.load(node_fs_1.default.readFileSync(config_file, 'utf-8'));
109
+ this.config = yaml.load(fs.readFileSync(config_file, 'utf8'));
74
110
  this.session_excludes = '';
75
111
  if (!this.config.snapshot_dir.endsWith('/')) {
76
112
  this.config.snapshot_dir += '/';
@@ -90,16 +126,14 @@ class Settings {
90
126
  this.iso_work = this.config.snapshot_mnt + 'iso/';
91
127
  // remember: before was hostname, not empty
92
128
  if (this.config.snapshot_basename === '') {
93
- this.config.snapshot_basename = node_os_1.default.hostname();
129
+ this.config.snapshot_basename = os.hostname();
94
130
  }
95
- if (this.config.make_efi && !pacman_1.default.isUefi()) {
96
- if (utils_1.default.uefiArch() === 'amd64') {
97
- utils_1.default.error('You choose to create an UEFI image, but miss to install grub-efi-amd64-bin package.');
98
- utils_1.default.error('Please install it before to create an UEFI image:');
99
- utils_1.default.warning('sudo apt install grub-efi-amd64-bin');
100
- utils_1.default.error('or edit /etc/penguins-eggs.d/eggs.yaml and set the valuer of make_efi = false');
101
- this.config.make_efi = false;
102
- }
131
+ if (this.config.make_efi && !Pacman.isUefi() && Utils.uefiArch() === 'amd64') {
132
+ Utils.error('You choose to create an UEFI image, but miss to install grub-efi-amd64-bin package.');
133
+ Utils.error('Please install it before to create an UEFI image:');
134
+ Utils.warning('sudo apt install grub-efi-amd64-bin');
135
+ Utils.error('or edit /etc/penguins-eggs.d/eggs.yaml and set the valuer of make_efi = false');
136
+ this.config.make_efi = false;
103
137
  }
104
138
  this.kernel_image = this.config.vmlinuz;
105
139
  this.initrd_image = this.config.initrd_img;
@@ -121,68 +155,31 @@ class Settings {
121
155
  this.config.root_passwd = 'evolution';
122
156
  }
123
157
  if (this.config.timezone === undefined || this.config.timezone === '') {
124
- this.config.timezone = shelljs_1.default.exec('cat /etc/timezone', { silent: true }).stdout.trim();
158
+ this.config.timezone = shx.exec('cat /etc/timezone', { silent: true }).stdout.trim();
125
159
  }
126
160
  return foundSettings;
127
161
  }
128
- /**
129
- * Calculate and show free space on the disk
130
- * @returns {void}
131
- */
132
- async listFreeSpace() {
133
- if (!node_fs_1.default.existsSync(this.config.snapshot_dir)) {
134
- node_fs_1.default.mkdirSync(this.config.snapshot_dir);
135
- if (!node_fs_1.default.existsSync(this.config.snapshot_mnt)) {
136
- node_fs_1.default.mkdirSync(this.config.snapshot_mnt);
137
- }
138
- }
139
- /** Lo spazio usato da SquashFS non è stimabile da live
140
- * errore buffer troppo piccolo
141
- */
142
- const gb = 1048576;
143
- let spaceAvailable = 0;
144
- if (!utils_1.default.isLive()) {
145
- console.log(`Disk space used: ${Math.round((utils_1.default.getUsedSpace() / gb) * 10) / 10} GB`);
146
- }
147
- spaceAvailable = Number(shelljs_1.default
148
- .exec(`df "${this.config.snapshot_mnt}" | /usr/bin/awk 'NR==2 {print $4}'`, {
149
- silent: true,
150
- })
151
- .stdout.trim());
152
- console.log(`Space available: ${Math.round((spaceAvailable / gb) * 10) / 10} GB`);
153
- console.log(`There are ${utils_1.default.getSnapshotCount(this.config.snapshot_mnt)} snapshots taking ${Math.round((utils_1.default.getSnapshotSize(this.config.snapshot_mnt) / gb) * 10) / 10} GB of disk space.`);
154
- console.log();
155
- if (spaceAvailable > gb * 3) {
156
- console.log(chalk_1.default.cyanBright('The free space should be sufficient to hold the'));
157
- console.log(chalk_1.default.cyanBright('compressed data from the system'));
158
- }
159
- else {
160
- console.log(chalk_1.default.redBright('The free space should be insufficient') + '.');
161
- console.log();
162
- if (utils_1.default.isMountpoint(this.config.snapshot_mnt)) {
163
- console.log('If necessary, you can create more available space');
164
- console.log('by removing previous snapshots and saved copies.');
165
- }
166
- else {
167
- console.log(`You can mount a free partition under ${this.config.snapshot_mnt}`);
168
- }
169
- console.log();
170
- }
171
- }
172
162
  /**
173
163
  *
174
164
  * @param basename
175
165
  * @param theme
176
166
  */
177
167
  async loadRemix(basename = '', theme = '') {
178
- this.remix.versionNumber = utils_1.default.getPackageVersion();
179
- this.remix.kernel = utils_1.default.kernelVersion();
168
+ this.remix.versionNumber = Utils.getPackageVersion();
169
+ this.remix.kernel = Utils.kernelVersion();
180
170
  this.remix.branding = theme === '' ? 'eggs' : this.remix.branding = theme.slice(Math.max(0, theme.lastIndexOf('/') + 1));
181
171
  this.remix.name = this.config.snapshot_basename;
182
172
  let name = this.config.snapshot_prefix + this.config.snapshot_basename;
183
- name = name.replace(/-/g, ' ').replace(/_/g, ' ').replace('egg of ', '');
173
+ name = name.replaceAll('-', ' ').replaceAll('_', ' ').replace('egg of ', '');
184
174
  this.remix.fullname = name;
185
175
  this.remix.versionName = name.toUpperCase();
186
176
  }
177
+ /**
178
+ *
179
+ * @param config
180
+ */
181
+ async save(config) {
182
+ const ordered = Utils.sortObjectKeys(config);
183
+ fs.writeFileSync(config_file, yaml.dump(ordered), 'utf-8');
184
+ }
187
185
  }
188
- exports.default = Settings;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * ./src/classes/sources_list.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
+ *
10
+ */
11
+ export default class SourcesList {
12
+ /**
13
+ *
14
+ * @param repos
15
+ * @returns
16
+ */
17
+ components(components: string[]): Promise<boolean>;
18
+ /**
19
+ *
20
+ * @param repos
21
+ * @returns
22
+ */
23
+ distribution(distributions: string[]): Promise<boolean>;
24
+ /**
25
+ *
26
+ */
27
+ private get;
28
+ }
@@ -1,40 +1,18 @@
1
- "use strict";
2
1
  /**
3
- * penguins-eggs
4
- * class: sources_list.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 chalk_1 = tslib_1.__importDefault(require("chalk"));
12
- const utils_1 = tslib_1.__importDefault(require("./utils"));
13
- const utils_2 = require("../lib/utils");
14
- const distro_1 = tslib_1.__importDefault(require("./distro"));
2
+ * ./src/classes/sources_list.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 chalk from 'chalk';
9
+ import { exec } from '../lib/utils.js';
10
+ import Distro from './distro.js';
11
+ import Utils from './utils.js';
15
12
  /**
16
13
  *
17
14
  */
18
- class SourcesList {
19
- /**
20
- *
21
- * @param repos
22
- * @returns
23
- */
24
- async distribution(distributions) {
25
- /**
26
- * Linuxmint non ha nessuna configurazione in /etc/apt/sources.list
27
- */
28
- let checked = true;
29
- checked = false;
30
- const distro = new distro_1.default();
31
- for (const distribution of distributions) {
32
- if (distribution.includes(distro.codenameLikeId)) {
33
- checked = true;
34
- }
35
- }
36
- return checked;
37
- }
15
+ export default class SourcesList {
38
16
  /**
39
17
  *
40
18
  * @param repos
@@ -51,16 +29,35 @@ class SourcesList {
51
29
  for (const component of components) {
52
30
  // On security we need just main
53
31
  if (!repo.includes('security') && !repo.includes(component)) {
54
- console.log('component: ' + chalk_1.default.green(component) + ' is not included in repo: ' + chalk_1.default.green(repo));
32
+ console.log('component: ' + chalk.green(component) + ' is not included in repo: ' + chalk.green(repo));
55
33
  checked = false;
56
34
  }
57
35
  }
58
36
  }
59
37
  if (checked) {
60
- utils_1.default.warning('repositories checked');
38
+ Utils.warning('repositories checked');
61
39
  }
62
40
  else {
63
- utils_1.default.pressKeyToExit('component warning, check your /etc/apt/sources.list', true);
41
+ Utils.pressKeyToExit('component warning, check your /etc/apt/sources.list', true);
42
+ }
43
+ }
44
+ return checked;
45
+ }
46
+ /**
47
+ *
48
+ * @param repos
49
+ * @returns
50
+ */
51
+ async distribution(distributions) {
52
+ /**
53
+ * Linuxmint non ha nessuna configurazione in /etc/apt/sources.list
54
+ */
55
+ let checked = true;
56
+ checked = false;
57
+ const distro = new Distro();
58
+ for (const distribution of distributions) {
59
+ if (distribution.includes(distro.codenameLikeId)) {
60
+ checked = true;
64
61
  }
65
62
  }
66
63
  return checked;
@@ -70,12 +67,12 @@ class SourcesList {
70
67
  */
71
68
  async get() {
72
69
  let universalSourcesList = '/etc/apt/sources.list';
73
- const distro = new distro_1.default();
70
+ const distro = new Distro();
74
71
  if (distro.distroId === 'Linuxmint') {
75
72
  universalSourcesList = '/etc/apt/sources.list.d/official-package-repositories.list';
76
73
  }
77
74
  // deb uri distribution [component1] [component2] [...]
78
- const checkRepos = await (0, utils_2.exec)(`grep "deb http"<${universalSourcesList}`, { echo: false, capture: true });
75
+ const checkRepos = await exec(`grep "deb http"<${universalSourcesList}`, { capture: true, echo: false });
79
76
  let tmp = [];
80
77
  if (checkRepos.code === 0) {
81
78
  tmp = checkRepos.data.split('\n');
@@ -90,4 +87,3 @@ class SourcesList {
90
87
  return repos;
91
88
  }
92
89
  }
93
- exports.default = SourcesList;
@@ -0,0 +1,47 @@
1
+ /**
2
+ /**
3
+ * penguins-eggs
4
+ * class: systemctl.ts
5
+ * author: Piero Proietti
6
+ * email: piero.proietti@gmail.com
7
+ * Presa da https://github.com/VolantisDev/node-systemctl
8
+ * license: MIT
9
+ */
10
+ export default class SistemdCtl {
11
+ echo: {};
12
+ constructor(verbose?: boolean);
13
+ /**
14
+ *
15
+ */
16
+ disable(service: string, chroot?: string, report?: boolean): Promise<void>;
17
+ /**
18
+ *
19
+ */
20
+ enable(service: string): Promise<void>;
21
+ /**
22
+ *
23
+ * @param service
24
+ * @returns
25
+ */
26
+ isActive(service: string): Promise<unknown>;
27
+ /**
28
+ *
29
+ */
30
+ isEnabled(service: string): Promise<unknown>;
31
+ /**
32
+ *
33
+ */
34
+ reload(service: string): Promise<void>;
35
+ /**
36
+ *
37
+ */
38
+ restart(service: string): Promise<void>;
39
+ /**
40
+ *
41
+ */
42
+ start(service: string): Promise<void>;
43
+ /**
44
+ *
45
+ */
46
+ stop(service: string): Promise<void>;
47
+ }
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  /**
3
2
  /**
4
3
  * penguins-eggs
@@ -8,26 +7,18 @@
8
7
  * Presa da https://github.com/VolantisDev/node-systemctl
9
8
  * license: MIT
10
9
  */
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const tslib_1 = require("tslib");
13
- const utils_1 = require("../lib/utils");
14
- const utils_2 = tslib_1.__importDefault(require("./utils"));
15
- class SistemdCtl {
10
+ import { exec } from '../lib/utils.js';
11
+ import Utils from './utils.js';
12
+ export default class SistemdCtl {
13
+ echo = {};
16
14
  constructor(verbose = false) {
17
- this.echo = {};
18
- this.echo = utils_2.default.setEcho(verbose);
19
- }
20
- /**
21
- *
22
- */
23
- async reload(service) {
24
- await (0, utils_1.exec)(`systemctl reload ${service}`, this.echo);
15
+ this.echo = Utils.setEcho(verbose);
25
16
  }
26
17
  /**
27
18
  *
28
19
  */
29
20
  async disable(service, chroot = '/', report = false) {
30
- await (0, utils_1.exec)(`chroot ${chroot}} systemctl disable ${service}`, this.echo);
21
+ await exec(`chroot ${chroot}} systemctl disable ${service}`, this.echo);
31
22
  if (report) {
32
23
  console.log(`systemctl: disabled ${service} on ${chroot}`);
33
24
  }
@@ -36,25 +27,7 @@ class SistemdCtl {
36
27
  *
37
28
  */
38
29
  async enable(service) {
39
- await (0, utils_1.exec)(`systemctl enable ${service}`, this.echo);
40
- }
41
- /**
42
- *
43
- */
44
- async restart(service) {
45
- await (0, utils_1.exec)(`systemctl restart ${service}`, this.echo);
46
- }
47
- /**
48
- *
49
- */
50
- async start(service) {
51
- await (0, utils_1.exec)(`systemctl start ${service}`, this.echo);
52
- }
53
- /**
54
- *
55
- */
56
- async stop(service) {
57
- await (0, utils_1.exec)(`systemctl stop ${service}`, this.echo);
30
+ await exec(`systemctl enable ${service}`, this.echo);
58
31
  }
59
32
  /**
60
33
  *
@@ -63,11 +36,11 @@ class SistemdCtl {
63
36
  */
64
37
  async isActive(service) {
65
38
  return new Promise((resolve, reject) => {
66
- (0, utils_1.exec)(`systemctl is-active ${service}`, this.echo)
39
+ exec(`systemctl is-active ${service}`, this.echo)
67
40
  .then(result => {
68
41
  resolve(!result.data.includes('inactive'));
69
42
  })
70
- .catch(function (error) {
43
+ .catch((error) => {
71
44
  resolve(false);
72
45
  });
73
46
  });
@@ -77,14 +50,37 @@ class SistemdCtl {
77
50
  */
78
51
  async isEnabled(service) {
79
52
  return new Promise((resolve, reject) => {
80
- (0, utils_1.exec)(`systemctl is-enabled ${service}`, this.echo)
53
+ exec(`systemctl is-enabled ${service}`, this.echo)
81
54
  .then(result => {
82
55
  resolve(result.data.includes('enabled'));
83
56
  })
84
- .catch(function (error) {
57
+ .catch((error) => {
85
58
  resolve(false);
86
59
  });
87
60
  });
88
61
  }
62
+ /**
63
+ *
64
+ */
65
+ async reload(service) {
66
+ await exec(`systemctl reload ${service}`, this.echo);
67
+ }
68
+ /**
69
+ *
70
+ */
71
+ async restart(service) {
72
+ await exec(`systemctl restart ${service}`, this.echo);
73
+ }
74
+ /**
75
+ *
76
+ */
77
+ async start(service) {
78
+ await exec(`systemctl start ${service}`, this.echo);
79
+ }
80
+ /**
81
+ *
82
+ */
83
+ async stop(service) {
84
+ await exec(`systemctl stop ${service}`, this.echo);
85
+ }
89
86
  }
90
- exports.default = SistemdCtl;
@@ -0,0 +1,46 @@
1
+ /**
2
+ * ./src/classes/tailor.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 { IMateria } from '../interfaces/index.js';
9
+ /**
10
+ *
11
+ */
12
+ export default class Tailor {
13
+ materials: IMateria;
14
+ private category;
15
+ private costume;
16
+ private echo;
17
+ private verbose;
18
+ private wardrobe;
19
+ /**
20
+ * @param wardrobe
21
+ * @param costume
22
+ */
23
+ constructor(costume: string, category?: string);
24
+ /**
25
+ *
26
+ * @param packages
27
+ * @param verbose
28
+ * @param section
29
+ * @returns
30
+ */
31
+ helperExists(packages: string[], verbose?: boolean, section?: string): Promise<string[]>;
32
+ /**
33
+ * - check if every package if installed
34
+ * - if find any packages to install, install it
35
+ */
36
+ helperInstall(packages: string[], comment?: string, cmd?: string): Promise<void>;
37
+ /**
38
+ *
39
+ */
40
+ prepare(verbose?: boolean, no_accessories?: boolean, no_firmwares?: boolean): Promise<void>;
41
+ /**
42
+ *
43
+ * @param command
44
+ */
45
+ titles(command?: string): void;
46
+ }