penguins-eggs 25.10.6 → 25.10.23

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 (474) hide show
  1. package/.oclif.manifest.json +51 -145
  2. package/README.md +59 -120
  3. package/README.pdf +1723 -1731
  4. package/addons/eggs/theme/livecd/isolinux.main.simple.cfg +2 -3
  5. package/conf/distros/trixie/calamares/modules/shellprocess@boot_deploy.yml +3 -4
  6. package/conf/love.yaml +1 -1
  7. package/dracut/create-symlink +71 -0
  8. package/dracut/dracut-log.txt +3 -0
  9. package/dracut/dracut.conf.d/50-live.conf +24 -6
  10. package/dracut/dracut.conf.d/README.md +10 -0
  11. package/dracut/export +4 -0
  12. package/dracut/export-dracut-analysis +51 -0
  13. package/dracut/export-dracut-log +2 -0
  14. package/dracut/mkisofs +10 -0
  15. package/dracut/modules.d/00debug-shell/debug-hook.sh +13 -0
  16. package/dracut/modules.d/00debug-shell/module-setup.sh +20 -0
  17. package/dracut/modules.d/90block/README.md +7 -0
  18. package/dracut/modules.d/90block/block-cmdline.sh +3 -0
  19. package/dracut/modules.d/90block/module-setup.sh +15 -0
  20. package/dracut/modules.d/95iso-scan/README.md +3 -0
  21. package/dracut/modules.d/95iso-scan/iso-scan-fallback.sh +12 -0
  22. package/dracut/modules.d/95iso-scan/iso-scan.sh +92 -0
  23. package/dracut/modules.d/95iso-scan/module-setup.sh +18 -0
  24. package/dracut/modules.d/95luks-loop/README.md +9 -0
  25. package/dracut/modules.d/95luks-loop/luks-loop.sh +90 -0
  26. package/dracut/modules.d/95luks-loop/module-setup.sh +17 -0
  27. package/dracut/renew-initramfs +17 -0
  28. package/dracut/sbin2bin +10 -0
  29. package/dracut/update-dracut-conf-d +2 -0
  30. package/dracut/update-dracut-modules +62 -0
  31. package/manpages/doc/man/eggs.1.gz +0 -0
  32. package/manpages/doc/man/eggs.html +7 -661
  33. package/package.json +10 -9
  34. package/perrisbrewery/template/dependencies.yaml +6 -5
  35. package/scripts/_eggs +16 -31
  36. package/scripts/boot-encrypted-root.sh +177 -0
  37. package/scripts/eggs.bash +4 -6
  38. package/scripts/mount-encrypted-home.sh +259 -0
  39. package/dist/classes/bleach.d.ts +0 -37
  40. package/dist/classes/bleach.js +0 -148
  41. package/dist/classes/cli-autologin.d.ts +0 -52
  42. package/dist/classes/cli-autologin.js +0 -252
  43. package/dist/classes/compressors.d.ts +0 -54
  44. package/dist/classes/compressors.js +0 -109
  45. package/dist/classes/daddy.d.ts +0 -26
  46. package/dist/classes/daddy.js +0 -175
  47. package/dist/classes/distro.d.ts +0 -32
  48. package/dist/classes/distro.js +0 -356
  49. package/dist/classes/diversions.d.ts +0 -53
  50. package/dist/classes/diversions.js +0 -133
  51. package/dist/classes/incubation/branding.d.ts +0 -17
  52. package/dist/classes/incubation/branding.js +0 -85
  53. package/dist/classes/incubation/customize/customize-partitions.d.ts +0 -4
  54. package/dist/classes/incubation/customize/customize-partitions.js +0 -29
  55. package/dist/classes/incubation/fisherman-helper/initcpio.d.ts +0 -1
  56. package/dist/classes/incubation/fisherman-helper/initcpio.js +0 -69
  57. package/dist/classes/incubation/fisherman-helper/packages.d.ts +0 -20
  58. package/dist/classes/incubation/fisherman-helper/packages.js +0 -72
  59. package/dist/classes/incubation/fisherman-helper/settings.d.ts +0 -15
  60. package/dist/classes/incubation/fisherman-helper/settings.js +0 -116
  61. package/dist/classes/incubation/fisherman.d.ts +0 -71
  62. package/dist/classes/incubation/fisherman.js +0 -281
  63. package/dist/classes/incubation/incubator.d/alpine.d.ts +0 -32
  64. package/dist/classes/incubation/incubator.d/alpine.js +0 -78
  65. package/dist/classes/incubation/incubator.d/archlinux.d.ts +0 -32
  66. package/dist/classes/incubation/incubator.d/archlinux.js +0 -81
  67. package/dist/classes/incubation/incubator.d/bionic.d.ts +0 -32
  68. package/dist/classes/incubation/incubator.d/bionic.js +0 -83
  69. package/dist/classes/incubation/incubator.d/buster.d.ts +0 -32
  70. package/dist/classes/incubation/incubator.d/buster.js +0 -101
  71. package/dist/classes/incubation/incubator.d/fedora.d.ts +0 -32
  72. package/dist/classes/incubation/incubator.d/fedora.js +0 -81
  73. package/dist/classes/incubation/incubator.d/focal.d.ts +0 -32
  74. package/dist/classes/incubation/incubator.d/focal.js +0 -85
  75. package/dist/classes/incubation/incubator.d/manjaro.d.ts +0 -32
  76. package/dist/classes/incubation/incubator.d/manjaro.js +0 -82
  77. package/dist/classes/incubation/incubator.d/noble.d.ts +0 -32
  78. package/dist/classes/incubation/incubator.d/noble.js +0 -102
  79. package/dist/classes/incubation/incubator.d/openmamba.d.ts +0 -32
  80. package/dist/classes/incubation/incubator.d/openmamba.js +0 -81
  81. package/dist/classes/incubation/incubator.d/opensuse.d.ts +0 -32
  82. package/dist/classes/incubation/incubator.d/opensuse.js +0 -81
  83. package/dist/classes/incubation/incubator.d/trixie.d.ts +0 -32
  84. package/dist/classes/incubation/incubator.d/trixie.js +0 -101
  85. package/dist/classes/incubation/incubator.d.ts +0 -48
  86. package/dist/classes/incubation/incubator.js +0 -378
  87. package/dist/classes/incubation/installer.d.ts +0 -13
  88. package/dist/classes/incubation/installer.js +0 -52
  89. package/dist/classes/keyboards.d.ts +0 -50
  90. package/dist/classes/keyboards.js +0 -287
  91. package/dist/classes/locales.d.ts +0 -21
  92. package/dist/classes/locales.js +0 -77
  93. package/dist/classes/network.d.ts +0 -37
  94. package/dist/classes/network.js +0 -98
  95. package/dist/classes/ovary.d/bind-live-fs.d.ts +0 -18
  96. package/dist/classes/ovary.d/bind-live-fs.js +0 -185
  97. package/dist/classes/ovary.d/bind-vfs.d.ts +0 -17
  98. package/dist/classes/ovary.d/bind-vfs.js +0 -37
  99. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +0 -13
  100. package/dist/classes/ovary.d/create-xdg-autostart.js +0 -194
  101. package/dist/classes/ovary.d/edit-live-fs.d.ts +0 -20
  102. package/dist/classes/ovary.d/edit-live-fs.js +0 -245
  103. package/dist/classes/ovary.d/fertilization.d.ts +0 -12
  104. package/dist/classes/ovary.d/fertilization.js +0 -52
  105. package/dist/classes/ovary.d/finished.d.ts +0 -13
  106. package/dist/classes/ovary.d/finished.js +0 -44
  107. package/dist/classes/ovary.d/initrd.d.ts +0 -21
  108. package/dist/classes/ovary.d/initrd.js +0 -97
  109. package/dist/classes/ovary.d/kernel-copy.d.ts +0 -12
  110. package/dist/classes/ovary.d/kernel-copy.js +0 -22
  111. package/dist/classes/ovary.d/live-create-structure.d.ts +0 -12
  112. package/dist/classes/ovary.d/live-create-structure.js +0 -73
  113. package/dist/classes/ovary.d/make-dot-disk.d.ts +0 -12
  114. package/dist/classes/ovary.d/make-dot-disk.js +0 -62
  115. package/dist/classes/ovary.d/make-efi.d.ts +0 -14
  116. package/dist/classes/ovary.d/make-efi.js +0 -274
  117. package/dist/classes/ovary.d/make-iso.d.ts +0 -13
  118. package/dist/classes/ovary.d/make-iso.js +0 -45
  119. package/dist/classes/ovary.d/make-squashfs.d.ts +0 -18
  120. package/dist/classes/ovary.d/make-squashfs.js +0 -110
  121. package/dist/classes/ovary.d/merged.d.ts +0 -27
  122. package/dist/classes/ovary.d/merged.js +0 -78
  123. package/dist/classes/ovary.d/produce.d.ts +0 -23
  124. package/dist/classes/ovary.d/produce.js +0 -319
  125. package/dist/classes/ovary.d/rexec.d.ts +0 -13
  126. package/dist/classes/ovary.d/rexec.js +0 -34
  127. package/dist/classes/ovary.d/syslinux.d.ts +0 -12
  128. package/dist/classes/ovary.d/syslinux.js +0 -82
  129. package/dist/classes/ovary.d/user-create-live.d.ts +0 -14
  130. package/dist/classes/ovary.d/user-create-live.js +0 -97
  131. package/dist/classes/ovary.d/users-remove.d.ts +0 -9
  132. package/dist/classes/ovary.d/users-remove.js +0 -38
  133. package/dist/classes/ovary.d/xorriso-command.d.ts +0 -14
  134. package/dist/classes/ovary.d/xorriso-command.js +0 -123
  135. package/dist/classes/ovary.d.ts +0 -87
  136. package/dist/classes/ovary.js +0 -90
  137. package/dist/classes/pacman.d/alpine.d.ts +0 -56
  138. package/dist/classes/pacman.d/alpine.js +0 -167
  139. package/dist/classes/pacman.d/archlinux.d.ts +0 -62
  140. package/dist/classes/pacman.d/archlinux.js +0 -128
  141. package/dist/classes/pacman.d/debian.d.ts +0 -65
  142. package/dist/classes/pacman.d/debian.js +0 -143
  143. package/dist/classes/pacman.d/fedora.d.ts +0 -53
  144. package/dist/classes/pacman.d/fedora.js +0 -107
  145. package/dist/classes/pacman.d/openmamba.d.ts +0 -52
  146. package/dist/classes/pacman.d/openmamba.js +0 -106
  147. package/dist/classes/pacman.d/opensuse.d.ts +0 -53
  148. package/dist/classes/pacman.d/opensuse.js +0 -109
  149. package/dist/classes/pacman.d.ts +0 -139
  150. package/dist/classes/pacman.js +0 -683
  151. package/dist/classes/pve-live.d.ts +0 -17
  152. package/dist/classes/pve-live.js +0 -52
  153. package/dist/classes/pxe.d.ts +0 -76
  154. package/dist/classes/pxe.js +0 -353
  155. package/dist/classes/settings.d.ts +0 -52
  156. package/dist/classes/settings.js +0 -185
  157. package/dist/classes/sources_list.d.ts +0 -28
  158. package/dist/classes/sources_list.js +0 -89
  159. package/dist/classes/systemctl.d.ts +0 -47
  160. package/dist/classes/systemctl.js +0 -86
  161. package/dist/classes/tailor.d.ts +0 -50
  162. package/dist/classes/tailor.js +0 -563
  163. package/dist/classes/tools.d.ts +0 -26
  164. package/dist/classes/tools.js +0 -50
  165. package/dist/classes/users.d.ts +0 -28
  166. package/dist/classes/users.js +0 -143
  167. package/dist/classes/utils.d/kernel.d.ts +0 -39
  168. package/dist/classes/utils.d/kernel.js +0 -206
  169. package/dist/classes/utils.d.ts +0 -327
  170. package/dist/classes/utils.js +0 -955
  171. package/dist/classes/xdg.d.ts +0 -45
  172. package/dist/classes/xdg.js +0 -337
  173. package/dist/classes/yolk.d.ts +0 -33
  174. package/dist/classes/yolk.js +0 -114
  175. package/dist/commands/adapt.d.ts +0 -17
  176. package/dist/commands/adapt.js +0 -33
  177. package/dist/commands/analyze.d.ts +0 -26
  178. package/dist/commands/analyze.js +0 -95
  179. package/dist/commands/calamares.d.ts +0 -29
  180. package/dist/commands/calamares.js +0 -112
  181. package/dist/commands/config.d.ts +0 -35
  182. package/dist/commands/config.js +0 -120
  183. package/dist/commands/cuckoo.d.ts +0 -17
  184. package/dist/commands/cuckoo.js +0 -61
  185. package/dist/commands/dad.d.ts +0 -21
  186. package/dist/commands/dad.js +0 -47
  187. package/dist/commands/export/iso.d.ts +0 -19
  188. package/dist/commands/export/iso.js +0 -55
  189. package/dist/commands/export/pkg.d.ts +0 -29
  190. package/dist/commands/export/pkg.js +0 -173
  191. package/dist/commands/export/tarballs.d.ts +0 -27
  192. package/dist/commands/export/tarballs.js +0 -79
  193. package/dist/commands/install.d.ts +0 -39
  194. package/dist/commands/install.js +0 -113
  195. package/dist/commands/kill.d.ts +0 -24
  196. package/dist/commands/kill.js +0 -50
  197. package/dist/commands/love.d.ts +0 -21
  198. package/dist/commands/love.js +0 -73
  199. package/dist/commands/mom.d.ts +0 -16
  200. package/dist/commands/mom.js +0 -30
  201. package/dist/commands/pods.d.ts +0 -22
  202. package/dist/commands/pods.js +0 -92
  203. package/dist/commands/produce.d.ts +0 -35
  204. package/dist/commands/produce.js +0 -221
  205. package/dist/commands/status.d.ts +0 -23
  206. package/dist/commands/status.js +0 -31
  207. package/dist/commands/syncfrom.d.ts +0 -45
  208. package/dist/commands/syncfrom.js +0 -152
  209. package/dist/commands/syncto.d.ts +0 -40
  210. package/dist/commands/syncto.js +0 -175
  211. package/dist/commands/tools/clean.d.ts +0 -18
  212. package/dist/commands/tools/clean.js +0 -37
  213. package/dist/commands/tools/ppa.d.ts +0 -31
  214. package/dist/commands/tools/ppa.js +0 -244
  215. package/dist/commands/tools/skel.d.ts +0 -18
  216. package/dist/commands/tools/skel.js +0 -44
  217. package/dist/commands/tools/stat.d.ts +0 -31
  218. package/dist/commands/tools/stat.js +0 -70
  219. package/dist/commands/tools/yolk.d.ts +0 -24
  220. package/dist/commands/tools/yolk.js +0 -45
  221. package/dist/commands/update.d.ts +0 -46
  222. package/dist/commands/update.js +0 -238
  223. package/dist/commands/wardrobe/get.d.ts +0 -23
  224. package/dist/commands/wardrobe/get.js +0 -52
  225. package/dist/commands/wardrobe/list.d.ts +0 -24
  226. package/dist/commands/wardrobe/list.js +0 -125
  227. package/dist/commands/wardrobe/show.d.ts +0 -25
  228. package/dist/commands/wardrobe/show.js +0 -97
  229. package/dist/commands/wardrobe/wear.d.ts +0 -26
  230. package/dist/commands/wardrobe/wear.js +0 -84
  231. package/dist/dhcpd-proxy/classes/packet.d.ts +0 -36
  232. package/dist/dhcpd-proxy/classes/packet.js +0 -124
  233. package/dist/dhcpd-proxy/index.d.ts +0 -4
  234. package/dist/dhcpd-proxy/index.js +0 -4
  235. package/dist/dhcpd-proxy/interfaces/i-pxe.d.ts +0 -45
  236. package/dist/dhcpd-proxy/interfaces/i-pxe.js +0 -1
  237. package/dist/dhcpd-proxy/lib/packet/converters.d.ts +0 -11
  238. package/dist/dhcpd-proxy/lib/packet/converters.js +0 -395
  239. package/dist/dhcpd-proxy/lib/packet/message-types.d.ts +0 -10
  240. package/dist/dhcpd-proxy/lib/packet/message-types.js +0 -12
  241. package/dist/dhcpd-proxy/lib/packet/options.d.ts +0 -8
  242. package/dist/dhcpd-proxy/lib/packet/options.js +0 -264
  243. package/dist/dhcpd-proxy/lib/sprintf.d.ts +0 -6
  244. package/dist/dhcpd-proxy/lib/sprintf.js +0 -130
  245. package/dist/dhcpd-proxy/lib/utils.d.ts +0 -126
  246. package/dist/dhcpd-proxy/lib/utils.js +0 -255
  247. package/dist/dhcpd-proxy/simple-proxy.d.ts +0 -11
  248. package/dist/dhcpd-proxy/simple-proxy.js +0 -118
  249. package/dist/index.d.ts +0 -8
  250. package/dist/index.js +0 -8
  251. package/dist/interfaces/calamares/i-calamares-bootloader.d.ts +0 -23
  252. package/dist/interfaces/calamares/i-calamares-bootloader.js +0 -7
  253. package/dist/interfaces/calamares/i-calamares-branding.d.ts +0 -46
  254. package/dist/interfaces/calamares/i-calamares-branding.js +0 -1
  255. package/dist/interfaces/calamares/i-calamares-displaymanager.d.ts +0 -34
  256. package/dist/interfaces/calamares/i-calamares-displaymanager.js +0 -1
  257. package/dist/interfaces/calamares/i-calamares-finished.d.ts +0 -14
  258. package/dist/interfaces/calamares/i-calamares-finished.js +0 -1
  259. package/dist/interfaces/calamares/i-calamares-packages.d.ts +0 -26
  260. package/dist/interfaces/calamares/i-calamares-packages.js +0 -1
  261. package/dist/interfaces/calamares/i-calamares-partitions.d.ts +0 -39
  262. package/dist/interfaces/calamares/i-calamares-partitions.js +0 -1
  263. package/dist/interfaces/calamares/i-calamares-settings.d.ts +0 -36
  264. package/dist/interfaces/calamares/i-calamares-settings.js +0 -1
  265. package/dist/interfaces/i-addons.d.ts +0 -12
  266. package/dist/interfaces/i-addons.js +0 -8
  267. package/dist/interfaces/i-analyze.d.ts +0 -17
  268. package/dist/interfaces/i-analyze.js +0 -17
  269. package/dist/interfaces/i-app.d.ts +0 -14
  270. package/dist/interfaces/i-app.js +0 -8
  271. package/dist/interfaces/i-config-tools.d.ts +0 -15
  272. package/dist/interfaces/i-config-tools.js +0 -8
  273. package/dist/interfaces/i-devices.d.ts +0 -20
  274. package/dist/interfaces/i-devices.js +0 -8
  275. package/dist/interfaces/i-distro.d.ts +0 -23
  276. package/dist/interfaces/i-distro.js +0 -8
  277. package/dist/interfaces/i-drive-list.d.ts +0 -33
  278. package/dist/interfaces/i-drive-list.js +0 -8
  279. package/dist/interfaces/i-eggs-config.d.ts +0 -32
  280. package/dist/interfaces/i-eggs-config.js +0 -8
  281. package/dist/interfaces/i-excludes.d.ts +0 -14
  282. package/dist/interfaces/i-excludes.js +0 -8
  283. package/dist/interfaces/i-exec.d.ts +0 -11
  284. package/dist/interfaces/i-exec.js +0 -8
  285. package/dist/interfaces/i-initrd.d.ts +0 -13
  286. package/dist/interfaces/i-initrd.js +0 -8
  287. package/dist/interfaces/i-install.d.ts +0 -16
  288. package/dist/interfaces/i-install.js +0 -8
  289. package/dist/interfaces/i-installer.d.ts +0 -17
  290. package/dist/interfaces/i-installer.js +0 -8
  291. package/dist/interfaces/i-luks-passphrase.d.ts +0 -11
  292. package/dist/interfaces/i-luks-passphrase.js +0 -8
  293. package/dist/interfaces/i-materia.d.ts +0 -36
  294. package/dist/interfaces/i-materia.js +0 -8
  295. package/dist/interfaces/i-net.d.ts +0 -16
  296. package/dist/interfaces/i-net.js +0 -8
  297. package/dist/interfaces/i-os-release.d.ts +0 -5
  298. package/dist/interfaces/i-os-release.js +0 -1
  299. package/dist/interfaces/i-packages.d.ts +0 -16
  300. package/dist/interfaces/i-packages.js +0 -8
  301. package/dist/interfaces/i-partitions.d.ts +0 -16
  302. package/dist/interfaces/i-partitions.js +0 -8
  303. package/dist/interfaces/i-pxe.d.ts +0 -45
  304. package/dist/interfaces/i-pxe.js +0 -1
  305. package/dist/interfaces/i-remix.d.ts +0 -21
  306. package/dist/interfaces/i-remix.js +0 -8
  307. package/dist/interfaces/i-settings.d.ts +0 -33
  308. package/dist/interfaces/i-settings.js +0 -8
  309. package/dist/interfaces/i-user.d.ts +0 -14
  310. package/dist/interfaces/i-user.js +0 -8
  311. package/dist/interfaces/i-workdir.d.ts +0 -14
  312. package/dist/interfaces/i-workdir.js +0 -8
  313. package/dist/interfaces/i-xkb-model.d.ts +0 -24
  314. package/dist/interfaces/i-xkb-model.js +0 -8
  315. package/dist/interfaces/index.d.ts +0 -26
  316. package/dist/interfaces/index.js +0 -8
  317. package/dist/krill/classes/cfs.d.ts +0 -17
  318. package/dist/krill/classes/cfs.js +0 -39
  319. package/dist/krill/classes/krill_enums.d.ts +0 -37
  320. package/dist/krill/classes/krill_enums.js +0 -41
  321. package/dist/krill/classes/prepare.d/confirm.d.ts +0 -5
  322. package/dist/krill/classes/prepare.d/confirm.js +0 -30
  323. package/dist/krill/classes/prepare.d/keyboard.d.ts +0 -14
  324. package/dist/krill/classes/prepare.d/keyboard.js +0 -62
  325. package/dist/krill/classes/prepare.d/location.d.ts +0 -17
  326. package/dist/krill/classes/prepare.d/location.js +0 -59
  327. package/dist/krill/classes/prepare.d/network.d.ts +0 -14
  328. package/dist/krill/classes/prepare.d/network.js +0 -68
  329. package/dist/krill/classes/prepare.d/partitions.d.ts +0 -14
  330. package/dist/krill/classes/prepare.d/partitions.js +0 -86
  331. package/dist/krill/classes/prepare.d/summary.d.ts +0 -15
  332. package/dist/krill/classes/prepare.d/summary.js +0 -72
  333. package/dist/krill/classes/prepare.d/users.d.ts +0 -6
  334. package/dist/krill/classes/prepare.d/users.js +0 -63
  335. package/dist/krill/classes/prepare.d/welcome.d.ts +0 -6
  336. package/dist/krill/classes/prepare.d/welcome.js +0 -30
  337. package/dist/krill/classes/prepare.d.ts +0 -89
  338. package/dist/krill/classes/prepare.js +0 -319
  339. package/dist/krill/classes/sequence.d/add_user.d.ts +0 -20
  340. package/dist/krill/classes/sequence.d/add_user.js +0 -77
  341. package/dist/krill/classes/sequence.d/bootloader.d.ts +0 -14
  342. package/dist/krill/classes/sequence.d/bootloader.js +0 -117
  343. package/dist/krill/classes/sequence.d/bootloader_config.d.ts +0 -14
  344. package/dist/krill/classes/sequence.d/bootloader_config.js +0 -192
  345. package/dist/krill/classes/sequence.d/change_password.d.ts +0 -15
  346. package/dist/krill/classes/sequence.d/change_password.js +0 -18
  347. package/dist/krill/classes/sequence.d/del_live_user.d.ts +0 -14
  348. package/dist/krill/classes/sequence.d/del_live_user.js +0 -39
  349. package/dist/krill/classes/sequence.d/fstab.d.ts +0 -14
  350. package/dist/krill/classes/sequence.d/fstab.js +0 -177
  351. package/dist/krill/classes/sequence.d/grubcfg.d.ts +0 -17
  352. package/dist/krill/classes/sequence.d/grubcfg.js +0 -35
  353. package/dist/krill/classes/sequence.d/hostname.d.ts +0 -13
  354. package/dist/krill/classes/sequence.d/hostname.js +0 -50
  355. package/dist/krill/classes/sequence.d/initramfs.d.ts +0 -13
  356. package/dist/krill/classes/sequence.d/initramfs.js +0 -54
  357. package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +0 -14
  358. package/dist/krill/classes/sequence.d/initramfs_cfg.js +0 -35
  359. package/dist/krill/classes/sequence.d/locale.d.ts +0 -13
  360. package/dist/krill/classes/sequence.d/locale.js +0 -91
  361. package/dist/krill/classes/sequence.d/locale_cfg.d.ts +0 -10
  362. package/dist/krill/classes/sequence.d/locale_cfg.js +0 -58
  363. package/dist/krill/classes/sequence.d/m_keyboard.d.ts +0 -14
  364. package/dist/krill/classes/sequence.d/m_keyboard.js +0 -58
  365. package/dist/krill/classes/sequence.d/machine_id.d.ts +0 -15
  366. package/dist/krill/classes/sequence.d/machine_id.js +0 -33
  367. package/dist/krill/classes/sequence.d/mkfs.d.ts +0 -15
  368. package/dist/krill/classes/sequence.d/mkfs.js +0 -88
  369. package/dist/krill/classes/sequence.d/mount_fs.d.ts +0 -17
  370. package/dist/krill/classes/sequence.d/mount_fs.js +0 -68
  371. package/dist/krill/classes/sequence.d/mount_vfs.d.ts +0 -17
  372. package/dist/krill/classes/sequence.d/mount_vfs.js +0 -59
  373. package/dist/krill/classes/sequence.d/network_cfg.d.ts +0 -19
  374. package/dist/krill/classes/sequence.d/network_cfg.js +0 -73
  375. package/dist/krill/classes/sequence.d/packages.d.ts +0 -14
  376. package/dist/krill/classes/sequence.d/packages.js +0 -111
  377. package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +0 -17
  378. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +0 -73
  379. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +0 -16
  380. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +0 -51
  381. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +0 -17
  382. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +0 -77
  383. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +0 -10
  384. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +0 -33
  385. package/dist/krill/classes/sequence.d/partition.d.ts +0 -14
  386. package/dist/krill/classes/sequence.d/partition.js +0 -84
  387. package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +0 -13
  388. package/dist/krill/classes/sequence.d/remove_installer_link.js +0 -35
  389. package/dist/krill/classes/sequence.d/umount.d.ts +0 -14
  390. package/dist/krill/classes/sequence.d/umount.js +0 -28
  391. package/dist/krill/classes/sequence.d/unpackfs.d.ts +0 -13
  392. package/dist/krill/classes/sequence.d/unpackfs.js +0 -20
  393. package/dist/krill/classes/sequence.d.ts +0 -134
  394. package/dist/krill/classes/sequence.js +0 -400
  395. package/dist/krill/components/finished.d.ts +0 -16
  396. package/dist/krill/components/finished.js +0 -56
  397. package/dist/krill/components/information.d.ts +0 -8
  398. package/dist/krill/components/information.js +0 -162
  399. package/dist/krill/components/install.d.ts +0 -15
  400. package/dist/krill/components/install.js +0 -60
  401. package/dist/krill/components/keyboard.d.ts +0 -16
  402. package/dist/krill/components/keyboard.js +0 -54
  403. package/dist/krill/components/location.d.ts +0 -16
  404. package/dist/krill/components/location.js +0 -59
  405. package/dist/krill/components/network.d.ts +0 -19
  406. package/dist/krill/components/network.js +0 -65
  407. package/dist/krill/components/partitions.d.ts +0 -18
  408. package/dist/krill/components/partitions.js +0 -89
  409. package/dist/krill/components/steps.d.ts +0 -13
  410. package/dist/krill/components/steps.js +0 -148
  411. package/dist/krill/components/summary.d.ts +0 -25
  412. package/dist/krill/components/summary.js +0 -77
  413. package/dist/krill/components/title.d.ts +0 -11
  414. package/dist/krill/components/title.js +0 -35
  415. package/dist/krill/components/users.d.ts +0 -24
  416. package/dist/krill/components/users.js +0 -80
  417. package/dist/krill/components/welcome.d.ts +0 -13
  418. package/dist/krill/components/welcome.js +0 -63
  419. package/dist/krill/interfaces/i_krill.d.ts +0 -44
  420. package/dist/krill/interfaces/i_krill.js +0 -8
  421. package/dist/krill/interfaces/i_krill_config.d.ts +0 -35
  422. package/dist/krill/interfaces/i_krill_config.js +0 -8
  423. package/dist/krill/lib/get_address.d.ts +0 -8
  424. package/dist/krill/lib/get_address.js +0 -23
  425. package/dist/krill/lib/get_dns.d.ts +0 -8
  426. package/dist/krill/lib/get_dns.js +0 -23
  427. package/dist/krill/lib/get_domain.d.ts +0 -8
  428. package/dist/krill/lib/get_domain.js +0 -23
  429. package/dist/krill/lib/get_gateway.d.ts +0 -8
  430. package/dist/krill/lib/get_gateway.js +0 -23
  431. package/dist/krill/lib/get_hostname.d.ts +0 -8
  432. package/dist/krill/lib/get_hostname.js +0 -23
  433. package/dist/krill/lib/get_luks_passphrase.d.ts +0 -8
  434. package/dist/krill/lib/get_luks_passphrase.js +0 -32
  435. package/dist/krill/lib/get_netmask.d.ts +0 -8
  436. package/dist/krill/lib/get_netmask.js +0 -23
  437. package/dist/krill/lib/get_password.d.ts +0 -8
  438. package/dist/krill/lib/get_password.js +0 -36
  439. package/dist/krill/lib/get_userfullname.d.ts +0 -8
  440. package/dist/krill/lib/get_userfullname.js +0 -23
  441. package/dist/krill/lib/get_username.d.ts +0 -8
  442. package/dist/krill/lib/get_username.js +0 -23
  443. package/dist/krill/lib/select_address_type.d.ts +0 -8
  444. package/dist/krill/lib/select_address_type.js +0 -24
  445. package/dist/krill/lib/select_filesystem_type.d.ts +0 -8
  446. package/dist/krill/lib/select_filesystem_type.js +0 -40
  447. package/dist/krill/lib/select_installation_device.d.ts +0 -8
  448. package/dist/krill/lib/select_installation_device.js +0 -40
  449. package/dist/krill/lib/select_installation_mode.d.ts +0 -9
  450. package/dist/krill/lib/select_installation_mode.js +0 -25
  451. package/dist/krill/lib/select_interface.d.ts +0 -8
  452. package/dist/krill/lib/select_interface.js +0 -24
  453. package/dist/krill/lib/select_keyboard_layout.d.ts +0 -11
  454. package/dist/krill/lib/select_keyboard_layout.js +0 -36
  455. package/dist/krill/lib/select_keyboard_model.d.ts +0 -11
  456. package/dist/krill/lib/select_keyboard_model.js +0 -34
  457. package/dist/krill/lib/select_keyboard_option.d.ts +0 -11
  458. package/dist/krill/lib/select_keyboard_option.js +0 -34
  459. package/dist/krill/lib/select_keyboard_variant.d.ts +0 -11
  460. package/dist/krill/lib/select_keyboard_variant.js +0 -35
  461. package/dist/krill/lib/select_languages.d.ts +0 -8
  462. package/dist/krill/lib/select_languages.js +0 -28
  463. package/dist/krill/lib/select_regions.d.ts +0 -8
  464. package/dist/krill/lib/select_regions.js +0 -24
  465. package/dist/krill/lib/select_replaced_partition.d.ts +0 -8
  466. package/dist/krill/lib/select_replaced_partition.js +0 -31
  467. package/dist/krill/lib/select_user_swap_choice.d.ts +0 -9
  468. package/dist/krill/lib/select_user_swap_choice.js +0 -35
  469. package/dist/krill/lib/select_zones.d.ts +0 -8
  470. package/dist/krill/lib/select_zones.js +0 -518
  471. package/dist/lib/kill_me_softly.d.ts +0 -11
  472. package/dist/lib/kill_me_softly.js +0 -61
  473. package/dist/lib/utils.d.ts +0 -19
  474. package/dist/lib/utils.js +0 -65
