penguins-eggs 10.1.0 → 10.1.1

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 (440) hide show
  1. package/.oclif.manifest.json +1 -32
  2. package/README.md +109 -78
  3. package/conf/derivatives.yaml +3 -0
  4. package/conf/distros/buster/calamares/modules/users.yml +1 -0
  5. package/conf/distros/noble/calamares/modules/users.yml +1 -0
  6. package/dist/classes/bleach.d.ts +32 -0
  7. package/dist/classes/bleach.js +135 -0
  8. package/dist/classes/cli-autologin.d.ts +52 -0
  9. package/dist/classes/cli-autologin.js +247 -0
  10. package/dist/classes/compressors.d.ts +54 -0
  11. package/dist/classes/compressors.js +109 -0
  12. package/dist/classes/daddy.d.ts +26 -0
  13. package/dist/classes/daddy.js +167 -0
  14. package/dist/classes/distro.d.ts +56 -0
  15. package/dist/classes/distro.js +413 -0
  16. package/dist/classes/diversions.d.ts +52 -0
  17. package/dist/classes/diversions.js +126 -0
  18. package/dist/classes/incubation/branding.d.ts +17 -0
  19. package/dist/classes/incubation/branding.js +85 -0
  20. package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +11 -0
  21. package/dist/classes/incubation/fisherman-helper/displaymanager.js +40 -0
  22. package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
  23. package/dist/classes/incubation/fisherman-helper/packages.js +72 -0
  24. package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
  25. package/dist/classes/incubation/fisherman-helper/settings.js +83 -0
  26. package/dist/classes/incubation/fisherman.d.ts +70 -0
  27. package/dist/classes/incubation/fisherman.js +263 -0
  28. package/dist/classes/incubation/incubator.d/alpine.d.ts +32 -0
  29. package/dist/classes/incubation/incubator.d/alpine.js +78 -0
  30. package/dist/classes/incubation/incubator.d/bionic.d.ts +32 -0
  31. package/dist/classes/incubation/incubator.d/bionic.js +83 -0
  32. package/dist/classes/incubation/incubator.d/buster.d.ts +32 -0
  33. package/dist/classes/incubation/incubator.d/buster.js +85 -0
  34. package/dist/classes/incubation/incubator.d/jessie.d.ts +31 -0
  35. package/dist/classes/incubation/incubator.d/jessie.js +44 -0
  36. package/dist/classes/incubation/incubator.d/noble.d.ts +32 -0
  37. package/dist/classes/incubation/incubator.d/noble.js +85 -0
  38. package/dist/classes/incubation/incubator.d/openmamba.d.ts +32 -0
  39. package/dist/classes/incubation/incubator.d/openmamba.js +81 -0
  40. package/dist/classes/incubation/incubator.d/opensuse.d.ts +32 -0
  41. package/dist/classes/incubation/incubator.d/opensuse.js +81 -0
  42. package/dist/classes/incubation/incubator.d/rolling.d.ts +32 -0
  43. package/dist/classes/incubation/incubator.d/rolling.js +80 -0
  44. package/dist/classes/incubation/incubator.d.ts +44 -0
  45. package/dist/classes/incubation/incubator.js +382 -0
  46. package/dist/classes/incubation/installer.d.ts +13 -0
  47. package/dist/classes/incubation/installer.js +52 -0
  48. package/dist/classes/keyboards.d.ts +50 -0
  49. package/dist/classes/keyboards.js +287 -0
  50. package/dist/classes/locales.d.ts +21 -0
  51. package/dist/classes/locales.js +77 -0
  52. package/dist/classes/network.d.ts +37 -0
  53. package/dist/classes/network.js +98 -0
  54. package/dist/classes/ovary.d/bind-live-fs.d.ts +18 -0
  55. package/dist/classes/ovary.d/bind-live-fs.js +177 -0
  56. package/dist/classes/ovary.d/bind-vfs.d.ts +17 -0
  57. package/dist/classes/ovary.d/bind-vfs.js +37 -0
  58. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +13 -0
  59. package/dist/classes/ovary.d/create-xdg-autostart.js +194 -0
  60. package/dist/classes/ovary.d/edit-live-fs.d.ts +20 -0
  61. package/dist/classes/ovary.d/edit-live-fs.js +245 -0
  62. package/dist/classes/ovary.d/fertilization.d.ts +12 -0
  63. package/dist/classes/ovary.d/fertilization.js +51 -0
  64. package/dist/classes/ovary.d/finished.d.ts +13 -0
  65. package/dist/classes/ovary.d/finished.js +41 -0
  66. package/dist/classes/ovary.d/initrd.d.ts +21 -0
  67. package/dist/classes/ovary.d/initrd.js +68 -0
  68. package/dist/classes/ovary.d/kernel-copy.d.ts +12 -0
  69. package/dist/classes/ovary.d/kernel-copy.js +22 -0
  70. package/dist/classes/ovary.d/live-create-structure.d.ts +12 -0
  71. package/dist/classes/ovary.d/live-create-structure.js +90 -0
  72. package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
  73. package/dist/classes/ovary.d/make-dot-disk.js +40 -0
  74. package/dist/classes/ovary.d/make-efi.d.ts +12 -0
  75. package/dist/classes/ovary.d/make-efi.js +271 -0
  76. package/dist/classes/ovary.d/make-iso.d.ts +13 -0
  77. package/dist/classes/ovary.d/make-iso.js +45 -0
  78. package/dist/classes/ovary.d/make-squashfs.d.ts +18 -0
  79. package/dist/classes/ovary.d/make-squashfs.js +110 -0
  80. package/dist/classes/ovary.d/merged.d.ts +27 -0
  81. package/dist/classes/ovary.d/merged.js +77 -0
  82. package/dist/classes/ovary.d/produce.d.ts +23 -0
  83. package/dist/classes/ovary.d/produce.js +293 -0
  84. package/dist/classes/ovary.d/rexec.d.ts +13 -0
  85. package/dist/classes/ovary.d/rexec.js +34 -0
  86. package/dist/classes/ovary.d/syslinux.d.ts +12 -0
  87. package/dist/classes/ovary.d/syslinux.js +79 -0
  88. package/dist/classes/ovary.d/user-create-live.d.ts +14 -0
  89. package/dist/classes/ovary.d/user-create-live.js +93 -0
  90. package/dist/classes/ovary.d/users-remove.d.ts +9 -0
  91. package/dist/classes/ovary.d/users-remove.js +38 -0
  92. package/dist/classes/ovary.d/xorriso-commend.d.ts +14 -0
  93. package/dist/classes/ovary.d/xorriso-commend.js +119 -0
  94. package/dist/classes/ovary.d.ts +82 -0
  95. package/dist/classes/ovary.js +86 -0
  96. package/dist/classes/pacman.d/aldos.d.ts +52 -0
  97. package/dist/classes/pacman.d/aldos.js +100 -0
  98. package/dist/classes/pacman.d/alpine.d.ts +56 -0
  99. package/dist/classes/pacman.d/alpine.js +162 -0
  100. package/dist/classes/pacman.d/archlinux.d.ts +62 -0
  101. package/dist/classes/pacman.d/archlinux.js +136 -0
  102. package/dist/classes/pacman.d/debian.d.ts +65 -0
  103. package/dist/classes/pacman.d/debian.js +143 -0
  104. package/dist/classes/pacman.d/fedora.d.ts +53 -0
  105. package/dist/classes/pacman.d/fedora.js +101 -0
  106. package/dist/classes/pacman.d/openmamba.d.ts +52 -0
  107. package/dist/classes/pacman.d/openmamba.js +100 -0
  108. package/dist/classes/pacman.d/opensuse.d.ts +53 -0
  109. package/dist/classes/pacman.d/opensuse.js +102 -0
  110. package/dist/classes/pacman.d/voidlinux.d.ts +52 -0
  111. package/dist/classes/pacman.d/voidlinux.js +90 -0
  112. package/dist/classes/pacman.d.ts +139 -0
  113. package/dist/classes/pacman.js +776 -0
  114. package/dist/classes/pve-live.d.ts +17 -0
  115. package/dist/classes/pve-live.js +52 -0
  116. package/dist/classes/pxe.d.ts +74 -0
  117. package/dist/classes/pxe.js +410 -0
  118. package/dist/classes/settings.d.ts +52 -0
  119. package/dist/classes/settings.js +185 -0
  120. package/dist/classes/sources_list.d.ts +28 -0
  121. package/dist/classes/sources_list.js +89 -0
  122. package/dist/classes/systemctl.d.ts +47 -0
  123. package/dist/classes/systemctl.js +86 -0
  124. package/dist/classes/tailor.d.ts +50 -0
  125. package/dist/classes/tailor.js +527 -0
  126. package/dist/classes/tools.d.ts +26 -0
  127. package/dist/classes/tools.js +50 -0
  128. package/dist/classes/users.d.ts +28 -0
  129. package/dist/classes/users.js +143 -0
  130. package/dist/classes/utils.d/architecture.d.ts +41 -0
  131. package/dist/classes/utils.d/architecture.js +87 -0
  132. package/dist/classes/utils.d/console-output.d.ts +26 -0
  133. package/dist/classes/utils.d/console-output.js +46 -0
  134. package/dist/classes/utils.d/filesystem.d.ts +53 -0
  135. package/dist/classes/utils.d/filesystem.js +152 -0
  136. package/dist/classes/utils.d/formatters.d.ts +32 -0
  137. package/dist/classes/utils.d/formatters.js +64 -0
  138. package/dist/classes/utils.d/kernel.d.ts +83 -0
  139. package/dist/classes/utils.d/kernel.js +288 -0
  140. package/dist/classes/utils.d/network.d.ts +43 -0
  141. package/dist/classes/utils.d/network.js +133 -0
  142. package/dist/classes/utils.d/package-info.d.ts +55 -0
  143. package/dist/classes/utils.d/package-info.js +137 -0
  144. package/dist/classes/utils.d/snapshot.d.ts +44 -0
  145. package/dist/classes/utils.d/snapshot.js +102 -0
  146. package/dist/classes/utils.d/system.d.ts +63 -0
  147. package/dist/classes/utils.d/system.js +200 -0
  148. package/dist/classes/utils.d/user-interaction.d.ts +39 -0
  149. package/dist/classes/utils.d/user-interaction.js +104 -0
  150. package/dist/classes/utils.d.ts +95 -0
  151. package/dist/classes/utils.js +111 -0
  152. package/dist/classes/xdg.d.ts +45 -0
  153. package/dist/classes/xdg.js +337 -0
  154. package/dist/classes/yolk.d.ts +33 -0
  155. package/dist/classes/yolk.js +114 -0
  156. package/dist/commands/adapt.d.ts +17 -0
  157. package/dist/commands/adapt.js +33 -0
  158. package/dist/commands/analyze.d.ts +26 -0
  159. package/dist/commands/analyze.js +95 -0
  160. package/dist/commands/calamares.d.ts +29 -0
  161. package/dist/commands/calamares.js +112 -0
  162. package/dist/commands/config.d.ts +35 -0
  163. package/dist/commands/config.js +120 -0
  164. package/dist/commands/cuckoo.d.ts +16 -0
  165. package/dist/commands/cuckoo.js +62 -0
  166. package/dist/commands/dad.d.ts +21 -0
  167. package/dist/commands/dad.js +47 -0
  168. package/dist/commands/export/iso.d.ts +19 -0
  169. package/dist/commands/export/iso.js +55 -0
  170. package/dist/commands/export/pkg.d.ts +29 -0
  171. package/dist/commands/export/pkg.js +163 -0
  172. package/dist/commands/export/tarballs.d.ts +27 -0
  173. package/dist/commands/export/tarballs.js +79 -0
  174. package/dist/commands/install.d.ts +38 -0
  175. package/dist/commands/install.js +91 -0
  176. package/dist/commands/kill.d.ts +24 -0
  177. package/dist/commands/kill.js +50 -0
  178. package/dist/commands/love.d.ts +21 -0
  179. package/dist/commands/love.js +73 -0
  180. package/dist/commands/mom.d.ts +16 -0
  181. package/dist/commands/mom.js +30 -0
  182. package/dist/commands/pods.d.ts +22 -0
  183. package/dist/commands/pods.js +92 -0
  184. package/dist/commands/produce.d.ts +35 -0
  185. package/dist/commands/produce.js +221 -0
  186. package/dist/commands/status.d.ts +23 -0
  187. package/dist/commands/status.js +31 -0
  188. package/dist/commands/syncfrom.d.ts +45 -0
  189. package/dist/commands/syncfrom.js +152 -0
  190. package/dist/commands/syncto.d.ts +40 -0
  191. package/dist/commands/syncto.js +175 -0
  192. package/dist/commands/tools/clean.d.ts +18 -0
  193. package/dist/commands/tools/clean.js +37 -0
  194. package/dist/commands/tools/ppa.d.ts +26 -0
  195. package/dist/commands/tools/ppa.js +138 -0
  196. package/dist/commands/tools/skel.d.ts +18 -0
  197. package/dist/commands/tools/skel.js +44 -0
  198. package/dist/commands/tools/stat.d.ts +31 -0
  199. package/dist/commands/tools/stat.js +70 -0
  200. package/dist/commands/tools/yolk.d.ts +24 -0
  201. package/dist/commands/tools/yolk.js +45 -0
  202. package/dist/commands/update.d.ts +51 -0
  203. package/dist/commands/update.js +219 -0
  204. package/dist/commands/wardrobe/get.d.ts +23 -0
  205. package/dist/commands/wardrobe/get.js +52 -0
  206. package/dist/commands/wardrobe/list.d.ts +24 -0
  207. package/dist/commands/wardrobe/list.js +125 -0
  208. package/dist/commands/wardrobe/show.d.ts +25 -0
  209. package/dist/commands/wardrobe/show.js +97 -0
  210. package/dist/commands/wardrobe/wear.d.ts +26 -0
  211. package/dist/commands/wardrobe/wear.js +84 -0
  212. package/dist/index.d.ts +8 -0
  213. package/dist/index.js +8 -0
  214. package/dist/index_old.d.ts +8 -0
  215. package/dist/index_old.js +8 -0
  216. package/dist/interfaces/i-addons.d.ts +12 -0
  217. package/dist/interfaces/i-addons.js +8 -0
  218. package/dist/interfaces/i-analyze.d.ts +17 -0
  219. package/dist/interfaces/i-analyze.js +17 -0
  220. package/dist/interfaces/i-app.d.ts +14 -0
  221. package/dist/interfaces/i-app.js +8 -0
  222. package/dist/interfaces/i-branding.d.ts +36 -0
  223. package/dist/interfaces/i-branding.js +8 -0
  224. package/dist/interfaces/i-calamares-displaymanager.d.ts +17 -0
  225. package/dist/interfaces/i-calamares-displaymanager.js +1 -0
  226. package/dist/interfaces/i-calamares-finished.d.ts +12 -0
  227. package/dist/interfaces/i-calamares-finished.js +1 -0
  228. package/dist/interfaces/i-calamares-packages.d.ts +28 -0
  229. package/dist/interfaces/i-calamares-packages.js +1 -0
  230. package/dist/interfaces/i-calamares-partition.d.ts +40 -0
  231. package/dist/interfaces/i-calamares-partition.js +1 -0
  232. package/dist/interfaces/i-config-tools.d.ts +15 -0
  233. package/dist/interfaces/i-config-tools.js +8 -0
  234. package/dist/interfaces/i-devices.d.ts +20 -0
  235. package/dist/interfaces/i-devices.js +8 -0
  236. package/dist/interfaces/i-distro.d.ts +23 -0
  237. package/dist/interfaces/i-distro.js +8 -0
  238. package/dist/interfaces/i-drive-list.d.ts +33 -0
  239. package/dist/interfaces/i-drive-list.js +8 -0
  240. package/dist/interfaces/i-eggs-config.d.ts +32 -0
  241. package/dist/interfaces/i-eggs-config.js +8 -0
  242. package/dist/interfaces/i-excludes.d.ts +14 -0
  243. package/dist/interfaces/i-excludes.js +8 -0
  244. package/dist/interfaces/i-exec.d.ts +11 -0
  245. package/dist/interfaces/i-exec.js +8 -0
  246. package/dist/interfaces/i-initrd.d.ts +13 -0
  247. package/dist/interfaces/i-initrd.js +8 -0
  248. package/dist/interfaces/i-install.d.ts +16 -0
  249. package/dist/interfaces/i-install.js +8 -0
  250. package/dist/interfaces/i-installer.d.ts +17 -0
  251. package/dist/interfaces/i-installer.js +8 -0
  252. package/dist/interfaces/i-luks-passphrase.d.ts +11 -0
  253. package/dist/interfaces/i-luks-passphrase.js +8 -0
  254. package/dist/interfaces/i-materia.d.ts +36 -0
  255. package/dist/interfaces/i-materia.js +8 -0
  256. package/dist/interfaces/i-net.d.ts +16 -0
  257. package/dist/interfaces/i-net.js +8 -0
  258. package/dist/interfaces/i-os-release.d.ts +5 -0
  259. package/dist/interfaces/i-os-release.js +1 -0
  260. package/dist/interfaces/i-packages.d.ts +16 -0
  261. package/dist/interfaces/i-packages.js +8 -0
  262. package/dist/interfaces/i-partitions.d.ts +16 -0
  263. package/dist/interfaces/i-partitions.js +8 -0
  264. package/dist/interfaces/i-pxe.d.ts +45 -0
  265. package/dist/interfaces/i-pxe.js +1 -0
  266. package/dist/interfaces/i-remix.d.ts +21 -0
  267. package/dist/interfaces/i-remix.js +8 -0
  268. package/dist/interfaces/i-settings.d.ts +33 -0
  269. package/dist/interfaces/i-settings.js +8 -0
  270. package/dist/interfaces/i-user.d.ts +14 -0
  271. package/dist/interfaces/i-user.js +8 -0
  272. package/dist/interfaces/i-workdir.d.ts +14 -0
  273. package/dist/interfaces/i-workdir.js +8 -0
  274. package/dist/interfaces/i-xkb-model.d.ts +24 -0
  275. package/dist/interfaces/i-xkb-model.js +8 -0
  276. package/dist/interfaces/index.d.ts +26 -0
  277. package/dist/interfaces/index.js +8 -0
  278. package/dist/krill/classes/cfs.d.ts +17 -0
  279. package/dist/krill/classes/cfs.js +39 -0
  280. package/dist/krill/classes/krill_enums.d.ts +37 -0
  281. package/dist/krill/classes/krill_enums.js +41 -0
  282. package/dist/krill/classes/prepare.d/confirm.d.ts +5 -0
  283. package/dist/krill/classes/prepare.d/confirm.js +30 -0
  284. package/dist/krill/classes/prepare.d/keyboard.d.ts +14 -0
  285. package/dist/krill/classes/prepare.d/keyboard.js +62 -0
  286. package/dist/krill/classes/prepare.d/location.d.ts +17 -0
  287. package/dist/krill/classes/prepare.d/location.js +59 -0
  288. package/dist/krill/classes/prepare.d/network.d.ts +14 -0
  289. package/dist/krill/classes/prepare.d/network.js +68 -0
  290. package/dist/krill/classes/prepare.d/partitions.d.ts +14 -0
  291. package/dist/krill/classes/prepare.d/partitions.js +86 -0
  292. package/dist/krill/classes/prepare.d/summary.d.ts +15 -0
  293. package/dist/krill/classes/prepare.d/summary.js +69 -0
  294. package/dist/krill/classes/prepare.d/users.d.ts +6 -0
  295. package/dist/krill/classes/prepare.d/users.js +63 -0
  296. package/dist/krill/classes/prepare.d/welcome.d.ts +6 -0
  297. package/dist/krill/classes/prepare.d/welcome.js +30 -0
  298. package/dist/krill/classes/prepare.d.ts +89 -0
  299. package/dist/krill/classes/prepare.js +314 -0
  300. package/dist/krill/classes/sequence.d/add_user.d.ts +20 -0
  301. package/dist/krill/classes/sequence.d/add_user.js +66 -0
  302. package/dist/krill/classes/sequence.d/bootloader.d.ts +14 -0
  303. package/dist/krill/classes/sequence.d/bootloader.js +95 -0
  304. package/dist/krill/classes/sequence.d/bootloader_config.d.ts +14 -0
  305. package/dist/krill/classes/sequence.d/bootloader_config.js +165 -0
  306. package/dist/krill/classes/sequence.d/change_password.d.ts +15 -0
  307. package/dist/krill/classes/sequence.d/change_password.js +18 -0
  308. package/dist/krill/classes/sequence.d/del_live_user.d.ts +14 -0
  309. package/dist/krill/classes/sequence.d/del_live_user.js +39 -0
  310. package/dist/krill/classes/sequence.d/fstab.d.ts +14 -0
  311. package/dist/krill/classes/sequence.d/fstab.js +189 -0
  312. package/dist/krill/classes/sequence.d/grubcfg.d.ts +17 -0
  313. package/dist/krill/classes/sequence.d/grubcfg.js +33 -0
  314. package/dist/krill/classes/sequence.d/hostname.d.ts +13 -0
  315. package/dist/krill/classes/sequence.d/hostname.js +50 -0
  316. package/dist/krill/classes/sequence.d/initramfs.d.ts +13 -0
  317. package/dist/krill/classes/sequence.d/initramfs.js +54 -0
  318. package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +14 -0
  319. package/dist/krill/classes/sequence.d/initramfs_cfg.js +35 -0
  320. package/dist/krill/classes/sequence.d/locale.d.ts +13 -0
  321. package/dist/krill/classes/sequence.d/locale.js +91 -0
  322. package/dist/krill/classes/sequence.d/locale_cfg.d.ts +10 -0
  323. package/dist/krill/classes/sequence.d/locale_cfg.js +58 -0
  324. package/dist/krill/classes/sequence.d/m_keyboard.d.ts +14 -0
  325. package/dist/krill/classes/sequence.d/m_keyboard.js +58 -0
  326. package/dist/krill/classes/sequence.d/machine_id.d.ts +15 -0
  327. package/dist/krill/classes/sequence.d/machine_id.js +33 -0
  328. package/dist/krill/classes/sequence.d/mkfs.d.ts +15 -0
  329. package/dist/krill/classes/sequence.d/mkfs.js +72 -0
  330. package/dist/krill/classes/sequence.d/mount_fs.d.ts +17 -0
  331. package/dist/krill/classes/sequence.d/mount_fs.js +68 -0
  332. package/dist/krill/classes/sequence.d/mount_vfs.d.ts +17 -0
  333. package/dist/krill/classes/sequence.d/mount_vfs.js +40 -0
  334. package/dist/krill/classes/sequence.d/network_cfg.d.ts +19 -0
  335. package/dist/krill/classes/sequence.d/network_cfg.js +73 -0
  336. package/dist/krill/classes/sequence.d/packages.d.ts +14 -0
  337. package/dist/krill/classes/sequence.d/packages.js +111 -0
  338. package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +17 -0
  339. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +73 -0
  340. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +17 -0
  341. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +36 -0
  342. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +17 -0
  343. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +78 -0
  344. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +10 -0
  345. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +32 -0
  346. package/dist/krill/classes/sequence.d/partition.d.ts +14 -0
  347. package/dist/krill/classes/sequence.d/partition.js +84 -0
  348. package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +13 -0
  349. package/dist/krill/classes/sequence.d/remove_installer_link.js +35 -0
  350. package/dist/krill/classes/sequence.d/umount.d.ts +14 -0
  351. package/dist/krill/classes/sequence.d/umount.js +28 -0
  352. package/dist/krill/classes/sequence.d/unpackfs.d.ts +13 -0
  353. package/dist/krill/classes/sequence.d/unpackfs.js +20 -0
  354. package/dist/krill/classes/sequence.d.ts +133 -0
  355. package/dist/krill/classes/sequence.js +396 -0
  356. package/dist/krill/components/finished.d.ts +16 -0
  357. package/dist/krill/components/finished.js +56 -0
  358. package/dist/krill/components/information.d.ts +8 -0
  359. package/dist/krill/components/information.js +162 -0
  360. package/dist/krill/components/install.d.ts +15 -0
  361. package/dist/krill/components/install.js +60 -0
  362. package/dist/krill/components/keyboard.d.ts +16 -0
  363. package/dist/krill/components/keyboard.js +54 -0
  364. package/dist/krill/components/location.d.ts +16 -0
  365. package/dist/krill/components/location.js +59 -0
  366. package/dist/krill/components/network.d.ts +19 -0
  367. package/dist/krill/components/network.js +65 -0
  368. package/dist/krill/components/partitions.d.ts +18 -0
  369. package/dist/krill/components/partitions.js +89 -0
  370. package/dist/krill/components/steps.d.ts +13 -0
  371. package/dist/krill/components/steps.js +148 -0
  372. package/dist/krill/components/summary.d.ts +25 -0
  373. package/dist/krill/components/summary.js +77 -0
  374. package/dist/krill/components/title.d.ts +11 -0
  375. package/dist/krill/components/title.js +35 -0
  376. package/dist/krill/components/users.d.ts +24 -0
  377. package/dist/krill/components/users.js +80 -0
  378. package/dist/krill/components/welcome.d.ts +13 -0
  379. package/dist/krill/components/welcome.js +63 -0
  380. package/dist/krill/interfaces/i_krill.d.ts +44 -0
  381. package/dist/krill/interfaces/i_krill.js +8 -0
  382. package/dist/krill/interfaces/i_krill_config.d.ts +35 -0
  383. package/dist/krill/interfaces/i_krill_config.js +8 -0
  384. package/dist/krill/lib/get_address.d.ts +8 -0
  385. package/dist/krill/lib/get_address.js +23 -0
  386. package/dist/krill/lib/get_dns.d.ts +8 -0
  387. package/dist/krill/lib/get_dns.js +23 -0
  388. package/dist/krill/lib/get_domain.d.ts +8 -0
  389. package/dist/krill/lib/get_domain.js +23 -0
  390. package/dist/krill/lib/get_gateway.d.ts +8 -0
  391. package/dist/krill/lib/get_gateway.js +23 -0
  392. package/dist/krill/lib/get_hostname.d.ts +8 -0
  393. package/dist/krill/lib/get_hostname.js +23 -0
  394. package/dist/krill/lib/get_luks_passphrase.d.ts +8 -0
  395. package/dist/krill/lib/get_luks_passphrase.js +40 -0
  396. package/dist/krill/lib/get_netmask.d.ts +8 -0
  397. package/dist/krill/lib/get_netmask.js +23 -0
  398. package/dist/krill/lib/get_password.d.ts +8 -0
  399. package/dist/krill/lib/get_password.js +36 -0
  400. package/dist/krill/lib/get_userfullname.d.ts +8 -0
  401. package/dist/krill/lib/get_userfullname.js +23 -0
  402. package/dist/krill/lib/get_username.d.ts +8 -0
  403. package/dist/krill/lib/get_username.js +23 -0
  404. package/dist/krill/lib/select_address_type.d.ts +8 -0
  405. package/dist/krill/lib/select_address_type.js +24 -0
  406. package/dist/krill/lib/select_filesystem_type.d.ts +8 -0
  407. package/dist/krill/lib/select_filesystem_type.js +39 -0
  408. package/dist/krill/lib/select_installation_device.d.ts +8 -0
  409. package/dist/krill/lib/select_installation_device.js +40 -0
  410. package/dist/krill/lib/select_installation_mode.d.ts +9 -0
  411. package/dist/krill/lib/select_installation_mode.js +25 -0
  412. package/dist/krill/lib/select_interface.d.ts +8 -0
  413. package/dist/krill/lib/select_interface.js +24 -0
  414. package/dist/krill/lib/select_keyboard_layout.d.ts +11 -0
  415. package/dist/krill/lib/select_keyboard_layout.js +36 -0
  416. package/dist/krill/lib/select_keyboard_model.d.ts +11 -0
  417. package/dist/krill/lib/select_keyboard_model.js +34 -0
  418. package/dist/krill/lib/select_keyboard_option.d.ts +11 -0
  419. package/dist/krill/lib/select_keyboard_option.js +34 -0
  420. package/dist/krill/lib/select_keyboard_variant.d.ts +11 -0
  421. package/dist/krill/lib/select_keyboard_variant.js +35 -0
  422. package/dist/krill/lib/select_languages.d.ts +8 -0
  423. package/dist/krill/lib/select_languages.js +28 -0
  424. package/dist/krill/lib/select_regions.d.ts +8 -0
  425. package/dist/krill/lib/select_regions.js +24 -0
  426. package/dist/krill/lib/select_replaced_partition.d.ts +8 -0
  427. package/dist/krill/lib/select_replaced_partition.js +31 -0
  428. package/dist/krill/lib/select_user_swap_choice.d.ts +9 -0
  429. package/dist/krill/lib/select_user_swap_choice.js +35 -0
  430. package/dist/krill/lib/select_zones.d.ts +8 -0
  431. package/dist/krill/lib/select_zones.js +518 -0
  432. package/dist/lib/kill_me_softly.d.ts +11 -0
  433. package/dist/lib/kill_me_softly.js +61 -0
  434. package/dist/lib/utils.d.ts +42 -0
  435. package/dist/lib/utils.js +87 -0
  436. package/dist/penguins-eggs_10.1.1-0_amd64.deb +0 -0
  437. package/dist/penguins-eggs_10.1.1-0_amd64.deb.sha256 +1 -0
  438. package/package.json +25 -23
  439. package/scripts/_eggs +6 -12
  440. package/scripts/eggs.bash +1 -2
