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,5 @@
1
+ /**
2
+ * confirm
3
+ * @returns
4
+ */
5
+ export declare function confirm(elem: JSX.Element, msg?: string): Promise<boolean>;
@@ -0,0 +1,30 @@
1
+ import Utils from '../../../classes/utils.js';
2
+ import { render } from 'ink';
3
+ /**
4
+ * confirm
5
+ * @returns
6
+ */
7
+ export async function confirm(elem, msg = "Confirm") {
8
+ redraw(elem);
9
+ const result = JSON.parse(await Utils.customConfirmAbort(msg));
10
+ let retval = false;
11
+ if (result.confirm === 'Yes') {
12
+ retval = true;
13
+ }
14
+ else if (result.confirm === 'Abort') {
15
+ process.exit();
16
+ }
17
+ return retval;
18
+ }
19
+ /**
20
+ * Occorre farglierlo rigenerare a forza
21
+ * anche quando NON cambiano i dati
22
+ * forceUpdate
23
+ */
24
+ function redraw(elem) {
25
+ let opt = {};
26
+ opt.patchConsole = true;
27
+ opt.debug = false;
28
+ console.clear();
29
+ render(elem, opt);
30
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ./src/krill/prepare.d/keyboard.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 { IKeyboard } from '../../interfaces/i_krill.js';
10
+ import Prepare from '../prepare.js';
11
+ /**
12
+ * KEYBOARD
13
+ */
14
+ export declare function keyboard(this: Prepare): Promise<IKeyboard>;
@@ -0,0 +1,62 @@
1
+ /**
2
+ * ./src/krill/prepare.d/keyboard.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 React from 'react';
10
+ import { confirm } from './confirm.js';
11
+ import Keyboard from '../../components/keyboard.js';
12
+ import selectKeyboardOption from '../../lib/select_keyboard_option.js';
13
+ import selectKeyboardModel from '../../lib/select_keyboard_model.js';
14
+ import selectKeyboardVariant from '../../lib/select_keyboard_variant.js';
15
+ import selectKeyboardLayout from '../../lib/select_keyboard_layout.js';
16
+ /**
17
+ * KEYBOARD
18
+ */
19
+ export async function keyboard() {
20
+ let keyboardModel = this.krillConfig.keyboardModel;
21
+ if (keyboardModel === '' || keyboardModel === undefined) {
22
+ keyboardModel = await this.keyboards.getModel();
23
+ }
24
+ let keyboardLayout = this.krillConfig.keyboardLayout;
25
+ if (keyboardLayout === '' || keyboardLayout === undefined) {
26
+ keyboardLayout = await this.keyboards.getLayout();
27
+ }
28
+ let keyboardVariant = this.krillConfig.keyboardVariant;
29
+ if (keyboardVariant === '' || keyboardVariant === undefined) {
30
+ keyboardVariant = await this.keyboards.getVariant();
31
+ }
32
+ let keyboardOption = this.krillConfig.keyboardOption;
33
+ if (keyboardOption === '' || keyboardOption === undefined) {
34
+ keyboardOption = await this.keyboards.getOption();
35
+ }
36
+ let keyboardElem;
37
+ while (true) {
38
+ keyboardElem = React.createElement(Keyboard, { keyboardModel: keyboardModel, keyboardLayout: keyboardLayout, keyboardVariant: keyboardVariant, keyboardOptions: keyboardOption });
39
+ if (await confirm(keyboardElem, "Confirm Keyboard datas?")) {
40
+ break;
41
+ }
42
+ else {
43
+ keyboardModel = 'pc105';
44
+ keyboardModel = await selectKeyboardModel(keyboardModel);
45
+ keyboardLayout = 'us';
46
+ keyboardLayout = await selectKeyboardLayout(keyboardLayout);
47
+ keyboardVariant = '';
48
+ keyboardVariant = await selectKeyboardVariant(keyboardLayout);
49
+ keyboardOption = '';
50
+ keyboardOption = await selectKeyboardOption(keyboardOption);
51
+ if (keyboardModel === '') {
52
+ keyboardModel = 'pc105';
53
+ }
54
+ }
55
+ }
56
+ return {
57
+ keyboardModel: keyboardModel,
58
+ keyboardLayout: keyboardLayout,
59
+ keyboardVariant: keyboardVariant,
60
+ keyboardOption: keyboardOption
61
+ };
62
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * ./src/krill/prepare.d/welcome.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 { ILocation } from '../../interfaces/i_krill.js';
10
+ import Prepare from '../prepare.js';
11
+ /**
12
+ *
13
+ * @param this
14
+ * @param language
15
+ * @returns
16
+ */
17
+ export declare function location(this: Prepare, language: string): Promise<ILocation>;
@@ -0,0 +1,59 @@
1
+ /**
2
+ * ./src/krill/prepare.d/welcome.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 React from 'react';
10
+ import { confirm } from './confirm.js';
11
+ import Location from '../../components/location.js';
12
+ import selectRegions from '../../lib/select_regions.js';
13
+ import selectZones from '../../lib/select_zones.js';
14
+ import axios from 'axios';
15
+ import shx from 'shelljs';
16
+ /**
17
+ *
18
+ * @param this
19
+ * @param language
20
+ * @returns
21
+ */
22
+ export async function location(language) {
23
+ let region = this.krillConfig.region;
24
+ if (region === '' || region === undefined) {
25
+ let region = shx.exec('cut -f1 -d/ < /etc/timezone', { silent: true }).stdout.trim();
26
+ }
27
+ let zone = this.krillConfig.zone;
28
+ if (zone === '' || zone === undefined) {
29
+ zone = shx.exec('cut -f2 -d/ < /etc/timezone', { silent: true }).stdout.trim();
30
+ }
31
+ // Try to auto-configure timezone by internet
32
+ const url = `https://geoip.kde.org/v1/calamares`;
33
+ try {
34
+ const response = await axios.get(url);
35
+ if (response.statusText === 'OK') {
36
+ const data = JSON.stringify(response.data);
37
+ const obj = JSON.parse(data);
38
+ region = obj.time_zone.substring(0, obj.time_zone.indexOf('/'));
39
+ zone = obj.time_zone.substring(obj.time_zone.indexOf('/') + 1);
40
+ }
41
+ }
42
+ catch (error) {
43
+ console.error('error: ' + error);
44
+ }
45
+ let locationElem;
46
+ while (true) {
47
+ locationElem = React.createElement(Location, { language: language, region: region, zone: zone });
48
+ if (await confirm(locationElem, "Confirm location datas?")) {
49
+ break;
50
+ }
51
+ region = await selectRegions(region);
52
+ zone = await selectZones(region);
53
+ }
54
+ return {
55
+ language: language,
56
+ region: region,
57
+ zone: zone
58
+ };
59
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ./src/krill/prepare.d/welcome.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 { INet } from '../../../interfaces/index.js';
10
+ import Prepare from '../prepare.js';
11
+ /**
12
+ * Network
13
+ */
14
+ export declare function network(this: Prepare): Promise<INet>;
@@ -0,0 +1,68 @@
1
+ /**
2
+ * ./src/krill/prepare.d/welcome.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 React from 'react';
10
+ import { confirm } from './confirm.js';
11
+ import Network from '../../components/network.js';
12
+ import Utils from '../../../classes/utils.js';
13
+ import selectInterface from '../../lib/select_interface.js';
14
+ import selectAddressType from '../../lib/select_address_type.js';
15
+ import getAddress from '../../lib/get_address.js';
16
+ import getNetmask from '../../lib/get_netmask.js';
17
+ import getGateway from '../../lib/get_gateway.js';
18
+ import getDomain from '../../lib/get_domain.js';
19
+ import getDns from '../../lib/get_dns.js';
20
+ import fs from 'fs';
21
+ /**
22
+ * Network
23
+ */
24
+ export async function network() {
25
+ const i = {};
26
+ const ifaces = fs.readdirSync('/sys/class/net/');
27
+ i.iface = await Utils.iface();
28
+ i.addressType = 'dhcp';
29
+ i.address = Utils.address();
30
+ i.netmask = Utils.netmask();
31
+ i.gateway = Utils.gateway();
32
+ i.dns = Utils.getDns();
33
+ i.domain = Utils.getDomain();
34
+ let dnsString = '';
35
+ for (let c = 0; c < i.dns.length; c++) {
36
+ dnsString += i.dns[c].trim();
37
+ if (c < i.dns.length - 1) {
38
+ dnsString += '; ';
39
+ }
40
+ }
41
+ let networkElem;
42
+ while (true) {
43
+ networkElem = React.createElement(Network, { iface: i.iface, addressType: i.addressType, address: i.address, netmask: i.netmask, gateway: i.gateway, domain: i.domain, dns: dnsString });
44
+ if (await confirm(networkElem, "Confirm Network datas?")) {
45
+ break;
46
+ }
47
+ i.iface = await selectInterface(i.iface, ifaces);
48
+ i.addressType = await selectAddressType();
49
+ if (i.addressType === 'static') {
50
+ i.address = await getAddress(i.address);
51
+ i.netmask = await getNetmask(i.netmask);
52
+ i.gateway = await getGateway(i.gateway);
53
+ i.domain = await getDomain(i.domain);
54
+ if (i.domain.at(0) !== '.') {
55
+ i.domain = '.' + i.domain;
56
+ }
57
+ i.dns = (await getDns(dnsString)).split(';');
58
+ dnsString = '';
59
+ for (let c = 0; c < i.dns.length; c++) {
60
+ dnsString += i.dns[c].trim();
61
+ if (c < i.dns.length - 1) {
62
+ dnsString += '; ';
63
+ }
64
+ }
65
+ }
66
+ }
67
+ return i;
68
+ }
@@ -0,0 +1,14 @@
1
+ /**
2
+ * ./src/krill/prepare.d/partitions.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 { IPartitions } from '../../interfaces/i_krill.js';
10
+ import Prepare from '../prepare.js';
11
+ /**
12
+ * PARTITIONS
13
+ */
14
+ export declare function partitions(this: Prepare, installationDevice?: string, crypted?: boolean, pve?: boolean, btrfs?: boolean): Promise<IPartitions>;
@@ -0,0 +1,86 @@
1
+ /**
2
+ * ./src/krill/prepare.d/partitions.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 React from 'react';
10
+ import { confirm } from './confirm.js';
11
+ import Partitions from '../../components/partitions.js';
12
+ import { SwapChoice, InstallationMode } from '../krill_enums.js';
13
+ import selectFileSystemType from '../../lib/select_filesystem_type.js';
14
+ import selectInstallationDevice from '../../lib/select_installation_device.js';
15
+ import selectReplacedPartition from '../../lib/select_replaced_partition.js';
16
+ import selectUserSwapChoice from '../../lib/select_user_swap_choice.js';
17
+ import shx from 'shelljs';
18
+ import selectInstallationMode from '../../lib/select_installation_mode.js';
19
+ /**
20
+ * PARTITIONS
21
+ */
22
+ export async function partitions(installationDevice = "", crypted = false, pve = false, btrfs = false) {
23
+ // Calamares won't use any devices with iso9660 filesystem on it.
24
+ const drives = shx.exec('lsblk |grep disk|cut -f 1 "-d "', { silent: true }).stdout.trim().split('\n');
25
+ let driveList = [];
26
+ drives.forEach((element) => {
27
+ if (!element.includes('zram')) {
28
+ driveList.push('/dev/' + element);
29
+ }
30
+ });
31
+ installationDevice = driveList[0]; // Solo per selezionare il default
32
+ let replacedPartition = this.krillConfig.replacedPartition;
33
+ let installationMode = this.krillConfig.installationMode;
34
+ let knownInstallationModes = Object.values(InstallationMode);
35
+ let knownSwapChoices = Object.values(SwapChoice);
36
+ if (!knownInstallationModes.includes(installationMode)) {
37
+ installationMode = InstallationMode.EraseDisk;
38
+ }
39
+ if (crypted) {
40
+ installationMode = InstallationMode.Luks;
41
+ }
42
+ let filesystemType = 'ext4';
43
+ let userSwapChoice = {};
44
+ if (knownSwapChoices.includes(this.krillConfig.userSwapChoice))
45
+ userSwapChoice = this.krillConfig.userSwapChoice;
46
+ else {
47
+ userSwapChoice = SwapChoice.Small;
48
+ }
49
+ let partitionsElem;
50
+ while (true) {
51
+ partitionsElem = React.createElement(Partitions, { installationDevice: installationDevice, installationMode: installationMode, filesystemType: filesystemType, userSwapChoice: userSwapChoice, replacedPartition: replacedPartition });
52
+ if (await confirm(partitionsElem, "Confirm Partitions datas?")) {
53
+ break;
54
+ }
55
+ else {
56
+ installationDevice = driveList[0]; // Solo per selezionare il default
57
+ installationMode = InstallationMode.EraseDisk;
58
+ if (crypted) {
59
+ installationMode = InstallationMode.Luks;
60
+ }
61
+ installationDevice = await selectInstallationDevice();
62
+ installationMode = await selectInstallationMode();
63
+ if (installationMode === InstallationMode.Replace) {
64
+ replacedPartition = await selectReplacedPartition();
65
+ filesystemType = await selectFileSystemType();
66
+ userSwapChoice = SwapChoice.File;
67
+ }
68
+ else if (installationMode === InstallationMode.EraseDisk) {
69
+ replacedPartition = "";
70
+ filesystemType = await selectFileSystemType();
71
+ userSwapChoice = await selectUserSwapChoice(userSwapChoice);
72
+ }
73
+ else if (installationMode === InstallationMode.Luks) {
74
+ replacedPartition = "";
75
+ userSwapChoice = SwapChoice.File;
76
+ }
77
+ }
78
+ }
79
+ return {
80
+ installationDevice: installationDevice,
81
+ installationMode: installationMode,
82
+ filesystemType: filesystemType,
83
+ userSwapChoice: userSwapChoice,
84
+ replacedPartition: replacedPartition
85
+ };
86
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * ./src/krill/prepare.d/keyboard.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 { IKeyboard } from '../../interfaces/i_krill.js';
10
+ import Prepare from '../prepare.js';
11
+ import { ILocation, IPartitions, IUsers } from '../../interfaces/i_krill.js';
12
+ /**
13
+ * SUMMARY
14
+ */
15
+ export declare function summary(this: Prepare, location: ILocation, keyboard: IKeyboard, partitions: IPartitions, users: IUsers): Promise<void>;
@@ -0,0 +1,69 @@
1
+ /**
2
+ * ./src/krill/prepare.d/keyboard.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 React from 'react';
10
+ import { render } from 'ink';
11
+ import { confirm } from './confirm.js';
12
+ import Summary from '../../components/summary.js';
13
+ import { InstallationMode } from '../krill_enums.js';
14
+ /**
15
+ * SUMMARY
16
+ */
17
+ export async function summary(location, keyboard, partitions, users) {
18
+ let summaryElem;
19
+ let message = `Double check: data on disk: ${partitions.installationDevice} will be completely erased!`;
20
+ let erase = `Disk ${partitions.installationDevice} will be formatted as: ${partitions.filesystemType}`;
21
+ if (partitions.installationMode === InstallationMode.Replace) {
22
+ message = `Double check: data on partition ${partitions.replacedPartition} will be completely erased!`;
23
+ erase = `Partition ${partitions.replacedPartition} will be formatted as: ${partitions.filesystemType}`;
24
+ }
25
+ if (this.unattended && this.nointeractive) {
26
+ message = `Unattended installation will start in 5 seconds...\npress CTRL-C to abort!`;
27
+ }
28
+ while (true) {
29
+ summaryElem = React.createElement(Summary, { username: users.username, password: users.password, rootPassword: users.rootPassword, hostname: users.hostname, region: location.region, zone: location.zone, language: location.language, keyboardModel: keyboard.keyboardModel, keyboardLayout: keyboard.keyboardLayout, installationDevice: partitions.installationDevice, filesystemType: partitions.filesystemType, message: message, erase: erase });
30
+ if (this.unattended && this.nointeractive) {
31
+ redraw(summaryElem);
32
+ await sleep(5000);
33
+ break;
34
+ }
35
+ else if (this.unattended && !this.nointeractive) {
36
+ if (await confirm(summaryElem, "Read the Summary, confirm or abort")) {
37
+ break;
38
+ }
39
+ else {
40
+ process.exit(0);
41
+ }
42
+ }
43
+ else if (await confirm(summaryElem, "Confirm Summary datas?")) {
44
+ break;
45
+ }
46
+ }
47
+ }
48
+ /**
49
+ * Occorre farglierlo rigenerare a forza
50
+ * anche quando NON cambiano i dati
51
+ * forceUpdate
52
+ */
53
+ function redraw(elem) {
54
+ let opt = {};
55
+ opt.patchConsole = true;
56
+ opt.debug = false;
57
+ console.clear();
58
+ render(elem, opt);
59
+ }
60
+ /**
61
+ *
62
+ * @param ms
63
+ * @returns
64
+ */
65
+ function sleep(ms = 0) {
66
+ return new Promise((resolve) => {
67
+ setTimeout(resolve, ms);
68
+ });
69
+ }
@@ -0,0 +1,6 @@
1
+ import { IUsers } from '../../interfaces/i_krill.js';
2
+ import Prepare from '../prepare.js';
3
+ /**
4
+ * USERS
5
+ */
6
+ export declare function users(this: Prepare): Promise<IUsers>;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * ./src/krill/prepare.d/users.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 React from 'react';
10
+ import { confirm } from './confirm.js';
11
+ import Users from '../../components/users.js';
12
+ import getUsername from '../../lib/get_username.js';
13
+ import getUserfullname from '../../lib/get_userfullname.js';
14
+ import getPassword from '../../lib/get_password.js';
15
+ import getHostname from '../../lib/get_hostname.js';
16
+ import shx from 'shelljs';
17
+ /**
18
+ * USERS
19
+ */
20
+ export async function users() {
21
+ let username = this.krillConfig.name;
22
+ if (username === '' || username === undefined) {
23
+ username = 'artisan';
24
+ }
25
+ let fullname = this.krillConfig.fullname;
26
+ if (fullname === '' || fullname === undefined) {
27
+ fullname = username;
28
+ }
29
+ let password = this.krillConfig.password;
30
+ if (password === '' || password === undefined) {
31
+ password = 'evolution';
32
+ }
33
+ let rootPassword = this.krillConfig.rootPassword;
34
+ if (rootPassword === '' || rootPassword === undefined) {
35
+ rootPassword = 'evolution';
36
+ }
37
+ let hostname = this.krillConfig.hostname;
38
+ if (hostname === '' || hostname === undefined) {
39
+ hostname = shx.exec('cat /etc/hostname').trim();
40
+ }
41
+ let autologin = true;
42
+ let sameUserPassword = true;
43
+ let usersElem;
44
+ while (true) {
45
+ usersElem = React.createElement(Users, { username: username, fullname: fullname, hostname: hostname, password: password, rootPassword: rootPassword, autologin: autologin, sameUserPassword: sameUserPassword });
46
+ if (await confirm(usersElem, "Confirm Users datas?")) {
47
+ break;
48
+ }
49
+ username = await getUsername(username);
50
+ fullname = await getUserfullname(fullname);
51
+ password = await getPassword(username, password);
52
+ rootPassword = await getPassword('root', password);
53
+ hostname = await getHostname(hostname);
54
+ }
55
+ return {
56
+ username: username,
57
+ fullname: fullname,
58
+ password: password,
59
+ rootPassword: rootPassword,
60
+ autologin: autologin,
61
+ hostname: hostname
62
+ };
63
+ }
@@ -0,0 +1,6 @@
1
+ import Prepare from '../prepare.js';
2
+ import { IWelcome } from '../../interfaces/i_krill.js';
3
+ /**
4
+ * WELCOME
5
+ */
6
+ export declare function welcome(this: Prepare): Promise<IWelcome>;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * ./src/krill/prepare.d/welcome.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 React from 'react';
10
+ import { confirm } from './confirm.js';
11
+ import Welcome from '../../components/welcome.js';
12
+ import selectLanguages from '../../lib/select_languages.js';
13
+ /**
14
+ * WELCOME
15
+ */
16
+ export async function welcome() {
17
+ let language = this.krillConfig.language;
18
+ if (language === '' || language === undefined) {
19
+ language = await this.locales.getDefault(); // 'en_US.UTF-8'
20
+ }
21
+ let welcomeElem;
22
+ while (true) {
23
+ welcomeElem = React.createElement(Welcome, { language: language });
24
+ if (await confirm(welcomeElem, "Confirm Welcome datas?")) {
25
+ break;
26
+ }
27
+ language = await selectLanguages(language);
28
+ }
29
+ return { language: language };
30
+ }
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Krill Installer - Simplified Refactoring
3
+ * ./src/krill/prepare.ts
4
+ * penguins-eggs v.10.0.0 / ecmascript 2020
5
+ * author: Piero Proietti
6
+ * email: piero.proietti@gmail.com
7
+ * license: MIT
8
+ */
9
+ import { IKrillConfig } from '../interfaces/i_krill_config.js';
10
+ import Keyboards from '../../classes/keyboards.js';
11
+ import Locales from '../../classes/locales.js';
12
+ import { welcome } from './prepare.d/welcome.js';
13
+ import { location } from './prepare.d/location.js';
14
+ import { keyboard } from './prepare.d/keyboard.js';
15
+ import { partitions } from './prepare.d/partitions.js';
16
+ import { users } from './prepare.d/users.js';
17
+ import { network } from './prepare.d/network.js';
18
+ import { summary } from './prepare.d/summary.js';
19
+ /**
20
+ * Main Krill installer class - Simplified refactoring
21
+ */
22
+ export default class Krill {
23
+ welcome: typeof welcome;
24
+ location: typeof location;
25
+ keyboard: typeof keyboard;
26
+ partitions: typeof partitions;
27
+ users: typeof users;
28
+ network: typeof network;
29
+ summary: typeof summary;
30
+ krillConfig: IKrillConfig;
31
+ locales: Locales;
32
+ keyboards: Keyboards;
33
+ unattended: boolean;
34
+ nointeractive: boolean;
35
+ chroot: boolean;
36
+ halt: boolean;
37
+ /**
38
+ * Constructor
39
+ */
40
+ constructor(unattended?: boolean, nointeractive?: boolean, halt?: boolean, chroot?: boolean);
41
+ /**
42
+ * Main prepare method - Simplified and cleaner
43
+ */
44
+ prepare(krillConfig?: IKrillConfig, ip?: boolean, random?: boolean, domain?: string, suspend?: boolean, small?: boolean, none?: boolean, crypted?: boolean, pve?: boolean, btrfs?: boolean, testing?: boolean, verbose?: boolean): Promise<void>;
45
+ /**
46
+ * Check system requirements (disks, LVM)
47
+ */
48
+ private checkSystemRequirements;
49
+ /**
50
+ * Setup configuration files and auto-configure timezone
51
+ */
52
+ private setupConfiguration;
53
+ /**
54
+ * Auto-configure timezone from internet
55
+ */
56
+ private autoConfigureTimezone;
57
+ /**
58
+ * Stop system services
59
+ */
60
+ private stopSystemServices;
61
+ /**
62
+ * Build default configurations
63
+ */
64
+ private buildConfigurations;
65
+ /**
66
+ * Generate hostname based on options
67
+ */
68
+ private generateHostname;
69
+ /**
70
+ * Apply options for unattended installation
71
+ */
72
+ private applyUnattendedOptions;
73
+ /**
74
+ * Run interactive mode with UI
75
+ */
76
+ private runInteractiveMode;
77
+ /**
78
+ * Perform installation or testing
79
+ */
80
+ private performInstallation;
81
+ /**
82
+ * Create script to remove LVM partitions
83
+ */
84
+ private createLvmRemovalScript;
85
+ /**
86
+ * Check if Physical Volumes exist
87
+ */
88
+ private pvExist;
89
+ }