penguins-eggs 10.0.57 → 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 (238) hide show
  1. package/.oclif.manifest.json +8 -1
  2. package/README.md +35 -34
  3. package/addons/eggs/theme/livecd/grub.main.full.cfg +0 -6
  4. package/assets/config.cfg +30 -0
  5. package/conf/distros/buster/calamares/calamares-modules/cleanup/cleanup.sh +8 -1
  6. package/conf/distros/buster/calamares/modules/partition.yml +159 -23
  7. package/conf/distros/buster/calamares/modules/removeuser.yml +1 -1
  8. package/conf/exclude.list.d/master.list +1 -0
  9. package/conf/krill.yaml +8 -0
  10. package/dist/classes/distro.js +1 -1
  11. package/dist/classes/incubation/incubator.d/alpine.js +1 -1
  12. package/dist/classes/incubation/incubator.d/bionic.js +1 -1
  13. package/dist/classes/incubation/incubator.d/buster.js +1 -1
  14. package/dist/classes/incubation/incubator.d/noble.js +1 -1
  15. package/dist/classes/incubation/incubator.d/openmamba.js +1 -1
  16. package/dist/classes/incubation/incubator.d/opensuse.js +1 -1
  17. package/dist/classes/incubation/incubator.d/rolling.js +1 -1
  18. package/dist/classes/ovary.d/bind-live-fs.d.ts +18 -0
  19. package/dist/classes/ovary.d/bind-live-fs.js +185 -0
  20. package/dist/classes/ovary.d/bind-vfs.d.ts +17 -0
  21. package/dist/classes/ovary.d/bind-vfs.js +37 -0
  22. package/dist/classes/ovary.d/create-xdg-autostart.d.ts +13 -0
  23. package/dist/classes/ovary.d/create-xdg-autostart.js +194 -0
  24. package/dist/classes/ovary.d/edit-live-fs.d.ts +19 -0
  25. package/dist/classes/ovary.d/edit-live-fs.js +249 -0
  26. package/dist/classes/ovary.d/fertilization.d.ts +12 -0
  27. package/dist/classes/ovary.d/fertilization.js +46 -0
  28. package/dist/classes/ovary.d/finished.d.ts +13 -0
  29. package/dist/classes/ovary.d/finished.js +41 -0
  30. package/dist/classes/ovary.d/initrd.d.ts +21 -0
  31. package/dist/classes/ovary.d/initrd.js +72 -0
  32. package/dist/classes/ovary.d/kernel-copy.d.ts +12 -0
  33. package/dist/classes/ovary.d/kernel-copy.js +36 -0
  34. package/dist/classes/ovary.d/live-create-structure.d.ts +12 -0
  35. package/dist/classes/ovary.d/live-create-structure.js +90 -0
  36. package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
  37. package/dist/classes/ovary.d/make-dot-disk.js +40 -0
  38. package/dist/classes/ovary.d/make-efi.d.ts +12 -0
  39. package/dist/classes/ovary.d/make-efi.js +268 -0
  40. package/dist/classes/ovary.d/make-iso.d.ts +13 -0
  41. package/dist/classes/ovary.d/make-iso.js +45 -0
  42. package/dist/classes/ovary.d/make-squashfs.d.ts +18 -0
  43. package/dist/classes/ovary.d/make-squashfs.js +117 -0
  44. package/dist/classes/ovary.d/merged.d.ts +31 -0
  45. package/dist/classes/ovary.d/merged.js +87 -0
  46. package/dist/classes/ovary.d/produce.d.ts +23 -0
  47. package/dist/classes/ovary.d/produce.js +287 -0
  48. package/dist/classes/ovary.d/rexec.d.ts +13 -0
  49. package/dist/classes/ovary.d/rexec.js +34 -0
  50. package/dist/classes/ovary.d/syslinux.d.ts +12 -0
  51. package/dist/classes/ovary.d/syslinux.js +79 -0
  52. package/dist/classes/ovary.d/user-create-live.d.ts +14 -0
  53. package/dist/classes/ovary.d/user-create-live.js +86 -0
  54. package/dist/classes/ovary.d/users-remove.d.ts +9 -0
  55. package/dist/classes/ovary.d/users-remove.js +38 -0
  56. package/dist/classes/ovary.d/xorriso-commend.d.ts +14 -0
  57. package/dist/classes/ovary.d/xorriso-commend.js +119 -0
  58. package/dist/classes/ovary.d.ts +46 -167
  59. package/dist/classes/ovary.js +49 -1818
  60. package/dist/classes/pacman.d/archlinux.js +2 -1
  61. package/dist/classes/settings.d.ts +0 -1
  62. package/dist/classes/settings.js +2 -2
  63. package/dist/classes/utils.d.ts +6 -5
  64. package/dist/classes/utils.js +10 -16
  65. package/dist/commands/install.d.ts +1 -0
  66. package/dist/commands/install.js +7 -4
  67. package/dist/commands/kill.js +1 -1
  68. package/dist/commands/status.js +1 -1
  69. package/dist/commands/update.js +3 -3
  70. package/dist/interfaces/i-luks-passphrase.d.ts +11 -0
  71. package/dist/interfaces/i-luks-passphrase.js +8 -0
  72. package/dist/interfaces/index.d.ts +1 -0
  73. package/dist/{classes → krill/classes}/cfs.js +1 -1
  74. package/dist/krill/classes/krill_enums.d.ts +24 -0
  75. package/dist/krill/classes/krill_enums.js +26 -0
  76. package/dist/krill/classes/prepare.d/confirm.d.ts +5 -0
  77. package/dist/krill/classes/prepare.d/confirm.js +30 -0
  78. package/dist/krill/classes/prepare.d/keyboard.d.ts +14 -0
  79. package/dist/krill/classes/prepare.d/keyboard.js +62 -0
  80. package/dist/krill/classes/prepare.d/location.d.ts +17 -0
  81. package/dist/krill/classes/prepare.d/location.js +59 -0
  82. package/dist/krill/classes/prepare.d/network.d.ts +14 -0
  83. package/dist/krill/classes/prepare.d/network.js +68 -0
  84. package/dist/krill/classes/prepare.d/partitions.d.ts +14 -0
  85. package/dist/krill/classes/prepare.d/partitions.js +86 -0
  86. package/dist/krill/classes/prepare.d/summary.d.ts +15 -0
  87. package/dist/krill/classes/prepare.d/summary.js +69 -0
  88. package/dist/krill/classes/prepare.d/users.d.ts +6 -0
  89. package/dist/krill/classes/prepare.d/users.js +63 -0
  90. package/dist/krill/classes/prepare.d/welcome.d.ts +6 -0
  91. package/dist/krill/classes/prepare.d/welcome.js +30 -0
  92. package/dist/krill/{prepare.d.ts → classes/prepare.d.ts} +21 -35
  93. package/dist/krill/classes/prepare.js +314 -0
  94. package/dist/krill/{modules/add-user.js → classes/sequence.d/add_user.js} +1 -1
  95. package/dist/krill/{modules → classes/sequence.d}/bootloader.d.ts +1 -1
  96. package/dist/krill/{modules → classes/sequence.d}/bootloader.js +3 -3
  97. package/dist/krill/{modules/bootloader-config.js → classes/sequence.d/bootloader_config.js} +2 -2
  98. package/dist/krill/{modules/change-password.js → classes/sequence.d/change_password.js} +1 -1
  99. package/dist/krill/{modules/del-live-user.js → classes/sequence.d/del_live_user.js} +2 -2
  100. package/dist/krill/{modules → classes/sequence.d}/fstab.d.ts +1 -1
  101. package/dist/krill/{modules → classes/sequence.d}/fstab.js +75 -14
  102. package/dist/krill/{modules → classes/sequence.d}/grubcfg.d.ts +1 -1
  103. package/dist/krill/{modules → classes/sequence.d}/grubcfg.js +6 -2
  104. package/dist/krill/{modules → classes/sequence.d}/hostname.d.ts +1 -1
  105. package/dist/krill/{modules → classes/sequence.d}/initramfs.d.ts +1 -1
  106. package/dist/krill/{modules → classes/sequence.d}/initramfs.js +2 -2
  107. package/dist/krill/classes/sequence.d/initramfs_cfg.js +35 -0
  108. package/dist/krill/{modules → classes/sequence.d}/locale.d.ts +1 -1
  109. package/dist/krill/{modules → classes/sequence.d}/locale.js +2 -2
  110. package/dist/krill/{modules/m-keyboard.js → classes/sequence.d/m_keyboard.js} +2 -2
  111. package/dist/krill/{modules/machine-id.js → classes/sequence.d/machine_id.js} +2 -2
  112. package/dist/krill/{modules → classes/sequence.d}/mkfs.d.ts +1 -1
  113. package/dist/krill/{modules → classes/sequence.d}/mkfs.js +24 -2
  114. package/dist/krill/{modules/mount-fs.js → classes/sequence.d/mount_fs.js} +9 -3
  115. package/dist/krill/{modules/mount-vfs.js → classes/sequence.d/mount_vfs.js} +1 -1
  116. package/dist/krill/{modules/network-cfg.js → classes/sequence.d/network_cfg.js} +15 -6
  117. package/dist/krill/{modules → classes/sequence.d}/packages.d.ts +1 -1
  118. package/dist/krill/{modules → classes/sequence.d}/packages.js +3 -3
  119. package/dist/krill/{modules/partition.d.ts → classes/sequence.d/partition.d/bios_luks.d.ts} +4 -7
  120. package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +73 -0
  121. package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +17 -0
  122. package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +36 -0
  123. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +17 -0
  124. package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +78 -0
  125. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +10 -0
  126. package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +32 -0
  127. package/dist/krill/classes/sequence.d/partition.d.ts +14 -0
  128. package/dist/krill/classes/sequence.d/partition.js +84 -0
  129. package/dist/krill/{modules → classes/sequence.d}/umount.d.ts +1 -1
  130. package/dist/krill/{modules → classes/sequence.d}/umount.js +2 -2
  131. package/dist/krill/{modules → classes/sequence.d}/unpackfs.d.ts +1 -1
  132. package/dist/krill/{modules → classes/sequence.d}/unpackfs.js +2 -2
  133. package/dist/krill/{sequence.d.ts → classes/sequence.d.ts} +40 -58
  134. package/dist/krill/{sequence.js → classes/sequence.js} +43 -32
  135. package/dist/{components → krill/components}/information.js +3 -3
  136. package/dist/{components → krill/components}/keyboard.js +1 -1
  137. package/dist/{components → krill/components}/location.js +1 -1
  138. package/dist/{components → krill/components}/network.js +1 -1
  139. package/dist/{components → krill/components}/partitions.d.ts +4 -2
  140. package/dist/{components → krill/components}/partitions.js +36 -20
  141. package/dist/{components → krill/components}/summary.d.ts +2 -1
  142. package/dist/{components → krill/components}/summary.js +2 -6
  143. package/dist/{components → krill/components}/title.js +1 -1
  144. package/dist/{components → krill/components}/users.js +1 -1
  145. package/dist/{components → krill/components}/welcome.js +1 -1
  146. package/dist/{interfaces/i-krill.d.ts → krill/interfaces/i_krill.d.ts} +3 -1
  147. package/dist/{interfaces/i-krill-config.d.ts → krill/interfaces/i_krill_config.d.ts} +3 -1
  148. package/dist/krill/lib/get_luks_passphrase.d.ts +8 -0
  149. package/dist/krill/lib/get_luks_passphrase.js +40 -0
  150. package/dist/{lib → krill/lib}/kill_me_softly.js +2 -2
  151. package/dist/{lib → krill/lib}/select_filesystem_type.js +2 -9
  152. package/dist/{lib → krill/lib}/select_installation_device.js +10 -4
  153. package/dist/{lib → krill/lib}/select_installation_mode.d.ts +2 -1
  154. package/dist/{lib → krill/lib}/select_installation_mode.js +2 -1
  155. package/dist/{lib → krill/lib}/select_keyboard_layout.js +1 -1
  156. package/dist/{lib → krill/lib}/select_keyboard_model.js +1 -1
  157. package/dist/{lib → krill/lib}/select_keyboard_option.js +1 -1
  158. package/dist/{lib → krill/lib}/select_keyboard_variant.js +1 -1
  159. package/dist/{lib → krill/lib}/select_languages.js +1 -1
  160. package/dist/krill/lib/select_replaced_partition.d.ts +8 -0
  161. package/dist/krill/lib/select_replaced_partition.js +31 -0
  162. package/dist/{lib → krill/lib}/select_user_swap_choice.d.ts +2 -1
  163. package/dist/{lib → krill/lib}/select_user_swap_choice.js +4 -3
  164. package/dist/lib/utils.d.ts +8 -0
  165. package/dist/lib/utils.js +8 -0
  166. package/package.json +25 -24
  167. package/scripts/_eggs +7 -5
  168. package/scripts/eggs.bash +3 -3
  169. package/dist/krill/modules/initramfs-cfg.js +0 -22
  170. package/dist/krill/modules/partition.js +0 -345
  171. package/dist/krill/prepare.js +0 -626
  172. /package/dist/{index-old.d.ts → index_old.d.ts} +0 -0
  173. /package/dist/{index-old.js → index_old.js} +0 -0
  174. /package/dist/{classes → krill/classes}/cfs.d.ts +0 -0
  175. /package/dist/krill/{modules/add-user.d.ts → classes/sequence.d/add_user.d.ts} +0 -0
  176. /package/dist/krill/{modules/bootloader-config.d.ts → classes/sequence.d/bootloader_config.d.ts} +0 -0
  177. /package/dist/krill/{modules/change-password.d.ts → classes/sequence.d/change_password.d.ts} +0 -0
  178. /package/dist/krill/{modules/del-live-user.d.ts → classes/sequence.d/del_live_user.d.ts} +0 -0
  179. /package/dist/krill/{modules → classes/sequence.d}/hostname.js +0 -0
  180. /package/dist/krill/{modules/initramfs-cfg.d.ts → classes/sequence.d/initramfs_cfg.d.ts} +0 -0
  181. /package/dist/krill/{modules/locale-cfg.d.ts → classes/sequence.d/locale_cfg.d.ts} +0 -0
  182. /package/dist/krill/{modules/locale-cfg.js → classes/sequence.d/locale_cfg.js} +0 -0
  183. /package/dist/krill/{modules/m-keyboard.d.ts → classes/sequence.d/m_keyboard.d.ts} +0 -0
  184. /package/dist/krill/{modules/machine-id.d.ts → classes/sequence.d/machine_id.d.ts} +0 -0
  185. /package/dist/krill/{modules/mount-fs.d.ts → classes/sequence.d/mount_fs.d.ts} +0 -0
  186. /package/dist/krill/{modules/mount-vfs.d.ts → classes/sequence.d/mount_vfs.d.ts} +0 -0
  187. /package/dist/krill/{modules/network-cfg.d.ts → classes/sequence.d/network_cfg.d.ts} +0 -0
  188. /package/dist/krill/{modules/remove-installer-link.d.ts → classes/sequence.d/remove_installer_link.d.ts} +0 -0
  189. /package/dist/krill/{modules/remove-installer-link.js → classes/sequence.d/remove_installer_link.js} +0 -0
  190. /package/dist/{components → krill/components}/finished.d.ts +0 -0
  191. /package/dist/{components → krill/components}/finished.js +0 -0
  192. /package/dist/{components → krill/components}/information.d.ts +0 -0
  193. /package/dist/{components → krill/components}/install.d.ts +0 -0
  194. /package/dist/{components → krill/components}/install.js +0 -0
  195. /package/dist/{components → krill/components}/keyboard.d.ts +0 -0
  196. /package/dist/{components → krill/components}/location.d.ts +0 -0
  197. /package/dist/{components → krill/components}/network.d.ts +0 -0
  198. /package/dist/{components → krill/components}/steps.d.ts +0 -0
  199. /package/dist/{components → krill/components}/steps.js +0 -0
  200. /package/dist/{components → krill/components}/title.d.ts +0 -0
  201. /package/dist/{components → krill/components}/users.d.ts +0 -0
  202. /package/dist/{components → krill/components}/welcome.d.ts +0 -0
  203. /package/dist/{interfaces/i-krill.js → krill/interfaces/i_krill.js} +0 -0
  204. /package/dist/{interfaces/i-krill-config.js → krill/interfaces/i_krill_config.js} +0 -0
  205. /package/dist/{lib → krill/lib}/get_address.d.ts +0 -0
  206. /package/dist/{lib → krill/lib}/get_address.js +0 -0
  207. /package/dist/{lib → krill/lib}/get_dns.d.ts +0 -0
  208. /package/dist/{lib → krill/lib}/get_dns.js +0 -0
  209. /package/dist/{lib → krill/lib}/get_domain.d.ts +0 -0
  210. /package/dist/{lib → krill/lib}/get_domain.js +0 -0
  211. /package/dist/{lib → krill/lib}/get_gateway.d.ts +0 -0
  212. /package/dist/{lib → krill/lib}/get_gateway.js +0 -0
  213. /package/dist/{lib → krill/lib}/get_hostname.d.ts +0 -0
  214. /package/dist/{lib → krill/lib}/get_hostname.js +0 -0
  215. /package/dist/{lib → krill/lib}/get_netmask.d.ts +0 -0
  216. /package/dist/{lib → krill/lib}/get_netmask.js +0 -0
  217. /package/dist/{lib → krill/lib}/get_password.d.ts +0 -0
  218. /package/dist/{lib → krill/lib}/get_password.js +0 -0
  219. /package/dist/{lib → krill/lib}/get_userfullname.d.ts +0 -0
  220. /package/dist/{lib → krill/lib}/get_userfullname.js +0 -0
  221. /package/dist/{lib → krill/lib}/get_username.d.ts +0 -0
  222. /package/dist/{lib → krill/lib}/get_username.js +0 -0
  223. /package/dist/{lib → krill/lib}/kill_me_softly.d.ts +0 -0
  224. /package/dist/{lib → krill/lib}/select_address_type.d.ts +0 -0
  225. /package/dist/{lib → krill/lib}/select_address_type.js +0 -0
  226. /package/dist/{lib → krill/lib}/select_filesystem_type.d.ts +0 -0
  227. /package/dist/{lib → krill/lib}/select_installation_device.d.ts +0 -0
  228. /package/dist/{lib → krill/lib}/select_interface.d.ts +0 -0
  229. /package/dist/{lib → krill/lib}/select_interface.js +0 -0
  230. /package/dist/{lib → krill/lib}/select_keyboard_layout.d.ts +0 -0
  231. /package/dist/{lib → krill/lib}/select_keyboard_model.d.ts +0 -0
  232. /package/dist/{lib → krill/lib}/select_keyboard_option.d.ts +0 -0
  233. /package/dist/{lib → krill/lib}/select_keyboard_variant.d.ts +0 -0
  234. /package/dist/{lib → krill/lib}/select_languages.d.ts +0 -0
  235. /package/dist/{lib → krill/lib}/select_regions.d.ts +0 -0
  236. /package/dist/{lib → krill/lib}/select_regions.js +0 -0
  237. /package/dist/{lib → krill/lib}/select_zones.d.ts +0 -0
  238. /package/dist/{lib → krill/lib}/select_zones.js +0 -0
