penguins-eggs 10.0.55 → 10.0.60

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 (252) hide show
  1. package/.oclif.manifest.json +8 -1
  2. package/README.md +50 -45
  3. package/addons/eggs/theme/livecd/grub.main.full.cfg +3 -9
  4. package/addons/eggs/theme/livecd/isolinux.main.full.cfg +3 -4
  5. package/assets/config.cfg +30 -0
  6. package/conf/derivatives.yaml +3 -14
  7. package/conf/distros/buster/calamares/calamares-modules/cleanup/cleanup.sh +8 -1
  8. package/conf/distros/buster/calamares/modules/partition.yml +159 -23
  9. package/conf/distros/buster/calamares/modules/removeuser.yml +1 -1
  10. package/conf/distros/buster/calamares/settings.yml +1 -1
  11. package/conf/exclude.list.d/master.list +1 -0
  12. package/conf/krill.yaml +8 -0
  13. package/dist/classes/distro.js +19 -38
  14. package/dist/classes/diversions.d.ts +4 -0
  15. package/dist/classes/diversions.js +13 -3
  16. package/dist/classes/incubation/incubator.d/alpine.js +1 -1
  17. package/dist/classes/incubation/incubator.d/bionic.js +1 -1
  18. package/dist/classes/incubation/incubator.d/buster.js +1 -1
  19. package/dist/classes/incubation/incubator.d/noble.js +1 -1
  20. package/dist/classes/incubation/incubator.d/openmamba.js +1 -1
  21. package/dist/classes/incubation/incubator.d/opensuse.js +1 -1
  22. package/dist/classes/incubation/incubator.d/rolling.js +1 -1
  23. package/dist/classes/ovary.d/bind-live-fs.d.ts +18 -0
  24. package/dist/classes/ovary.d/bind-live-fs.js +185 -0
  25. package/dist/classes/ovary.d/bind-vfs.d.ts +17 -0
  26. package/dist/classes/ovary.d/bind-vfs.js +37 -0
  27. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +13 -0
  28. package/dist/classes/ovary.d/create-xdg-autostart.js +194 -0
  29. package/dist/classes/ovary.d/edit-live-fs.d.ts +19 -0
  30. package/dist/classes/ovary.d/edit-live-fs.js +249 -0
  31. package/dist/classes/ovary.d/fertilization.d.ts +12 -0
  32. package/dist/classes/ovary.d/fertilization.js +46 -0
  33. package/dist/classes/ovary.d/finished.d.ts +13 -0
  34. package/dist/classes/ovary.d/finished.js +41 -0
  35. package/dist/classes/ovary.d/initrd.d.ts +21 -0
  36. package/dist/classes/ovary.d/initrd.js +72 -0
  37. package/dist/classes/ovary.d/kernel-copy.d.ts +12 -0
  38. package/dist/classes/ovary.d/kernel-copy.js +36 -0
  39. package/dist/classes/ovary.d/live-create-structure.d.ts +12 -0
  40. package/dist/classes/ovary.d/live-create-structure.js +90 -0
  41. package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
  42. package/dist/classes/ovary.d/make-dot-disk.js +40 -0
  43. package/dist/classes/ovary.d/make-efi.d.ts +12 -0
  44. package/dist/classes/ovary.d/make-efi.js +268 -0
  45. package/dist/classes/ovary.d/make-iso.d.ts +13 -0
  46. package/dist/classes/ovary.d/make-iso.js +45 -0
  47. package/dist/classes/ovary.d/make-squashfs.d.ts +18 -0
  48. package/dist/classes/ovary.d/make-squashfs.js +117 -0
  49. package/dist/classes/ovary.d/merged.d.ts +31 -0
  50. package/dist/classes/ovary.d/merged.js +87 -0
  51. package/dist/classes/ovary.d/produce.d.ts +23 -0
  52. package/dist/classes/ovary.d/produce.js +287 -0
  53. package/dist/classes/ovary.d/rexec.d.ts +13 -0
  54. package/dist/classes/ovary.d/rexec.js +34 -0
  55. package/dist/classes/ovary.d/syslinux.d.ts +12 -0
  56. package/dist/classes/ovary.d/syslinux.js +79 -0
  57. package/dist/classes/ovary.d/user-create-live.d.ts +14 -0
  58. package/dist/classes/ovary.d/user-create-live.js +86 -0
  59. package/dist/classes/ovary.d/users-remove.d.ts +9 -0
  60. package/dist/classes/ovary.d/users-remove.js +38 -0
  61. package/dist/classes/ovary.d/xorriso-commend.d.ts +14 -0
  62. package/dist/classes/ovary.d/xorriso-commend.js +119 -0
  63. package/dist/classes/ovary.d.ts +46 -167
  64. package/dist/classes/ovary.js +49 -1811
  65. package/dist/classes/pacman.d/archlinux.js +5 -2
  66. package/dist/classes/pxe.js +2 -2
  67. package/dist/classes/settings.d.ts +0 -1
  68. package/dist/classes/settings.js +2 -2
  69. package/dist/classes/tailor.js +2 -2
  70. package/dist/classes/utils.d.ts +8 -5
  71. package/dist/classes/utils.js +63 -20
  72. package/dist/commands/export/tarballs.js +2 -2
  73. package/dist/commands/install.d.ts +1 -0
  74. package/dist/commands/install.js +7 -4
  75. package/dist/commands/kill.js +1 -1
  76. package/dist/commands/status.js +1 -1
  77. package/dist/commands/tools/ppa.js +1 -1
  78. package/dist/commands/update.js +3 -3
  79. package/dist/interfaces/i-luks-passphrase.d.ts +11 -0
  80. package/dist/interfaces/i-luks-passphrase.js +8 -0
  81. package/dist/interfaces/i-os-release.d.ts +5 -0
  82. package/dist/interfaces/i-os-release.js +1 -0
  83. package/dist/interfaces/index.d.ts +1 -0
  84. package/dist/{classes → krill/classes}/cfs.js +1 -1
  85. package/dist/krill/classes/krill_enums.d.ts +24 -0
  86. package/dist/krill/classes/krill_enums.js +26 -0
  87. package/dist/krill/classes/prepare.d/confirm.d.ts +5 -0
  88. package/dist/krill/classes/prepare.d/confirm.js +30 -0
  89. package/dist/krill/classes/prepare.d/keyboard.d.ts +14 -0
  90. package/dist/krill/classes/prepare.d/keyboard.js +62 -0
  91. package/dist/krill/classes/prepare.d/location.d.ts +17 -0
  92. package/dist/krill/classes/prepare.d/location.js +59 -0
  93. package/dist/krill/classes/prepare.d/network.d.ts +14 -0
  94. package/dist/krill/classes/prepare.d/network.js +68 -0
  95. package/dist/krill/classes/prepare.d/partitions.d.ts +14 -0
  96. package/dist/krill/classes/prepare.d/partitions.js +86 -0
  97. package/dist/krill/classes/prepare.d/summary.d.ts +15 -0
  98. package/dist/krill/classes/prepare.d/summary.js +69 -0
  99. package/dist/krill/classes/prepare.d/users.d.ts +6 -0
  100. package/dist/krill/classes/prepare.d/users.js +63 -0
  101. package/dist/krill/classes/prepare.d/welcome.d.ts +6 -0
  102. package/dist/krill/classes/prepare.d/welcome.js +30 -0
  103. package/dist/krill/{prepare.d.ts → classes/prepare.d.ts} +21 -35
  104. package/dist/krill/classes/prepare.js +314 -0
  105. package/dist/krill/{modules/add-user.js → classes/sequence.d/add_user.js} +1 -1
  106. package/dist/krill/{modules → classes/sequence.d}/bootloader.d.ts +1 -1
  107. package/dist/krill/classes/sequence.d/bootloader.js +95 -0
  108. package/dist/krill/{modules/bootloader-config.js → classes/sequence.d/bootloader_config.js} +5 -5
  109. package/dist/krill/{modules/change-password.js → classes/sequence.d/change_password.js} +1 -1
  110. package/dist/krill/{modules/del-live-user.js → classes/sequence.d/del_live_user.js} +2 -2
  111. package/dist/krill/{modules → classes/sequence.d}/fstab.d.ts +1 -1
  112. package/dist/krill/{modules → classes/sequence.d}/fstab.js +80 -14
  113. package/dist/krill/{modules → classes/sequence.d}/grubcfg.d.ts +1 -1
  114. package/dist/krill/{modules → classes/sequence.d}/grubcfg.js +6 -2
  115. package/dist/krill/{modules → classes/sequence.d}/hostname.d.ts +1 -1
  116. package/dist/krill/{modules → classes/sequence.d}/initramfs.d.ts +1 -1
  117. package/dist/krill/{modules → classes/sequence.d}/initramfs.js +2 -2
  118. package/dist/krill/classes/sequence.d/initramfs_cfg.js +35 -0
  119. package/dist/krill/{modules → classes/sequence.d}/locale.d.ts +1 -1
  120. package/dist/krill/{modules → classes/sequence.d}/locale.js +2 -2
  121. package/dist/krill/{modules/m-keyboard.js → classes/sequence.d/m_keyboard.js} +2 -2
  122. package/dist/krill/{modules/machine-id.js → classes/sequence.d/machine_id.js} +2 -2
  123. package/dist/krill/{modules → classes/sequence.d}/mkfs.d.ts +1 -1
  124. package/dist/krill/{modules → classes/sequence.d}/mkfs.js +24 -2
  125. package/dist/krill/{modules/mount-fs.js → classes/sequence.d/mount_fs.js} +9 -3
  126. package/dist/krill/{modules/mount-vfs.js → classes/sequence.d/mount_vfs.js} +1 -1
  127. package/dist/krill/{modules/network-cfg.js → classes/sequence.d/network_cfg.js} +15 -6
  128. package/dist/krill/{modules → classes/sequence.d}/packages.d.ts +1 -1
  129. package/dist/krill/{modules → classes/sequence.d}/packages.js +3 -3
  130. package/dist/krill/{modules/partition.d.ts → classes/sequence.d/partition.d/bios_luks.d.ts} +4 -7
  131. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +73 -0
  132. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +17 -0
  133. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +36 -0
  134. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +17 -0
  135. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +78 -0
  136. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +10 -0
  137. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +32 -0
  138. package/dist/krill/classes/sequence.d/partition.d.ts +14 -0
  139. package/dist/krill/classes/sequence.d/partition.js +84 -0
  140. package/dist/krill/{modules → classes/sequence.d}/umount.d.ts +1 -1
  141. package/dist/krill/{modules → classes/sequence.d}/umount.js +2 -2
  142. package/dist/krill/{modules → classes/sequence.d}/unpackfs.d.ts +1 -1
  143. package/dist/krill/{modules → classes/sequence.d}/unpackfs.js +2 -2
  144. package/dist/krill/{sequence.d.ts → classes/sequence.d.ts} +40 -58
  145. package/dist/krill/{sequence.js → classes/sequence.js} +45 -34
  146. package/dist/{components → krill/components}/information.js +10 -8
  147. package/dist/{components → krill/components}/keyboard.js +1 -1
  148. package/dist/{components → krill/components}/location.js +1 -1
  149. package/dist/{components → krill/components}/network.js +1 -1
  150. package/dist/{components → krill/components}/partitions.d.ts +4 -2
  151. package/dist/{components → krill/components}/partitions.js +36 -20
  152. package/dist/{components → krill/components}/summary.d.ts +2 -1
  153. package/dist/{components → krill/components}/summary.js +2 -6
  154. package/dist/{components → krill/components}/title.js +1 -1
  155. package/dist/{components → krill/components}/users.js +1 -1
  156. package/dist/{components → krill/components}/welcome.js +1 -1
  157. package/dist/{interfaces/i-krill.d.ts → krill/interfaces/i_krill.d.ts} +3 -1
  158. package/dist/{interfaces/i-krill-config.d.ts → krill/interfaces/i_krill_config.d.ts} +3 -1
  159. package/dist/krill/lib/get_luks_passphrase.d.ts +8 -0
  160. package/dist/krill/lib/get_luks_passphrase.js +40 -0
  161. package/dist/{lib → krill/lib}/kill_me_softly.js +2 -2
  162. package/dist/{lib → krill/lib}/select_filesystem_type.js +2 -9
  163. package/dist/{lib → krill/lib}/select_installation_device.js +11 -1
  164. package/dist/{lib → krill/lib}/select_installation_mode.d.ts +2 -1
  165. package/dist/{lib → krill/lib}/select_installation_mode.js +2 -1
  166. package/dist/{lib → krill/lib}/select_keyboard_layout.js +1 -1
  167. package/dist/{lib → krill/lib}/select_keyboard_model.js +1 -1
  168. package/dist/{lib → krill/lib}/select_keyboard_option.js +1 -1
  169. package/dist/{lib → krill/lib}/select_keyboard_variant.js +1 -1
  170. package/dist/{lib → krill/lib}/select_languages.js +1 -1
  171. package/dist/krill/lib/select_replaced_partition.d.ts +8 -0
  172. package/dist/krill/lib/select_replaced_partition.js +31 -0
  173. package/dist/{lib → krill/lib}/select_user_swap_choice.d.ts +2 -1
  174. package/dist/{lib → krill/lib}/select_user_swap_choice.js +4 -3
  175. package/dist/lib/utils.d.ts +8 -0
  176. package/dist/lib/utils.js +8 -0
  177. package/package.json +28 -27
  178. package/scripts/_eggs +7 -5
  179. package/scripts/eggs.bash +3 -3
  180. package/dist/krill/modules/bootloader.js +0 -157
  181. package/dist/krill/modules/initramfs-cfg.js +0 -22
  182. package/dist/krill/modules/partition.js +0 -324
  183. package/dist/krill/prepare.js +0 -624
  184. /package/dist/{index-old.d.ts → index_old.d.ts} +0 -0
  185. /package/dist/{index-old.js → index_old.js} +0 -0
  186. /package/dist/{classes → krill/classes}/cfs.d.ts +0 -0
  187. /package/dist/krill/{modules/add-user.d.ts → classes/sequence.d/add_user.d.ts} +0 -0
  188. /package/dist/krill/{modules/bootloader-config.d.ts → classes/sequence.d/bootloader_config.d.ts} +0 -0
  189. /package/dist/krill/{modules/change-password.d.ts → classes/sequence.d/change_password.d.ts} +0 -0
  190. /package/dist/krill/{modules/del-live-user.d.ts → classes/sequence.d/del_live_user.d.ts} +0 -0
  191. /package/dist/krill/{modules → classes/sequence.d}/hostname.js +0 -0
  192. /package/dist/krill/{modules/initramfs-cfg.d.ts → classes/sequence.d/initramfs_cfg.d.ts} +0 -0
  193. /package/dist/krill/{modules/locale-cfg.d.ts → classes/sequence.d/locale_cfg.d.ts} +0 -0
  194. /package/dist/krill/{modules/locale-cfg.js → classes/sequence.d/locale_cfg.js} +0 -0
  195. /package/dist/krill/{modules/m-keyboard.d.ts → classes/sequence.d/m_keyboard.d.ts} +0 -0
  196. /package/dist/krill/{modules/machine-id.d.ts → classes/sequence.d/machine_id.d.ts} +0 -0
  197. /package/dist/krill/{modules/mount-fs.d.ts → classes/sequence.d/mount_fs.d.ts} +0 -0
  198. /package/dist/krill/{modules/mount-vfs.d.ts → classes/sequence.d/mount_vfs.d.ts} +0 -0
  199. /package/dist/krill/{modules/network-cfg.d.ts → classes/sequence.d/network_cfg.d.ts} +0 -0
  200. /package/dist/krill/{modules/remove-installer-link.d.ts → classes/sequence.d/remove_installer_link.d.ts} +0 -0
  201. /package/dist/krill/{modules/remove-installer-link.js → classes/sequence.d/remove_installer_link.js} +0 -0
  202. /package/dist/{components → krill/components}/finished.d.ts +0 -0
  203. /package/dist/{components → krill/components}/finished.js +0 -0
  204. /package/dist/{components → krill/components}/information.d.ts +0 -0
  205. /package/dist/{components → krill/components}/install.d.ts +0 -0
  206. /package/dist/{components → krill/components}/install.js +0 -0
  207. /package/dist/{components → krill/components}/keyboard.d.ts +0 -0
  208. /package/dist/{components → krill/components}/location.d.ts +0 -0
  209. /package/dist/{components → krill/components}/network.d.ts +0 -0
  210. /package/dist/{components → krill/components}/steps.d.ts +0 -0
  211. /package/dist/{components → krill/components}/steps.js +0 -0
  212. /package/dist/{components → krill/components}/title.d.ts +0 -0
  213. /package/dist/{components → krill/components}/users.d.ts +0 -0
  214. /package/dist/{components → krill/components}/welcome.d.ts +0 -0
  215. /package/dist/{interfaces/i-krill.js → krill/interfaces/i_krill.js} +0 -0
  216. /package/dist/{interfaces/i-krill-config.js → krill/interfaces/i_krill_config.js} +0 -0
  217. /package/dist/{lib → krill/lib}/get_address.d.ts +0 -0
  218. /package/dist/{lib → krill/lib}/get_address.js +0 -0
  219. /package/dist/{lib → krill/lib}/get_dns.d.ts +0 -0
  220. /package/dist/{lib → krill/lib}/get_dns.js +0 -0
  221. /package/dist/{lib → krill/lib}/get_domain.d.ts +0 -0
  222. /package/dist/{lib → krill/lib}/get_domain.js +0 -0
  223. /package/dist/{lib → krill/lib}/get_gateway.d.ts +0 -0
  224. /package/dist/{lib → krill/lib}/get_gateway.js +0 -0
  225. /package/dist/{lib → krill/lib}/get_hostname.d.ts +0 -0
  226. /package/dist/{lib → krill/lib}/get_hostname.js +0 -0
  227. /package/dist/{lib → krill/lib}/get_netmask.d.ts +0 -0
  228. /package/dist/{lib → krill/lib}/get_netmask.js +0 -0
  229. /package/dist/{lib → krill/lib}/get_password.d.ts +0 -0
  230. /package/dist/{lib → krill/lib}/get_password.js +0 -0
  231. /package/dist/{lib → krill/lib}/get_userfullname.d.ts +0 -0
  232. /package/dist/{lib → krill/lib}/get_userfullname.js +0 -0
  233. /package/dist/{lib → krill/lib}/get_username.d.ts +0 -0
  234. /package/dist/{lib → krill/lib}/get_username.js +0 -0
  235. /package/dist/{lib → krill/lib}/kill_me_softly.d.ts +0 -0
  236. /package/dist/{lib → krill/lib}/select_address_type.d.ts +0 -0
  237. /package/dist/{lib → krill/lib}/select_address_type.js +0 -0
  238. /package/dist/{lib → krill/lib}/select_filesystem_type.d.ts +0 -0
  239. /package/dist/{lib → krill/lib}/select_installation_device.d.ts +0 -0
  240. /package/dist/{lib → krill/lib}/select_interface.d.ts +0 -0
  241. /package/dist/{lib → krill/lib}/select_interface.js +0 -0
  242. /package/dist/{lib → krill/lib}/select_keyboard_layout.d.ts +0 -0
  243. /package/dist/{lib → krill/lib}/select_keyboard_model.d.ts +0 -0
  244. /package/dist/{lib → krill/lib}/select_keyboard_option.d.ts +0 -0
  245. /package/dist/{lib → krill/lib}/select_keyboard_variant.d.ts +0 -0
  246. /package/dist/{lib → krill/lib}/select_languages.d.ts +0 -0
  247. /package/dist/{lib → krill/lib}/select_regions.d.ts +0 -0
  248. /package/dist/{lib → krill/lib}/select_regions.js +0 -0
  249. /package/dist/{lib → krill/lib}/select_zones.d.ts +0 -0
  250. /package/dist/{lib → krill/lib}/select_zones.js +0 -0
  251. /package/mkinitcpio/{manjarolinux → manjaro}/README.md +0 -0
  252. /package/mkinitcpio/{manjarolinux → manjaro}/live.conf +0 -0