@@ -1,563 +0,0 @@
1
- /**
2
- * ./src/classes/tailor.ts
3
- * penguins-eggs v.25.7.x / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- */
8
- import chalk from 'chalk';
9
- import fs from 'node:fs';
10
- import yaml from 'js-yaml';
11
- import path from 'node:path';
12
- import { exec } from '../lib/utils.js';
13
- import Distro from './distro.js';
14
- import Pacman from './pacman.js';
15
- import SourcesList from './sources_list.js';
16
- import Utils from './utils.js';
17
- /**
18
- *
19
- */
20
- export default class Tailor {
21
- materials = {};
22
- category = 'costume';
23
- costume = '';
24
- echo = {};
25
- toNull = ' > /dev/null 2>&1';
26
- verbose = false;
27
- wardrobe = '';
28
- log = '';
29
- /**
30
- * @param wardrobe
31
- * @param costume
32
- */
33
- constructor(costume, category = 'costume') {
34
- this.costume = costume;
35
- this.wardrobe = path.dirname(path.dirname(costume));
36
- this.log = path.dirname(this.wardrobe) + "/wardrobe.log";
37
- this.category = category;
38
- }
39
- /**
40
- *
41
- */
42
- async prepare(verbose = true, no_accessories = false, no_firmwares = false) {
43
- if (verbose) {
44
- this.verbose = true;
45
- this.toNull = '';
46
- }
47
- this.echo = Utils.setEcho(verbose);
48
- Utils.warning(`preparing ${this.costume}`);
49
- if (!fs.existsSync(this.log)) {
50
- fs.writeFileSync(this.log, "# eggs wardrobe wear\n\n");
51
- }
52
- fs.appendFileSync(this.log, `## ${this.costume}\n`);
53
- fs.appendFileSync(this.log, `Packages not found:\n`);
54
- /**
55
- * check curl presence
56
- */
57
- if (!Pacman.packageIsInstalled('curl')) {
58
- Utils.pressKeyToExit('In this tailoring shop we use curl. Install it with your package manager');
59
- process.exit();
60
- }
61
- // Analyze distro
62
- const distro = new Distro();
63
- let tailorList = '';
64
- switch (distro.distroLike) {
65
- case 'Debian': {
66
- tailorList = `${this.costume}/debian.yml`;
67
- if (!fs.existsSync(tailorList)) {
68
- tailorList = `${this.costume}/devuan.yml`;
69
- if (!fs.existsSync(tailorList)) {
70
- tailorList = `${this.costume}/ubuntu.yml`;
71
- if (!fs.existsSync(tailorList)) {
72
- console.log(`no costume definition found compatible Debian`);
73
- process.exit();
74
- }
75
- }
76
- }
77
- break;
78
- }
79
- case 'Devuan': {
80
- tailorList = `${this.costume}/devuan.yml`;
81
- if (!fs.existsSync(tailorList)) {
82
- tailorList = `${this.costume}/debian.yml`;
83
- if (!fs.existsSync(tailorList)) {
84
- tailorList = `${this.costume}/ubuntu.yml`;
85
- if (!fs.existsSync(tailorList)) {
86
- console.log(`no costume definition found compatible Devuan`);
87
- process.exit();
88
- }
89
- }
90
- }
91
- break;
92
- }
93
- case 'Ubuntu': {
94
- tailorList = `${this.costume}/ubuntu.yml`;
95
- if (!fs.existsSync(tailorList)) {
96
- tailorList = `${this.costume}/debian.yml`;
97
- console.log(`trying ` + tailorList);
98
- if (!fs.existsSync(tailorList)) {
99
- tailorList = `${this.costume}/devuan.yml`;
100
- console.log(`trying ` + tailorList);
101
- if (!fs.existsSync(tailorList)) {
102
- console.log(`no costume definition found compatible Ubuntu`);
103
- process.exit();
104
- }
105
- }
106
- }
107
- break;
108
- }
109
- case 'Alpine': {
110
- tailorList = `${this.costume}/alpine.yml`;
111
- if (!fs.existsSync(tailorList)) {
112
- tailorList = `${this.costume}/debian.yml`;
113
- if (!fs.existsSync(tailorList)) {
114
- console.log(`no costume definition found compatible Alpine`);
115
- process.exit();
116
- }
117
- }
118
- break;
119
- }
120
- case 'Arch': {
121
- tailorList = `${this.costume}/arch.yml`;
122
- if (!fs.existsSync(tailorList)) {
123
- tailorList = `${this.costume}/debian.yml`;
124
- if (!fs.existsSync(tailorList)) {
125
- console.log(`no costume definition found compatible Arch`);
126
- process.exit();
127
- }
128
- }
129
- break;
130
- }
131
- case 'Fedora':
132
- case 'Almalinux':
133
- case 'Rocky': {
134
- tailorList = `${this.costume}/fedora.yml`;
135
- if (!fs.existsSync(tailorList)) {
136
- tailorList = `${this.costume}/debian.yml`;
137
- if (!fs.existsSync(tailorList)) {
138
- console.log(`no costume definition found compatible Fedora`);
139
- process.exit();
140
- }
141
- }
142
- break;
143
- }
144
- case 'Opensuse': {
145
- tailorList = `${this.costume}/opensuse.yml`;
146
- if (!fs.existsSync(tailorList)) {
147
- tailorList = `${this.costume}/debian.yml`;
148
- if (!fs.existsSync(tailorList)) {
149
- console.log(`no costume definition found compatible opensuse`);
150
- process.exit();
151
- }
152
- }
153
- break;
154
- }
155
- } // end analyze
156
- /**
157
- * find materials
158
- */
159
- if (fs.existsSync(tailorList)) {
160
- this.materials = yaml.load(fs.readFileSync(tailorList, 'utf8'));
161
- }
162
- else {
163
- switch (this.category) {
164
- case 'costume': {
165
- Utils.titles(`${this.category}: ${this.costume}`);
166
- console.log("Tailor's list " + chalk.cyan(tailorList) + ' is not found \non your wardrobe ' + chalk.cyan(this.wardrobe) + '.\n');
167
- console.log('Costume will not be installed, operations will abort.\n');
168
- Utils.pressKeyToExit();
169
- process.exit();
170
- break;
171
- }
172
- case 'accessory': {
173
- Utils.titles(`${this.category}: ${this.costume}`);
174
- console.log("Tailor's list " + chalk.cyan(tailorList) + ' is not found \non your wardrobe ' + chalk.cyan(this.wardrobe) + '.\n');
175
- console.log('vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv');
176
- console.log('Accessory will not be installed,');
177
- console.log('operations will continue.');
178
- console.log('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
179
- sleep(3000);
180
- return;
181
- }
182
- }
183
- }
184
- /**
185
- * sequence
186
- */
187
- const sources_list = new SourcesList();
188
- let step = '';
189
- if (this.materials.sequence !== undefined) {
190
- step = 'analyzing sequence';
191
- Utils.warning(step);
192
- /**
193
- * sequence/repositories
194
- */
195
- if (this.materials.sequence.repositories !== undefined) {
196
- if (distro.familyId === 'debian') {
197
- /**
198
- * sequence/repositories/sources_list
199
- */
200
- // evito di fallire se sources_list non è presente
201
- if (this.materials.sequence.repositories.sources_list !== undefined) {
202
- step = 'analyzing repositories';
203
- Utils.warning(step);
204
- if (distro.distroLike === 'Debian') {
205
- await sources_list.components(this.materials.sequence.repositories.sources_list);
206
- }
207
- }
208
- /**
209
- * sequence/repositories/sources_list_d
210
- */
211
- if (this.materials.sequence.repositories.sources_list_d !== undefined && this.materials.sequence.repositories.sources_list_d[0] !== null) {
212
- step = 'adding repositories to /etc/apt/sources_list_d';
213
- Utils.warning(step);
214
- for (const cmd of this.materials.sequence.repositories.sources_list_d) {
215
- try {
216
- // repeat 3 times if fail curl or others commands
217
- for (let i = 0; i < 2; i++) {
218
- const result = await exec(cmd, this.echo);
219
- if (result.code === 0) {
220
- break;
221
- }
222
- }
223
- }
224
- catch (error) {
225
- await Utils.pressKeyToExit(JSON.stringify(error));
226
- }
227
- }
228
- }
229
- }
230
- /**
231
- * sequence/repositories/update
232
- */
233
- if (this.materials.sequence.repositories.update === undefined) {
234
- console.log('repositiories, and repositories.update MUST be defined on sequence');
235
- process.exit();
236
- }
237
- step = 'repositories update';
238
- Utils.warning(step);
239
- if (this.materials.sequence.repositories.update) {
240
- switch (distro.familyId) {
241
- case 'alpine': {
242
- await exec('apk update', Utils.setEcho(false));
243
- break;
244
- }
245
- case 'archlinux': {
246
- await exec('pacman -Sy', Utils.setEcho(false));
247
- break;
248
- }
249
- case 'debian': {
250
- await exec('apt-get update', Utils.setEcho(false));
251
- break;
252
- }
253
- case 'fedora': {
254
- await exec('dnf check-update --refresh', Utils.setEcho(false));
255
- break;
256
- }
257
- case 'opensuse': {
258
- await exec('zypper refresh', Utils.setEcho(true));
259
- break;
260
- }
261
- }
262
- }
263
- /**
264
- * sequence/repositories/upgrade
265
- */
266
- if (this.materials.sequence.repositories.upgrade !== undefined) {
267
- step = 'repositories upgrade';
268
- Utils.warning(step);
269
- if (this.materials.sequence.repositories.upgrade) {
270
- switch (distro.familyId) {
271
- case 'alpine': {
272
- await exec('apk upgrade', Utils.setEcho(false));
273
- break;
274
- }
275
- case 'archlinux': {
276
- await exec('pacman -Su', Utils.setEcho(false));
277
- break;
278
- }
279
- case 'debian': {
280
- await exec('apt-get full-upgrade', Utils.setEcho(false));
281
- break;
282
- }
283
- case 'fedora': {
284
- await exec('dnf upgrade', Utils.setEcho(false));
285
- break;
286
- }
287
- case 'opensuse': {
288
- await exec('zypper update', Utils.setEcho(true));
289
- break;
290
- }
291
- }
292
- } // upgrade true
293
- } // undefined upgrade
294
- } // end sequence/repositories
295
- /**
296
- * sequence/cmds
297
- */
298
- if (this.materials.sequence.cmds !== undefined && Array.isArray(this.materials.sequence.cmds)) {
299
- step = 'sequence commands';
300
- Utils.warning(step);
301
- for (const cmd of this.materials.sequence.cmds) {
302
- if (fs.existsSync(`${this.costume}/${cmd}`)) {
303
- // exec ./costume/cmd
304
- await exec(`${this.costume}/${cmd} `, Utils.setEcho(true));
305
- }
306
- else {
307
- // exec cmd
308
- await exec(`${cmd}`, Utils.setEcho(true));
309
- }
310
- }
311
- }
312
- /**
313
- * install packages
314
- */
315
- if (this.materials.sequence.packages !== undefined) {
316
- const packages = await this.packagesExists(this.materials.sequence.packages);
317
- console.log(this.materials.sequence.packages);
318
- if (packages.length > 1) {
319
- switch (distro.familyId) {
320
- case 'alpine': {
321
- await this.packagesInstall(this.materials.sequence.packages, 'packages', `apk add`);
322
- break;
323
- }
324
- case 'archlinux': {
325
- await this.packagesInstall(this.materials.sequence.packages, 'packages', `pacman -Sy --noconfirm`);
326
- break;
327
- }
328
- case 'debian': {
329
- await this.packagesInstall(packages);
330
- break;
331
- }
332
- case 'fedora': {
333
- await this.packagesInstall(this.materials.sequence.packages, 'packages', `dnf install -y`);
334
- break;
335
- }
336
- case 'opensuse': {
337
- // Quanto mi è costato
338
- // await this.packagesInstall(this.materials.sequence.packages, 'packages', `zypper install --no-confirm`)
339
- await this.packagesInstall(this.materials.sequence.packages, 'packages', `zypper install --no-confirm`);
340
- break;
341
- }
342
- }
343
- }
344
- }
345
- /**
346
- * sequence/packages_python
347
- */
348
- if (this.materials.sequence.packages_python !== undefined && Array.isArray(this.materials.sequence.packages_python)) {
349
- let cmd = 'pip install ';
350
- let pip = '';
351
- for (const elem of this.materials.sequence.packages_python) {
352
- cmd += ` ${elem}`;
353
- pip += `, ${elem}`;
354
- }
355
- step = `installing python packages pip ${pip.slice(2)}`;
356
- Utils.warning(step);
357
- await exec(cmd, this.echo);
358
- }
359
- /**
360
- * sequence/accessories
361
- */
362
- if (!no_accessories) {
363
- if (this.materials.sequence.accessories !== undefined && Array.isArray(this.materials.sequence.accessories)) {
364
- step = 'wearing accessories';
365
- for (const elem of this.materials.sequence.accessories) {
366
- if ((elem === 'firmwares' || elem === './firmwares') && no_firmwares) {
367
- continue;
368
- }
369
- if (elem.slice(0, 2) === './') {
370
- // local accessory
371
- const tailor = new Tailor(`${this.costume}/${elem.slice(2)}`, 'accessory');
372
- await tailor.prepare(verbose);
373
- }
374
- else {
375
- // global accessory
376
- const tailor = new Tailor(`${this.wardrobe}/accessories/${elem}`, 'accessory');
377
- await tailor.prepare(verbose);
378
- }
379
- }
380
- }
381
- } // no-accessories
382
- } // end sequence
383
- /**
384
- * customize
385
- */
386
- if (this.materials.finalize !== undefined) {
387
- /**
388
- * finalize/customize
389
- */
390
- if (this.materials.finalize.customize && fs.existsSync(`/${this.costume}/sysroot`)) {
391
- step = `finalize/customize: copying ${this.costume}/sysroot/ to /`;
392
- Utils.warning(step);
393
- let cmd = `rsync -avx ${this.costume}/sysroot/* / ${this.toNull}`;
394
- await exec(cmd, this.echo);
395
- // chown
396
- cmd = `chown root:root /etc/sudoers.d /etc/skel -R`;
397
- await exec(cmd, this.echo);
398
- /**
399
- * Copyng skel in /home/user
400
- */
401
- if (fs.existsSync(`${this.costume}/sysroot/etc/skel`)) {
402
- const user = await Utils.getPrimaryUser();
403
- step = `finalize/customize: copying skel in /home/${user}/`;
404
- Utils.warning(step);
405
- cmd = `rsync -avx ${this.costume}/sysroot/etc/skel/.config /home/${user}/ ${this.toNull}`;
406
- await exec(cmd, this.echo);
407
- await exec(`chown ${user}:${user} /home/${user}/ -R`);
408
- }
409
- }
410
- /**
411
- * finalize/cmds
412
- */
413
- if (this.materials.finalize.cmds !== undefined && Array.isArray(this.materials.finalize.cmds)) {
414
- step = 'finalize/commands';
415
- Utils.warning(step);
416
- for (const cmd of this.materials.finalize.cmds) {
417
- if (fs.existsSync(`${this.costume}/${cmd}`)) {
418
- // Qui passiamo ${this.materials.name}
419
- await exec(`${this.costume}/${cmd} ${this.materials.name}`, Utils.setEcho(true));
420
- }
421
- else {
422
- // exec cmd real env
423
- await exec(`${cmd}`, Utils.setEcho(true));
424
- }
425
- }
426
- }
427
- }
428
- // show log
429
- if (fs.existsSync(this.log)) {
430
- await exec(`cat ${this.log}`);
431
- }
432
- /**
433
- * reboot
434
- */
435
- if (this.materials.reboot) {
436
- Utils.warning('Reboot');
437
- await Utils.pressKeyToExit('system need to reboot', true);
438
- await exec('reboot');
439
- }
440
- else {
441
- console.log(`You look good with: ${this.materials.name}`);
442
- }
443
- }
444
- /**
445
- *
446
- * @param packages
447
- * @param verbose
448
- * @param section
449
- * @returns
450
- */
451
- async packagesExists(wanted) {
452
- Utils.warning(`checking packages exists ${this.costume}`);
453
- wanted.sort();
454
- const distro = new Distro();
455
- let cmd = "";
456
- if (distro.familyId === "alpine") {
457
- cmd = `apk search | awk -F'-[0-9]' '{print $1}' | sort -u`;
458
- }
459
- else if (distro.familyId === "archlinux") {
460
- cmd = `pacman -S --list | awk '{print $2}'`;
461
- }
462
- else if (distro.familyId === "debian") {
463
- // cmd=`apt-cache --no-generate pkgnames`
464
- cmd = `apt-cache pkgnames`;
465
- }
466
- else if (distro.familyId === 'fedora') {
467
- cmd = `dnf list --available | awk '{print $1}' | sed 's/\.[^.]*$//'`;
468
- }
469
- else if (distro.familyId === 'opensuse') { //controllare
470
- // questo funziona diretto
471
- cmd = `zypper --non-interactive packages | cut -d '|' -f 3 | sed '1,2d' | sed '/^$/d' | sort -u`;
472
- }
473
- let available = [];
474
- const result = await exec(cmd, { capture: true, echo: false, ignore: false });
475
- // trim di tutto per eseguire il confronto
476
- available = result.data.split('\n').map(line => line.trim());
477
- // precedente
478
- // available = (await exec(cmd, { capture: true, echo: false, ignore: false })).data.split('\n')
479
- available.sort();
480
- wanted.sort();
481
- let exists = [];
482
- let not_exists = [];
483
- for (const elem of wanted) {
484
- if (available.includes(elem)) {
485
- exists.push(elem);
486
- }
487
- else {
488
- not_exists.push(elem);
489
- fs.appendFileSync(this.log, `- ${elem}\n`);
490
- }
491
- }
492
- if (not_exists.length > 0) {
493
- console.log(`${this.materials.name}, ${not_exists.length} following packages was not found:`);
494
- for (const elem of not_exists) {
495
- console.log(`-${elem}`);
496
- }
497
- console.log();
498
- console.log("Wait 3 seconds");
499
- await sleep(3000);
500
- }
501
- return exists;
502
- }
503
- /**
504
- * - check if every package if installed
505
- * - if find any packages to install, install it
506
- */
507
- async packagesInstall(packages, comment = 'packages', cmd = 'apt-get install -yqq ') {
508
- Utils.warning(`installing existing packages ${this.costume}`);
509
- if (packages[0] !== null) {
510
- const elements = [];
511
- let strElements = '';
512
- for (const elem of packages) {
513
- elements.push(elem);
514
- cmd += ` ${elem}`;
515
- strElements += `, ${elem}`;
516
- }
517
- if (elements.length > 0) {
518
- let step = `installing ${comment}: `;
519
- if (!this.verbose) {
520
- step += strElements.slice(2);
521
- }
522
- /**
523
- * prova 3 volte
524
- */
525
- const limit = 3;
526
- for (let tempts = 1; tempts < limit; tempts++) {
527
- Utils.titles(step);
528
- Utils.warning(`tempts ${tempts} of ${limit}`);
529
- if (await this.tryCheckSuccess(cmd, this.echo)) {
530
- break;
531
- }
532
- }
533
- }
534
- }
535
- }
536
- /**
537
- *
538
- * @param cmd
539
- * @param echo
540
- * @returns
541
- */
542
- async tryCheckSuccess(cmd, echo) {
543
- let success = false;
544
- try {
545
- await exec(cmd, Utils.setEcho(true));
546
- success = true;
547
- }
548
- catch {
549
- success = false;
550
- }
551
- return success;
552
- }
553
- }
554
- /**
555
- *
556
- * @param ms
557
- * @returns
558
- */
559
- function sleep(ms = 0) {
560
- return new Promise((resolve) => {
561
- setTimeout(resolve, ms);
562
- });
563
- }
@@ -1,26 +0,0 @@
1
- /**
2
- * ./src/classes/tools.ts
3
- * penguins-eggs v.25.7.x / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- */
8
- interface IEggsConfigTools {
9
- localPathIso: string;
10
- remoteHost: string;
11
- remotePathPackages: string;
12
- remotePathIso: string;
13
- remoteUser: string;
14
- }
15
- /**
16
- * Utils: general porpourse utils
17
- * @remarks all the utilities
18
- */
19
- export default class Tools {
20
- config: IEggsConfigTools;
21
- snapshot_dir: string;
22
- snapshot_name: string;
23
- tools_yaml: string;
24
- loadSettings(): Promise<boolean>;
25
- }
26
- export {};
@@ -1,50 +0,0 @@
1
- /**
2
- * ./src/classes/tools.ts
3
- * penguins-eggs v.25.7.x / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- */
8
- import yaml from 'js-yaml';
9
- import fs from 'node:fs';
10
- import Settings from './settings.js';
11
- import Utils from './utils.js';
12
- /**
13
- * Utils: general porpourse utils
14
- * @remarks all the utilities
15
- */
16
- export default class Tools {
17
- config = {};
18
- snapshot_dir = '';
19
- snapshot_name = '';
20
- tools_yaml = '/etc/penguins-eggs.d/tools.yaml';
21
- /*
22
- * Load configuration from /etc/penguins-eggs.yaml
23
- * @returns {boolean} Success
24
- */
25
- async loadSettings() {
26
- let foundSettings = false;
27
- if (fs.existsSync(this.tools_yaml)) {
28
- foundSettings = true;
29
- const loaded = yaml.load(fs.readFileSync(this.tools_yaml, 'utf8'));
30
- this.config.remoteHost = loaded.remoteHost;
31
- this.config.remoteUser = loaded.remoteUser;
32
- this.config.remotePathPackages = loaded.remotePathPackages;
33
- this.config.remotePathIso = loaded.remotePathIso;
34
- this.config.localPathIso = loaded.localPathIso;
35
- /**
36
- * da eggs
37
- */
38
- const settings = new Settings();
39
- settings.load();
40
- this.snapshot_dir = settings.config.snapshot_dir;
41
- const prefix = settings.config.snapshot_prefix;
42
- this.snapshot_name = prefix + settings.config.snapshot_basename + '_' + Utils.uefiArch();
43
- }
44
- else {
45
- console.log(`Can't find: ${this.tools_yaml}`);
46
- process.exit(1);
47
- }
48
- return foundSettings;
49
- }
50
- }
@@ -1,28 +0,0 @@
1
- /**
2
- * ./src/classes/users.ts
3
- * penguins-eggs v.25.7.x / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- */
8
- /**
9
- *
10
- */
11
- export default class Users {
12
- gecos: string;
13
- gid: string;
14
- hasHome: boolean;
15
- home: string;
16
- login: string;
17
- password: string;
18
- saveIt: boolean;
19
- shell: string;
20
- size: number;
21
- uid: string;
22
- constructor(login: string, password: string, uid: string, gid: string, gecos: string, home: string, shell: string);
23
- /**
24
- * getSize
25
- * @param verbose
26
- */
27
- getValues(): Promise<void>;
28
- }