@@ -6,7 +6,7 @@
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 Sequence from '../sequence.js';
9
+ import Sequence from '../../classes/sequence.js';
10
10
  /**
11
11
  *
12
12
  * @param this
@@ -6,9 +6,9 @@
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 Diversion from '../../classes/diversions.js';
10
- import Utils from '../../classes/utils.js';
11
- import { exec } from '../../lib/utils.js';
9
+ import Diversion from '../../../classes/diversions.js';
10
+ import Utils from '../../../classes/utils.js';
11
+ import { exec } from '../../../lib/utils.js';
12
12
  import fs from 'node:fs';
13
13
  import path from 'node:path';
14
14
  /**
@@ -6,8 +6,8 @@
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 Utils from '../../classes/utils.js';
10
- import { exec } from '../../lib/utils.js';
9
+ import Utils from '../../../classes/utils.js';
10
+ import { exec } from '../../../lib/utils.js';
11
11
  /**
12
12
  *
13
13
  * @param this
@@ -6,7 +6,7 @@
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 { exec } from '../../lib/utils.js';
9
+ import { exec } from '../../../lib/utils.js';
10
10
  /**
11
11
  * changePassword
12
12
  * @param name
@@ -6,8 +6,8 @@
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 Utils from '../../classes/utils.js';
10
- import { exec } from '../../lib/utils.js';
9
+ import Utils from '../../../classes/utils.js';
10
+ import { exec } from '../../../lib/utils.js';
11
11
  /**
12
12
  * delUser
13
13
  * va corretto con users.conf di calamares
@@ -6,7 +6,7 @@
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 Sequence from '../sequence.js';
9
+ import Sequence from '../../classes/sequence.js';
10
10
  /**
11
11
  * fstab()
12
12
  * @param devices
@@ -7,8 +7,10 @@
7
7
  * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
8
  */
