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
@@ -23,8 +23,9 @@ export default class Archlinux {
23
23
  const echo = Utils.setEcho(verbose);
24
24
  // const cal_eggs = 'calamares-eggs-3.3.9-1-x86_64.pkg.tar.zst' // 01/09/2024
25
25
  // const cal_eggs = 'calamares-eggs-3.3.10-1-x86_64.pkg.tar.zst' // 24/10/2024
26
+ // const cal_eggs = 'calamares-eggs-3.3.12-2-x86_64.pkg.tar.zst' // 17/12/2024
26
27
  //let cmd = `wget -O /tmp/${cal_eggs} https://sourceforge.net/projects/penguins-eggs/files/packages/aur/${cal_eggs}/download`
27
- const cal_eggs = 'calamares-eggs-3.3.12-2-x86_64.pkg.tar.zst'; // 17/12/2024
28
+ const cal_eggs = 'calamares-eggs-3.3.14-1-x86_64.pkg.tar.zst'; // 17/12/2024
28
29
  let cmd = `wget -O /tmp/${cal_eggs} https://penguins-eggs.net/basket/packages/aur/${cal_eggs}`; // 21/12/2024
29
30
  try {
30
31
  await exec(cmd, echo);
@@ -15,7 +15,6 @@ export default class Settings {
15
15
  app: IApp;
16
16
  config: IEggsConfig;
17
17
  distro: IDistro;
18
- efi_work: string;
19
18
  i686: boolean;
20
19
  incubator: Incubator;
21
20
  initrd_image: string;
@@ -27,7 +27,7 @@ export default class Settings {
27
27
  app = {};
28
28
  config = {};
29
29
  distro = {};
30
- efi_work = '';
30
+ // efi_work = ''
31
31
  i686 = false;
32
32
  incubator = {};
33
33
  initrd_image = '';
@@ -122,7 +122,7 @@ export default class Settings {
122
122
  this.work_dir.upperdir = this.config.snapshot_dir + '.overlay/upperdir';
123
123
  this.work_dir.workdir = this.config.snapshot_dir + '.overlay/workdir';
124
124
  this.work_dir.merged = this.config.snapshot_mnt + 'filesystem.squashfs';
125
- this.efi_work = this.config.snapshot_mnt + 'efi-work/';
125
+ // this.efi_work = this.config.snapshot_mnt + 'efi-work/'
126
126
  this.iso_work = this.config.snapshot_mnt + 'iso/';
127
127
  // remember: before was hostname, not empty
128
128
  if (this.config.snapshot_basename === '') {
@@ -77,6 +77,12 @@ export default class Utils {
77
77
  * @param device
78
78
  */
79
79
  static uuid(device: string): string;
80
+ /**
81
+ *
82
+ * @param device
83
+ * @returns
84
+ */
85
+ static uuidGen(): string;
80
86
  /**
81
87
  *
82
88
  * @param date
@@ -113,11 +119,6 @@ export default class Utils {
113
119
  * Fedora/RHEL have i386-pc
114
120
  */
115
121
  static uefiFormat(): string;
116
- /**
117
- *
118
- * @returns
119
- */
120
- static uefiBN(): string;
121
122
  /**
122
123
  *
123
124
  * @returns
@@ -311,6 +311,15 @@ export default class Utils {
311
311
  const uuid = shx.exec(`blkid -s UUID -o value ${device}`).stdout.trim();
312
312
  return uuid;
313
313
  }
314
+ /**
315
+ *
316
+ * @param device
317
+ * @returns
318
+ */
319
+ static uuidGen() {
320
+ const uuid = shx.exec(`uuidgen`, { silent: true }).stdout.trim();
321
+ return uuid;
322
+ }
314
323
  /**
315
324
  *
316
325
  * @param date
@@ -422,20 +431,6 @@ export default class Utils {
422
431
  }
423
432
  return format;
424
433
  }
425
- /**
426
- *
427
- * @returns
428
- */
429
- static uefiBN() {
430
- let bn = 'nothing.efi';
431
- if (process.arch === 'x64') {
432
- bn = 'BOOTX64.EFI';
433
- }
434
- else if (process.arch === 'arm64') {
435
- bn = 'bootaa64.efi';
436
- }
437
- return bn;
438
- }
439
434
  /**
440
435
  *
441
436
  * @returns
@@ -815,7 +810,6 @@ export default class Utils {
815
810
  * @param text
816
811
  */
817
812
  static write(file, text) {
818
- text = text.trim() + '\n';
819
813
  text = text.trim() + '\n';
820
814
  file = file.trim();
821
815
  fs.writeFileSync(file, text);
@@ -892,7 +886,7 @@ export default class Utils {
892
886
  name: 'confirm',
893
887
  message: msg,
894
888
  choices: ['No', 'Yes', 'Abort'],
895
- default: 'No'
889
+ default: 'Yes'
896
890
  }
897
891
  ];
898
892
  inquirer.prompt(questions).then(function (options) {
@@ -27,6 +27,7 @@ export default class Install extends Command {
27
27
  random: import("@oclif/core/interfaces").BooleanFlag<boolean>;
28
28
  small: import("@oclif/core/interfaces").BooleanFlag<boolean>;
29
29
  suspend: import("@oclif/core/interfaces").BooleanFlag<boolean>;
30
+ testing: import("@oclif/core/interfaces").BooleanFlag<boolean>;
30
31
  unattended: import("@oclif/core/interfaces").BooleanFlag<boolean>;
31
32
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
32
33
  };
@@ -10,10 +10,11 @@ import yaml from 'js-yaml';
10
10
  import fs from 'node:fs';
11
11
  import https from 'node:https';
12
12
  import Utils from '../classes/utils.js';
13
- import Krill from '../krill/prepare.js';
13
+ import Krill from '../krill/classes/prepare.js';
14
14
  const agent = new https.Agent({
15
15
  rejectUnauthorized: false
16
16
  });
17
+ // import { ILvmOptions } from '../krill/interfaces/i-krill.js'
17
18
  /**
18
19
  * Class Krill
19
20
  */
@@ -35,6 +36,7 @@ export default class Install extends Command {
35
36
  random: Flags.boolean({ char: 'r', description: 'Add random to hostname, eg: colibri-ay412dt' }),
36
37
  small: Flags.boolean({ char: 's', description: 'Swap small: RAM' }),
37
38
  suspend: Flags.boolean({ char: 'S', description: 'Swap suspend: RAM x 2' }),
39
+ testing: Flags.boolean({ char: 't', description: "Just testing krill" }),
38
40
  unattended: Flags.boolean({ char: 'u', description: 'Unattended installation' }),
39
41
  verbose: Flags.boolean({ char: 'v', description: 'Verbose' })
40
42
  };
@@ -71,11 +73,12 @@ export default class Install extends Command {
71
73
  if (pve) {
72
74
  crypted = false;
73
75
  }
76
+ const { testing } = flags;
74
77
  const { verbose } = flags;
75
- if (Utils.isRoot()) {
76
- if (Utils.isLive()) {
78
+ if (Utils.isRoot() || testing) {
79
+ if (Utils.isLive() || testing) {
77
80
  const krill = new Krill(unattended, nointeractive, halt, chroot);
78
- await krill.prepare(krillConfig, ip, random, domain, suspend, small, none, crypted, pve, flags.btrfs, verbose);
81
+ await krill.prepare(krillConfig, ip, random, domain, suspend, small, none, crypted, pve, flags.btrfs, testing, verbose);
79
82
  }
80
83
  else {
81
84
  Utils.warning('You are in an installed system!');
@@ -8,7 +8,7 @@
8
8
  import { Command, Flags } from '@oclif/core';
9
9
  import Settings from '../classes/settings.js';
10
10
  import Utils from '../classes/utils.js';
11
- import killMeSoftly from '../lib/kill_me_softly.js';
11
+ import killMeSoftly from '../krill/lib/kill_me_softly.js';
12
12
  /**
13
13
  *
14
14
  */
@@ -6,7 +6,7 @@
6
6
  * license: MIT
7
7
  */
8
8
  import { Command, Flags } from '@oclif/core';
9
- import Information from '../components/information.js';
9
+ import Information from '../krill/components/information.js';
10
10
  /**
11
11
  *
12
12
  */
@@ -158,17 +158,17 @@ export default class Update extends Command {
158
158
  let url = 'https://sourceforge.net/projects/penguins-eggs/files/Packages';
159
159
  let filter = `penguins-eggs`;
160
160
  if (this.distro.familyId === "debian") {
161
- repo = "DEBS";
161
+ repo = "debs";
162
162
  url = `${url}/${repo}/${Utils.uefiArch()}`;
163
163
  filter = `penguins-eggs_10.?.*-?_${Utils.uefiArch()}.deb`;
164
164
  cmd = `sudo dpkg -i ${filter}`;
165
165
  }
166
166
  else if (this.distro.familyId === 'archlinux') {
167
- repo = "AUR";
167
+ repo = "aur";
168
168
  filter = `penguins-eggs-10.?.*-?-any.pkg.tar.zst`;
169
169
  cmd = `sudo pacman -U ${filter}`;
170
170
  if (Diversions.isManjaroBased(this.distro.distroId)) {
171
- repo = 'MANJARO';
171
+ repo = 'manjaro';
172
172
  }
173
173
  url = `${url}/${repo}`;
174
174
  }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * ./src/interfaces/i-user.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ export interface ILuksPassphrase {
9
+ passphrase: string;
10
+ confirm: string;
11
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * ./src/interfaces/i-user.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ export {};
@@ -22,4 +22,5 @@ export { IPartitions } from './i-partitions.js';
22
22
  export { IRemix } from './i-remix.js';
23
23
  export { ISettings } from './i-settings.js';
24
24
  export { IUser } from './i-user.js';
25
+ export { ILuksPassphrase } from './i-luks-passphrase.js';
25
26
  export { IWorkDir } from './i-workdir.js';
@@ -7,7 +7,7 @@
7
7
  */
8
8
  import yaml from 'js-yaml';
9
9
  import fs from 'node:fs';
10
- import Pacman from './pacman.js';
10
+ import Pacman from '../../classes/pacman.js';
11
11
  /**
12
12
  * cfs
13
13
  */
@@ -0,0 +1,24 @@
1
+ /**
2
+ * src/krill/classes/krill-enums.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ *
10
+ */
11
+ export declare enum InstallationMode {
12
+ Standard = "Erase disk",
13
+ Luks = "Erase disk/Encrypted",
14
+ Replace = "Replace partition"
15
+ }
16
+ /**
17
+ *
18
+ */
19
+ export declare enum SwapChoice {
20
+ None = "none",
21
+ Small = "small",
22
+ Suspend = "suspend",
23
+ File = "file"
24
+ }
@@ -0,0 +1,26 @@
1
+ /**
2
+ * src/krill/classes/krill-enums.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ *
10
+ */
11
+ export var InstallationMode;
12
+ (function (InstallationMode) {
13
+ InstallationMode["Standard"] = "Erase disk";
14
+ InstallationMode["Luks"] = "Erase disk/Encrypted";
15
+ InstallationMode["Replace"] = "Replace partition";
16
+ })(InstallationMode || (InstallationMode = {}));
17
+ /**
18
+ *
19
+ */
20
+ export var SwapChoice;
21
+ (function (SwapChoice) {
22
+ SwapChoice["None"] = "none";
23
+ SwapChoice["Small"] = "small";
24
+ SwapChoice["Suspend"] = "suspend";
25
+ SwapChoice["File"] = "file";
26
+ })(SwapChoice || (SwapChoice = {}));
@@ -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>;