penguins-eggs 10.0.52 → 10.0.53
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 +2 -1500
- package/README.md +0 -760
- package/conf/derivatives.yaml +2 -0
- package/mkinitfs/initramfs-init.in +18 -7
- package/package.json +3 -4
- package/dist/classes/bleach.d.ts +0 -32
- package/dist/classes/bleach.js +0 -135
- package/dist/classes/cfs.d.ts +0 -17
- package/dist/classes/cfs.js +0 -39
- package/dist/classes/cli-autologin.d.ts +0 -52
- package/dist/classes/cli-autologin.js +0 -247
- package/dist/classes/compressors.d.ts +0 -54
- package/dist/classes/compressors.js +0 -109
- package/dist/classes/daddy.d.ts +0 -26
- package/dist/classes/daddy.js +0 -167
- package/dist/classes/distro.d.ts +0 -32
- package/dist/classes/distro.js +0 -337
- package/dist/classes/diversions.d.ts +0 -38
- package/dist/classes/diversions.js +0 -107
- package/dist/classes/incubation/branding.d.ts +0 -17
- package/dist/classes/incubation/branding.js +0 -85
- package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +0 -11
- package/dist/classes/incubation/fisherman-helper/displaymanager.js +0 -40
- package/dist/classes/incubation/fisherman-helper/packages.d.ts +0 -20
- package/dist/classes/incubation/fisherman-helper/packages.js +0 -72
- package/dist/classes/incubation/fisherman-helper/settings.d.ts +0 -15
- package/dist/classes/incubation/fisherman-helper/settings.js +0 -83
- package/dist/classes/incubation/fisherman.d.ts +0 -70
- package/dist/classes/incubation/fisherman.js +0 -263
- package/dist/classes/incubation/incubator.d/alpine.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/alpine.js +0 -80
- package/dist/classes/incubation/incubator.d/bionic.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/bionic.js +0 -83
- package/dist/classes/incubation/incubator.d/buster.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/buster.js +0 -85
- package/dist/classes/incubation/incubator.d/jessie.d.ts +0 -31
- package/dist/classes/incubation/incubator.d/jessie.js +0 -44
- package/dist/classes/incubation/incubator.d/noble.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/noble.js +0 -85
- package/dist/classes/incubation/incubator.d/openmamba.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/openmamba.js +0 -81
- package/dist/classes/incubation/incubator.d/opensuse.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/opensuse.js +0 -81
- package/dist/classes/incubation/incubator.d/rolling.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/rolling.js +0 -80
- package/dist/classes/incubation/incubator.d.ts +0 -44
- package/dist/classes/incubation/incubator.js +0 -382
- package/dist/classes/incubation/installer.d.ts +0 -13
- package/dist/classes/incubation/installer.js +0 -52
- package/dist/classes/keyboards.d.ts +0 -50
- package/dist/classes/keyboards.js +0 -287
- package/dist/classes/locales.d.ts +0 -21
- package/dist/classes/locales.js +0 -77
- package/dist/classes/network.d.ts +0 -37
- package/dist/classes/network.js +0 -98
- package/dist/classes/ovary.d.ts +0 -198
- package/dist/classes/ovary.js +0 -1835
- package/dist/classes/pacman.d/aldos.d.ts +0 -47
- package/dist/classes/pacman.d/aldos.js +0 -93
- package/dist/classes/pacman.d/alpine.d.ts +0 -51
- package/dist/classes/pacman.d/alpine.js +0 -155
- package/dist/classes/pacman.d/archlinux.d.ts +0 -57
- package/dist/classes/pacman.d/archlinux.js +0 -130
- package/dist/classes/pacman.d/debian.d.ts +0 -61
- package/dist/classes/pacman.d/debian.js +0 -131
- package/dist/classes/pacman.d/fedora.d.ts +0 -48
- package/dist/classes/pacman.d/fedora.js +0 -94
- package/dist/classes/pacman.d/openmamba.d.ts +0 -47
- package/dist/classes/pacman.d/openmamba.js +0 -93
- package/dist/classes/pacman.d/opensuse.d.ts +0 -48
- package/dist/classes/pacman.d/opensuse.js +0 -95
- package/dist/classes/pacman.d/voidlinux.d.ts +0 -48
- package/dist/classes/pacman.d/voidlinux.js +0 -84
- package/dist/classes/pacman.d.ts +0 -139
- package/dist/classes/pacman.js +0 -756
- package/dist/classes/pve-live.d.ts +0 -17
- package/dist/classes/pve-live.js +0 -52
- package/dist/classes/pxe.d.ts +0 -74
- package/dist/classes/pxe.js +0 -410
- package/dist/classes/settings.d.ts +0 -53
- package/dist/classes/settings.js +0 -185
- package/dist/classes/sources_list.d.ts +0 -28
- package/dist/classes/sources_list.js +0 -89
- package/dist/classes/systemctl.d.ts +0 -47
- package/dist/classes/systemctl.js +0 -86
- package/dist/classes/tailor.d.ts +0 -50
- package/dist/classes/tailor.js +0 -526
- package/dist/classes/tools.d.ts +0 -26
- package/dist/classes/tools.js +0 -50
- package/dist/classes/users.d.ts +0 -28
- package/dist/classes/users.js +0 -143
- package/dist/classes/utils.d.ts +0 -319
- package/dist/classes/utils.js +0 -987
- package/dist/classes/xdg.d.ts +0 -45
- package/dist/classes/xdg.js +0 -337
- package/dist/classes/yolk.d.ts +0 -33
- package/dist/classes/yolk.js +0 -114
- package/dist/commands/adapt.d.ts +0 -17
- package/dist/commands/adapt.js +0 -33
- package/dist/commands/analyze.d.ts +0 -26
- package/dist/commands/analyze.js +0 -95
- package/dist/commands/calamares.d.ts +0 -29
- package/dist/commands/calamares.js +0 -112
- package/dist/commands/config.d.ts +0 -35
- package/dist/commands/config.js +0 -120
- package/dist/commands/cuckoo.d.ts +0 -16
- package/dist/commands/cuckoo.js +0 -62
- package/dist/commands/dad.d.ts +0 -20
- package/dist/commands/dad.js +0 -46
- package/dist/commands/export/iso.d.ts +0 -19
- package/dist/commands/export/iso.js +0 -55
- package/dist/commands/export/pkg.d.ts +0 -45
- package/dist/commands/export/pkg.js +0 -183
- package/dist/commands/install.d.ts +0 -37
- package/dist/commands/install.js +0 -88
- package/dist/commands/kill.d.ts +0 -24
- package/dist/commands/kill.js +0 -50
- package/dist/commands/love.d.ts +0 -20
- package/dist/commands/love.js +0 -59
- package/dist/commands/mom.d.ts +0 -16
- package/dist/commands/mom.js +0 -30
- package/dist/commands/produce.d.ts +0 -34
- package/dist/commands/produce.js +0 -200
- package/dist/commands/status.d.ts +0 -23
- package/dist/commands/status.js +0 -31
- package/dist/commands/syncfrom.d.ts +0 -45
- package/dist/commands/syncfrom.js +0 -152
- package/dist/commands/syncto.d.ts +0 -40
- package/dist/commands/syncto.js +0 -175
- package/dist/commands/tools/clean.d.ts +0 -18
- package/dist/commands/tools/clean.js +0 -37
- package/dist/commands/tools/ppa.d.ts +0 -26
- package/dist/commands/tools/ppa.js +0 -138
- package/dist/commands/tools/skel.d.ts +0 -18
- package/dist/commands/tools/skel.js +0 -44
- package/dist/commands/tools/stat.d.ts +0 -31
- package/dist/commands/tools/stat.js +0 -70
- package/dist/commands/tools/yolk.d.ts +0 -24
- package/dist/commands/tools/yolk.js +0 -45
- package/dist/commands/update.d.ts +0 -51
- package/dist/commands/update.js +0 -220
- package/dist/commands/wardrobe/get.d.ts +0 -23
- package/dist/commands/wardrobe/get.js +0 -52
- package/dist/commands/wardrobe/list.d.ts +0 -24
- package/dist/commands/wardrobe/list.js +0 -125
- package/dist/commands/wardrobe/show.d.ts +0 -25
- package/dist/commands/wardrobe/show.js +0 -97
- package/dist/commands/wardrobe/wear.d.ts +0 -26
- package/dist/commands/wardrobe/wear.js +0 -84
- package/dist/components/finished.d.ts +0 -16
- package/dist/components/finished.js +0 -56
- package/dist/components/information.d.ts +0 -8
- package/dist/components/information.js +0 -154
- package/dist/components/install.d.ts +0 -15
- package/dist/components/install.js +0 -60
- package/dist/components/keyboard.d.ts +0 -16
- package/dist/components/keyboard.js +0 -54
- package/dist/components/location.d.ts +0 -16
- package/dist/components/location.js +0 -59
- package/dist/components/network.d.ts +0 -19
- package/dist/components/network.js +0 -65
- package/dist/components/partitions.d.ts +0 -16
- package/dist/components/partitions.js +0 -73
- package/dist/components/steps.d.ts +0 -13
- package/dist/components/steps.js +0 -148
- package/dist/components/summary.d.ts +0 -24
- package/dist/components/summary.js +0 -81
- package/dist/components/title.d.ts +0 -11
- package/dist/components/title.js +0 -35
- package/dist/components/users.d.ts +0 -24
- package/dist/components/users.js +0 -80
- package/dist/components/welcome.d.ts +0 -13
- package/dist/components/welcome.js +0 -63
- package/dist/index-old.d.ts +0 -8
- package/dist/index-old.js +0 -8
- package/dist/index.d.ts +0 -54
- package/dist/index.js +0 -147
- package/dist/interfaces/i-addons.d.ts +0 -12
- package/dist/interfaces/i-addons.js +0 -8
- package/dist/interfaces/i-analyze.d.ts +0 -17
- package/dist/interfaces/i-analyze.js +0 -17
- package/dist/interfaces/i-app.d.ts +0 -14
- package/dist/interfaces/i-app.js +0 -8
- package/dist/interfaces/i-branding.d.ts +0 -36
- package/dist/interfaces/i-branding.js +0 -8
- package/dist/interfaces/i-calamares-displaymanager.d.ts +0 -17
- package/dist/interfaces/i-calamares-displaymanager.js +0 -1
- package/dist/interfaces/i-calamares-finished.d.ts +0 -12
- package/dist/interfaces/i-calamares-finished.js +0 -1
- package/dist/interfaces/i-calamares-packages.d.ts +0 -28
- package/dist/interfaces/i-calamares-packages.js +0 -1
- package/dist/interfaces/i-calamares-partition.d.ts +0 -40
- package/dist/interfaces/i-calamares-partition.js +0 -1
- package/dist/interfaces/i-config-tools.d.ts +0 -15
- package/dist/interfaces/i-config-tools.js +0 -8
- package/dist/interfaces/i-devices.d.ts +0 -20
- package/dist/interfaces/i-devices.js +0 -8
- package/dist/interfaces/i-distro.d.ts +0 -23
- package/dist/interfaces/i-distro.js +0 -8
- package/dist/interfaces/i-drive-list.d.ts +0 -33
- package/dist/interfaces/i-drive-list.js +0 -8
- package/dist/interfaces/i-eggs-config.d.ts +0 -32
- package/dist/interfaces/i-eggs-config.js +0 -8
- package/dist/interfaces/i-excludes.d.ts +0 -14
- package/dist/interfaces/i-excludes.js +0 -8
- package/dist/interfaces/i-exec.d.ts +0 -11
- package/dist/interfaces/i-exec.js +0 -8
- package/dist/interfaces/i-initrd.d.ts +0 -13
- package/dist/interfaces/i-initrd.js +0 -8
- package/dist/interfaces/i-install.d.ts +0 -16
- package/dist/interfaces/i-install.js +0 -8
- package/dist/interfaces/i-installer.d.ts +0 -17
- package/dist/interfaces/i-installer.js +0 -8
- package/dist/interfaces/i-krill-config.d.ts +0 -33
- package/dist/interfaces/i-krill-config.js +0 -8
- package/dist/interfaces/i-krill.d.ts +0 -42
- package/dist/interfaces/i-krill.js +0 -8
- package/dist/interfaces/i-materia.d.ts +0 -36
- package/dist/interfaces/i-materia.js +0 -8
- package/dist/interfaces/i-net.d.ts +0 -16
- package/dist/interfaces/i-net.js +0 -8
- package/dist/interfaces/i-packages.d.ts +0 -16
- package/dist/interfaces/i-packages.js +0 -8
- package/dist/interfaces/i-partitions.d.ts +0 -16
- package/dist/interfaces/i-partitions.js +0 -8
- package/dist/interfaces/i-pxe.d.ts +0 -45
- package/dist/interfaces/i-pxe.js +0 -1
- package/dist/interfaces/i-remix.d.ts +0 -21
- package/dist/interfaces/i-remix.js +0 -8
- package/dist/interfaces/i-settings.d.ts +0 -33
- package/dist/interfaces/i-settings.js +0 -8
- package/dist/interfaces/i-user.d.ts +0 -14
- package/dist/interfaces/i-user.js +0 -8
- package/dist/interfaces/i-workdir.d.ts +0 -14
- package/dist/interfaces/i-workdir.js +0 -8
- package/dist/interfaces/i-xkb-model.d.ts +0 -24
- package/dist/interfaces/i-xkb-model.js +0 -8
- package/dist/interfaces/index.d.ts +0 -25
- package/dist/interfaces/index.js +0 -8
- package/dist/krill/modules/add-user.d.ts +0 -20
- package/dist/krill/modules/add-user.js +0 -48
- package/dist/krill/modules/bootloader-config.d.ts +0 -14
- package/dist/krill/modules/bootloader-config.js +0 -148
- package/dist/krill/modules/bootloader.d.ts +0 -14
- package/dist/krill/modules/bootloader.js +0 -130
- package/dist/krill/modules/change-password.d.ts +0 -15
- package/dist/krill/modules/change-password.js +0 -18
- package/dist/krill/modules/del-live-user.d.ts +0 -14
- package/dist/krill/modules/del-live-user.js +0 -39
- package/dist/krill/modules/fstab.d.ts +0 -14
- package/dist/krill/modules/fstab.js +0 -123
- package/dist/krill/modules/grubcfg.d.ts +0 -17
- package/dist/krill/modules/grubcfg.js +0 -29
- package/dist/krill/modules/hostname.d.ts +0 -13
- package/dist/krill/modules/hostname.js +0 -50
- package/dist/krill/modules/initramfs-cfg.d.ts +0 -14
- package/dist/krill/modules/initramfs-cfg.js +0 -22
- package/dist/krill/modules/initramfs.d.ts +0 -13
- package/dist/krill/modules/initramfs.js +0 -54
- package/dist/krill/modules/locale-cfg.d.ts +0 -10
- package/dist/krill/modules/locale-cfg.js +0 -58
- package/dist/krill/modules/locale.d.ts +0 -13
- package/dist/krill/modules/locale.js +0 -91
- package/dist/krill/modules/m-keyboard.d.ts +0 -14
- package/dist/krill/modules/m-keyboard.js +0 -58
- package/dist/krill/modules/machine-id.d.ts +0 -15
- package/dist/krill/modules/machine-id.js +0 -33
- package/dist/krill/modules/mkfs.d.ts +0 -15
- package/dist/krill/modules/mkfs.js +0 -50
- package/dist/krill/modules/mount-fs.d.ts +0 -17
- package/dist/krill/modules/mount-fs.js +0 -62
- package/dist/krill/modules/mount-vfs.d.ts +0 -17
- package/dist/krill/modules/mount-vfs.js +0 -40
- package/dist/krill/modules/network-cfg.d.ts +0 -19
- package/dist/krill/modules/network-cfg.js +0 -64
- package/dist/krill/modules/packages.d.ts +0 -14
- package/dist/krill/modules/packages.js +0 -111
- package/dist/krill/modules/partition.d.ts +0 -20
- package/dist/krill/modules/partition.js +0 -324
- package/dist/krill/modules/remove-installer-link.d.ts +0 -13
- package/dist/krill/modules/remove-installer-link.js +0 -35
- package/dist/krill/modules/umount.d.ts +0 -14
- package/dist/krill/modules/umount.js +0 -27
- package/dist/krill/modules/unpackfs.d.ts +0 -13
- package/dist/krill/modules/unpackfs.js +0 -20
- package/dist/krill/prepare.d.ts +0 -78
- package/dist/krill/prepare.js +0 -624
- package/dist/krill/sequence.d.ts +0 -154
- package/dist/krill/sequence.js +0 -650
- package/dist/lib/get_address.d.ts +0 -8
- package/dist/lib/get_address.js +0 -23
- package/dist/lib/get_dns.d.ts +0 -8
- package/dist/lib/get_dns.js +0 -23
- package/dist/lib/get_domain.d.ts +0 -8
- package/dist/lib/get_domain.js +0 -23
- package/dist/lib/get_gateway.d.ts +0 -8
- package/dist/lib/get_gateway.js +0 -23
- package/dist/lib/get_hostname.d.ts +0 -8
- package/dist/lib/get_hostname.js +0 -23
- package/dist/lib/get_netmask.d.ts +0 -8
- package/dist/lib/get_netmask.js +0 -23
- package/dist/lib/get_password.d.ts +0 -8
- package/dist/lib/get_password.js +0 -36
- package/dist/lib/get_userfullname.d.ts +0 -8
- package/dist/lib/get_userfullname.js +0 -23
- package/dist/lib/get_username.d.ts +0 -8
- package/dist/lib/get_username.js +0 -23
- package/dist/lib/kill_me_softly.d.ts +0 -11
- package/dist/lib/kill_me_softly.js +0 -61
- package/dist/lib/select_address_type.d.ts +0 -8
- package/dist/lib/select_address_type.js +0 -24
- package/dist/lib/select_filesystem_type.d.ts +0 -8
- package/dist/lib/select_filesystem_type.js +0 -46
- package/dist/lib/select_installation_device.d.ts +0 -8
- package/dist/lib/select_installation_device.js +0 -30
- package/dist/lib/select_installation_mode.d.ts +0 -8
- package/dist/lib/select_installation_mode.js +0 -24
- package/dist/lib/select_interface.d.ts +0 -8
- package/dist/lib/select_interface.js +0 -24
- package/dist/lib/select_keyboard_layout.d.ts +0 -11
- package/dist/lib/select_keyboard_layout.js +0 -36
- package/dist/lib/select_keyboard_model.d.ts +0 -11
- package/dist/lib/select_keyboard_model.js +0 -34
- package/dist/lib/select_keyboard_option.d.ts +0 -11
- package/dist/lib/select_keyboard_option.js +0 -34
- package/dist/lib/select_keyboard_variant.d.ts +0 -11
- package/dist/lib/select_keyboard_variant.js +0 -35
- package/dist/lib/select_languages.d.ts +0 -8
- package/dist/lib/select_languages.js +0 -28
- package/dist/lib/select_regions.d.ts +0 -8
- package/dist/lib/select_regions.js +0 -24
- package/dist/lib/select_user_swap_choice.d.ts +0 -8
- package/dist/lib/select_user_swap_choice.js +0 -34
- package/dist/lib/select_zones.d.ts +0 -8
- package/dist/lib/select_zones.js +0 -518
- package/dist/lib/utils.d.ts +0 -34
- package/dist/lib/utils.js +0 -79
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/initramfs.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import Sequence from '../sequence.js';
|
|
10
|
-
/**
|
|
11
|
-
* initramfs()
|
|
12
|
-
*/
|
|
13
|
-
export default function initramfs(this: Sequence): Promise<void>;
|
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/initramfs.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import path from 'node:path';
|
|
10
|
-
import Utils from '../../classes/utils.js';
|
|
11
|
-
import { exec } from '../../lib/utils.js';
|
|
12
|
-
// _dirname
|
|
13
|
-
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
14
|
-
/**
|
|
15
|
-
* initramfs()
|
|
16
|
-
*/
|
|
17
|
-
export default async function initramfs() {
|
|
18
|
-
if (this.distro.familyId === 'debian') {
|
|
19
|
-
/**
|
|
20
|
-
* Debian
|
|
21
|
-
*/
|
|
22
|
-
let cmd = `chroot ${this.installTarget} mkinitramfs -o /boot/initrd.img-$(uname -r)`;
|
|
23
|
-
await exec(cmd, this.echo);
|
|
24
|
-
}
|
|
25
|
-
else if (this.distro.familyId === 'archlinux') {
|
|
26
|
-
/**
|
|
27
|
-
* Archlinux
|
|
28
|
-
*/
|
|
29
|
-
let initrdImg = path.basename(Utils.initrdImg());
|
|
30
|
-
let cmd = `chroot ${this.installTarget} mkinitcpio -g /boot/${initrdImg}}`;
|
|
31
|
-
await exec(cmd, this.echo);
|
|
32
|
-
}
|
|
33
|
-
else if (this.distro.familyId === 'alpine') {
|
|
34
|
-
/**
|
|
35
|
-
* Alpine
|
|
36
|
-
*/
|
|
37
|
-
let cmd = `chroot ${this.installTarget} mkinitfs`;
|
|
38
|
-
await exec(cmd, this.echo);
|
|
39
|
-
}
|
|
40
|
-
else if (this.distro.familyId === 'fedora') {
|
|
41
|
-
/**
|
|
42
|
-
* Fedora
|
|
43
|
-
*/
|
|
44
|
-
let cmd = `chroot ${this.installTarget} dracut -f`;
|
|
45
|
-
await exec(cmd, this.echo);
|
|
46
|
-
}
|
|
47
|
-
else if (this.distro.familyId === 'opensuse') {
|
|
48
|
-
/**
|
|
49
|
-
* Opensuse
|
|
50
|
-
*/
|
|
51
|
-
let cmd = `chroot ${this.installTarget} dracut -f`;
|
|
52
|
-
await exec(cmd, this.echo);
|
|
53
|
-
}
|
|
54
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/locale-cfg.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import Sequence from '../sequence.js';
|
|
10
|
-
export default function localeCfg(this: Sequence): Promise<void>;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/locale-cfg.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import fs from 'node:fs';
|
|
10
|
-
/* localeCfg
|
|
11
|
-
* Enable the configured locales (those set by the user on the
|
|
12
|
-
* user page) in /etc/locale.gen, if they are available in the
|
|
13
|
-
* target system.
|
|
14
|
-
*/
|
|
15
|
-
export default async function localeCfg() {
|
|
16
|
-
/**
|
|
17
|
-
* influence: - locale-gen
|
|
18
|
-
*/
|
|
19
|
-
let supporteds = [];
|
|
20
|
-
if (this.distro.familyId === 'debian') {
|
|
21
|
-
// Format: en_US.UTF-8 UTF-8
|
|
22
|
-
supporteds = fs.readFileSync('/usr/share/i18n/SUPPORTED', 'utf8').split('\n');
|
|
23
|
-
}
|
|
24
|
-
else if (this.distro.familyId === 'archlinux') {
|
|
25
|
-
const supportedsSource = fs.readFileSync('/etc/locale.gen', 'utf8').split('\n');
|
|
26
|
-
for (let line of supportedsSource) {
|
|
27
|
-
if (line.slice(0, 2) !== '# ') {
|
|
28
|
-
// se non è un commento
|
|
29
|
-
line = line.slice(1); // Rimuove #
|
|
30
|
-
}
|
|
31
|
-
supporteds.push(line);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
const localeGenSource = fs.readFileSync(`${this.installTarget}/etc/locale.gen`, 'utf8').split('\n');
|
|
35
|
-
let localeGenDest = '';
|
|
36
|
-
const krillBookmark = '# Locales enabled by krill\n';
|
|
37
|
-
for (const line of localeGenSource) {
|
|
38
|
-
if (line.includes(krillBookmark)) {
|
|
39
|
-
break;
|
|
40
|
-
}
|
|
41
|
-
localeGenDest += line + '\n';
|
|
42
|
-
}
|
|
43
|
-
localeGenDest += '\n';
|
|
44
|
-
localeGenDest += krillBookmark;
|
|
45
|
-
const locales = [];
|
|
46
|
-
if (this.language !== 'en_US.UTF-8') {
|
|
47
|
-
locales.push('en_US.UTF-8');
|
|
48
|
-
}
|
|
49
|
-
locales.push(this.language);
|
|
50
|
-
for (const supported of supporteds) {
|
|
51
|
-
for (const locale of locales) {
|
|
52
|
-
if (supported.includes(locale)) {
|
|
53
|
-
localeGenDest += `${supported}\n`;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
fs.writeFileSync(`${this.installTarget}/etc/locale.gen`, localeGenDest);
|
|
58
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/locale.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import Sequence from '../sequence.js';
|
|
10
|
-
/**
|
|
11
|
-
* locale
|
|
12
|
-
*/
|
|
13
|
-
export default function locale(this: Sequence): Promise<void>;
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/locale.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import fs from 'node:fs';
|
|
10
|
-
import Utils from '../../classes/utils.js';
|
|
11
|
-
import { exec } from '../../lib/utils.js';
|
|
12
|
-
/**
|
|
13
|
-
* locale
|
|
14
|
-
*/
|
|
15
|
-
export default async function locale() {
|
|
16
|
-
const defaultLocale = this.language;
|
|
17
|
-
if (this.distro.familyId === 'archlinux' || this.distro.familyId === 'debian') {
|
|
18
|
-
/**
|
|
19
|
-
* influcence: - /etc/default/locale
|
|
20
|
-
* - /etc/locale.conf
|
|
21
|
-
* - /etc/timezone
|
|
22
|
-
*/
|
|
23
|
-
let file = this.installTarget + '/etc/default/locale';
|
|
24
|
-
let content = '';
|
|
25
|
-
content += `LANG=${defaultLocale}\n`;
|
|
26
|
-
content += `LC_CTYPE=${defaultLocale}\n`;
|
|
27
|
-
content += `LC_NUMERIC=${defaultLocale}\n`;
|
|
28
|
-
content += `LC_TIME=${defaultLocale}\n`;
|
|
29
|
-
content += `LC_COLLATE=${defaultLocale}\n`;
|
|
30
|
-
content += `LC_MONETARY=${defaultLocale}\n`;
|
|
31
|
-
content += `LC_MESSAGES=${defaultLocale}\n`;
|
|
32
|
-
content += `LC_PAPER=${defaultLocale}\n`;
|
|
33
|
-
content += `LC_NAME=${defaultLocale}\n`;
|
|
34
|
-
content += `LC_ADDRESS=${defaultLocale}\n`;
|
|
35
|
-
content += `LC_TELEPHONE=${defaultLocale}\n`;
|
|
36
|
-
content += `LC_MEASUREMENT=${defaultLocale}\n`;
|
|
37
|
-
content += `LC_IDENTIFICATION=${defaultLocale}\n`;
|
|
38
|
-
content += `LC_ALL=${defaultLocale}\n`;
|
|
39
|
-
Utils.write(file, content);
|
|
40
|
-
// /etc/locale.conf
|
|
41
|
-
file = this.installTarget + '/etc/locale.conf';
|
|
42
|
-
Utils.write(file, content);
|
|
43
|
-
// timezone Arch Debian
|
|
44
|
-
if (fs.existsSync('/etc/localtime')) {
|
|
45
|
-
const cmd = `chroot ${this.installTarget} unlink /etc/localtime ${this.toNull}`;
|
|
46
|
-
await exec(cmd, this.echo);
|
|
47
|
-
}
|
|
48
|
-
const cmd = `chroot ${this.installTarget} ln -sf /usr/share/zoneinfo/${this.region}/${this.zone} /etc/localtime ${this.toNull}`;
|
|
49
|
-
await exec(cmd, this.echo);
|
|
50
|
-
}
|
|
51
|
-
else if (this.distro.familyId === 'alpine') {
|
|
52
|
-
// locale Alpine
|
|
53
|
-
let file = this.installTarget + "/etc/profile.d/00locale.sh";
|
|
54
|
-
let content = "";
|
|
55
|
-
content += `#!/bin/sh\n`;
|
|
56
|
-
content += `export MUSL_LOCPATH="/usr/share/i18n/locales/musl"\n`;
|
|
57
|
-
content += `\n`;
|
|
58
|
-
content += `export LANG=${defaultLocale}\n`;
|
|
59
|
-
content += `export LC_CTYPE=${defaultLocale}\n`;
|
|
60
|
-
content += `export LC_NUMERIC=${defaultLocale}\n`;
|
|
61
|
-
content += `export LC_TIME=${defaultLocale}\n`;
|
|
62
|
-
content += `export LC_COLLATE=${defaultLocale}\n`;
|
|
63
|
-
content += `export LC_MONETARY=${defaultLocale}\n`;
|
|
64
|
-
content += `export LC_MESSAGES=${defaultLocale}\n`;
|
|
65
|
-
content += `export LC_PAPER=${defaultLocale}\n`;
|
|
66
|
-
content += `export LC_NAME=${defaultLocale}\n`;
|
|
67
|
-
content += `export LC_ADDRESS=${defaultLocale}\n`;
|
|
68
|
-
content += `export LC_TELEPHONE=${defaultLocale}\n`;
|
|
69
|
-
content += `export LC_MEASUREMENT=${defaultLocale}\n`;
|
|
70
|
-
content += `export LC_IDENTIFICATION=${defaultLocale}\n`;
|
|
71
|
-
content += `export LC_ALL=${defaultLocale}\n`;
|
|
72
|
-
Utils.write(file, content);
|
|
73
|
-
await exec(`chmod +x ${file}`);
|
|
74
|
-
/**
|
|
75
|
-
* https://docs.alpinelinux.org/user-handbook/0.1a/Installing/manual.html
|
|
76
|
-
*/
|
|
77
|
-
/**
|
|
78
|
-
* timezone
|
|
79
|
-
*
|
|
80
|
-
*/
|
|
81
|
-
let tz = `/etc/zoneinfo/${this.region}/${this.zone}`;
|
|
82
|
-
await exec(`chroot ${this.installTarget} rm -rf /etc/zoneinfo/* ${this.toNull}`, this.echo);
|
|
83
|
-
await exec(`chroot ${this.installTarget} mkdir -p ${tz} ${this.toNull}`, this.echo);
|
|
84
|
-
file = `${this.installTarget}/etc/profile.d/timezone.sh`;
|
|
85
|
-
content = "";
|
|
86
|
-
content += `#!/bin/sh\n`;
|
|
87
|
-
content += `export TZ='${tz}'`;
|
|
88
|
-
Utils.write(file, content);
|
|
89
|
-
await exec(`chmod +x ${file} ${this.toNull}`);
|
|
90
|
-
}
|
|
91
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/m-keyboard.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import Sequence from '../sequence.js';
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
* @param this
|
|
13
|
-
*/
|
|
14
|
-
export default function mKeyboard(this: Sequence): Promise<void>;
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/m-keyboard.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import fs from 'node:fs';
|
|
10
|
-
import Utils from '../../classes/utils.js';
|
|
11
|
-
import { exec } from '../../lib/utils.js';
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
* @param this
|
|
15
|
-
*/
|
|
16
|
-
export default async function mKeyboard() {
|
|
17
|
-
/**
|
|
18
|
-
* influence: - /etc/default/keyboard (console)
|
|
19
|
-
* - /etc/X11/xorg.conf.d/00-keyboard.conf
|
|
20
|
-
* - /ext/vconsole.conf (non systemd)
|
|
21
|
-
*/
|
|
22
|
-
if (this.distro.familyId === 'archlinux' || this.distro.familyId === 'debian' || this.distro.familyId === 'fedora') {
|
|
23
|
-
let cmd = '';
|
|
24
|
-
let content = '';
|
|
25
|
-
if (Utils.isSystemd()) {
|
|
26
|
-
cmd = `chroot ${this.installTarget} localectl set-keymap ${this.keyboardLayout} ${this.toNull}`;
|
|
27
|
-
content = '# See penguins-eggs/src/krill/modules/set-keyboard.ts\n\n';
|
|
28
|
-
content += "# Read and parsed by systemd-localed. It's probably wise not to edit this file\n";
|
|
29
|
-
content += '# manually too freely.\n';
|
|
30
|
-
content += 'Section "InputClass"\n';
|
|
31
|
-
content += ' Identifier "system-keyboard"\n';
|
|
32
|
-
content += ' MatchIsKeyboard "on"\n';
|
|
33
|
-
content += ' Option "XkbLayout" "' + this.keyboardLayout + '"\n';
|
|
34
|
-
content += 'EndSection\n';
|
|
35
|
-
if (fs.existsSync(this.installTarget + '/etc/X11/xorg.conf.d')) {
|
|
36
|
-
Utils.write(this.installTarget + '/etc/X11/xorg.conf.d/00-keyboard.conf', content);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
else {
|
|
40
|
-
/**
|
|
41
|
-
* configuro vconsole.conf
|
|
42
|
-
*/
|
|
43
|
-
cmd = `chroot ${this.installTarget} setupcon ${this.toNull}`;
|
|
44
|
-
content = '# See penguins-eggs/src/krill/modules/set-keyboard.ts\n\n';
|
|
45
|
-
content += 'KEYMAP="' + this.keyboardLayout + '"\n';
|
|
46
|
-
content += 'FONT=\n';
|
|
47
|
-
content += 'FONT_MAP=\n';
|
|
48
|
-
Utils.write(this.installTarget + '/etc/vconsole.conf', content);
|
|
49
|
-
}
|
|
50
|
-
await exec(cmd, this.echo);
|
|
51
|
-
}
|
|
52
|
-
else if (this.distro.familyId === 'alpine') {
|
|
53
|
-
/**
|
|
54
|
-
* Alpine dovrebbe fare tutto con `setup-keymap us us`
|
|
55
|
-
*/
|
|
56
|
-
await exec(`chroot ${this.installTarget} setup-keymap ${this.keyboardLayout} ${this.keyboardLayout}`);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* penguins-eggs
|
|
3
|
-
* krill modules: machine-id.ts
|
|
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 Sequence from '../sequence.js';
|
|
10
|
-
/**
|
|
11
|
-
* On Ubuntu
|
|
12
|
-
* /etc/machine-id must exist to be re-created
|
|
13
|
-
* https://unix.stackexchange.com/questions/402999/is-it-ok-to-change-etc-machine-id
|
|
14
|
-
*/
|
|
15
|
-
export default function machineId(this: Sequence): Promise<void>;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* penguins-eggs
|
|
3
|
-
* krill modules: machine-id.ts
|
|
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 fs from 'node:fs';
|
|
10
|
-
import { exec } from '../../lib/utils.js';
|
|
11
|
-
import Utils from '../../classes/utils.js';
|
|
12
|
-
/**
|
|
13
|
-
* On Ubuntu
|
|
14
|
-
* /etc/machine-id must exist to be re-created
|
|
15
|
-
* https://unix.stackexchange.com/questions/402999/is-it-ok-to-change-etc-machine-id
|
|
16
|
-
*/
|
|
17
|
-
export default async function machineId() {
|
|
18
|
-
// We delete the machine-id file to force its recreation
|
|
19
|
-
const file = `${this.installTarget}/etc/machine-id`;
|
|
20
|
-
if (fs.existsSync(file)) {
|
|
21
|
-
await exec(`rm ${file} ${this.toNull}`, this.echo);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* machine/id ALWAYS new
|
|
25
|
-
*/
|
|
26
|
-
if (Utils.isSystemd()) {
|
|
27
|
-
await exec(`chroot ${this.installTarget} systemd-machine-id-setup`);
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
await exec(`chroot ${this.installTarget} dbus-uuidgen --ensure=/var/lib/dbus/machine-id ${this.toNull}`);
|
|
31
|
-
await exec(`chroot ${this.installTarget} cp /var/lib/dbus/machine-id /etc/machine-id`);
|
|
32
|
-
}
|
|
33
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/mkfs.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import Sequence from '../sequence.js';
|
|
10
|
-
/**
|
|
11
|
-
* mkfs
|
|
12
|
-
*
|
|
13
|
-
* mke2fs - create an ext2/ext3/ext4 file system -F force, -t type
|
|
14
|
-
*/
|
|
15
|
-
export default function mkfs(this: Sequence): Promise<boolean>;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/mkfs.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import { exec } from '../../lib/utils.js';
|
|
10
|
-
/**
|
|
11
|
-
* mkfs
|
|
12
|
-
*
|
|
13
|
-
* mke2fs - create an ext2/ext3/ext4 file system -F force, -t type
|
|
14
|
-
*/
|
|
15
|
-
export default async function mkfs() {
|
|
16
|
-
const result = true;
|
|
17
|
-
if (this.partitions.filesystemType === 'ext4') {
|
|
18
|
-
if (this.efi) {
|
|
19
|
-
await exec(`mkdosfs -F 32 -I ${this.devices.efi.name} ${this.toNull}`, this.echo);
|
|
20
|
-
}
|
|
21
|
-
if (this.devices.boot.name !== 'none') {
|
|
22
|
-
if (this.devices.boot.fsType === undefined) {
|
|
23
|
-
this.devices.boot.fsType = 'ext2';
|
|
24
|
-
this.devices.boot.mountPoint = '/boot';
|
|
25
|
-
}
|
|
26
|
-
await exec(`mke2fs -Ft ${this.devices.boot.fsType} ${this.devices.boot.name} ${this.toNull}`, this.echo);
|
|
27
|
-
}
|
|
28
|
-
if (this.devices.root.name !== 'none') {
|
|
29
|
-
await exec(`mke2fs -Ft ${this.devices.root.fsType} ${this.devices.root.name} ${this.toNull}`, this.echo);
|
|
30
|
-
}
|
|
31
|
-
if (this.devices.data.name !== 'none') {
|
|
32
|
-
await exec(`mke2fs -Ft ${this.devices.data.fsType} ${this.devices.data.name} ${this.toNull}`, this.echo);
|
|
33
|
-
}
|
|
34
|
-
if (this.devices.swap.name !== 'none') {
|
|
35
|
-
await exec(`mkswap ${this.devices.swap.name} ${this.toNull}`, this.echo);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
else if (this.partitions.filesystemType === 'btrfs') {
|
|
39
|
-
await exec(`mkfs.btrfs -f ${this.devices.root.name} ${this.toNull}`, this.echo);
|
|
40
|
-
// create subvolumes
|
|
41
|
-
// await exec(`btrfs subvolume create /.snapshots ${this.toNull}`, this.echo)
|
|
42
|
-
// await exec(`btrfs subvolume create /home ${this.toNull}`, this.echo)
|
|
43
|
-
// await exec(`btrfs subvolume create /root ${this.toNull}`, this.echo)
|
|
44
|
-
// await exec(`btrfs subvolume create /var/log ${this.toNull}`, this.echo)
|
|
45
|
-
// await exec(`btrfs subvolume create /var/lib/AccountsService ${this.toNull}`, this.echo)
|
|
46
|
-
// await exec(`btrfs subvolume create /var/lib/blueman ${this.toNull}`, this.echo)
|
|
47
|
-
// await exec(`btrfs subvolume create /tmp ${this.toNull}`, this.echo)
|
|
48
|
-
}
|
|
49
|
-
return result;
|
|
50
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/mount-fs.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import Sequence from '../sequence.js';
|
|
10
|
-
/**
|
|
11
|
-
* mountFs
|
|
12
|
-
*/
|
|
13
|
-
export declare function mountFs(this: Sequence): Promise<boolean>;
|
|
14
|
-
/**
|
|
15
|
-
* umountFs
|
|
16
|
-
*/
|
|
17
|
-
export declare function umountFs(this: Sequence): Promise<boolean>;
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/mount-fs.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import fs from 'node:fs';
|
|
10
|
-
import { exec } from '../../lib/utils.js';
|
|
11
|
-
/**
|
|
12
|
-
* mountFs
|
|
13
|
-
*/
|
|
14
|
-
export async function mountFs() {
|
|
15
|
-
if (!fs.existsSync(this.installTarget)) {
|
|
16
|
-
await exec(`mkdir ${this.installTarget} ${this.toNull}`, this.echo);
|
|
17
|
-
}
|
|
18
|
-
// root Alpine vuole -t per il mount
|
|
19
|
-
await exec(`mount -t ${this.devices.root.fsType} ${this.devices.root.name} ${this.installTarget}${this.devices.root.mountPoint} ${this.toNull}`, this.echo);
|
|
20
|
-
await exec(`tune2fs -c 0 -i 0 ${this.devices.root.name} ${this.toNull}`, this.echo);
|
|
21
|
-
await exec(`rm -rf ${this.installTarget}/lost+found ${this.toNull}`, this.echo);
|
|
22
|
-
// boot
|
|
23
|
-
if (this.devices.boot.name !== 'none') {
|
|
24
|
-
await exec(`mkdir ${this.installTarget}/boot -p ${this.toNull}`, this.echo);
|
|
25
|
-
await exec(`mount -t ${this.devices.boot.fsType} ${this.devices.boot.name} ${this.installTarget}${this.devices.boot.mountPoint} ${this.toNull}`, this.echo);
|
|
26
|
-
await exec(`tune2fs -c 0 -i 0 ${this.devices.boot.name} ${this.toNull}`, this.echo);
|
|
27
|
-
}
|
|
28
|
-
// data
|
|
29
|
-
if (this.devices.data.name !== 'none') {
|
|
30
|
-
await exec(`mkdir ${this.installTarget}${this.devices.data.mountPoint} -p ${this.toNull}`, this.echo);
|
|
31
|
-
await exec(`mount -t ${this.devices.data.fsType} ${this.devices.data.name} ${this.installTarget}${this.devices.data.mountPoint} ${this.toNull}`, this.echo);
|
|
32
|
-
await exec(`tune2fs -c 0 -i 0 ${this.devices.data.name} ${this.toNull}`, this.echo);
|
|
33
|
-
}
|
|
34
|
-
// efi
|
|
35
|
-
if (this.efi && !fs.existsSync(this.installTarget + this.devices.efi.mountPoint)) {
|
|
36
|
-
await exec(`mkdir ${this.installTarget}${this.devices.efi.mountPoint} -p ${this.toNull}`, this.echo);
|
|
37
|
-
//await exec(`mount -t ${this.devices.efi.fsType} ${this.devices.efi.name} ${this.installTarget}${this.devices.efi.mountPoint} ${this.toNull}`, this.echo)
|
|
38
|
-
// utilizzare vfat per evitare errori
|
|
39
|
-
await exec(`mount -t vfat ${this.devices.efi.name} ${this.installTarget}${this.devices.efi.mountPoint} ${this.toNull}`, this.echo);
|
|
40
|
-
}
|
|
41
|
-
return true;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* umountFs
|
|
45
|
-
*/
|
|
46
|
-
export async function umountFs() {
|
|
47
|
-
// efi
|
|
48
|
-
if (this.efi) {
|
|
49
|
-
await this.umount(this.devices.efi.name);
|
|
50
|
-
}
|
|
51
|
-
// data
|
|
52
|
-
if (this.devices.data.name !== 'none') {
|
|
53
|
-
await this.umount(this.devices.data.name);
|
|
54
|
-
}
|
|
55
|
-
// boot
|
|
56
|
-
if (this.devices.boot.name !== 'none') {
|
|
57
|
-
await this.umount(this.devices.boot.name);
|
|
58
|
-
}
|
|
59
|
-
// root
|
|
60
|
-
await this.umount(this.devices.root.name);
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/mount-vfs.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import Sequence from '../sequence.js';
|
|
10
|
-
/**
|
|
11
|
-
* mountvfs()
|
|
12
|
-
*/
|
|
13
|
-
export declare function mountVfs(this: Sequence): Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
*
|
|
16
|
-
*/
|
|
17
|
-
export declare function umountVfs(this: Sequence): Promise<void>;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/mount-vfs.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import { exec } from '../../lib/utils.js';
|
|
10
|
-
/**
|
|
11
|
-
* mountvfs()
|
|
12
|
-
*/
|
|
13
|
-
export async function mountVfs() {
|
|
14
|
-
await exec(`mkdir ${this.installTarget}/dev ${this.toNull}`, this.echo);
|
|
15
|
-
await exec(`mkdir ${this.installTarget}/dev/pts ${this.toNull}`, this.echo);
|
|
16
|
-
await exec(`mkdir ${this.installTarget}/proc ${this.toNull}`, this.echo);
|
|
17
|
-
await exec(`mkdir ${this.installTarget}/sys ${this.toNull}`, this.echo);
|
|
18
|
-
await exec(`mkdir ${this.installTarget}/run ${this.toNull}`, this.echo);
|
|
19
|
-
await exec(`mount -o bind /dev ${this.installTarget}/dev ${this.toNull}`, this.echo);
|
|
20
|
-
await exec(`mount -o bind /dev/pts ${this.installTarget}/dev/pts ${this.toNull}`, this.echo);
|
|
21
|
-
await exec(`mount -o bind /proc ${this.installTarget}/proc ${this.toNull}`, this.echo);
|
|
22
|
-
await exec(`mount -o bind /sys ${this.installTarget}/sys ${this.toNull}`, this.echo);
|
|
23
|
-
if (this.efi) {
|
|
24
|
-
await exec(`mount -o bind /sys/firmware/efi/efivars ${this.installTarget}/sys/firmware/efi/efivars ${this.toNull}`, this.echo);
|
|
25
|
-
}
|
|
26
|
-
await exec(`mount -o rbind /run ${this.installTarget}/run ${this.toNull}`, this.echo);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
*
|
|
30
|
-
*/
|
|
31
|
-
export async function umountVfs() {
|
|
32
|
-
await this.umount(`${this.installTarget}/dev/pts`);
|
|
33
|
-
await this.umount(`${this.installTarget}/dev`);
|
|
34
|
-
await this.umount(`${this.installTarget}/proc`);
|
|
35
|
-
await this.umount(`${this.installTarget}/run`);
|
|
36
|
-
if (this.efi) {
|
|
37
|
-
await this.umount(`${this.installTarget}/sys/firmware/efi/efivars`);
|
|
38
|
-
}
|
|
39
|
-
await this.umount(`${this.installTarget}/sys`);
|
|
40
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/network-cfg.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import Sequence from '../sequence.js';
|
|
10
|
-
/**
|
|
11
|
-
* networkcfg
|
|
12
|
-
*
|
|
13
|
-
* - debian: /etc/network/interface
|
|
14
|
-
* - ubuntu: netplan
|
|
15
|
-
* - arch:
|
|
16
|
-
*
|
|
17
|
-
* - all: /etc/resolv.conf
|
|
18
|
-
*/
|
|
19
|
-
export default function networkCfg(this: Sequence): Promise<void>;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/network-cfg.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import fs from 'node:fs';
|
|
10
|
-
import Pacman from '../../classes/pacman.js';
|
|
11
|
-
import Systemctl from '../../classes/systemctl.js';
|
|
12
|
-
import Utils from '../../classes/utils.js';
|
|
13
|
-
import { exec } from '../../lib/utils.js';
|
|
14
|
-
/**
|
|
15
|
-
* networkcfg
|
|
16
|
-
*
|
|
17
|
-
* - debian: /etc/network/interface
|
|
18
|
-
* - ubuntu: netplan
|
|
19
|
-
* - arch:
|
|
20
|
-
*
|
|
21
|
-
* - all: /etc/resolv.conf
|
|
22
|
-
*/
|
|
23
|
-
export default async function networkCfg() {
|
|
24
|
-
const systemdCtl = new Systemctl();
|
|
25
|
-
/**
|
|
26
|
-
* debian: /etc/network/interfaces
|
|
27
|
-
*/
|
|
28
|
-
if (this.distro.familyId === 'debian' && !Pacman.packageIsInstalled('netplan.io')) {
|
|
29
|
-
const file = this.installTarget + '/etc/network/interfaces';
|
|
30
|
-
let content = '# created by eggs\n\n';
|
|
31
|
-
content += 'auto lo\n';
|
|
32
|
-
content += 'iface lo inet loopback\n\n';
|
|
33
|
-
content += 'auto ' + this.network.iface + '\n';
|
|
34
|
-
content += 'iface ' + this.network.iface + ' inet ' + this.network.addressType + '\n';
|
|
35
|
-
if (this.network.addressType !== 'dhcp') {
|
|
36
|
-
content += ' address ' + this.network.address + '\n';
|
|
37
|
-
content += ' netmask ' + this.network.netmask + '\n';
|
|
38
|
-
content += ' gateway ' + this.network.gateway + '\n';
|
|
39
|
-
}
|
|
40
|
-
Utils.write(file, content);
|
|
41
|
-
}
|
|
42
|
-
else if (this.distro.familyId === 'debian' && Pacman.packageIsInstalled('netplan.io')) {
|
|
43
|
-
// netplan: to do
|
|
44
|
-
}
|
|
45
|
-
else if (this.distro.familyId === 'arch') {
|
|
46
|
-
// arch: seem to work
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* resolv.conf
|
|
50
|
-
*/
|
|
51
|
-
const resolvFile = this.installTarget + '/etc/resolv.conf';
|
|
52
|
-
await exec(`rm -f ${resolvFile}`);
|
|
53
|
-
if (fs.existsSync('/run/systemd/resolve/resolv.conf')) {
|
|
54
|
-
await exec(`ln -s /run/systemd/resolve/resolv.conf ${resolvFile}`);
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
let content = '# created by eggs\n\n';
|
|
58
|
-
content += 'domain ' + this.network.domain + '\n';
|
|
59
|
-
for (const element of this.network.dns) {
|
|
60
|
-
content += 'nameserver ' + element + '\n';
|
|
61
|
-
}
|
|
62
|
-
Utils.write(resolvFile, content);
|
|
63
|
-
}
|
|
64
|
-
}
|