penguins-eggs 10.0.55 → 10.0.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oclif.manifest.json +8 -1
- package/README.md +50 -45
- package/addons/eggs/theme/livecd/grub.main.full.cfg +3 -9
- package/addons/eggs/theme/livecd/isolinux.main.full.cfg +3 -4
- package/assets/config.cfg +30 -0
- package/conf/derivatives.yaml +3 -14
- 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/distros/buster/calamares/settings.yml +1 -1
- package/conf/exclude.list.d/master.list +1 -0
- package/conf/krill.yaml +8 -0
- package/dist/classes/distro.js +19 -38
- package/dist/classes/diversions.d.ts +4 -0
- package/dist/classes/diversions.js +13 -3
- 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 -1811
- package/dist/classes/pacman.d/archlinux.js +5 -2
- package/dist/classes/pxe.js +2 -2
- package/dist/classes/settings.d.ts +0 -1
- package/dist/classes/settings.js +2 -2
- package/dist/classes/tailor.js +2 -2
- package/dist/classes/utils.d.ts +8 -5
- package/dist/classes/utils.js +63 -20
- package/dist/commands/export/tarballs.js +2 -2
- 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/tools/ppa.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/i-os-release.d.ts +5 -0
- package/dist/interfaces/i-os-release.js +1 -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/classes/sequence.d/bootloader.js +95 -0
- package/dist/krill/{modules/bootloader-config.js → classes/sequence.d/bootloader_config.js} +5 -5
- 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 +80 -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} +45 -34
- package/dist/{components → krill/components}/information.js +10 -8
- 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 +11 -1
- 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 +28 -27
- package/scripts/_eggs +7 -5
- package/scripts/eggs.bash +3 -3
- package/dist/krill/modules/bootloader.js +0 -157
- package/dist/krill/modules/initramfs-cfg.js +0 -22
- package/dist/krill/modules/partition.js +0 -324
- package/dist/krill/prepare.js +0 -624
- /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
- /package/mkinitcpio/{manjarolinux → manjaro}/README.md +0 -0
- /package/mkinitcpio/{manjarolinux → manjaro}/live.conf +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/krill/prepare.d/welcome.tsx
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
+
*/
|
|
9
|
+
import { INet } from '../../../interfaces/index.js';
|
|
10
|
+
import Prepare from '../prepare.js';
|
|
11
|
+
/**
|
|
12
|
+
* Network
|
|
13
|
+
*/
|
|
14
|
+
export declare function network(this: Prepare): Promise<INet>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/krill/prepare.d/welcome.tsx
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import { confirm } from './confirm.js';
|
|
11
|
+
import Network from '../../components/network.js';
|
|
12
|
+
import Utils from '../../../classes/utils.js';
|
|
13
|
+
import selectInterface from '../../lib/select_interface.js';
|
|
14
|
+
import selectAddressType from '../../lib/select_address_type.js';
|
|
15
|
+
import getAddress from '../../lib/get_address.js';
|
|
16
|
+
import getNetmask from '../../lib/get_netmask.js';
|
|
17
|
+
import getGateway from '../../lib/get_gateway.js';
|
|
18
|
+
import getDomain from '../../lib/get_domain.js';
|
|
19
|
+
import getDns from '../../lib/get_dns.js';
|
|
20
|
+
import fs from 'fs';
|
|
21
|
+
/**
|
|
22
|
+
* Network
|
|
23
|
+
*/
|
|
24
|
+
export async function network() {
|
|
25
|
+
const i = {};
|
|
26
|
+
const ifaces = fs.readdirSync('/sys/class/net/');
|
|
27
|
+
i.iface = await Utils.iface();
|
|
28
|
+
i.addressType = 'dhcp';
|
|
29
|
+
i.address = Utils.address();
|
|
30
|
+
i.netmask = Utils.netmask();
|
|
31
|
+
i.gateway = Utils.gateway();
|
|
32
|
+
i.dns = Utils.getDns();
|
|
33
|
+
i.domain = Utils.getDomain();
|
|
34
|
+
let dnsString = '';
|
|
35
|
+
for (let c = 0; c < i.dns.length; c++) {
|
|
36
|
+
dnsString += i.dns[c].trim();
|
|
37
|
+
if (c < i.dns.length - 1) {
|
|
38
|
+
dnsString += '; ';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
let networkElem;
|
|
42
|
+
while (true) {
|
|
43
|
+
networkElem = React.createElement(Network, { iface: i.iface, addressType: i.addressType, address: i.address, netmask: i.netmask, gateway: i.gateway, domain: i.domain, dns: dnsString });
|
|
44
|
+
if (await confirm(networkElem, "Confirm Network datas?")) {
|
|
45
|
+
break;
|
|
46
|
+
}
|
|
47
|
+
i.iface = await selectInterface(i.iface, ifaces);
|
|
48
|
+
i.addressType = await selectAddressType();
|
|
49
|
+
if (i.addressType === 'static') {
|
|
50
|
+
i.address = await getAddress(i.address);
|
|
51
|
+
i.netmask = await getNetmask(i.netmask);
|
|
52
|
+
i.gateway = await getGateway(i.gateway);
|
|
53
|
+
i.domain = await getDomain(i.domain);
|
|
54
|
+
if (i.domain.at(0) !== '.') {
|
|
55
|
+
i.domain = '.' + i.domain;
|
|
56
|
+
}
|
|
57
|
+
i.dns = (await getDns(dnsString)).split(';');
|
|
58
|
+
dnsString = '';
|
|
59
|
+
for (let c = 0; c < i.dns.length; c++) {
|
|
60
|
+
dnsString += i.dns[c].trim();
|
|
61
|
+
if (c < i.dns.length - 1) {
|
|
62
|
+
dnsString += '; ';
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
return i;
|
|
68
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/krill/prepare.d/partitions.tsx
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
+
*/
|
|
9
|
+
import { IPartitions } from '../../interfaces/i_krill.js';
|
|
10
|
+
import Prepare from '../prepare.js';
|
|
11
|
+
/**
|
|
12
|
+
* PARTITIONS
|
|
13
|
+
*/
|
|
14
|
+
export declare function partitions(this: Prepare, installationDevice?: string, crypted?: boolean, pve?: boolean, btrfs?: boolean): Promise<IPartitions>;
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/krill/prepare.d/partitions.tsx
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import { confirm } from './confirm.js';
|
|
11
|
+
import Partitions from '../../components/partitions.js';
|
|
12
|
+
import { SwapChoice, InstallationMode } from '../krill_enums.js';
|
|
13
|
+
import selectFileSystemType from '../../lib/select_filesystem_type.js';
|
|
14
|
+
import selectInstallationDevice from '../../lib/select_installation_device.js';
|
|
15
|
+
import selectReplacedPartition from '../../lib/select_replaced_partition.js';
|
|
16
|
+
import selectUserSwapChoice from '../../lib/select_user_swap_choice.js';
|
|
17
|
+
import shx from 'shelljs';
|
|
18
|
+
import selectInstallationMode from '../../lib/select_installation_mode.js';
|
|
19
|
+
/**
|
|
20
|
+
* PARTITIONS
|
|
21
|
+
*/
|
|
22
|
+
export async function partitions(installationDevice = "", crypted = false, pve = false, btrfs = false) {
|
|
23
|
+
// Calamares won't use any devices with iso9660 filesystem on it.
|
|
24
|
+
const drives = shx.exec('lsblk |grep disk|cut -f 1 "-d "', { silent: true }).stdout.trim().split('\n');
|
|
25
|
+
let driveList = [];
|
|
26
|
+
drives.forEach((element) => {
|
|
27
|
+
if (!element.includes('zram')) {
|
|
28
|
+
driveList.push('/dev/' + element);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
installationDevice = driveList[0]; // Solo per selezionare il default
|
|
32
|
+
let replacedPartition = this.krillConfig.replacedPartition;
|
|
33
|
+
let installationMode = this.krillConfig.installationMode;
|
|
34
|
+
let knownInstallationModes = Object.values(InstallationMode);
|
|
35
|
+
let knownSwapChoices = Object.values(SwapChoice);
|
|
36
|
+
if (!knownInstallationModes.includes(installationMode)) {
|
|
37
|
+
installationMode = InstallationMode.Standard;
|
|
38
|
+
}
|
|
39
|
+
if (crypted) {
|
|
40
|
+
installationMode = InstallationMode.Luks;
|
|
41
|
+
}
|
|
42
|
+
let filesystemType = 'ext4';
|
|
43
|
+
let userSwapChoice = {};
|
|
44
|
+
if (knownSwapChoices.includes(this.krillConfig.userSwapChoice))
|
|
45
|
+
userSwapChoice = this.krillConfig.userSwapChoice;
|
|
46
|
+
else {
|
|
47
|
+
userSwapChoice = SwapChoice.Small;
|
|
48
|
+
}
|
|
49
|
+
let partitionsElem;
|
|
50
|
+
while (true) {
|
|
51
|
+
partitionsElem = React.createElement(Partitions, { installationDevice: installationDevice, installationMode: installationMode, filesystemType: filesystemType, userSwapChoice: userSwapChoice, replacedPartition: replacedPartition });
|
|
52
|
+
if (await confirm(partitionsElem, "Confirm Partitions datas?")) {
|
|
53
|
+
break;
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
installationDevice = driveList[0]; // Solo per selezionare il default
|
|
57
|
+
installationMode = InstallationMode.Standard;
|
|
58
|
+
if (crypted) {
|
|
59
|
+
installationMode = InstallationMode.Luks;
|
|
60
|
+
}
|
|
61
|
+
installationDevice = await selectInstallationDevice();
|
|
62
|
+
installationMode = await selectInstallationMode();
|
|
63
|
+
if (installationMode === InstallationMode.Replace) {
|
|
64
|
+
replacedPartition = await selectReplacedPartition();
|
|
65
|
+
filesystemType = await selectFileSystemType();
|
|
66
|
+
userSwapChoice = SwapChoice.File;
|
|
67
|
+
}
|
|
68
|
+
else if (installationMode === InstallationMode.Standard) {
|
|
69
|
+
replacedPartition = "";
|
|
70
|
+
filesystemType = await selectFileSystemType();
|
|
71
|
+
userSwapChoice = await selectUserSwapChoice(userSwapChoice);
|
|
72
|
+
}
|
|
73
|
+
else if (installationMode === InstallationMode.Luks) {
|
|
74
|
+
replacedPartition = "";
|
|
75
|
+
userSwapChoice = SwapChoice.File;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return {
|
|
80
|
+
installationDevice: installationDevice,
|
|
81
|
+
installationMode: installationMode,
|
|
82
|
+
filesystemType: filesystemType,
|
|
83
|
+
userSwapChoice: userSwapChoice,
|
|
84
|
+
replacedPartition: replacedPartition
|
|
85
|
+
};
|
|
86
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/krill/prepare.d/keyboard.tsx
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
+
*/
|
|
9
|
+
import { IKeyboard } from '../../interfaces/i_krill.js';
|
|
10
|
+
import Prepare from '../prepare.js';
|
|
11
|
+
import { ILocation, IPartitions, IUsers } from '../../interfaces/i_krill.js';
|
|
12
|
+
/**
|
|
13
|
+
* SUMMARY
|
|
14
|
+
*/
|
|
15
|
+
export declare function summary(this: Prepare, location: ILocation, keyboard: IKeyboard, partitions: IPartitions, users: IUsers): Promise<void>;
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/krill/prepare.d/keyboard.tsx
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import { render } from 'ink';
|
|
11
|
+
import { confirm } from './confirm.js';
|
|
12
|
+
import Summary from '../../components/summary.js';
|
|
13
|
+
import { InstallationMode } from '../krill_enums.js';
|
|
14
|
+
/**
|
|
15
|
+
* SUMMARY
|
|
16
|
+
*/
|
|
17
|
+
export async function summary(location, keyboard, partitions, users) {
|
|
18
|
+
let summaryElem;
|
|
19
|
+
let message = `Double check: data on disk: ${partitions.installationDevice} will be completely erased!`;
|
|
20
|
+
let erase = `Disk ${partitions.installationDevice} will be formatted as: ${partitions.filesystemType}`;
|
|
21
|
+
if (partitions.installationMode === InstallationMode.Replace) {
|
|
22
|
+
message = `Double check: data on partition ${partitions.replacedPartition} will be completely erased!`;
|
|
23
|
+
erase = `Partition ${partitions.replacedPartition} will be formatted as: ${partitions.filesystemType}`;
|
|
24
|
+
}
|
|
25
|
+
if (this.unattended && this.nointeractive) {
|
|
26
|
+
message = `Unattended installation will start in 5 seconds...\npress CTRL-C to abort!`;
|
|
27
|
+
}
|
|
28
|
+
while (true) {
|
|
29
|
+
summaryElem = React.createElement(Summary, { username: users.username, password: users.password, rootPassword: users.rootPassword, hostname: users.hostname, region: location.region, zone: location.zone, language: location.language, keyboardModel: keyboard.keyboardModel, keyboardLayout: keyboard.keyboardLayout, installationDevice: partitions.installationDevice, filesystemType: partitions.filesystemType, message: message, erase: erase });
|
|
30
|
+
if (this.unattended && this.nointeractive) {
|
|
31
|
+
redraw(summaryElem);
|
|
32
|
+
await sleep(5000);
|
|
33
|
+
break;
|
|
34
|
+
}
|
|
35
|
+
else if (this.unattended && !this.nointeractive) {
|
|
36
|
+
if (await confirm(summaryElem, "Read the Summary, confirm or abort")) {
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
process.exit(0);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
else if (await confirm(summaryElem, "Confirm Summary datas?")) {
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Occorre farglierlo rigenerare a forza
|
|
50
|
+
* anche quando NON cambiano i dati
|
|
51
|
+
* forceUpdate
|
|
52
|
+
*/
|
|
53
|
+
function redraw(elem) {
|
|
54
|
+
let opt = {};
|
|
55
|
+
opt.patchConsole = true;
|
|
56
|
+
opt.debug = false;
|
|
57
|
+
console.clear();
|
|
58
|
+
render(elem, opt);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
*
|
|
62
|
+
* @param ms
|
|
63
|
+
* @returns
|
|
64
|
+
*/
|
|
65
|
+
function sleep(ms = 0) {
|
|
66
|
+
return new Promise((resolve) => {
|
|
67
|
+
setTimeout(resolve, ms);
|
|
68
|
+
});
|
|
69
|
+
}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/krill/prepare.d/users.tsx
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import { confirm } from './confirm.js';
|
|
11
|
+
import Users from '../../components/users.js';
|
|
12
|
+
import getUsername from '../../lib/get_username.js';
|
|
13
|
+
import getUserfullname from '../../lib/get_userfullname.js';
|
|
14
|
+
import getPassword from '../../lib/get_password.js';
|
|
15
|
+
import getHostname from '../../lib/get_hostname.js';
|
|
16
|
+
import shx from 'shelljs';
|
|
17
|
+
/**
|
|
18
|
+
* USERS
|
|
19
|
+
*/
|
|
20
|
+
export async function users() {
|
|
21
|
+
let username = this.krillConfig.name;
|
|
22
|
+
if (username === '' || username === undefined) {
|
|
23
|
+
username = 'artisan';
|
|
24
|
+
}
|
|
25
|
+
let fullname = this.krillConfig.fullname;
|
|
26
|
+
if (fullname === '' || fullname === undefined) {
|
|
27
|
+
fullname = username;
|
|
28
|
+
}
|
|
29
|
+
let password = this.krillConfig.password;
|
|
30
|
+
if (password === '' || password === undefined) {
|
|
31
|
+
password = 'evolution';
|
|
32
|
+
}
|
|
33
|
+
let rootPassword = this.krillConfig.rootPassword;
|
|
34
|
+
if (rootPassword === '' || rootPassword === undefined) {
|
|
35
|
+
rootPassword = 'evolution';
|
|
36
|
+
}
|
|
37
|
+
let hostname = this.krillConfig.hostname;
|
|
38
|
+
if (hostname === '' || hostname === undefined) {
|
|
39
|
+
hostname = shx.exec('cat /etc/hostname').trim();
|
|
40
|
+
}
|
|
41
|
+
let autologin = true;
|
|
42
|
+
let sameUserPassword = true;
|
|
43
|
+
let usersElem;
|
|
44
|
+
while (true) {
|
|
45
|
+
usersElem = React.createElement(Users, { username: username, fullname: fullname, hostname: hostname, password: password, rootPassword: rootPassword, autologin: autologin, sameUserPassword: sameUserPassword });
|
|
46
|
+
if (await confirm(usersElem, "Confirm Users datas?")) {
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
username = await getUsername(username);
|
|
50
|
+
fullname = await getUserfullname(fullname);
|
|
51
|
+
password = await getPassword(username, password);
|
|
52
|
+
rootPassword = await getPassword('root', password);
|
|
53
|
+
hostname = await getHostname(hostname);
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
username: username,
|
|
57
|
+
fullname: fullname,
|
|
58
|
+
password: password,
|
|
59
|
+
rootPassword: rootPassword,
|
|
60
|
+
autologin: autologin,
|
|
61
|
+
hostname: hostname
|
|
62
|
+
};
|
|
63
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/krill/prepare.d/welcome.tsx
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
+
*/
|
|
9
|
+
import React from 'react';
|
|
10
|
+
import { confirm } from './confirm.js';
|
|
11
|
+
import Welcome from '../../components/welcome.js';
|
|
12
|
+
import selectLanguages from '../../lib/select_languages.js';
|
|
13
|
+
/**
|
|
14
|
+
* WELCOME
|
|
15
|
+
*/
|
|
16
|
+
export async function welcome() {
|
|
17
|
+
let language = this.krillConfig.language;
|
|
18
|
+
if (language === '' || language === undefined) {
|
|
19
|
+
language = await this.locales.getDefault(); // 'en_US.UTF-8'
|
|
20
|
+
}
|
|
21
|
+
let welcomeElem;
|
|
22
|
+
while (true) {
|
|
23
|
+
welcomeElem = React.createElement(Welcome, { language: language });
|
|
24
|
+
if (await confirm(welcomeElem, "Confirm Welcome datas?")) {
|
|
25
|
+
break;
|
|
26
|
+
}
|
|
27
|
+
language = await selectLanguages(language);
|
|
28
|
+
}
|
|
29
|
+
return { language: language };
|
|
30
|
+
}
|
|
@@ -6,15 +6,27 @@
|
|
|
6
6
|
* license: MIT
|
|
7
7
|
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
8
|
*/
|
|
9
|
-
import { IKrillConfig } from '../interfaces/
|
|
10
|
-
import Keyboards from '
|
|
11
|
-
import Locales from '
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
9
|
+
import { IKrillConfig } from '../interfaces/i_krill_config.js';
|
|
10
|
+
import Keyboards from '../../classes/keyboards.js';
|
|
11
|
+
import Locales from '../../classes/locales.js';
|
|
12
|
+
import { welcome } from './prepare.d/welcome.js';
|
|
13
|
+
import { location } from './prepare.d/location.js';
|
|
14
|
+
import { keyboard } from './prepare.d/keyboard.js';
|
|
15
|
+
import { partitions } from './prepare.d/partitions.js';
|
|
16
|
+
import { users } from './prepare.d/users.js';
|
|
17
|
+
import { network } from './prepare.d/network.js';
|
|
18
|
+
import { summary } from './prepare.d/summary.js';
|
|
14
19
|
/**
|
|
15
20
|
*
|
|
16
21
|
*/
|
|
17
22
|
export default class Krill {
|
|
23
|
+
welcome: typeof welcome;
|
|
24
|
+
location: typeof location;
|
|
25
|
+
keyboard: typeof keyboard;
|
|
26
|
+
partitions: typeof partitions;
|
|
27
|
+
users: typeof users;
|
|
28
|
+
network: typeof network;
|
|
29
|
+
summary: typeof summary;
|
|
18
30
|
krillConfig: IKrillConfig;
|
|
19
31
|
locales: Locales;
|
|
20
32
|
keyboards: Keyboards;
|
|
@@ -38,39 +50,13 @@ export default class Krill {
|
|
|
38
50
|
* @param suspend
|
|
39
51
|
* @param small
|
|
40
52
|
* @param none
|
|
41
|
-
* @param
|
|
53
|
+
* @param crypted
|
|
42
54
|
* @param pve
|
|
55
|
+
* @param btrfs
|
|
56
|
+
* @param testing
|
|
43
57
|
* @param verbose
|
|
44
58
|
*/
|
|
45
|
-
prepare(krillConfig?: IKrillConfig, ip?: boolean, random?: boolean, domain?: string, suspend?: boolean, small?: boolean, none?: boolean,
|
|
46
|
-
/**
|
|
47
|
-
* WELCOME
|
|
48
|
-
*/
|
|
49
|
-
welcome(): Promise<IWelcome>;
|
|
50
|
-
/**
|
|
51
|
-
* LOCATION
|
|
52
|
-
*/
|
|
53
|
-
location(language: string): Promise<ILocation>;
|
|
54
|
-
/**
|
|
55
|
-
* KEYBOARD
|
|
56
|
-
*/
|
|
57
|
-
keyboard(): Promise<IKeyboard>;
|
|
58
|
-
/**
|
|
59
|
-
* PARTITIONS
|
|
60
|
-
*/
|
|
61
|
-
partitions(crypted?: boolean, pve?: boolean, btrfs?: boolean): Promise<IPartitions>;
|
|
62
|
-
/**
|
|
63
|
-
* USERS
|
|
64
|
-
*/
|
|
65
|
-
users(): Promise<IUsers>;
|
|
66
|
-
/**
|
|
67
|
-
* Network
|
|
68
|
-
*/
|
|
69
|
-
network(): Promise<INet>;
|
|
70
|
-
/**
|
|
71
|
-
* SUMMARY
|
|
72
|
-
*/
|
|
73
|
-
summary(location: ILocation, keyboard: IKeyboard, partitions: IPartitions, users: IUsers): Promise<void>;
|
|
59
|
+
prepare(krillConfig?: IKrillConfig, ip?: boolean, random?: boolean, domain?: string, suspend?: boolean, small?: boolean, none?: boolean, crypted?: boolean, pve?: boolean, btrfs?: boolean, testing?: boolean, verbose?: boolean): Promise<void>;
|
|
74
60
|
/**
|
|
75
61
|
* return true if pv exist
|
|
76
62
|
*/
|