@@ -0,0 +1,58 @@
1
+ /**
2
+ * ./src/krill/modules/locale-cfg.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 fs from 'node:fs';
10
+ /* localeCfg
11
+ * Enable the configured locales (those set by the user on the
12
+ * user page) in /etc/locale.gen, if they are available in the
13
+ * target system.
14
+ */
15
+ export default async function localeCfg() {
16
+ /**
17
+ * influence: - locale-gen
18
+ */
19
+ let supporteds = [];
20
+ if (this.distro.familyId === 'debian') {
21
+ // Format: en_US.UTF-8 UTF-8
22
+ supporteds = fs.readFileSync('/usr/share/i18n/SUPPORTED', 'utf8').split('\n');
23
+ }
24
+ else if (this.distro.familyId === 'archlinux') {
25
+ const supportedsSource = fs.readFileSync('/etc/locale.gen', 'utf8').split('\n');
26
+ for (let line of supportedsSource) {
27
+ if (line.slice(0, 2) !== '# ') {
28
+ // se non è un commento
29
+ line = line.slice(1); // Rimuove #
30
+ }
31
+ supporteds.push(line);
32
+ }
33
+ }
34
+ const localeGenSource = fs.readFileSync(`${this.installTarget}/etc/locale.gen`, 'utf8').split('\n');
35
+ let localeGenDest = '';
36
+ const krillBookmark = '# Locales enabled by krill\n';
37
+ for (const line of localeGenSource) {
38
+ if (line.includes(krillBookmark)) {
39
+ break;
40
+ }
41
+ localeGenDest += line + '\n';
42
+ }
43
+ localeGenDest += '\n';
44
+ localeGenDest += krillBookmark;
45
+ const locales = [];
46
+ if (this.language !== 'en_US.UTF-8') {
47
+ locales.push('en_US.UTF-8');
48
+ }
49
+ locales.push(this.language);
50
+ for (const supported of supporteds) {
51
+ for (const locale of locales) {
52
+ if (supported.includes(locale)) {
53
+ localeGenDest += `${supported}\n`;
54
+ }
55
+ }
56
+ }
57
+ fs.writeFileSync(`${this.installTarget}/etc/locale.gen`, localeGenDest);
58
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ./src/krill/modules/m-keyboard.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 mKeyboard(this: Sequence): Promise<void>;
@@ -0,0 +1,58 @@
1
+ /**
2
+ * ./src/krill/modules/m-keyboard.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 fs from 'node:fs';
10
+ import Utils from '../../../classes/utils.js';
11
+ import { exec } from '../../../lib/utils.js';
12
+ /**
13
+ *
14
+ * @param this
15
+ */
16
+ export default async function mKeyboard() {
17
+ /**
18
+ * influence: - /etc/default/keyboard (console)
19
+ * - /etc/X11/xorg.conf.d/00-keyboard.conf
20
+ * - /ext/vconsole.conf (non systemd)
21
+ */
22
+ if (this.distro.familyId === 'archlinux' || this.distro.familyId === 'debian' || this.distro.familyId === 'fedora') {
23
+ let cmd = '';
24
+ let content = '';
25
+ if (Utils.isSystemd()) {
26
+ cmd = `chroot ${this.installTarget} localectl set-keymap ${this.keyboardLayout} ${this.toNull}`;
27
+ content = '# See penguins-eggs/src/krill/modules/set-keyboard.ts\n\n';
28
+ content += "# Read and parsed by systemd-localed. It's probably wise not to edit this file\n";
29
+ content += '# manually too freely.\n';
30
+ content += 'Section "InputClass"\n';
31
+ content += ' Identifier "system-keyboard"\n';
32
+ content += ' MatchIsKeyboard "on"\n';
33
+ content += ' Option "XkbLayout" "' + this.keyboardLayout + '"\n';
34
+ content += 'EndSection\n';
35
+ if (fs.existsSync(this.installTarget + '/etc/X11/xorg.conf.d')) {
36
+ Utils.write(this.installTarget + '/etc/X11/xorg.conf.d/00-keyboard.conf', content);
37
+ }
38
+ }
39
+ else {
40
+ /**
41
+ * configuro vconsole.conf
42
+ */
43
+ cmd = `chroot ${this.installTarget} setupcon ${this.toNull}`;
44
+ content = '# See penguins-eggs/src/krill/modules/set-keyboard.ts\n\n';
45
+ content += 'KEYMAP="' + this.keyboardLayout + '"\n';
46
+ content += 'FONT=\n';
47
+ content += 'FONT_MAP=\n';
48
+ Utils.write(this.installTarget + '/etc/vconsole.conf', content);
49
+ }
50
+ await exec(cmd, this.echo);
51
+ }
52
+ else if (this.distro.familyId === 'alpine') {
53
+ /**
54
+ * Alpine dovrebbe fare tutto con `setup-keymap us us`
55
+ */
56
+ await exec(`chroot ${this.installTarget} setup-keymap ${this.keyboardLayout} ${this.keyboardLayout}`);
57
+ }
58
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * penguins-eggs
3
+ * krill modules: machine-id.ts
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
+ * On Ubuntu
12
+ * /etc/machine-id must exist to be re-created
13
+ * https://unix.stackexchange.com/questions/402999/is-it-ok-to-change-etc-machine-id
14
+ */
15
+ export default function machineId(this: Sequence): Promise<void>;
@@ -0,0 +1,33 @@
1
+ /**
2
+ * penguins-eggs
3
+ * krill modules: machine-id.ts
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 fs from 'node:fs';
10
+ import { exec } from '../../../lib/utils.js';
11
+ import Utils from '../../../classes/utils.js';
12
+ /**
13
+ * On Ubuntu
14
+ * /etc/machine-id must exist to be re-created
15
+ * https://unix.stackexchange.com/questions/402999/is-it-ok-to-change-etc-machine-id
16
+ */
17
+ export default async function machineId() {
18
+ // We delete the machine-id file to force its recreation
19
+ const file = `${this.installTarget}/etc/machine-id`;
20
+ if (fs.existsSync(file)) {
21
+ await exec(`rm ${file} ${this.toNull}`, this.echo);
22
+ }
23
+ /**
24
+ * machine/id ALWAYS new
25
+ */
26
+ if (Utils.isSystemd()) {
27
+ await exec(`chroot ${this.installTarget} systemd-machine-id-setup`);
28
+ }
29
+ else {
30
+ await exec(`chroot ${this.installTarget} dbus-uuidgen --ensure=/var/lib/dbus/machine-id ${this.toNull}`);
31
+ await exec(`chroot ${this.installTarget} cp /var/lib/dbus/machine-id /etc/machine-id`);
32
+ }
33
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * ./src/krill/modules/mkfs.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
+ * mkfs
12
+ *
13
+ * mke2fs - create an ext2/ext3/ext4 file system -F force, -t type
14
+ */
15
+ export default function mkfs(this: Sequence): Promise<boolean>;
@@ -0,0 +1,72 @@
1
+ /**
2
+ * ./src/krill/modules/mkfs.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
+ import { InstallationMode, SwapChoice } from '../krill_enums.js';
11
+ /**
12
+ * mkfs
13
+ *
14
+ * mke2fs - create an ext2/ext3/ext4 file system -F force, -t type
15
+ */
16
+ export default async function mkfs() {
17
+ const result = true;
18
+ if (this.partitions.installationMode === InstallationMode.Replace) {
19
+ /**
20
+ * we need to define this.devices
21
+ */
22
+ this.devices.root.name = this.partitions.replacedPartition;
23
+ this.devices.root.mountPoint = '/';
24
+ this.devices.root.fsType = this.partitions.filesystemType;
25
+ this.devices.boot.name = 'none'; // OK
26
+ this.devices.data.name = 'none'; // OK
27
+ this.partitions.userSwapChoice = SwapChoice.File;
28
+ this.devices.swap.name = 'file'; // OK
29
+ this.devices.efi.name = 'none'; // Trovare il modo
30
+ }
31
+ if (this.partitions.filesystemType === 'ext4') {
32
+ // efi
33
+ if (this.efi) {
34
+ await exec(`mkdosfs -F 32 -I ${this.devices.efi.name} ${this.toNull}`, this.echo);
35
+ }
36
+ // boot
37
+ if (this.devices.boot.name !== 'none') {
38
+ if (this.devices.boot.fsType === undefined) {
39
+ this.devices.boot.fsType = 'ext2';
40
+ this.devices.boot.mountPoint = '/boot';
41
+ }
42
+ await exec(`mke2fs -Ft ${this.devices.boot.fsType} ${this.devices.boot.name} ${this.toNull}`, this.echo);
43
+ }
44
+ // root
45
+ if (this.devices.root.name !== 'none') {
46
+ await exec(`mke2fs -Ft ${this.devices.root.fsType} ${this.devices.root.name} ${this.toNull}`, this.echo);
47
+ }
48
+ // data
49
+ if (this.devices.data.name !== 'none') {
50
+ await exec(`mke2fs -Ft ${this.devices.data.fsType} ${this.devices.data.name} ${this.toNull}`, this.echo);
51
+ }
52
+ // swap
53
+ if (this.partitions.userSwapChoice === SwapChoice.File) {
54
+ // we'll create it on mount-fs
55
+ }
56
+ else if (this.devices.swap.name !== 'none') {
57
+ await exec(`mkswap ${this.devices.swap.name} ${this.toNull}`, this.echo);
58
+ }
59
+ }
60
+ else if (this.partitions.filesystemType === 'btrfs') {
61
+ await exec(`mkfs.btrfs -f ${this.devices.root.name} ${this.toNull}`, this.echo);
62
+ // create subvolumes
63
+ // await exec(`btrfs subvolume create /.snapshots ${this.toNull}`, this.echo)
64
+ // await exec(`btrfs subvolume create /home ${this.toNull}`, this.echo)
65
+ // await exec(`btrfs subvolume create /root ${this.toNull}`, this.echo)
66
+ // await exec(`btrfs subvolume create /var/log ${this.toNull}`, this.echo)
67
+ // await exec(`btrfs subvolume create /var/lib/AccountsService ${this.toNull}`, this.echo)
68
+ // await exec(`btrfs subvolume create /var/lib/blueman ${this.toNull}`, this.echo)
69
+ // await exec(`btrfs subvolume create /tmp ${this.toNull}`, this.echo)
70
+ }
71
+ return result;
72
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * ./src/krill/modules/mount-fs.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
+ * mountFs
12
+ */
13
+ export declare function mountFs(this: Sequence): Promise<boolean>;
14
+ /**
15
+ * umountFs
16
+ */
17
+ export declare function umountFs(this: Sequence): Promise<boolean>;
@@ -0,0 +1,68 @@
1
+ /**
2
+ * ./src/krill/modules/mount-fs.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 fs from 'node:fs';
10
+ import { exec } from '../../../lib/utils.js';
11
+ import { SwapChoice } from '../krill_enums.js';
12
+ /**
13
+ * mountFs
14
+ */
15
+ export async function mountFs() {
16
+ if (!fs.existsSync(this.installTarget)) {
17
+ await exec(`mkdir ${this.installTarget} ${this.toNull}`, this.echo);
18
+ }
19
+ // root
20
+ await exec(`mount -t ${this.devices.root.fsType} ${this.devices.root.name} ${this.installTarget}${this.devices.root.mountPoint} ${this.toNull}`, this.echo);
21
+ await exec(`tune2fs -c 0 -i 0 ${this.devices.root.name} ${this.toNull}`, this.echo);
22
+ await exec(`rm -rf ${this.installTarget}/lost+found ${this.toNull}`, this.echo);
23
+ // boot
24
+ if (this.devices.boot.name !== 'none') {
25
+ await exec(`mkdir ${this.installTarget}/boot -p ${this.toNull}`, this.echo);
26
+ await exec(`mount -t ${this.devices.boot.fsType} ${this.devices.boot.name} ${this.installTarget}${this.devices.boot.mountPoint} ${this.toNull}`, this.echo);
27
+ await exec(`tune2fs -c 0 -i 0 ${this.devices.boot.name} ${this.toNull}`, this.echo);
28
+ }
29
+ // data
30
+ if (this.devices.data.name !== 'none') {
31
+ await exec(`mkdir ${this.installTarget}${this.devices.data.mountPoint} -p ${this.toNull}`, this.echo);
32
+ await exec(`mount -t ${this.devices.data.fsType} ${this.devices.data.name} ${this.installTarget}${this.devices.data.mountPoint} ${this.toNull}`, this.echo);
33
+ await exec(`tune2fs -c 0 -i 0 ${this.devices.data.name} ${this.toNull}`, this.echo);
34
+ }
35
+ // efi
36
+ if (this.efi && !fs.existsSync(this.installTarget + this.devices.efi.mountPoint)) {
37
+ await exec(`mkdir ${this.installTarget}${this.devices.efi.mountPoint} -p ${this.toNull}`, this.echo);
38
+ // utilizzare vfat per evitare errori
39
+ await exec(`mount -t vfat ${this.devices.efi.name} ${this.installTarget}${this.devices.efi.mountPoint} ${this.toNull}`, this.echo);
40
+ }
41
+ // swap file if we need
42
+ if (this.partitions.userSwapChoice === SwapChoice.File) {
43
+ await exec(`fallocate -l 8G ${this.installTarget}/swapfile`);
44
+ await exec(`chmod 600 ${this.devices.root.mountPoint}/swapfile`, this.echo);
45
+ await exec(`mkswap ${this.devices.root.mountPoint}/swapfile`, this.echo);
46
+ }
47
+ return true;
48
+ }
49
+ /**
50
+ * umountFs
51
+ */
52
+ export async function umountFs() {
53
+ // efi
54
+ if (this.efi) {
55
+ await this.umount(this.devices.efi.name);
56
+ }
57
+ // data
58
+ if (this.devices.data.name !== 'none') {
59
+ await this.umount(this.devices.data.name);
60
+ }
61
+ // boot
62
+ if (this.devices.boot.name !== 'none') {
63
+ await this.umount(this.devices.boot.name);
64
+ }
65
+ // root
66
+ await this.umount(this.devices.root.name);
67
+ return true;
68
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * ./src/krill/modules/mount-vfs.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
+ * mountvfs()
12
+ */
13
+ export declare function mountVfs(this: Sequence): Promise<void>;
14
+ /**
15
+ *
16
+ */
17
+ export declare function umountVfs(this: Sequence): Promise<void>;
@@ -0,0 +1,40 @@
1
+ /**
2
+ * ./src/krill/modules/mount-vfs.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
+ * mountvfs()
12
+ */
13
+ export async function mountVfs() {
14
+ await exec(`mkdir ${this.installTarget}/dev ${this.toNull}`, this.echo);
15
+ await exec(`mkdir ${this.installTarget}/dev/pts ${this.toNull}`, this.echo);
16
+ await exec(`mkdir ${this.installTarget}/proc ${this.toNull}`, this.echo);
17
+ await exec(`mkdir ${this.installTarget}/sys ${this.toNull}`, this.echo);
18
+ await exec(`mkdir ${this.installTarget}/run ${this.toNull}`, this.echo);
19
+ await exec(`mount -o bind /dev ${this.installTarget}/dev ${this.toNull}`, this.echo);
20
+ await exec(`mount -o bind /dev/pts ${this.installTarget}/dev/pts ${this.toNull}`, this.echo);
21
+ await exec(`mount -o bind /proc ${this.installTarget}/proc ${this.toNull}`, this.echo);
22
+ await exec(`mount -o bind /sys ${this.installTarget}/sys ${this.toNull}`, this.echo);
23
+ if (this.efi) {
24
+ await exec(`mount -o bind /sys/firmware/efi/efivars ${this.installTarget}/sys/firmware/efi/efivars ${this.toNull}`, this.echo);
25
+ }
26
+ await exec(`mount -o rbind /run ${this.installTarget}/run ${this.toNull}`, this.echo);
27
+ }
28
+ /**
29
+ *
30
+ */
31
+ export async function umountVfs() {
32
+ await this.umount(`${this.installTarget}/dev/pts`);
33
+ await this.umount(`${this.installTarget}/dev`);
34
+ await this.umount(`${this.installTarget}/proc`);
35
+ await this.umount(`${this.installTarget}/run`);
36
+ if (this.efi) {
37
+ await this.umount(`${this.installTarget}/sys/firmware/efi/efivars`);
38
+ }
39
+ await this.umount(`${this.installTarget}/sys`);
40
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * ./src/krill/modules/network-cfg.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
+ * networkcfg
12
+ *
13
+ * - debian: /etc/network/interface
14
+ * - ubuntu: netplan
15
+ * - arch:
16
+ *
17
+ * - all: /etc/resolv.conf
18
+ */
19
+ export default function networkCfg(this: Sequence): Promise<void>;
@@ -0,0 +1,73 @@
1
+ /**
2
+ * ./src/krill/modules/network-cfg.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 fs from 'node:fs';
10
+ import Pacman from '../../../classes/pacman.js';
11
+ import Systemctl from '../../../classes/systemctl.js';
12
+ import { exec } from '../../../lib/utils.js';
13
+ /**
14
+ * networkcfg
15
+ *
16
+ * - debian: /etc/network/interface
17
+ * - ubuntu: netplan
18
+ * - arch:
19
+ *
20
+ * - all: /etc/resolv.conf
21
+ */
22
+ export default async function networkCfg() {
23
+ const systemdCtl = new Systemctl();
24
+ /**
25
+ * debian: /etc/network/interfaces
26
+ */
27
+ if (this.distro.familyId === 'debian' && !Pacman.packageIsInstalled('netplan.io')) {
28
+ const file = this.installTarget + '/etc/network/interfaces';
29
+ let content = '# created by eggs\n\n';
30
+ content += 'auto lo\n';
31
+ content += 'iface lo inet loopback\n\n';
32
+ content += 'auto ' + this.network.iface + '\n';
33
+ content += 'iface ' + this.network.iface + ' inet ' + this.network.addressType + '\n';
34
+ if (this.network.addressType !== 'dhcp') {
35
+ content += ' address ' + this.network.address + '\n';
36
+ content += ' netmask ' + this.network.netmask + '\n';
37
+ content += ' gateway ' + this.network.gateway + '\n';
38
+ }
39
+ try {
40
+ fs.writeFileSync(file, content, 'utf8');
41
+ }
42
+ catch (e) {
43
+ console.log("error on write: " + file);
44
+ }
45
+ }
46
+ else if (this.distro.familyId === 'debian' && Pacman.packageIsInstalled('netplan.io')) {
47
+ // netplan: to do
48
+ }
49
+ else if (this.distro.familyId === 'arch') {
50
+ // arch: seem to work
51
+ }
52
+ /**
53
+ * resolv.conf
54
+ */
55
+ const resolvFile = this.installTarget + '/etc/resolv.conf';
56
+ await exec(`rm -f ${resolvFile}`);
57
+ if (fs.existsSync('/run/systemd/resolve/resolv.conf')) {
58
+ await exec(`ln -s /run/systemd/resolve/resolv.conf ${resolvFile}`);
59
+ }
60
+ else {
61
+ let content = '# created by eggs\n\n';
62
+ content += 'domain ' + this.network.domain + '\n';
63
+ for (const element of this.network.dns) {
64
+ content += 'nameserver ' + element + '\n';
65
+ }
66
+ try {
67
+ fs.writeFileSync(resolvFile, content, 'utf8');
68
+ }
69
+ catch (e) {
70
+ console.log("error on write: " + resolvFile);
71
+ }
72
+ }
73
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ./src/krill/modules/packages.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 packages(this: Sequence): Promise<void>;
@@ -0,0 +1,111 @@
1
+ /**
2
+ * ./src/krill/modules/packages.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 yaml from 'js-yaml';
10
+ import fs from 'node:fs';
11
+ import Pacman from '../../../classes/pacman.js';
12
+ import Utils from '../../../classes/utils.js';
13
+ import { exec } from '../../../lib/utils.js';
14
+ /**
15
+ *
16
+ * @param this
17
+ */
18
+ export default async function packages() {
19
+ const echoYes = Utils.setEcho(true);
20
+ let modulePath = '/etc/penguins-eggs.d/krill/';
21
+ if (Pacman.packageIsInstalled('calamares')) {
22
+ modulePath = '/etc/calamares/';
23
+ }
24
+ const config_file = `${modulePath}modules/packages.conf`;
25
+ if (fs.existsSync(config_file)) {
26
+ const packages = yaml.load(fs.readFileSync(config_file, 'utf8'));
27
+ let packagesToInstall = [];
28
+ let packagesToRemove = [];
29
+ if (packages.operations !== undefined) {
30
+ for (const operation of packages.operations) {
31
+ if ('try_remove' in operation) {
32
+ packagesToRemove = operation.try_remove;
33
+ }
34
+ if ('try_install' in operation) {
35
+ packagesToInstall = operation.try_install;
36
+ }
37
+ }
38
+ }
39
+ // Alpine
40
+ if (this.distro.familyId === 'alpine') {
41
+ packages.backend = 'apk';
42
+ }
43
+ switch (packages.backend) {
44
+ case 'apt': {
45
+ /**
46
+ * apt
47
+ */
48
+ if (packagesToRemove != undefined && packagesToRemove.length > 0) {
49
+ let cmd = `chroot ${this.installTarget} apt-get purge -y `;
50
+ for (const elem of packagesToRemove) {
51
+ if (Pacman.packageIsInstalled(elem)) {
52
+ cmd += elem + ' ';
53
+ }
54
+ }
55
+ await exec(`${cmd} ${this.toNull}`, this.echo);
56
+ const autoremove = `chroot ${this.installTarget} apt-get autoremove -y ${this.toNull}`;
57
+ await exec(autoremove, this.echo);
58
+ }
59
+ if (packagesToInstall != undefined && packagesToInstall.length > 0) {
60
+ let cmd = `chroot ${this.installTarget} apt-get install -y `;
61
+ for (const elem of packagesToInstall) {
62
+ cmd += elem + ' ';
63
+ }
64
+ const update = `chroot ${this.installTarget} apt-get update ${this.toNull}`;
65
+ await exec(update, this.echo);
66
+ await exec(`${cmd} ${this.toNull}`, this.echo);
67
+ }
68
+ break;
69
+ }
70
+ case 'pacman': {
71
+ /**
72
+ * pacman
73
+ */
74
+ if (packagesToRemove != undefined && packagesToRemove.length > 0) {
75
+ let cmd = `chroot ${this.installTarget} pacman -R\n`;
76
+ for (const elem of packagesToRemove) {
77
+ cmd += elem + ' ';
78
+ }
79
+ await exec(`${cmd} ${echoYes}`, this.echo);
80
+ }
81
+ if (packagesToInstall != undefined && packagesToInstall.length > 0) {
82
+ for (const elem of packagesToInstall) {
83
+ await exec(`chroot ${this.installTarget} pacman -S ${elem}`, echoYes);
84
+ }
85
+ }
86
+ break;
87
+ }
88
+ case 'apk': {
89
+ /**
90
+ * apk
91
+ */
92
+ if (packagesToRemove != undefined && packagesToRemove.length > 0) {
93
+ let cmd = `chroot ${this.installTarget} apk del `;
94
+ for (const elem of packagesToRemove) {
95
+ cmd += elem + ' ';
96
+ }
97
+ await exec(`${cmd} ${this.toNull}`, this.echo);
98
+ }
99
+ if (packagesToInstall != undefined && packagesToInstall.length > 0) {
100
+ let cmd = `chroot ${this.installTarget} apk add `;
101
+ for (const elem of packagesToInstall) {
102
+ cmd += elem + ' ';
103
+ }
104
+ await exec(`${cmd} ${this.toNull}`, this.echo);
105
+ }
106
+ break;
107
+ }
108
+ // No default
109
+ }
110
+ }
111
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * ./src/krill/modules/partition.d/bios-luks.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 installDevice
14
+ * @param p
15
+ * @returns
16
+ */
17
+ export default function biosLuks(this: Sequence, installDevice?: string, p?: string): Promise<boolean>;