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.
- package/.oclif.manifest.json +8 -1
- package/README.md +35 -34
- package/addons/eggs/theme/livecd/grub.main.full.cfg +0 -6
- package/assets/config.cfg +30 -0
- package/conf/distros/buster/calamares/calamares-modules/cleanup/cleanup.sh +8 -1
- package/conf/distros/buster/calamares/modules/partition.yml +159 -23
- package/conf/distros/buster/calamares/modules/removeuser.yml +1 -1
- package/conf/exclude.list.d/master.list +1 -0
- package/conf/krill.yaml +8 -0
- package/dist/classes/distro.js +1 -1
- package/dist/classes/incubation/incubator.d/alpine.js +1 -1
- package/dist/classes/incubation/incubator.d/bionic.js +1 -1
- package/dist/classes/incubation/incubator.d/buster.js +1 -1
- package/dist/classes/incubation/incubator.d/noble.js +1 -1
- package/dist/classes/incubation/incubator.d/openmamba.js +1 -1
- package/dist/classes/incubation/incubator.d/opensuse.js +1 -1
- package/dist/classes/incubation/incubator.d/rolling.js +1 -1
- package/dist/classes/ovary.d/bind-live-fs.d.ts +18 -0
- package/dist/classes/ovary.d/bind-live-fs.js +185 -0
- package/dist/classes/ovary.d/bind-vfs.d.ts +17 -0
- package/dist/classes/ovary.d/bind-vfs.js +37 -0
- package/dist/classes/ovary.d/create-xdg-autostart.d.ts +13 -0
- package/dist/classes/ovary.d/create-xdg-autostart.js +194 -0
- package/dist/classes/ovary.d/edit-live-fs.d.ts +19 -0
- package/dist/classes/ovary.d/edit-live-fs.js +249 -0
- package/dist/classes/ovary.d/fertilization.d.ts +12 -0
- package/dist/classes/ovary.d/fertilization.js +46 -0
- package/dist/classes/ovary.d/finished.d.ts +13 -0
- package/dist/classes/ovary.d/finished.js +41 -0
- package/dist/classes/ovary.d/initrd.d.ts +21 -0
- package/dist/classes/ovary.d/initrd.js +72 -0
- package/dist/classes/ovary.d/kernel-copy.d.ts +12 -0
- package/dist/classes/ovary.d/kernel-copy.js +36 -0
- package/dist/classes/ovary.d/live-create-structure.d.ts +12 -0
- package/dist/classes/ovary.d/live-create-structure.js +90 -0
- package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
- package/dist/classes/ovary.d/make-dot-disk.js +40 -0
- package/dist/classes/ovary.d/make-efi.d.ts +12 -0
- package/dist/classes/ovary.d/make-efi.js +268 -0
- package/dist/classes/ovary.d/make-iso.d.ts +13 -0
- package/dist/classes/ovary.d/make-iso.js +45 -0
- package/dist/classes/ovary.d/make-squashfs.d.ts +18 -0
- package/dist/classes/ovary.d/make-squashfs.js +117 -0
- package/dist/classes/ovary.d/merged.d.ts +31 -0
- package/dist/classes/ovary.d/merged.js +87 -0
- package/dist/classes/ovary.d/produce.d.ts +23 -0
- package/dist/classes/ovary.d/produce.js +287 -0
- package/dist/classes/ovary.d/rexec.d.ts +13 -0
- package/dist/classes/ovary.d/rexec.js +34 -0
- package/dist/classes/ovary.d/syslinux.d.ts +12 -0
- package/dist/classes/ovary.d/syslinux.js +79 -0
- package/dist/classes/ovary.d/user-create-live.d.ts +14 -0
- package/dist/classes/ovary.d/user-create-live.js +86 -0
- package/dist/classes/ovary.d/users-remove.d.ts +9 -0
- package/dist/classes/ovary.d/users-remove.js +38 -0
- package/dist/classes/ovary.d/xorriso-commend.d.ts +14 -0
- package/dist/classes/ovary.d/xorriso-commend.js +119 -0
- package/dist/classes/ovary.d.ts +46 -167
- package/dist/classes/ovary.js +49 -1818
- package/dist/classes/pacman.d/archlinux.js +2 -1
- package/dist/classes/settings.d.ts +0 -1
- package/dist/classes/settings.js +2 -2
- package/dist/classes/utils.d.ts +6 -5
- package/dist/classes/utils.js +10 -16
- package/dist/commands/install.d.ts +1 -0
- package/dist/commands/install.js +7 -4
- package/dist/commands/kill.js +1 -1
- package/dist/commands/status.js +1 -1
- package/dist/commands/update.js +3 -3
- package/dist/interfaces/i-luks-passphrase.d.ts +11 -0
- package/dist/interfaces/i-luks-passphrase.js +8 -0
- package/dist/interfaces/index.d.ts +1 -0
- package/dist/{classes → krill/classes}/cfs.js +1 -1
- package/dist/krill/classes/krill_enums.d.ts +24 -0
- package/dist/krill/classes/krill_enums.js +26 -0
- package/dist/krill/classes/prepare.d/confirm.d.ts +5 -0
- package/dist/krill/classes/prepare.d/confirm.js +30 -0
- package/dist/krill/classes/prepare.d/keyboard.d.ts +14 -0
- package/dist/krill/classes/prepare.d/keyboard.js +62 -0
- package/dist/krill/classes/prepare.d/location.d.ts +17 -0
- package/dist/krill/classes/prepare.d/location.js +59 -0
- package/dist/krill/classes/prepare.d/network.d.ts +14 -0
- package/dist/krill/classes/prepare.d/network.js +68 -0
- package/dist/krill/classes/prepare.d/partitions.d.ts +14 -0
- package/dist/krill/classes/prepare.d/partitions.js +86 -0
- package/dist/krill/classes/prepare.d/summary.d.ts +15 -0
- package/dist/krill/classes/prepare.d/summary.js +69 -0
- package/dist/krill/classes/prepare.d/users.d.ts +6 -0
- package/dist/krill/classes/prepare.d/users.js +63 -0
- package/dist/krill/classes/prepare.d/welcome.d.ts +6 -0
- package/dist/krill/classes/prepare.d/welcome.js +30 -0
- package/dist/krill/{prepare.d.ts → classes/prepare.d.ts} +21 -35
- package/dist/krill/classes/prepare.js +314 -0
- package/dist/krill/{modules/add-user.js → classes/sequence.d/add_user.js} +1 -1
- package/dist/krill/{modules → classes/sequence.d}/bootloader.d.ts +1 -1
- package/dist/krill/{modules → classes/sequence.d}/bootloader.js +3 -3
- package/dist/krill/{modules/bootloader-config.js → classes/sequence.d/bootloader_config.js} +2 -2
- package/dist/krill/{modules/change-password.js → classes/sequence.d/change_password.js} +1 -1
- package/dist/krill/{modules/del-live-user.js → classes/sequence.d/del_live_user.js} +2 -2
- package/dist/krill/{modules → classes/sequence.d}/fstab.d.ts +1 -1
- package/dist/krill/{modules → classes/sequence.d}/fstab.js +75 -14
- package/dist/krill/{modules → classes/sequence.d}/grubcfg.d.ts +1 -1
- package/dist/krill/{modules → classes/sequence.d}/grubcfg.js +6 -2
- package/dist/krill/{modules → classes/sequence.d}/hostname.d.ts +1 -1
- package/dist/krill/{modules → classes/sequence.d}/initramfs.d.ts +1 -1
- package/dist/krill/{modules → classes/sequence.d}/initramfs.js +2 -2
- package/dist/krill/classes/sequence.d/initramfs_cfg.js +35 -0
- package/dist/krill/{modules → classes/sequence.d}/locale.d.ts +1 -1
- package/dist/krill/{modules → classes/sequence.d}/locale.js +2 -2
- package/dist/krill/{modules/m-keyboard.js → classes/sequence.d/m_keyboard.js} +2 -2
- package/dist/krill/{modules/machine-id.js → classes/sequence.d/machine_id.js} +2 -2
- package/dist/krill/{modules → classes/sequence.d}/mkfs.d.ts +1 -1
- package/dist/krill/{modules → classes/sequence.d}/mkfs.js +24 -2
- package/dist/krill/{modules/mount-fs.js → classes/sequence.d/mount_fs.js} +9 -3
- package/dist/krill/{modules/mount-vfs.js → classes/sequence.d/mount_vfs.js} +1 -1
- package/dist/krill/{modules/network-cfg.js → classes/sequence.d/network_cfg.js} +15 -6
- package/dist/krill/{modules → classes/sequence.d}/packages.d.ts +1 -1
- package/dist/krill/{modules → classes/sequence.d}/packages.js +3 -3
- package/dist/krill/{modules/partition.d.ts → classes/sequence.d/partition.d/bios_luks.d.ts} +4 -7
- package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +73 -0
- package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +17 -0
- package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +36 -0
- package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +17 -0
- package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +78 -0
- package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +10 -0
- package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +32 -0
- package/dist/krill/classes/sequence.d/partition.d.ts +14 -0
- package/dist/krill/classes/sequence.d/partition.js +84 -0
- package/dist/krill/{modules → classes/sequence.d}/umount.d.ts +1 -1
- package/dist/krill/{modules → classes/sequence.d}/umount.js +2 -2
- package/dist/krill/{modules → classes/sequence.d}/unpackfs.d.ts +1 -1
- package/dist/krill/{modules → classes/sequence.d}/unpackfs.js +2 -2
- package/dist/krill/{sequence.d.ts → classes/sequence.d.ts} +40 -58
- package/dist/krill/{sequence.js → classes/sequence.js} +43 -32
- package/dist/{components → krill/components}/information.js +3 -3
- package/dist/{components → krill/components}/keyboard.js +1 -1
- package/dist/{components → krill/components}/location.js +1 -1
- package/dist/{components → krill/components}/network.js +1 -1
- package/dist/{components → krill/components}/partitions.d.ts +4 -2
- package/dist/{components → krill/components}/partitions.js +36 -20
- package/dist/{components → krill/components}/summary.d.ts +2 -1
- package/dist/{components → krill/components}/summary.js +2 -6
- package/dist/{components → krill/components}/title.js +1 -1
- package/dist/{components → krill/components}/users.js +1 -1
- package/dist/{components → krill/components}/welcome.js +1 -1
- package/dist/{interfaces/i-krill.d.ts → krill/interfaces/i_krill.d.ts} +3 -1
- package/dist/{interfaces/i-krill-config.d.ts → krill/interfaces/i_krill_config.d.ts} +3 -1
- package/dist/krill/lib/get_luks_passphrase.d.ts +8 -0
- package/dist/krill/lib/get_luks_passphrase.js +40 -0
- package/dist/{lib → krill/lib}/kill_me_softly.js +2 -2
- package/dist/{lib → krill/lib}/select_filesystem_type.js +2 -9
- package/dist/{lib → krill/lib}/select_installation_device.js +10 -4
- package/dist/{lib → krill/lib}/select_installation_mode.d.ts +2 -1
- package/dist/{lib → krill/lib}/select_installation_mode.js +2 -1
- package/dist/{lib → krill/lib}/select_keyboard_layout.js +1 -1
- package/dist/{lib → krill/lib}/select_keyboard_model.js +1 -1
- package/dist/{lib → krill/lib}/select_keyboard_option.js +1 -1
- package/dist/{lib → krill/lib}/select_keyboard_variant.js +1 -1
- package/dist/{lib → krill/lib}/select_languages.js +1 -1
- package/dist/krill/lib/select_replaced_partition.d.ts +8 -0
- package/dist/krill/lib/select_replaced_partition.js +31 -0
- package/dist/{lib → krill/lib}/select_user_swap_choice.d.ts +2 -1
- package/dist/{lib → krill/lib}/select_user_swap_choice.js +4 -3
- package/dist/lib/utils.d.ts +8 -0
- package/dist/lib/utils.js +8 -0
- package/package.json +25 -24
- package/scripts/_eggs +7 -5
- package/scripts/eggs.bash +3 -3
- package/dist/krill/modules/initramfs-cfg.js +0 -22
- package/dist/krill/modules/partition.js +0 -345
- package/dist/krill/prepare.js +0 -626
- /package/dist/{index-old.d.ts → index_old.d.ts} +0 -0
- /package/dist/{index-old.js → index_old.js} +0 -0
- /package/dist/{classes → krill/classes}/cfs.d.ts +0 -0
- /package/dist/krill/{modules/add-user.d.ts → classes/sequence.d/add_user.d.ts} +0 -0
- /package/dist/krill/{modules/bootloader-config.d.ts → classes/sequence.d/bootloader_config.d.ts} +0 -0
- /package/dist/krill/{modules/change-password.d.ts → classes/sequence.d/change_password.d.ts} +0 -0
- /package/dist/krill/{modules/del-live-user.d.ts → classes/sequence.d/del_live_user.d.ts} +0 -0
- /package/dist/krill/{modules → classes/sequence.d}/hostname.js +0 -0
- /package/dist/krill/{modules/initramfs-cfg.d.ts → classes/sequence.d/initramfs_cfg.d.ts} +0 -0
- /package/dist/krill/{modules/locale-cfg.d.ts → classes/sequence.d/locale_cfg.d.ts} +0 -0
- /package/dist/krill/{modules/locale-cfg.js → classes/sequence.d/locale_cfg.js} +0 -0
- /package/dist/krill/{modules/m-keyboard.d.ts → classes/sequence.d/m_keyboard.d.ts} +0 -0
- /package/dist/krill/{modules/machine-id.d.ts → classes/sequence.d/machine_id.d.ts} +0 -0
- /package/dist/krill/{modules/mount-fs.d.ts → classes/sequence.d/mount_fs.d.ts} +0 -0
- /package/dist/krill/{modules/mount-vfs.d.ts → classes/sequence.d/mount_vfs.d.ts} +0 -0
- /package/dist/krill/{modules/network-cfg.d.ts → classes/sequence.d/network_cfg.d.ts} +0 -0
- /package/dist/krill/{modules/remove-installer-link.d.ts → classes/sequence.d/remove_installer_link.d.ts} +0 -0
- /package/dist/krill/{modules/remove-installer-link.js → classes/sequence.d/remove_installer_link.js} +0 -0
- /package/dist/{components → krill/components}/finished.d.ts +0 -0
- /package/dist/{components → krill/components}/finished.js +0 -0
- /package/dist/{components → krill/components}/information.d.ts +0 -0
- /package/dist/{components → krill/components}/install.d.ts +0 -0
- /package/dist/{components → krill/components}/install.js +0 -0
- /package/dist/{components → krill/components}/keyboard.d.ts +0 -0
- /package/dist/{components → krill/components}/location.d.ts +0 -0
- /package/dist/{components → krill/components}/network.d.ts +0 -0
- /package/dist/{components → krill/components}/steps.d.ts +0 -0
- /package/dist/{components → krill/components}/steps.js +0 -0
- /package/dist/{components → krill/components}/title.d.ts +0 -0
- /package/dist/{components → krill/components}/users.d.ts +0 -0
- /package/dist/{components → krill/components}/welcome.d.ts +0 -0
- /package/dist/{interfaces/i-krill.js → krill/interfaces/i_krill.js} +0 -0
- /package/dist/{interfaces/i-krill-config.js → krill/interfaces/i_krill_config.js} +0 -0
- /package/dist/{lib → krill/lib}/get_address.d.ts +0 -0
- /package/dist/{lib → krill/lib}/get_address.js +0 -0
- /package/dist/{lib → krill/lib}/get_dns.d.ts +0 -0
- /package/dist/{lib → krill/lib}/get_dns.js +0 -0
- /package/dist/{lib → krill/lib}/get_domain.d.ts +0 -0
- /package/dist/{lib → krill/lib}/get_domain.js +0 -0
- /package/dist/{lib → krill/lib}/get_gateway.d.ts +0 -0
- /package/dist/{lib → krill/lib}/get_gateway.js +0 -0
- /package/dist/{lib → krill/lib}/get_hostname.d.ts +0 -0
- /package/dist/{lib → krill/lib}/get_hostname.js +0 -0
- /package/dist/{lib → krill/lib}/get_netmask.d.ts +0 -0
- /package/dist/{lib → krill/lib}/get_netmask.js +0 -0
- /package/dist/{lib → krill/lib}/get_password.d.ts +0 -0
- /package/dist/{lib → krill/lib}/get_password.js +0 -0
- /package/dist/{lib → krill/lib}/get_userfullname.d.ts +0 -0
- /package/dist/{lib → krill/lib}/get_userfullname.js +0 -0
- /package/dist/{lib → krill/lib}/get_username.d.ts +0 -0
- /package/dist/{lib → krill/lib}/get_username.js +0 -0
- /package/dist/{lib → krill/lib}/kill_me_softly.d.ts +0 -0
- /package/dist/{lib → krill/lib}/select_address_type.d.ts +0 -0
- /package/dist/{lib → krill/lib}/select_address_type.js +0 -0
- /package/dist/{lib → krill/lib}/select_filesystem_type.d.ts +0 -0
- /package/dist/{lib → krill/lib}/select_installation_device.d.ts +0 -0
- /package/dist/{lib → krill/lib}/select_interface.d.ts +0 -0
- /package/dist/{lib → krill/lib}/select_interface.js +0 -0
- /package/dist/{lib → krill/lib}/select_keyboard_layout.d.ts +0 -0
- /package/dist/{lib → krill/lib}/select_keyboard_model.d.ts +0 -0
- /package/dist/{lib → krill/lib}/select_keyboard_option.d.ts +0 -0
- /package/dist/{lib → krill/lib}/select_keyboard_variant.d.ts +0 -0
- /package/dist/{lib → krill/lib}/select_languages.d.ts +0 -0
- /package/dist/{lib → krill/lib}/select_regions.d.ts +0 -0
- /package/dist/{lib → krill/lib}/select_regions.js +0 -0
- /package/dist/{lib → krill/lib}/select_zones.d.ts +0 -0
- /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.
|
|
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);
|
package/dist/classes/settings.js
CHANGED
|
@@ -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 === '') {
|
package/dist/classes/utils.d.ts
CHANGED
|
@@ -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
|
package/dist/classes/utils.js
CHANGED
|
@@ -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: '
|
|
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
|
};
|
package/dist/commands/install.js
CHANGED
|
@@ -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!');
|
package/dist/commands/kill.js
CHANGED
|
@@ -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
|
*/
|
package/dist/commands/status.js
CHANGED
package/dist/commands/update.js
CHANGED
|
@@ -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 = "
|
|
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 = "
|
|
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 = '
|
|
171
|
+
repo = 'manjaro';
|
|
172
172
|
}
|
|
173
173
|
url = `${url}/${repo}`;
|
|
174
174
|
}
|
|
@@ -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';
|
|
@@ -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,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>;
|