9
9
  import shx from 'shelljs';
10
- import Pacman from '../../classes/pacman.js';
11
- import Utils from '../../classes/utils.js';
10
+ import { InstallationMode } from '../krill_enums.js';
11
+ import Pacman from '../../../classes/pacman.js';
12
+ import Utils from '../../../classes/utils.js';
13
+ import { SwapChoice } from '../krill_enums.js';
12
14
  /**
13
15
  * fstab()
14
16
  * @param devices
@@ -18,7 +20,7 @@ export default async function fstab(installDevice, crypted = false) {
18
20
  /**
19
21
  * crypttab
20
22
  */
21
- if (this.partitions.installationMode === 'full-encrypted') {
23
+ if (this.partitions.installationMode === InstallationMode.Luks) {
22
24
  const crypttab = this.installTarget + '/etc/crypttab';
23
25
  text += '# /etc/crypttab: mappings for encrypted partitions.\n';
24
26
  text += '#\n';
@@ -33,10 +35,8 @@ export default async function fstab(installDevice, crypted = false) {
33
35
  text += '# for resume support.\n';
34
36
  text += '#\n';
35
37
  text += '# <name> <device> <password> <options>\n';
36
- text += `#swap_crypted was ${this.devices.swap.cryptedFrom}\n`;
37
- text += `swap_crypted UUID=${Utils.uuid(this.devices.swap.cryptedFrom)} none luks,discard\n`;
38
38
  text += `#root_crypted was ${this.devices.root.cryptedFrom}\n`;
39
- text += `root_crypted UUID=${Utils.uuid(this.devices.root.cryptedFrom)} none luks,swap\n`;
39
+ text += `root_crypted UUID=${Utils.uuid(this.devices.root.cryptedFrom)} none luks,discard\n`;
40
40
  Utils.write(crypttab, text);
41
41
  }
42
42
  /**
@@ -46,43 +46,106 @@ export default async function fstab(installDevice, crypted = false) {
46
46
  this.partitions.filesystemType === 'ext4';
47
47
  }
48
48
  const fstab = this.installTarget + '/etc/fstab';
49
- let mountOptsRoot = '';
49
+ /**
50
+ boot: IDevice
51
+ data: IDevice
52
+ efi: IDevice
53
+ root: IDevice
54
+ swap: IDevice
55
+ */
50
56
  let mountOptsBoot = '';
51
57
  let mountOptsData = '';
52
58
  let mountOptsEfi = '';
59
+ let mountOptsRoot = '';
53
60
  let mountOptsSwap = '';
61
+ /**
62
+ * ext4
63
+ */
54
64
  if (this.partitions.filesystemType === 'ext4') {
55
65
  if (await isRotational(installDevice)) {
56
- mountOptsRoot = 'defaults,relatime 0 1';
57
66
  mountOptsBoot = 'defaults,relatime 0 1';
58
67
  mountOptsData = 'defaults,relatime 0 1';
59
68
  mountOptsEfi = 'defaults,relatime 0 2';
69
+ mountOptsRoot = 'defaults,relatime 0 1';
60
70
  mountOptsSwap = 'defaults,relatime 0 2';
61
71
  }
62
72
  else {
63
- mountOptsRoot = 'defaults,noatime 0 1';
64
73
  mountOptsBoot = 'defaults,noatime 0 1';
65
74
  mountOptsData = 'defaults,noatime 0 1';
66
75
  mountOptsEfi = 'defaults,noatime 0 2';
76
+ mountOptsRoot = 'defaults,noatime 0 1';
67
77
  mountOptsSwap = 'defaults,noatime 0 2';
68
78
  }
69
- text = '';
79
+ /**
80
+ * root must to be defined!
81
+ */
82
+ text += `# root\n`;
70
83
  text += `# ${this.devices.root.name} ${this.devices.root.mountPoint} ${this.devices.root.fsType} ${mountOptsRoot}\n`;
71
84
  text += `UUID=${Utils.uuid(this.devices.root.name)} ${this.devices.root.mountPoint} ${this.devices.root.fsType} ${mountOptsRoot}\n`;
85
+ text += `\n`;
86
+ /**
87
+ * boot can be none or defined!
88
+ */
72
89
  if (this.devices.boot.name !== 'none') {
90
+ text += `# boot\n`;
73
91
  text += `# ${this.devices.boot.name} ${this.devices.boot.mountPoint} ${this.devices.boot.fsType} ${mountOptsBoot}\n`;
74
92
  text += `UUID=${Utils.uuid(this.devices.boot.name)} ${this.devices.boot.mountPoint} ${this.devices.root.fsType} ${mountOptsBoot}\n`;
93
+ text += `\n`;
75
94
  }
95
+ /**
96
+ * data can be none or defined!
97
+ */
76
98
  if (this.devices.data.name !== 'none') {
99
+ text += `# data\n`;
77
100
  text += `# ${this.devices.data.name} ${this.devices.data.mountPoint} ${this.devices.data.fsType} ${mountOptsData}\n`;
78
101
  text += `UUID=${Utils.uuid(this.devices.data.name)} ${this.devices.data.mountPoint} ${this.devices.data.fsType} ${mountOptsData}\n`;
102
+ text += `\n`;
79
103
  }
80
104
  if (this.efi) {
105
+ /**
106
+ * efi must to be defined
107
+ */
108
+ text += `# efi\n`;
81
109
  text += `# ${this.devices.efi.name} ${this.devices.efi.mountPoint} vfat ${mountOptsEfi}\n`;
82
110
  text += `UUID=${Utils.uuid(this.devices.efi.name)} ${this.devices.efi.mountPoint} vfat ${mountOptsEfi}\n`;
111
+ text += `\n`;
112
+ }
113
+ /**
114
+ * swap can be none, file, defined, undefined
115
+ */
116
+ if (this.devices.swap.name !== undefined) {
117
+ if (this.devices.swap.name !== `none`) {
118
+ if (this.partitions.userSwapChoice == SwapChoice.None) {
119
+ text += `# swap None ${this.partitions.userSwapChoice}\n`;
120
+ text += `# no swap configured\n`;
121
+ text += `\n`;
122
+ // file
123
+ }
124
+ else if (this.partitions.userSwapChoice == SwapChoice.File) {
125
+ text += `# swap File ${this.partitions.userSwapChoice}\n`;
126
+ let swapFile = ``;
127
+ text += `# /swapfile none swap sw 0 0\n`;
128
+ text += `/swapfile none swap sw 0 0\n`;
129
+ text += `\n`;
130
+ // others
131
+ }
132
+ else {
133
+ text += `# swap ${this.partitions.userSwapChoice}\n`;
134
+ text += `# ${this.devices.swap.name} ${this.devices.swap.mountPoint} ${this.devices.swap.fsType} ${mountOptsSwap}\n`;
135
+ text += `UUID=${Utils.uuid(this.devices.swap.name)} ${this.devices.swap.mountPoint} ${this.devices.swap.fsType} ${mountOptsSwap}\n`;
136
+ text += `\n`;
137
+ }
138
+ }
139
+ else {
140
+ text += `# swap none\n`;
141
+ }
142
+ }
143
+ else {
144
+ text += `# swap undefined\n`;
83
145
  }
84
- text += `# ${this.devices.swap.name} ${this.devices.swap.mountPoint} ${this.devices.swap.fsType} ${mountOptsSwap}\n`;
85
- text += `UUID=${Utils.uuid(this.devices.swap.name)} ${this.devices.swap.mountPoint} ${this.devices.swap.fsType} ${mountOptsSwap}\n`;
146
+ /**
147
+ * brtfs: TUTTO da rivedere!
148
+ */
86
149
  }
87
150
  else if (this.partitions.filesystemType === 'btrfs') {
88
151
  const base = '/ btrfs subvol=/@,defaults 0 0';
@@ -103,8 +166,6 @@ export default async function fstab(installDevice, crypted = false) {
103
166
  text += `# UUID=${Utils.uuid(this.devices.root.name)} ${var_lib_blueman}\n`;
104
167
  text += `# UUID=${Utils.uuid(this.devices.root.name)} ${tmp}\n`;
105
168
  }
106
- //console.log(text)
107
- //Utils.pressKeyToExit()
108
169
  Utils.write(fstab, text);
109
170
  }
110
171
  /**
@@ -6,7 +6,7 @@
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 Sequence from '../sequence.js';
9
+ import Sequence from '../../classes/sequence.js';
10
10
  /**
11
11
  * grubcfg
12
12
  * - open /etc/default/grub
@@ -7,7 +7,9 @@
7
7
  * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
8
  */
9
9
  import fs from 'node:fs';
10
- import Utils from '../../classes/utils.js';
10
+ import Utils from '../../../classes/utils.js';
11
+ import { SwapChoice } from '../krill_enums.js';
12
+ import { InstallationMode } from '../krill_enums.js';
11
13
  /**
12
14
  * grubcfg
13
15
  * - open /etc/default/grub
@@ -21,7 +23,9 @@ export default async function grubcfg() {
21
23
  const grubs = fs.readFileSync(file, 'utf8').split('\n');
22
24
  for (let i = 0; i < grubs.length; i++) {
23
25
  if (grubs[i].includes('GRUB_CMDLINE_LINUX_DEFAULT=')) {
24
- grubs[i] = this.partitions.installationMode === 'full-encrypted' ? `GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=${Utils.uuid(this.devices.swap.name)}"` : `GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=${Utils.uuid(this.devices.swap.name)}"`;
26
+ if (this.partitions.userSwapChoice != SwapChoice.File) {
27
+ grubs[i] = this.partitions.installationMode === InstallationMode.Luks ? `GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=${Utils.uuid(this.devices.swap.name)}"` : `GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=${Utils.uuid(this.devices.swap.name)}"`;
28
+ }
25
29
  }
26
30
  content += grubs[i] + '\n';
27
31
  }
@@ -6,7 +6,7 @@
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 Sequence from '../sequence.js';
9
+ import Sequence from '../../classes/sequence.js';
10
10
  /**
11
11
  * hostname
12
12
  */
@@ -6,7 +6,7 @@
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 Sequence from '../sequence.js';
9
+ import Sequence from '../../classes/sequence.js';
10
10
  /**
11
11
  * initramfs()
12
12
  */
@@ -7,8 +7,8 @@
7
7
  * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
8
  */
9
9
  import path from 'node:path';
10
- import Utils from '../../classes/utils.js';
11
- import { exec } from '../../lib/utils.js';
10
+ import Utils from '../../../classes/utils.js';
11
+ import { exec } from '../../../lib/utils.js';
12
12
  // _dirname
13
13
  const __dirname = path.dirname(new URL(import.meta.url).pathname);
14
14
  /**
@@ -0,0 +1,35 @@
1
+ /**
2
+ * ./src/krill/modules/initramfs-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 Utils from '../../../classes/utils.js';
10
+ import { exec } from '../../../lib/utils.js';
11
+ import { SwapChoice } from '../krill_enums.js';
12
+ /**
13
+ *
14
+ * @param this
15
+ */
16
+ export default async function initramfsCfg(installDevice) {
17
+ if (this.distro.familyId === 'debian') {
18
+ // userSwapChoices = ['none', 'small', 'suspend', 'file']
19
+ const file = this.installTarget + '/etc/initramfs-tools/conf.d/resume';
20
+ let text = '';
21
+ if (SwapChoice.None) {
22
+ text += `#RESUME=none\n`;
23
+ }
24
+ else if (this.partitions.userSwapChoice === SwapChoice.File) {
25
+ const swap_uuid = (await exec(`findmnt -no UUID -T /swapfile`)).data.trim();
26
+ const swap_offset = (await exec(`filefrag -v /swapfile | awk 'NR==4 {print $4}' | sed 's/\..*//'`)).data.trim();
27
+ text += `RESUME=UUID=${swap_uuid}\n`;
28
+ text += `RESUME_OFFSET=${swap_offset}\n`;
29
+ }
30
+ else {
31
+ text += 'RESUME=UUID=' + Utils.uuid(this.devices.swap.name);
32
+ }
33
+ Utils.write(file, text);
34
+ }
35
+ }
@@ -6,7 +6,7 @@
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 Sequence from '../sequence.js';
9
+ import Sequence from '../../classes/sequence.js';
10
10
  /**
11
11
  * locale
12
12
  */
@@ -7,8 +7,8 @@
7
7
  * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
8
  */
9
9
  import fs from 'node:fs';
10
- import Utils from '../../classes/utils.js';
11
- import { exec } from '../../lib/utils.js';
10
+ import Utils from '../../../classes/utils.js';
11
+ import { exec } from '../../../lib/utils.js';
12
12
  /**
13
13
  * locale
14
14
  */
@@ -7,8 +7,8 @@
7
7
  * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
8
  */
9
9
  import fs from 'node:fs';
10
- import Utils from '../../classes/utils.js';
11
- import { exec } from '../../lib/utils.js';
10
+ import Utils from '../../../classes/utils.js';
11
+ import { exec } from '../../../lib/utils.js';
12
12
  /**
13
13
  *
14
14
  * @param this
@@ -7,8 +7,8 @@
7
7
  * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
8
  */
9
9
  import fs from 'node:fs';
10
- import { exec } from '../../lib/utils.js';
11
- import Utils from '../../classes/utils.js';
10
+ import { exec } from '../../../lib/utils.js';
11
+ import Utils from '../../../classes/utils.js';
12
12
  /**
13
13
  * On Ubuntu
14
14
  * /etc/machine-id must exist to be re-created
@@ -6,7 +6,7 @@
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 Sequence from '../sequence.js';
9
+ import Sequence from '../../classes/sequence.js';
10
10
  /**
11
11
  * mkfs
12
12
  *
@@ -6,7 +6,8 @@
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 { exec } from '../../lib/utils.js';
9
+ import { exec } from '../../../lib/utils.js';
10
+ import { InstallationMode, SwapChoice } from '../krill_enums.js';
10
11
  /**
11
12
  * mkfs
12
13
  *
@@ -14,10 +15,25 @@ import { exec } from '../../lib/utils.js';
14
15
  */
15
16
  export default async function mkfs() {
16
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
+ }
17
31
  if (this.partitions.filesystemType === 'ext4') {
32
+ // efi
18
33
  if (this.efi) {
19
34
  await exec(`mkdosfs -F 32 -I ${this.devices.efi.name} ${this.toNull}`, this.echo);
20
35
  }
36
+ // boot
21
37
  if (this.devices.boot.name !== 'none') {
22
38
  if (this.devices.boot.fsType === undefined) {
23
39
  this.devices.boot.fsType = 'ext2';
@@ -25,13 +41,19 @@ export default async function mkfs() {
25
41
  }
26
42
  await exec(`mke2fs -Ft ${this.devices.boot.fsType} ${this.devices.boot.name} ${this.toNull}`, this.echo);
27
43
  }
44
+ // root
28
45
  if (this.devices.root.name !== 'none') {
29
46
  await exec(`mke2fs -Ft ${this.devices.root.fsType} ${this.devices.root.name} ${this.toNull}`, this.echo);
30
47
  }
48
+ // data
31
49
  if (this.devices.data.name !== 'none') {
32
50
  await exec(`mke2fs -Ft ${this.devices.data.fsType} ${this.devices.data.name} ${this.toNull}`, this.echo);
33
51
  }
34
- if (this.devices.swap.name !== 'none') {
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') {
35
57
  await exec(`mkswap ${this.devices.swap.name} ${this.toNull}`, this.echo);
36
58
  }
37
59
  }
@@ -7,7 +7,8 @@
7
7
  * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
8
  */
9
9
  import fs from 'node:fs';
10
- import { exec } from '../../lib/utils.js';
10
+ import { exec } from '../../../lib/utils.js';
11
+ import { SwapChoice } from '../krill_enums.js';
11
12
  /**
12
13
  * mountFs
13
14
  */
@@ -15,7 +16,7 @@ export async function mountFs() {
15
16
  if (!fs.existsSync(this.installTarget)) {
16
17
  await exec(`mkdir ${this.installTarget} ${this.toNull}`, this.echo);
17
18
  }
18
- // root Alpine vuole -t per il mount
19
+ // root
19
20
  await exec(`mount -t ${this.devices.root.fsType} ${this.devices.root.name} ${this.installTarget}${this.devices.root.mountPoint} ${this.toNull}`, this.echo);
20
21
  await exec(`tune2fs -c 0 -i 0 ${this.devices.root.name} ${this.toNull}`, this.echo);
21
22
  await exec(`rm -rf ${this.installTarget}/lost+found ${this.toNull}`, this.echo);
@@ -34,10 +35,15 @@ export async function mountFs() {
34
35
  // efi
35
36
  if (this.efi && !fs.existsSync(this.installTarget + this.devices.efi.mountPoint)) {
36
37
  await exec(`mkdir ${this.installTarget}${this.devices.efi.mountPoint} -p ${this.toNull}`, this.echo);
37
- // await exec(`mount -t ${this.devices.efi.fsType} ${this.devices.efi.name} ${this.installTarget}${this.devices.efi.mountPoint} ${this.toNull}`, this.echo)
38
38
  // utilizzare vfat per evitare errori
39
39
  await exec(`mount -t vfat ${this.devices.efi.name} ${this.installTarget}${this.devices.efi.mountPoint} ${this.toNull}`, this.echo);
40
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
+ }
41
47
  return true;
42
48
  }
43
49
  /**
@@ -6,7 +6,7 @@
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 { exec } from '../../lib/utils.js';
9
+ import { exec } from '../../../lib/utils.js';
10
10
  /**
11
11
  * mountvfs()
12
12
  */
@@ -7,10 +7,9 @@
7
7
  * https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
8
8
  */
9
9
  import fs from 'node:fs';
10
- import Pacman from '../../classes/pacman.js';
11
- import Systemctl from '../../classes/systemctl.js';
12
- import Utils from '../../classes/utils.js';
13
- import { exec } from '../../lib/utils.js';
10
+ import Pacman from '../../../classes/pacman.js';
11
+ import Systemctl from '../../../classes/systemctl.js';
12
+ import { exec } from '../../../lib/utils.js';
14
13
  /**
15
14
  * networkcfg
16
15
  *
@@ -37,7 +36,12 @@ export default async function networkCfg() {
37
36
  content += ' netmask ' + this.network.netmask + '\n';
38
37
  content += ' gateway ' + this.network.gateway + '\n';
39
38
  }
40
- Utils.write(file, content);
39
+ try {
40
+ fs.writeFileSync(file, content, 'utf8');
41
+ }
42
+ catch (e) {
43
+ console.log("error on write: " + file);
44
+ }
41
45
  }
42
46
  else if (this.distro.familyId === 'debian' && Pacman.packageIsInstalled('netplan.io')) {
43
47
  // netplan: to do
@@ -59,6 +63,11 @@ export default async function networkCfg() {
59
63
  for (const element of this.network.dns) {
60
64
  content += 'nameserver ' + element + '\n';
61
65
  }
62
- Utils.write(resolvFile, content);
66
+ try {
67
+ fs.writeFileSync(resolvFile, content, 'utf8');
68
+ }
69
+ catch (e) {
70
+ console.log("error on write: " + resolvFile);
71
+ }
63
72
  }
64
73
  }
@@ -6,7 +6,7 @@
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 Sequence from '../sequence.js';
9
+ import Sequence from '../../classes/sequence.js';
10
10
  /**
11
11
  *
12
12
  * @param this
@@ -8,9 +8,9 @@
8
8
  */
9
9
  import yaml from 'js-yaml';
10
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';
11
+ import Pacman from '../../../classes/pacman.js';
12
+ import Utils from '../../../classes/utils.js';
13
+ import { exec } from '../../../lib/utils.js';
14
14
  /**
15
15
  *
16
16
  * @param this
@@ -1,20 +1,17 @@
1
1
  /**
2
- * ./src/krill/modules/partition.ts
2
+ * ./src/krill/modules/partition.d/bios-luks.ts
3
3
  * penguins-eggs v.10.0.0 / ecmascript 2020
4
4
  * author: Piero Proietti
5
5
  * email: piero.proietti@gmail.com
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 Sequence from '../sequence.js';
9
+ import Sequence from '../../sequence.js';
10
10
  /**
11
11
  *
12
12
  * @param this
13
- */
14
- export default function partition(this: Sequence): Promise<boolean>;
15
- /**
16
- *
17
13
  * @param installDevice
14
+ * @param p
18
15
  * @returns
19
16
  */
20
- export declare function lvmPartInfo(installDevice?: string): Promise<[string, number, number, number]>;
17
+ export default function biosLuks(this: Sequence, installDevice?: string, p?: string): Promise<boolean>;
@@ -0,0 +1,73 @@
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 { exec } from '../../../../lib/utils.js';
10
+ import Utils from '../../../../classes/utils.js';
11
+ import getLuksPassphrase from '../../../lib/get_luks_passphrase.js';
12
+ // React
13
+ import React from 'react';
14
+ import { render } from 'ink';
15
+ import Install from '../../../components/install.js';
16
+ /**
17
+ *
18
+ * @param this
19
+ * @param installDevice
20
+ * @param p
21
+ * @returns
22
+ */
23
+ export default async function biosLuks(installDevice = "", p = "") {
24
+ await exec(`parted --script ${installDevice} mklabel msdos`, this.echo);
25
+ await exec(`parted --script --align optimal ${installDevice} mkpart primary ext4 1MiB 512MiB`, this.echo); // sda1
26
+ await exec(`parted --script --align optimal ${installDevice} mkpart primary ext4 512MiB 100%`, this.echo); // sda3
27
+ await exec(`parted --script ${installDevice} set 1 boot on`, this.echo); // sda1
28
+ await exec(`parted --script ${installDevice} set 1 esp on`, this.echo); // sda1
29
+ // BOOT 512M
30
+ this.devices.boot.name = `${installDevice}${p}1`; // 'boot'
31
+ this.devices.boot.fsType = 'ext4';
32
+ this.devices.boot.mountPoint = '/boot';
33
+ // disabilito spinner per introduzione passphrase
34
+ let message = "Creating partitions";
35
+ await redraw(React.createElement(Install, { message: message, percent: 0 }));
36
+ const passphrase = await getLuksPassphrase('3volution', '3volution'); // It'd just a default to test, it's ok
37
+ await redraw(React.createElement(Install, { message: message, percent: 0, spinner: this.spinner }));
38
+ // Aggiungi parametri di sicurezza espliciti
39
+ const cipher = "aes-xts-plain64";
40
+ const keySize = "512";
41
+ const hash = "sha512";
42
+ // ROOT
43
+ const cryptoRoot = await exec(`echo -n "${passphrase}" | cryptsetup --batch-mode --cipher ${cipher} --key-size ${keySize} --hash ${hash} --type luks2 --key-file=- -v luksFormat ${installDevice}${p}2`, this.echo);
44
+ if (cryptoRoot.code !== 0) {
45
+ Utils.warning(`Error: ${cryptoRoot.code} ${cryptoRoot.data}`);
46
+ process.exit(1);
47
+ }
48
+ const cryptoRootOpen = await exec(`echo -n "${passphrase}" | cryptsetup --key-file=- --type luks2 luksOpen ${installDevice}${p}2 root_crypted`, this.echo);
49
+ if (cryptoRootOpen.code !== 0) {
50
+ Utils.warning(`Error: ${cryptoRootOpen.code} ${cryptoRootOpen.data}`);
51
+ process.exit(1);
52
+ }
53
+ // this.devices.boot.name = DEFINED`
54
+ this.devices.data.name = 'none';
55
+ this.devices.efi.name = 'none';
56
+ this.devices.root.name = '/dev/mapper/root_crypted';
57
+ this.devices.root.cryptedFrom = `${installDevice}${p}2`;
58
+ this.devices.root.fsType = 'ext4';
59
+ this.devices.root.mountPoint = '/';
60
+ this.devices.swap.name = 'none';
61
+ return true;
62
+ }
63
+ /**
64
+ *
65
+ * @param elem
66
+ */
67
+ async function redraw(elem) {
68
+ let opt = {};
69
+ opt.patchConsole = false;
70
+ opt.debug = true;
71
+ console.clear();
72
+ render(elem, opt);
73
+ }