penguins-eggs 10.0.60 → 10.1.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 (470) hide show
  1. package/.oclif.manifest.json +93 -1
  2. package/README.md +79 -40
  3. package/addons/eggs/theme/calamares/modules/{_users.yml → users.yml} +3 -3
  4. package/addons/eggs/theme/livecd/grub.main.full.cfg +1 -1
  5. package/addons/eggs/theme/livecd/grub.main.simple.cfg +1 -1
  6. package/conf/derivatives.yaml +1 -3
  7. package/conf/derivatives_fedora.yaml +6 -0
  8. package/conf/distros/alpine/calamares/modules/users.yml +3 -3
  9. package/conf/distros/bionic/calamares/calamares-modules/grubcfg/grubcfg.yml +1 -1
  10. package/conf/distros/bionic/calamares/modules/users.yml +3 -3
  11. package/conf/distros/buster/calamares/modules/users.yml +3 -3
  12. package/conf/distros/fedora/calamares/modules/users.yml +3 -3
  13. package/conf/distros/noble/calamares/modules/focal-jammy/users.yml +3 -3
  14. package/conf/distros/opensuse/calamares/modules/users.yml +3 -3
  15. package/conf/distros/rolling/calamares/modules/users.yml +3 -3
  16. package/conf/eggs.yaml +1 -1
  17. package/conf/love.yaml +4 -4
  18. package/package.json +22 -19
  19. package/perrisbrewery/scripts/postinst +98 -0
  20. package/perrisbrewery/scripts/postrm +82 -0
  21. package/perrisbrewery/scripts/preinst +40 -0
  22. package/perrisbrewery/scripts/prerm +47 -0
  23. package/perrisbrewery/template/control.template +17 -0
  24. package/perrisbrewery/template/dependencies-bionic.yaml +33 -0
  25. package/perrisbrewery/template/dependencies.yaml +37 -0
  26. package/perrisbrewery/template/man.template.md +110 -0
  27. package/pods/README.md +14 -0
  28. package/pods/almalinux.sh +10 -0
  29. package/pods/archlinux.sh +10 -0
  30. package/pods/ci/README.md +5 -0
  31. package/pods/ci/kernel-overlay-install.sh +114 -0
  32. package/pods/ci/minimal/almalinux-container2host.sh +165 -0
  33. package/pods/ci/minimal/archlinux-container2host.sh +125 -0
  34. package/pods/ci/minimal/debian-container2host.sh +173 -0
  35. package/pods/ci/minimal/fedora-container2host.sh +170 -0
  36. package/pods/ci/minimal/manjaro-container2host.sh +123 -0
  37. package/pods/ci/minimal/opensuse-container2host.sh +143 -0
  38. package/pods/ci/penguins-eggs-execute.sh +22 -0
  39. package/pods/ci/penguins-eggs-install.sh +115 -0
  40. package/pods/ci/run +34 -0
  41. package/pods/ci/run-on-almalinux.sh +50 -0
  42. package/pods/ci/run-on-archlinux.sh +64 -0
  43. package/pods/ci/run-on-debian.sh +51 -0
  44. package/pods/ci/run-on-devuan.sh +48 -0
  45. package/pods/ci/run-on-fedora.sh +51 -0
  46. package/pods/ci/run-on-manjaro.sh +61 -0
  47. package/pods/ci/run-on-opensuse.sh +58 -0
  48. package/pods/ci/run-on-rockylinux.sh +51 -0
  49. package/pods/ci/run-on-ubuntu.sh +52 -0
  50. package/pods/debian.sh +23 -0
  51. package/pods/devuan.sh +26 -0
  52. package/pods/fedora.sh +12 -0
  53. package/pods/lmde.sh +22 -0
  54. package/pods/manjaro.sh +10 -0
  55. package/pods/opensuse.sh +12 -0
  56. package/pods/podman.command.sh +85 -0
  57. package/pods/rocky.sh +12 -0
  58. package/pods/run-build-packages-debs.sh +45 -0
  59. package/pods/run-create-debs.sh +23 -0
  60. package/pods/ubuntu.sh +24 -0
  61. package/scripts/_eggs +21 -6
  62. package/scripts/eggs.bash +6 -4
  63. package/dist/classes/bleach.d.ts +0 -32
  64. package/dist/classes/bleach.js +0 -135
  65. package/dist/classes/cli-autologin.d.ts +0 -52
  66. package/dist/classes/cli-autologin.js +0 -247
  67. package/dist/classes/compressors.d.ts +0 -54
  68. package/dist/classes/compressors.js +0 -109
  69. package/dist/classes/daddy.d.ts +0 -26
  70. package/dist/classes/daddy.js +0 -167
  71. package/dist/classes/distro.d.ts +0 -32
  72. package/dist/classes/distro.js +0 -341
  73. package/dist/classes/diversions.d.ts +0 -52
  74. package/dist/classes/diversions.js +0 -126
  75. package/dist/classes/incubation/branding.d.ts +0 -17
  76. package/dist/classes/incubation/branding.js +0 -85
  77. package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +0 -11
  78. package/dist/classes/incubation/fisherman-helper/displaymanager.js +0 -40
  79. package/dist/classes/incubation/fisherman-helper/packages.d.ts +0 -20
  80. package/dist/classes/incubation/fisherman-helper/packages.js +0 -72
  81. package/dist/classes/incubation/fisherman-helper/settings.d.ts +0 -15
  82. package/dist/classes/incubation/fisherman-helper/settings.js +0 -83
  83. package/dist/classes/incubation/fisherman.d.ts +0 -70
  84. package/dist/classes/incubation/fisherman.js +0 -263
  85. package/dist/classes/incubation/incubator.d/alpine.d.ts +0 -32
  86. package/dist/classes/incubation/incubator.d/alpine.js +0 -78
  87. package/dist/classes/incubation/incubator.d/bionic.d.ts +0 -32
  88. package/dist/classes/incubation/incubator.d/bionic.js +0 -83
  89. package/dist/classes/incubation/incubator.d/buster.d.ts +0 -32
  90. package/dist/classes/incubation/incubator.d/buster.js +0 -85
  91. package/dist/classes/incubation/incubator.d/jessie.d.ts +0 -31
  92. package/dist/classes/incubation/incubator.d/jessie.js +0 -44
  93. package/dist/classes/incubation/incubator.d/noble.d.ts +0 -32
  94. package/dist/classes/incubation/incubator.d/noble.js +0 -85
  95. package/dist/classes/incubation/incubator.d/openmamba.d.ts +0 -32
  96. package/dist/classes/incubation/incubator.d/openmamba.js +0 -81
  97. package/dist/classes/incubation/incubator.d/opensuse.d.ts +0 -32
  98. package/dist/classes/incubation/incubator.d/opensuse.js +0 -81
  99. package/dist/classes/incubation/incubator.d/rolling.d.ts +0 -32
  100. package/dist/classes/incubation/incubator.d/rolling.js +0 -80
  101. package/dist/classes/incubation/incubator.d.ts +0 -44
  102. package/dist/classes/incubation/incubator.js +0 -382
  103. package/dist/classes/incubation/installer.d.ts +0 -13
  104. package/dist/classes/incubation/installer.js +0 -52
  105. package/dist/classes/keyboards.d.ts +0 -50
  106. package/dist/classes/keyboards.js +0 -287
  107. package/dist/classes/locales.d.ts +0 -21
  108. package/dist/classes/locales.js +0 -77
  109. package/dist/classes/network.d.ts +0 -37
  110. package/dist/classes/network.js +0 -98
  111. package/dist/classes/ovary.d/bind-live-fs.d.ts +0 -18
  112. package/dist/classes/ovary.d/bind-live-fs.js +0 -185
  113. package/dist/classes/ovary.d/bind-vfs.d.ts +0 -17
  114. package/dist/classes/ovary.d/bind-vfs.js +0 -37
  115. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +0 -13
  116. package/dist/classes/ovary.d/create-xdg-autostart.js +0 -194
  117. package/dist/classes/ovary.d/edit-live-fs.d.ts +0 -19
  118. package/dist/classes/ovary.d/edit-live-fs.js +0 -249
  119. package/dist/classes/ovary.d/fertilization.d.ts +0 -12
  120. package/dist/classes/ovary.d/fertilization.js +0 -46
  121. package/dist/classes/ovary.d/finished.d.ts +0 -13
  122. package/dist/classes/ovary.d/finished.js +0 -41
  123. package/dist/classes/ovary.d/initrd.d.ts +0 -21
  124. package/dist/classes/ovary.d/initrd.js +0 -72
  125. package/dist/classes/ovary.d/kernel-copy.d.ts +0 -12
  126. package/dist/classes/ovary.d/kernel-copy.js +0 -36
  127. package/dist/classes/ovary.d/live-create-structure.d.ts +0 -12
  128. package/dist/classes/ovary.d/live-create-structure.js +0 -90
  129. package/dist/classes/ovary.d/make-dot-disk.d.ts +0 -12
  130. package/dist/classes/ovary.d/make-dot-disk.js +0 -40
  131. package/dist/classes/ovary.d/make-efi.d.ts +0 -12
  132. package/dist/classes/ovary.d/make-efi.js +0 -268
  133. package/dist/classes/ovary.d/make-iso.d.ts +0 -13
  134. package/dist/classes/ovary.d/make-iso.js +0 -45
  135. package/dist/classes/ovary.d/make-squashfs.d.ts +0 -18
  136. package/dist/classes/ovary.d/make-squashfs.js +0 -117
  137. package/dist/classes/ovary.d/merged.d.ts +0 -31
  138. package/dist/classes/ovary.d/merged.js +0 -87
  139. package/dist/classes/ovary.d/produce.d.ts +0 -23
  140. package/dist/classes/ovary.d/produce.js +0 -287
  141. package/dist/classes/ovary.d/rexec.d.ts +0 -13
  142. package/dist/classes/ovary.d/rexec.js +0 -34
  143. package/dist/classes/ovary.d/syslinux.d.ts +0 -12
  144. package/dist/classes/ovary.d/syslinux.js +0 -79
  145. package/dist/classes/ovary.d/user-create-live.d.ts +0 -14
  146. package/dist/classes/ovary.d/user-create-live.js +0 -86
  147. package/dist/classes/ovary.d/users-remove.d.ts +0 -9
  148. package/dist/classes/ovary.d/users-remove.js +0 -38
  149. package/dist/classes/ovary.d/xorriso-commend.d.ts +0 -14
  150. package/dist/classes/ovary.d/xorriso-commend.js +0 -119
  151. package/dist/classes/ovary.d.ts +0 -77
  152. package/dist/classes/ovary.js +0 -81
  153. package/dist/classes/pacman.d/aldos.d.ts +0 -52
  154. package/dist/classes/pacman.d/aldos.js +0 -100
  155. package/dist/classes/pacman.d/alpine.d.ts +0 -56
  156. package/dist/classes/pacman.d/alpine.js +0 -162
  157. package/dist/classes/pacman.d/archlinux.d.ts +0 -62
  158. package/dist/classes/pacman.d/archlinux.js +0 -140
  159. package/dist/classes/pacman.d/debian.d.ts +0 -65
  160. package/dist/classes/pacman.d/debian.js +0 -143
  161. package/dist/classes/pacman.d/fedora.d.ts +0 -53
  162. package/dist/classes/pacman.d/fedora.js +0 -101
  163. package/dist/classes/pacman.d/openmamba.d.ts +0 -52
  164. package/dist/classes/pacman.d/openmamba.js +0 -100
  165. package/dist/classes/pacman.d/opensuse.d.ts +0 -53
  166. package/dist/classes/pacman.d/opensuse.js +0 -102
  167. package/dist/classes/pacman.d/voidlinux.d.ts +0 -52
  168. package/dist/classes/pacman.d/voidlinux.js +0 -90
  169. package/dist/classes/pacman.d.ts +0 -139
  170. package/dist/classes/pacman.js +0 -775
  171. package/dist/classes/pve-live.d.ts +0 -17
  172. package/dist/classes/pve-live.js +0 -52
  173. package/dist/classes/pxe.d.ts +0 -74
  174. package/dist/classes/pxe.js +0 -410
  175. package/dist/classes/settings.d.ts +0 -52
  176. package/dist/classes/settings.js +0 -185
  177. package/dist/classes/sources_list.d.ts +0 -28
  178. package/dist/classes/sources_list.js +0 -89
  179. package/dist/classes/systemctl.d.ts +0 -47
  180. package/dist/classes/systemctl.js +0 -86
  181. package/dist/classes/tailor.d.ts +0 -50
  182. package/dist/classes/tailor.js +0 -526
  183. package/dist/classes/tools.d.ts +0 -26
  184. package/dist/classes/tools.js +0 -50
  185. package/dist/classes/users.d.ts +0 -28
  186. package/dist/classes/users.js +0 -143
  187. package/dist/classes/utils.d.ts +0 -327
  188. package/dist/classes/utils.js +0 -1019
  189. package/dist/classes/xdg.d.ts +0 -45
  190. package/dist/classes/xdg.js +0 -337
  191. package/dist/classes/yolk.d.ts +0 -33
  192. package/dist/classes/yolk.js +0 -114
  193. package/dist/commands/adapt.d.ts +0 -17
  194. package/dist/commands/adapt.js +0 -33
  195. package/dist/commands/analyze.d.ts +0 -26
  196. package/dist/commands/analyze.js +0 -95
  197. package/dist/commands/calamares.d.ts +0 -29
  198. package/dist/commands/calamares.js +0 -112
  199. package/dist/commands/config.d.ts +0 -35
  200. package/dist/commands/config.js +0 -120
  201. package/dist/commands/cuckoo.d.ts +0 -16
  202. package/dist/commands/cuckoo.js +0 -62
  203. package/dist/commands/dad.d.ts +0 -20
  204. package/dist/commands/dad.js +0 -46
  205. package/dist/commands/export/iso.d.ts +0 -19
  206. package/dist/commands/export/iso.js +0 -55
  207. package/dist/commands/export/pkg.d.ts +0 -29
  208. package/dist/commands/export/pkg.js +0 -163
  209. package/dist/commands/export/tarballs.d.ts +0 -27
  210. package/dist/commands/export/tarballs.js +0 -84
  211. package/dist/commands/install.d.ts +0 -38
  212. package/dist/commands/install.js +0 -91
  213. package/dist/commands/kill.d.ts +0 -24
  214. package/dist/commands/kill.js +0 -50
  215. package/dist/commands/love.d.ts +0 -20
  216. package/dist/commands/love.js +0 -59
  217. package/dist/commands/mom.d.ts +0 -16
  218. package/dist/commands/mom.js +0 -30
  219. package/dist/commands/produce.d.ts +0 -34
  220. package/dist/commands/produce.js +0 -201
  221. package/dist/commands/status.d.ts +0 -23
  222. package/dist/commands/status.js +0 -31
  223. package/dist/commands/syncfrom.d.ts +0 -45
  224. package/dist/commands/syncfrom.js +0 -152
  225. package/dist/commands/syncto.d.ts +0 -40
  226. package/dist/commands/syncto.js +0 -175
  227. package/dist/commands/tools/clean.d.ts +0 -18
  228. package/dist/commands/tools/clean.js +0 -37
  229. package/dist/commands/tools/ppa.d.ts +0 -26
  230. package/dist/commands/tools/ppa.js +0 -138
  231. package/dist/commands/tools/skel.d.ts +0 -18
  232. package/dist/commands/tools/skel.js +0 -44
  233. package/dist/commands/tools/stat.d.ts +0 -31
  234. package/dist/commands/tools/stat.js +0 -70
  235. package/dist/commands/tools/yolk.d.ts +0 -24
  236. package/dist/commands/tools/yolk.js +0 -45
  237. package/dist/commands/update.d.ts +0 -51
  238. package/dist/commands/update.js +0 -219
  239. package/dist/commands/wardrobe/get.d.ts +0 -23
  240. package/dist/commands/wardrobe/get.js +0 -52
  241. package/dist/commands/wardrobe/list.d.ts +0 -24
  242. package/dist/commands/wardrobe/list.js +0 -125
  243. package/dist/commands/wardrobe/show.d.ts +0 -25
  244. package/dist/commands/wardrobe/show.js +0 -97
  245. package/dist/commands/wardrobe/wear.d.ts +0 -26
  246. package/dist/commands/wardrobe/wear.js +0 -84
  247. package/dist/index.d.ts +0 -54
  248. package/dist/index.js +0 -147
  249. package/dist/index_old.d.ts +0 -8
  250. package/dist/index_old.js +0 -8
  251. package/dist/interfaces/i-addons.d.ts +0 -12
  252. package/dist/interfaces/i-addons.js +0 -8
  253. package/dist/interfaces/i-analyze.d.ts +0 -17
  254. package/dist/interfaces/i-analyze.js +0 -17
  255. package/dist/interfaces/i-app.d.ts +0 -14
  256. package/dist/interfaces/i-app.js +0 -8
  257. package/dist/interfaces/i-branding.d.ts +0 -36
  258. package/dist/interfaces/i-branding.js +0 -8
  259. package/dist/interfaces/i-calamares-displaymanager.d.ts +0 -17
  260. package/dist/interfaces/i-calamares-displaymanager.js +0 -1
  261. package/dist/interfaces/i-calamares-finished.d.ts +0 -12
  262. package/dist/interfaces/i-calamares-finished.js +0 -1
  263. package/dist/interfaces/i-calamares-packages.d.ts +0 -28
  264. package/dist/interfaces/i-calamares-packages.js +0 -1
  265. package/dist/interfaces/i-calamares-partition.d.ts +0 -40
  266. package/dist/interfaces/i-calamares-partition.js +0 -1
  267. package/dist/interfaces/i-config-tools.d.ts +0 -15
  268. package/dist/interfaces/i-config-tools.js +0 -8
  269. package/dist/interfaces/i-devices.d.ts +0 -20
  270. package/dist/interfaces/i-devices.js +0 -8
  271. package/dist/interfaces/i-distro.d.ts +0 -23
  272. package/dist/interfaces/i-distro.js +0 -8
  273. package/dist/interfaces/i-drive-list.d.ts +0 -33
  274. package/dist/interfaces/i-drive-list.js +0 -8
  275. package/dist/interfaces/i-eggs-config.d.ts +0 -32
  276. package/dist/interfaces/i-eggs-config.js +0 -8
  277. package/dist/interfaces/i-excludes.d.ts +0 -14
  278. package/dist/interfaces/i-excludes.js +0 -8
  279. package/dist/interfaces/i-exec.d.ts +0 -11
  280. package/dist/interfaces/i-exec.js +0 -8
  281. package/dist/interfaces/i-initrd.d.ts +0 -13
  282. package/dist/interfaces/i-initrd.js +0 -8
  283. package/dist/interfaces/i-install.d.ts +0 -16
  284. package/dist/interfaces/i-install.js +0 -8
  285. package/dist/interfaces/i-installer.d.ts +0 -17
  286. package/dist/interfaces/i-installer.js +0 -8
  287. package/dist/interfaces/i-luks-passphrase.d.ts +0 -11
  288. package/dist/interfaces/i-luks-passphrase.js +0 -8
  289. package/dist/interfaces/i-materia.d.ts +0 -36
  290. package/dist/interfaces/i-materia.js +0 -8
  291. package/dist/interfaces/i-net.d.ts +0 -16
  292. package/dist/interfaces/i-net.js +0 -8
  293. package/dist/interfaces/i-os-release.d.ts +0 -5
  294. package/dist/interfaces/i-os-release.js +0 -1
  295. package/dist/interfaces/i-packages.d.ts +0 -16
  296. package/dist/interfaces/i-packages.js +0 -8
  297. package/dist/interfaces/i-partitions.d.ts +0 -16
  298. package/dist/interfaces/i-partitions.js +0 -8
  299. package/dist/interfaces/i-pxe.d.ts +0 -45
  300. package/dist/interfaces/i-pxe.js +0 -1
  301. package/dist/interfaces/i-remix.d.ts +0 -21
  302. package/dist/interfaces/i-remix.js +0 -8
  303. package/dist/interfaces/i-settings.d.ts +0 -33
  304. package/dist/interfaces/i-settings.js +0 -8
  305. package/dist/interfaces/i-user.d.ts +0 -14
  306. package/dist/interfaces/i-user.js +0 -8
  307. package/dist/interfaces/i-workdir.d.ts +0 -14
  308. package/dist/interfaces/i-workdir.js +0 -8
  309. package/dist/interfaces/i-xkb-model.d.ts +0 -24
  310. package/dist/interfaces/i-xkb-model.js +0 -8
  311. package/dist/interfaces/index.d.ts +0 -26
  312. package/dist/interfaces/index.js +0 -8
  313. package/dist/krill/classes/cfs.d.ts +0 -17
  314. package/dist/krill/classes/cfs.js +0 -39
  315. package/dist/krill/classes/krill_enums.d.ts +0 -24
  316. package/dist/krill/classes/krill_enums.js +0 -26
  317. package/dist/krill/classes/prepare.d/confirm.d.ts +0 -5
  318. package/dist/krill/classes/prepare.d/confirm.js +0 -30
  319. package/dist/krill/classes/prepare.d/keyboard.d.ts +0 -14
  320. package/dist/krill/classes/prepare.d/keyboard.js +0 -62
  321. package/dist/krill/classes/prepare.d/location.d.ts +0 -17
  322. package/dist/krill/classes/prepare.d/location.js +0 -59
  323. package/dist/krill/classes/prepare.d/network.d.ts +0 -14
  324. package/dist/krill/classes/prepare.d/network.js +0 -68
  325. package/dist/krill/classes/prepare.d/partitions.d.ts +0 -14
  326. package/dist/krill/classes/prepare.d/partitions.js +0 -86
  327. package/dist/krill/classes/prepare.d/summary.d.ts +0 -15
  328. package/dist/krill/classes/prepare.d/summary.js +0 -69
  329. package/dist/krill/classes/prepare.d/users.d.ts +0 -6
  330. package/dist/krill/classes/prepare.d/users.js +0 -63
  331. package/dist/krill/classes/prepare.d/welcome.d.ts +0 -6
  332. package/dist/krill/classes/prepare.d/welcome.js +0 -30
  333. package/dist/krill/classes/prepare.d.ts +0 -64
  334. package/dist/krill/classes/prepare.js +0 -314
  335. package/dist/krill/classes/sequence.d/add_user.d.ts +0 -20
  336. package/dist/krill/classes/sequence.d/add_user.js +0 -48
  337. package/dist/krill/classes/sequence.d/bootloader.d.ts +0 -14
  338. package/dist/krill/classes/sequence.d/bootloader.js +0 -95
  339. package/dist/krill/classes/sequence.d/bootloader_config.d.ts +0 -14
  340. package/dist/krill/classes/sequence.d/bootloader_config.js +0 -165
  341. package/dist/krill/classes/sequence.d/change_password.d.ts +0 -15
  342. package/dist/krill/classes/sequence.d/change_password.js +0 -18
  343. package/dist/krill/classes/sequence.d/del_live_user.d.ts +0 -14
  344. package/dist/krill/classes/sequence.d/del_live_user.js +0 -39
  345. package/dist/krill/classes/sequence.d/fstab.d.ts +0 -14
  346. package/dist/krill/classes/sequence.d/fstab.js +0 -189
  347. package/dist/krill/classes/sequence.d/grubcfg.d.ts +0 -17
  348. package/dist/krill/classes/sequence.d/grubcfg.js +0 -33
  349. package/dist/krill/classes/sequence.d/hostname.d.ts +0 -13
  350. package/dist/krill/classes/sequence.d/hostname.js +0 -50
  351. package/dist/krill/classes/sequence.d/initramfs.d.ts +0 -13
  352. package/dist/krill/classes/sequence.d/initramfs.js +0 -54
  353. package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +0 -14
  354. package/dist/krill/classes/sequence.d/initramfs_cfg.js +0 -35
  355. package/dist/krill/classes/sequence.d/locale.d.ts +0 -13
  356. package/dist/krill/classes/sequence.d/locale.js +0 -91
  357. package/dist/krill/classes/sequence.d/locale_cfg.d.ts +0 -10
  358. package/dist/krill/classes/sequence.d/locale_cfg.js +0 -58
  359. package/dist/krill/classes/sequence.d/m_keyboard.d.ts +0 -14
  360. package/dist/krill/classes/sequence.d/m_keyboard.js +0 -58
  361. package/dist/krill/classes/sequence.d/machine_id.d.ts +0 -15
  362. package/dist/krill/classes/sequence.d/machine_id.js +0 -33
  363. package/dist/krill/classes/sequence.d/mkfs.d.ts +0 -15
  364. package/dist/krill/classes/sequence.d/mkfs.js +0 -72
  365. package/dist/krill/classes/sequence.d/mount_fs.d.ts +0 -17
  366. package/dist/krill/classes/sequence.d/mount_fs.js +0 -68
  367. package/dist/krill/classes/sequence.d/mount_vfs.d.ts +0 -17
  368. package/dist/krill/classes/sequence.d/mount_vfs.js +0 -40
  369. package/dist/krill/classes/sequence.d/network_cfg.d.ts +0 -19
  370. package/dist/krill/classes/sequence.d/network_cfg.js +0 -73
  371. package/dist/krill/classes/sequence.d/packages.d.ts +0 -14
  372. package/dist/krill/classes/sequence.d/packages.js +0 -111
  373. package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +0 -17
  374. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +0 -73
  375. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +0 -17
  376. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +0 -36
  377. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +0 -17
  378. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +0 -78
  379. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +0 -10
  380. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +0 -32
  381. package/dist/krill/classes/sequence.d/partition.d.ts +0 -14
  382. package/dist/krill/classes/sequence.d/partition.js +0 -84
  383. package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +0 -13
  384. package/dist/krill/classes/sequence.d/remove_installer_link.js +0 -35
  385. package/dist/krill/classes/sequence.d/umount.d.ts +0 -14
  386. package/dist/krill/classes/sequence.d/umount.js +0 -28
  387. package/dist/krill/classes/sequence.d/unpackfs.d.ts +0 -13
  388. package/dist/krill/classes/sequence.d/unpackfs.js +0 -20
  389. package/dist/krill/classes/sequence.d.ts +0 -136
  390. package/dist/krill/classes/sequence.js +0 -663
  391. package/dist/krill/components/finished.d.ts +0 -16
  392. package/dist/krill/components/finished.js +0 -56
  393. package/dist/krill/components/information.d.ts +0 -8
  394. package/dist/krill/components/information.js +0 -156
  395. package/dist/krill/components/install.d.ts +0 -15
  396. package/dist/krill/components/install.js +0 -60
  397. package/dist/krill/components/keyboard.d.ts +0 -16
  398. package/dist/krill/components/keyboard.js +0 -54
  399. package/dist/krill/components/location.d.ts +0 -16
  400. package/dist/krill/components/location.js +0 -59
  401. package/dist/krill/components/network.d.ts +0 -19
  402. package/dist/krill/components/network.js +0 -65
  403. package/dist/krill/components/partitions.d.ts +0 -18
  404. package/dist/krill/components/partitions.js +0 -89
  405. package/dist/krill/components/steps.d.ts +0 -13
  406. package/dist/krill/components/steps.js +0 -148
  407. package/dist/krill/components/summary.d.ts +0 -25
  408. package/dist/krill/components/summary.js +0 -77
  409. package/dist/krill/components/title.d.ts +0 -11
  410. package/dist/krill/components/title.js +0 -35
  411. package/dist/krill/components/users.d.ts +0 -24
  412. package/dist/krill/components/users.js +0 -80
  413. package/dist/krill/components/welcome.d.ts +0 -13
  414. package/dist/krill/components/welcome.js +0 -63
  415. package/dist/krill/interfaces/i_krill.d.ts +0 -44
  416. package/dist/krill/interfaces/i_krill.js +0 -8
  417. package/dist/krill/interfaces/i_krill_config.d.ts +0 -35
  418. package/dist/krill/interfaces/i_krill_config.js +0 -8
  419. package/dist/krill/lib/get_address.d.ts +0 -8
  420. package/dist/krill/lib/get_address.js +0 -23
  421. package/dist/krill/lib/get_dns.d.ts +0 -8
  422. package/dist/krill/lib/get_dns.js +0 -23
  423. package/dist/krill/lib/get_domain.d.ts +0 -8
  424. package/dist/krill/lib/get_domain.js +0 -23
  425. package/dist/krill/lib/get_gateway.d.ts +0 -8
  426. package/dist/krill/lib/get_gateway.js +0 -23
  427. package/dist/krill/lib/get_hostname.d.ts +0 -8
  428. package/dist/krill/lib/get_hostname.js +0 -23
  429. package/dist/krill/lib/get_luks_passphrase.d.ts +0 -8
  430. package/dist/krill/lib/get_luks_passphrase.js +0 -40
  431. package/dist/krill/lib/get_netmask.d.ts +0 -8
  432. package/dist/krill/lib/get_netmask.js +0 -23
  433. package/dist/krill/lib/get_password.d.ts +0 -8
  434. package/dist/krill/lib/get_password.js +0 -36
  435. package/dist/krill/lib/get_userfullname.d.ts +0 -8
  436. package/dist/krill/lib/get_userfullname.js +0 -23
  437. package/dist/krill/lib/get_username.d.ts +0 -8
  438. package/dist/krill/lib/get_username.js +0 -23
  439. package/dist/krill/lib/kill_me_softly.d.ts +0 -11
  440. package/dist/krill/lib/kill_me_softly.js +0 -61
  441. package/dist/krill/lib/select_address_type.d.ts +0 -8
  442. package/dist/krill/lib/select_address_type.js +0 -24
  443. package/dist/krill/lib/select_filesystem_type.d.ts +0 -8
  444. package/dist/krill/lib/select_filesystem_type.js +0 -39
  445. package/dist/krill/lib/select_installation_device.d.ts +0 -8
  446. package/dist/krill/lib/select_installation_device.js +0 -40
  447. package/dist/krill/lib/select_installation_mode.d.ts +0 -9
  448. package/dist/krill/lib/select_installation_mode.js +0 -25
  449. package/dist/krill/lib/select_interface.d.ts +0 -8
  450. package/dist/krill/lib/select_interface.js +0 -24
  451. package/dist/krill/lib/select_keyboard_layout.d.ts +0 -11
  452. package/dist/krill/lib/select_keyboard_layout.js +0 -36
  453. package/dist/krill/lib/select_keyboard_model.d.ts +0 -11
  454. package/dist/krill/lib/select_keyboard_model.js +0 -34
  455. package/dist/krill/lib/select_keyboard_option.d.ts +0 -11
  456. package/dist/krill/lib/select_keyboard_option.js +0 -34
  457. package/dist/krill/lib/select_keyboard_variant.d.ts +0 -11
  458. package/dist/krill/lib/select_keyboard_variant.js +0 -35
  459. package/dist/krill/lib/select_languages.d.ts +0 -8
  460. package/dist/krill/lib/select_languages.js +0 -28
  461. package/dist/krill/lib/select_regions.d.ts +0 -8
  462. package/dist/krill/lib/select_regions.js +0 -24
  463. package/dist/krill/lib/select_replaced_partition.d.ts +0 -8
  464. package/dist/krill/lib/select_replaced_partition.js +0 -31
  465. package/dist/krill/lib/select_user_swap_choice.d.ts +0 -9
  466. package/dist/krill/lib/select_user_swap_choice.js +0 -35
  467. package/dist/krill/lib/select_zones.d.ts +0 -8
  468. package/dist/krill/lib/select_zones.js +0 -518
  469. package/dist/lib/utils.d.ts +0 -42
  470. package/dist/lib/utils.js +0 -87