@@ -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.Standard;
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.Standard;
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.Standard) {
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
+ }
@@ -6,15 +6,27 @@
6
6
  * license: MIT
7
7
  * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
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 { INet } from '../interfaces/index.js';
13
- import { IWelcome, ILocation, IKeyboard, IPartitions, IUsers } from '../interfaces/i-krill.js';
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';
14
19
  /**
15
20
  *
16
21
  */
17
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;
18
30
  krillConfig: IKrillConfig;
19
31
  locales: Locales;
20
32
  keyboards: Keyboards;
@@ -38,39 +50,13 @@ export default class Krill {
38
50
  * @param suspend
39
51
  * @param small
40
52
  * @param none
41
- * @param cryped
53
+ * @param crypted
42
54
  * @param pve
55
+ * @param btrfs
56
+ * @param testing
43
57
  * @param verbose
44
58
  */
45
- prepare(krillConfig?: IKrillConfig, ip?: boolean, random?: boolean, domain?: string, suspend?: boolean, small?: boolean, none?: boolean, cryped?: boolean, pve?: boolean, btrfs?: boolean, verbose?: boolean): Promise<void>;
46
- /**
47
- * WELCOME
48
- */
49
- welcome(): Promise<IWelcome>;
50
- /**
51
- * LOCATION
52
- */
53
- location(language: string): Promise<ILocation>;
54
- /**
55
- * KEYBOARD
56
- */
57
- keyboard(): Promise<IKeyboard>;
58
- /**
59
- * PARTITIONS
60
- */
61
- partitions(crypted?: boolean, pve?: boolean, btrfs?: boolean): Promise<IPartitions>;
62
- /**
63
- * USERS
64
- */
65
- users(): Promise<IUsers>;
66
- /**
67
- * Network
68
- */
69
- network(): Promise<INet>;
70
- /**
71
- * SUMMARY
72
- */
73
- summary(location: ILocation, keyboard: IKeyboard, partitions: IPartitions, users: IUsers): Promise<void>;
59
+ 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>;
74
60
  /**
75
61
  * return true if pv exist
76
62
  */