@@ -1,314 +0,0 @@
1
- /**
2
- * ./src/krill/prepare.tsx
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import os from 'os';
10
- import axios from 'axios';
11
- import shx from 'shelljs';
12
- import fs from 'fs';
13
- import Keyboards from '../../classes/keyboards.js';
14
- import Locales from '../../classes/locales.js';
15
- import Systemctl from '../../classes/systemctl.js';
16
- import Utils from '../../classes/utils.js';
17
- // libraries
18
- import { exec } from '../../lib/utils.js';
19
- import { welcome } from './prepare.d/welcome.js';
20
- import { location } from './prepare.d/location.js';
21
- import { keyboard } from './prepare.d/keyboard.js';
22
- import { partitions } from './prepare.d/partitions.js';
23
- import { users } from './prepare.d/users.js';
24
- import { network } from './prepare.d/network.js';
25
- import { summary } from './prepare.d/summary.js';
26
- import Sequence from './sequence.js';
27
- import { SwapChoice, InstallationMode } from './krill_enums.js';
28
- const config_file = '/etc/penguins-eggs.d/krill.yaml';
29
- /**
30
- *
31
- */
32
- export default class Krill {
33
- welcome = welcome;
34
- location = location;
35
- keyboard = keyboard;
36
- partitions = partitions;
37
- users = users;
38
- network = network;
39
- summary = summary;
40
- krillConfig = {};
41
- locales = new Locales();
42
- keyboards = new Keyboards();
43
- unattended = false;
44
- nointeractive = false;
45
- chroot = false;
46
- halt = false;
47
- /**
48
- * constructor
49
- * @param unattended
50
- * @param nointeractive
51
- * @param halt
52
- */
53
- constructor(unattended = false, nointeractive = false, halt = false, chroot = false) {
54
- this.unattended = unattended;
55
- this.nointeractive = nointeractive;
56
- this.chroot = chroot;
57
- this.halt = halt;
58
- }
59
- /**
60
- *
61
- * @param krillConfig
62
- * @param ip
63
- * @param random
64
- * @param domain
65
- * @param suspend
66
- * @param small
67
- * @param none
68
- * @param crypted
69
- * @param pve
70
- * @param btrfs
71
- * @param testing
72
- * @param verbose
73
- */
74
- async prepare(krillConfig = {}, ip = false, random = false, domain = '', suspend = false, small = false, none = false, crypted = false, pve = false, btrfs = false, testing = false, verbose = false) {
75
- // Check disk presence
76
- const drives = shx.exec('lsblk |grep disk|cut -f 1 "-d "', { silent: true }).stdout.trim().split('\n');
77
- if (drives[0] === '') {
78
- await Utils.pressKeyToExit(`No disk to install the system in this machine.\nkrill installer refuses to continue`);
79
- process.exit();
80
- }
81
- // Check Lvm2 presence
82
- if (await this.pvExist()) {
83
- // Create removeLvmPartitions
84
- let scriptName = "removeLvmPartitions";
85
- let cmds = "#!/bin/bash\n";
86
- cmds += `# remove LV (Logical Volumes)\n`;
87
- cmds += `vg=$(vgs --noheadings -o vg_name| awk '{$1=$1};1')\n`;
88
- cmds += `lvs -o lv_name --noheadings | awk '{$1=$1};1' | while read -r lv; do\n`;
89
- cmds += ` lvremove -y /dev/mapper/$vg-$lv\n`;
90
- cmds += `done\n`;
91
- cmds += `\n`;
92
- cmds += `# remove VG (Volume groups)\n`;
93
- cmds += `vgremove --force $(vgs --noheadings -o vg_name $vg)\n`;
94
- cmds += `\n`;
95
- cmds += `# remove PV (Phisical Volumes) \n`;
96
- cmds += `pv=$(pvs --noheading -o pv_name | awk '{$1=$1};1')\n`;
97
- cmds += `pvremove --force --force $pv\n`;
98
- cmds += `# wipe PV (Phisical Volumes) \n`;
99
- cmds += `wipefs -a $pv\n`;
100
- cmds += `# clean device\n`;
101
- cmds += `sgdisk --zap-all $pv\n`;
102
- cmds += `dd if=/dev/zero of=$pv bs=1M count=10\n`;
103
- fs.writeFileSync(scriptName, cmds);
104
- await exec(`chmod +x ${scriptName}`);
105
- await Utils.pressKeyToExit(`There is a lvm2 volume in the system, remove it manually before installation.\nkrill installer refuses to continue`);
106
- process.exit();
107
- }
108
- /**
109
- * stop udisks2.service
110
- */
111
- const systemdCtl = new Systemctl(verbose);
112
- if (await systemdCtl.isActive('udisks2.service') && !testing) {
113
- await systemdCtl.stop('udisks2.service');
114
- }
115
- let oWelcome = {};
116
- let oLocation = {};
117
- let oKeyboard = {};
118
- let oPartitions = {};
119
- let oUsers = {};
120
- let oNetwork = {};
121
- /**
122
- * load default values
123
- */
124
- if (!fs.existsSync(config_file)) {
125
- console.log(`cannot find configuration file ${config_file},`);
126
- process.exit(1);
127
- }
128
- this.krillConfig = krillConfig;
129
- /**
130
- * test calamares/krill configuration presence
131
- */
132
- let configRoot = '/etc/penguins-eggs.d/krill/';
133
- if (fs.existsSync('/etc/calamares/settings.conf')) {
134
- configRoot = '/etc/calamares/';
135
- }
136
- if (!fs.existsSync(configRoot + 'settings.conf')) {
137
- console.log(`Cannot find calamares/krill configuration file, please create it running:`);
138
- console.log(`sudo eggs calamares`);
139
- process.exit(1);
140
- }
141
- oWelcome = { language: this.krillConfig.language };
142
- // Try to auto-configure timezone by internet
143
- const url = `https://geoip.kde.org/v1/calamares`;
144
- try {
145
- const response = await axios.get(url);
146
- if (response.statusText === 'OK') {
147
- const data = JSON.stringify(response.data);
148
- const obj = JSON.parse(data);
149
- this.krillConfig.region = obj.time_zone.substring(0, obj.time_zone.indexOf('/'));
150
- this.krillConfig.zone = obj.time_zone.substring(obj.time_zone.indexOf('/') + 1);
151
- }
152
- }
153
- catch (error) {
154
- console.error('error: ' + error);
155
- }
156
- oLocation = {
157
- language: this.krillConfig.language,
158
- region: this.krillConfig.region,
159
- zone: this.krillConfig.zone
160
- };
161
- oKeyboard = {
162
- keyboardModel: this.krillConfig.keyboardModel,
163
- keyboardLayout: this.krillConfig.keyboardLayout,
164
- keyboardVariant: this.krillConfig.keyboardVariant,
165
- keyboardOption: this.krillConfig.keyboardOption
166
- };
167
- oPartitions = {
168
- installationDevice: this.krillConfig.installationDevice,
169
- installationMode: this.krillConfig.installationMode,
170
- filesystemType: this.krillConfig.filesystemType,
171
- userSwapChoice: this.krillConfig.userSwapChoice,
172
- replacedPartition: this.krillConfig.replacedPartition
173
- };
174
- if (suspend) {
175
- oPartitions.userSwapChoice = SwapChoice.Suspend;
176
- }
177
- else if (small) {
178
- oPartitions.userSwapChoice = SwapChoice.Small;
179
- }
180
- else if (none) {
181
- oPartitions.userSwapChoice = SwapChoice.None;
182
- }
183
- let hostname = this.krillConfig.hostname;
184
- if (hostname === '') {
185
- hostname = shx.exec('cat /etc/hostname', { silent: true }).trim();
186
- }
187
- if (ip) {
188
- hostname = 'ip-' + Utils.address().replaceAll('.', '-');
189
- }
190
- if (random) {
191
- const fl = shx.exec(`tr -dc a-z </dev/urandom | head -c 2 ; echo ''`, { silent: true }).trim();
192
- const n = shx.exec(`tr -dc 0-9 </dev/urandom | head -c 3 ; echo ''`, { silent: true }).trim();
193
- const sl = shx.exec(`tr -dc a-z </dev/urandom | head -c 2 ; echo ''`, { silent: true }).trim();
194
- hostname = `${os.hostname()}-${fl}${n}${sl}`;
195
- }
196
- oUsers = {
197
- username: this.krillConfig.name,
198
- fullname: this.krillConfig.fullname,
199
- password: this.krillConfig.password,
200
- rootPassword: this.krillConfig.rootPassword,
201
- autologin: this.krillConfig.autologin,
202
- hostname: hostname
203
- };
204
- oNetwork =
205
- {
206
- iface: await Utils.iface(),
207
- addressType: this.krillConfig.addressType,
208
- address: Utils.address(),
209
- netmask: Utils.netmask(),
210
- gateway: Utils.gateway(),
211
- dns: Utils.getDns(),
212
- domain: Utils.getDomain()
213
- };
214
- /**
215
- * Defaults
216
- */
217
- /**
218
- * random = false,
219
- * domain = '',
220
- * pve = false
221
- * */
222
- if (ip) {
223
- oUsers.hostname = 'ip-' + Utils.address().replaceAll('.', '-');
224
- }
225
- // Luks
226
- if (crypted) {
227
- oPartitions.installationMode = InstallationMode.Luks;
228
- }
229
- // fs
230
- if (btrfs) {
231
- oPartitions.filesystemType = 'btrfs';
232
- }
233
- // swap
234
- if (none) {
235
- oPartitions.userSwapChoice = SwapChoice.None;
236
- }
237
- if (small) {
238
- oPartitions.userSwapChoice = SwapChoice.Small;
239
- }
240
- if (suspend) {
241
- oPartitions.userSwapChoice = SwapChoice.Suspend;
242
- }
243
- if (pve) {
244
- oPartitions.installationMode = InstallationMode.Luks;
245
- }
246
- /**
247
- * interactive
248
- */
249
- if (!this.unattended) {
250
- oWelcome = await this.welcome();
251
- oLocation = await this.location(oWelcome.language);
252
- oKeyboard = await this.keyboard();
253
- oPartitions = await this.partitions(this.krillConfig.installationDevice, crypted, pve, btrfs);
254
- oUsers = await this.users();
255
- oNetwork = await this.network();
256
- }
257
- else {
258
- /**
259
- * this variables ALWAYS need to be initializated
260
- */
261
- // oPartitions.installationDevice
262
- if (oPartitions.installationDevice === '') {
263
- // No RAID considerated
264
- const drives = shx.exec('lsblk |grep disk|cut -f 1 "-d "', { silent: true }).stdout.trim().split('\n');
265
- if (drives.length > 0) {
266
- oPartitions.installationDevice = `/dev/` + drives[0];
267
- }
268
- else {
269
- console.log("Unable to find installation drive");
270
- process.exit(1);
271
- }
272
- }
273
- }
274
- await this.summary(oLocation, oKeyboard, oPartitions, oUsers);
275
- /**
276
- * INSTALL
277
- */
278
- const sequence = new Sequence(oLocation, oKeyboard, oPartitions, oUsers, oNetwork);
279
- if (testing) {
280
- console.log();
281
- Utils.titles("install --testing");
282
- console.log("Just testing krill, the process will end!");
283
- console.log("^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^");
284
- console.log(oPartitions);
285
- process.exit();
286
- }
287
- else {
288
- await sequence.start(domain, this.unattended, this.nointeractive, this.chroot, this.halt, verbose);
289
- }
290
- }
291
- /**
292
- * return true if pv exist
293
- */
294
- async pvExist() {
295
- let exist = false;
296
- const check = `#!/bin/sh\npvdisplay |grep "PV Name" >/dev/null && echo 1|| echo 0`;
297
- if (shx.exec(check, { silent: true }).stdout.trim() === '1') {
298
- exist = true;
299
- }
300
- return exist;
301
- }
302
- }
303
- /**
304
- *
305
- * @param mask
306
- */
307
- function netmask2CIDR(mask) {
308
- const countCharOccurences = (string, char) => string.split(char).length - 1;
309
- const decimalToBinary = (dec) => (dec >>> 0).toString(2);
310
- const getNetMaskParts = (nmask) => nmask.split('.').map(Number);
311
- const netmask2CIDR = (netmask) => countCharOccurences(getNetMaskParts(netmask)
312
- .map(part => decimalToBinary(part))
313
- .join(''), '1');
314
- }
@@ -1,20 +0,0 @@
1
- /**
2
- * ./src/krill/modules/add-user.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Sequence from '../sequence.js';
10
- /**
11
- *
12
- * @param this
13
- * @param name
14
- * @param password
15
- * @param fullName
16
- * @param roomNumber
17
- * @param workPhone
18
- * @param homePhone
19
- */
20
- export default function addUser(this: Sequence, name?: string, password?: string, fullName?: string, roomNumber?: string, workPhone?: string, homePhone?: string): Promise<void>;
@@ -1,48 +0,0 @@
1
- /**
2
- * ./src/krill/modules/add-user.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import { exec } from '../../../lib/utils.js';
10
- /**
11
- *
12
- * @param this
13
- * @param name
14
- * @param password
15
- * @param fullName
16
- * @param roomNumber
17
- * @param workPhone
18
- * @param homePhone
19
- */
20
- export default async function addUser(name = 'live', password = 'evolution', fullName = '', roomNumber = '', workPhone = '', homePhone = '') {
21
- // adduser user
22
- let cmd = `chroot ${this.installTarget} adduser ${name} --home /home/${name} --shell /bin/bash --disabled-password --gecos "${fullName},${roomNumber},${workPhone},${homePhone}" ${this.toNull}`;
23
- if (this.distro.familyId === 'archlinux') {
24
- cmd = `chroot ${this.installTarget} useradd --create-home --shell /bin/bash ${name} ${this.toNull}`;
25
- }
26
- else if (this.distro.familyId === 'fedora') {
27
- cmd = `chroot ${this.installTarget} adduser ${name} --create-home --shell /bin/bash --comment "${fullName},${roomNumber},${workPhone},${homePhone}" ${this.toNull}`;
28
- }
29
- else if (this.distro.familyId === 'opensuse') {
30
- cmd = `chroot ${this.installTarget} useradd ${name} --create-home --shell /bin/bash --comment "${fullName},${roomNumber},${workPhone},${homePhone}" ${this.toNull}`;
31
- }
32
- await exec(cmd, this.echo);
33
- // chpasswd user
34
- cmd = `echo ${name}:${password} | chroot ${this.installTarget} chpasswd ${this.toNull}`;
35
- await exec(cmd, this.echo);
36
- let group = 'wheel';
37
- if (this.distro.familyId === 'debian') {
38
- group = 'sudo';
39
- }
40
- cmd = `chroot ${this.installTarget} usermod -aG ${group} ${name} ${this.toNull}`;
41
- await exec(cmd, this.echo);
42
- // add autologin group in archlinux
43
- await exec(cmd, this.echo);
44
- if (this.distro.familyId === 'archlinux') {
45
- await exec(`chroot ${this.installTarget} getent group autologin || groupadd autologin`);
46
- await exec(`chroot ${this.installTarget} gpasswd -a ${this.settings.config.user_opt} autologin`);
47
- }
48
- }
@@ -1,14 +0,0 @@
1
- /**
2
- * ./src/krill/modules/bootloader.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Sequence from '../../classes/sequence.js';
10
- /**
11
- *
12
- * @param this
13
- */
14
- export default function bootloader(this: Sequence): Promise<void>;
@@ -1,95 +0,0 @@
1
- /**
2
- * ./src/krill/modules/bootloader.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Diversion from '../../../classes/diversions.js';
10
- import Utils from '../../../classes/utils.js';
11
- import { exec } from '../../../lib/utils.js';
12
- import fs from 'node:fs';
13
- import path from 'node:path';
14
- /**
15
- *
16
- * @param this
17
- */
18
- export default async function bootloader() {
19
- let grubName = Diversion.grubName(this.distro.familyId);
20
- let grubForce = Diversion.grubForce(this.distro.familyId);
21
- /**
22
- * grub-install: added --force per fedora family
23
- */
24
- let cmd = `chroot ${this.installTarget} ${grubName}-install ${this.partitions.installationDevice} ${grubForce} ${this.toNull}`;
25
- await exec(cmd, this.echo);
26
- /**
27
- * grub-mkconfig
28
- */
29
- cmd = `chroot ${this.installTarget} ${grubName}-mkconfig -o /boot/${grubName}/grub.cfg ${this.toNull}`;
30
- await exec(cmd, this.echo);
31
- /**
32
- * In fedora family, we need to call kernel-install to force entry creation
33
- */
34
- if (this.distro.familyId === "fedora") {
35
- /**
36
- * create grub2 entries
37
- *
38
- */
39
- cmd = `chroot ${this.installTarget} kernel-install add $(uname -r) /boot/vmlinuz-$(uname -r)`;
40
- await exec(cmd, this.echo);
41
- /**
42
- * and not only: on RHEL, Almalinux, Rocky it take UUID from janitor
43
- */
44
- if (this.distro.distroId === "Almalinux" || this.distro.distroId === "Rocky") {
45
- /**
46
- * grub2: adapt entries at new system
47
- */
48
- const rootUUID = Utils.uuid(this.devices.root.name);
49
- const resumeUUID = Utils.uuid(this.devices.swap.name);
50
- await updateEntries(this.installTarget, rootUUID, resumeUUID);
51
- }
52
- }
53
- }
54
- /**
55
- *
56
- * @param installTarget
57
- * @param rootUUID
58
- * @param resumeUUID
59
- */
60
- async function updateEntries(installTarget, rootUUID, resumeUUID) {
61
- const entriesPath = path.join(installTarget, `/boot/loader/entries/`);
62
- const entries = fs.readdirSync(entriesPath);
63
- if (entries.length > 0) {
64
- for (const entry of entries) {
65
- const currentEntry = path.join(entriesPath, entry);
66
- let source = fs.readFileSync(currentEntry, 'utf8');
67
- let lines = source.split('\n');
68
- let content = '';
69
- for (let line of lines) {
70
- line = searchAndReplace(line, 'root=UUID=', rootUUID);
71
- line = searchAndReplace(line, 'resume=UUID=', resumeUUID);
72
- content += line + '\n';
73
- }
74
- fs.writeFileSync(`${currentEntry}`, content, 'utf-8');
75
- }
76
- }
77
- }
78
- /**
79
- *
80
- * @param line
81
- * @param search
82
- * @param replace
83
- * @returns
84
- */
85
- function searchAndReplace(line, search, replace) {
86
- if (line.includes(search)) {
87
- const lenSearch = search.length;
88
- const lenReplace = replace.length;
89
- const at = line.indexOf(search);
90
- const first = line.substring(0, at + lenSearch);
91
- const last = line.substring(at + lenSearch + lenReplace);
92
- line = first + replace + last;
93
- }
94
- return line;
95
- }
@@ -1,14 +0,0 @@
1
- /**
2
- * ./src/krill/modules/bootloader-config.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Sequence from '../sequence.js';
10
- /**
11
- *
12
- * @param this
13
- */
14
- export default function bootloaderConfig(this: Sequence): Promise<void>;
@@ -1,165 +0,0 @@
1
- /**
2
- * ./src/krill/modules/bootloader-config.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Utils from '../../../classes/utils.js';
10
- import { exec } from '../../../lib/utils.js';
11
- /**
12
- *
13
- * @param this
14
- */
15
- export default async function bootloaderConfig() {
16
- let cmd = '';
17
- /**
18
- * aldos
19
- */
20
- if (this.distro.familyId === 'aldos') {
21
- if (this.efi) {
22
- try {
23
- cmd = `chroot ${this.installTarget} yum install grub2 grub2-efi-x64 efibootmgr} ${this.toNull}`;
24
- await exec(cmd, this.echo);
25
- }
26
- catch (error) {
27
- await showError(cmd, error);
28
- }
29
- }
30
- else {
31
- try {
32
- cmd = `chroot ${this.installTarget} yum install grub2 grub2-pc ${this.toNull}`;
33
- await exec(cmd, this.echo);
34
- }
35
- catch (error) {
36
- await showError(cmd, error);
37
- }
38
- }
39
- /**
40
- * alpine
41
- */
42
- }
43
- else if (this.distro.familyId === 'alpine') {
44
- if (this.efi) {
45
- try {
46
- cmd = `chroot ${this.installTarget} apk add grub grub-efi efibootmgr} ${this.toNull}`;
47
- await exec(cmd, this.echo);
48
- }
49
- catch (error) {
50
- await showError(cmd, error);
51
- }
52
- }
53
- else {
54
- try {
55
- cmd = `chroot ${this.installTarget} apk add grub grub-bios ${this.toNull}`;
56
- await exec(cmd, this.echo);
57
- }
58
- catch (error) {
59
- await showError(cmd, error);
60
- }
61
- }
62
- /**
63
- * archlinux
64
- */
65
- }
66
- else if (this.distro.familyId === 'archlinux') {
67
- if (this.efi) {
68
- try {
69
- cmd = `chroot ${this.installTarget} pacman -Sy grub efibootmgr} ${this.toNull}`;
70
- await exec(cmd, this.echo);
71
- }
72
- catch (error) {
73
- await showError(cmd, error);
74
- }
75
- }
76
- else {
77
- try {
78
- cmd = `chroot ${this.installTarget} pacman -Sy grub ${this.toNull}`;
79
- await exec(cmd, this.echo);
80
- }
81
- catch (error) {
82
- await showError(cmd, error);
83
- }
84
- }
85
- /**
86
- * debian
87
- */
88
- }
89
- else if (this.distro.familyId === 'debian') {
90
- try {
91
- cmd = `chroot ${this.installTarget} apt-get -y update ${this.toNull}`;
92
- await exec(cmd, this.echo);
93
- }
94
- catch (error) {
95
- await showError(cmd, error);
96
- }
97
- await exec('sleep 1', this.echo);
98
- const aptInstallOptions = ' apt install -y --no-upgrade --allow-unauthenticated -o Acquire::gpgv::Options::=--ignore-time-conflict ';
99
- if (this.efi) {
100
- try {
101
- cmd = `chroot ${this.installTarget} ${aptInstallOptions} grub-efi-${Utils.uefiArch()} --allow-unauthenticated ${this.toNull}`;
102
- await exec(cmd, this.echo);
103
- }
104
- catch (error) {
105
- await showError(cmd, error);
106
- }
107
- }
108
- else {
109
- try {
110
- cmd = `chroot ${this.installTarget} ${aptInstallOptions} grub-pc ${this.toNull}`;
111
- await exec(cmd, this.echo);
112
- }
113
- catch (error) {
114
- await showError(cmd, error);
115
- }
116
- }
117
- /**
118
- * fedora/openmamba
119
- */
120
- }
121
- else if (this.distro.familyId === 'fedora' || this.distro.familyId === 'openmamba') {
122
- if (this.efi) {
123
- try {
124
- cmd = `chroot ${this.installTarget} dnf -y install grub2 grub2-efi-x64 efibootmgr shim ${this.toNull}`;
125
- await exec(cmd, this.echo);
126
- }
127
- catch (error) {
128
- await showError(cmd, error);
129
- }
130
- }
131
- else {
132
- try {
133
- cmd = `chroot ${this.installTarget} dnf -y install grub2 grub2-pc ${this.toNull}`;
134
- await exec(cmd, this.echo);
135
- }
136
- catch (error) {
137
- await showError(cmd, error);
138
- }
139
- }
140
- /**
141
- * opensuse
142
- */
143
- }
144
- else if (this.distro.familyId === 'opensuse') {
145
- if (this.efi) {
146
- try {
147
- cmd = `chroot ${this.installTarget} zypper install -y grub2 grub2-i386-pc grub2-x86_64-efi- efibootmgr} ${this.toNull}`;
148
- await exec(cmd, this.echo);
149
- }
150
- catch (error) {
151
- await showError(cmd, error);
152
- }
153
- }
154
- }
155
- }
156
- /**
157
- *
158
- * @param cmd
159
- * @param error
160
- */
161
- async function showError(cmd, error) {
162
- console.log('error:', error);
163
- console.log(cmd);
164
- await Utils.pressKeyToExit(cmd, true);
165
- }
@@ -1,15 +0,0 @@
1
- /**
2
- * ./src/krill/modules/change-password.ts
3
- * penguins-eggs v.10.0.0 / ecmascript 2020
4
- * author: Piero Proietti
5
- * email: piero.proietti@gmail.com
6
- * license: MIT
7
- * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
- */
9
- import Sequence from '../sequence.js';
10
- /**
11
- * changePassword
12
- * @param name
13
- * @param newPassword
14
- */
15
- export default function changePassword(this: Sequence, name?: string, newPassword?: string): Promise<void>;