penguins-eggs 25.10.19 → 25.10.23
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 +1 -1
- package/README.md +767 -2
- package/README.pdf +1723 -1731
- package/addons/eggs/theme/livecd/isolinux.main.simple.cfg +0 -1
- package/package.json +3 -3
- package/scripts/boot-encrypted-root.sh +177 -0
- package/scripts/mount-encrypted-home.sh +92 -56
- package/dist/classes/bleach.d.ts +0 -37
- package/dist/classes/bleach.js +0 -148
- package/dist/classes/cli-autologin.d.ts +0 -52
- package/dist/classes/cli-autologin.js +0 -252
- 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 -175
- package/dist/classes/distro.d.ts +0 -32
- package/dist/classes/distro.js +0 -363
- package/dist/classes/diversions.d.ts +0 -53
- package/dist/classes/diversions.js +0 -152
- package/dist/classes/incubation/branding.d.ts +0 -17
- package/dist/classes/incubation/branding.js +0 -85
- package/dist/classes/incubation/customize/customize-partitions.d.ts +0 -4
- package/dist/classes/incubation/customize/customize-partitions.js +0 -29
- package/dist/classes/incubation/fisherman-helper/initcpio.d.ts +0 -1
- package/dist/classes/incubation/fisherman-helper/initcpio.js +0 -69
- 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 -116
- package/dist/classes/incubation/fisherman.d.ts +0 -71
- package/dist/classes/incubation/fisherman.js +0 -281
- package/dist/classes/incubation/incubator.d/alpine.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/alpine.js +0 -78
- package/dist/classes/incubation/incubator.d/archlinux.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/archlinux.js +0 -82
- 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 -101
- package/dist/classes/incubation/incubator.d/fedora.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/fedora.js +0 -81
- package/dist/classes/incubation/incubator.d/focal.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/focal.js +0 -85
- package/dist/classes/incubation/incubator.d/manjaro.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/manjaro.js +0 -82
- package/dist/classes/incubation/incubator.d/noble.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/noble.js +0 -102
- 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/trixie.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/trixie.js +0 -98
- package/dist/classes/incubation/incubator.d.ts +0 -48
- package/dist/classes/incubation/incubator.js +0 -378
- 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/bind-live-fs.d.ts +0 -18
- package/dist/classes/ovary.d/bind-live-fs.js +0 -185
- package/dist/classes/ovary.d/bind-vfs.d.ts +0 -17
- package/dist/classes/ovary.d/bind-vfs.js +0 -37
- package/dist/classes/ovary.d/create-xdg-autostart.d.ts +0 -13
- package/dist/classes/ovary.d/create-xdg-autostart.js +0 -194
- package/dist/classes/ovary.d/edit-live-fs.d.ts +0 -20
- package/dist/classes/ovary.d/edit-live-fs.js +0 -239
- package/dist/classes/ovary.d/fertilization.d.ts +0 -12
- package/dist/classes/ovary.d/fertilization.js +0 -53
- package/dist/classes/ovary.d/finished.d.ts +0 -13
- package/dist/classes/ovary.d/finished.js +0 -40
- package/dist/classes/ovary.d/initrd.d.ts +0 -21
- package/dist/classes/ovary.d/initrd.js +0 -95
- package/dist/classes/ovary.d/kernel-copy.d.ts +0 -12
- package/dist/classes/ovary.d/kernel-copy.js +0 -22
- package/dist/classes/ovary.d/live-create-structure.d.ts +0 -12
- package/dist/classes/ovary.d/live-create-structure.js +0 -70
- package/dist/classes/ovary.d/luks-get-password.d.ts +0 -12
- package/dist/classes/ovary.d/luks-get-password.js +0 -57
- package/dist/classes/ovary.d/luks-home-support.d.ts +0 -12
- package/dist/classes/ovary.d/luks-home-support.js +0 -75
- package/dist/classes/ovary.d/luks-home.d.ts +0 -15
- package/dist/classes/ovary.d/luks-home.js +0 -140
- package/dist/classes/ovary.d/luks-root-bootstrap-builder.d.ts +0 -11
- package/dist/classes/ovary.d/luks-root-bootstrap-builder.js +0 -45
- package/dist/classes/ovary.d/luks-root.d.ts +0 -15
- package/dist/classes/ovary.d/luks-root.js +0 -126
- package/dist/classes/ovary.d/make-dot-disk.d.ts +0 -12
- package/dist/classes/ovary.d/make-dot-disk.js +0 -62
- package/dist/classes/ovary.d/make-efi.d.ts +0 -14
- package/dist/classes/ovary.d/make-efi.js +0 -274
- package/dist/classes/ovary.d/make-iso.d.ts +0 -13
- package/dist/classes/ovary.d/make-iso.js +0 -45
- package/dist/classes/ovary.d/make-squashfs.d.ts +0 -18
- package/dist/classes/ovary.d/make-squashfs.js +0 -114
- package/dist/classes/ovary.d/merged.d.ts +0 -27
- package/dist/classes/ovary.d/merged.js +0 -78
- package/dist/classes/ovary.d/produce.d.ts +0 -23
- package/dist/classes/ovary.d/produce.js +0 -347
- package/dist/classes/ovary.d/rexec.d.ts +0 -13
- package/dist/classes/ovary.d/rexec.js +0 -34
- package/dist/classes/ovary.d/syslinux.d.ts +0 -12
- package/dist/classes/ovary.d/syslinux.js +0 -82
- package/dist/classes/ovary.d/user-create-live.d.ts +0 -14
- package/dist/classes/ovary.d/user-create-live.js +0 -97
- package/dist/classes/ovary.d/users-remove.d.ts +0 -9
- package/dist/classes/ovary.d/users-remove.js +0 -38
- package/dist/classes/ovary.d/xorriso-command.d.ts +0 -14
- package/dist/classes/ovary.d/xorriso-command.js +0 -121
- package/dist/classes/ovary.d.ts +0 -106
- package/dist/classes/ovary.js +0 -116
- package/dist/classes/pacman.d/alpine.d.ts +0 -56
- package/dist/classes/pacman.d/alpine.js +0 -167
- package/dist/classes/pacman.d/archlinux.d.ts +0 -62
- package/dist/classes/pacman.d/archlinux.js +0 -128
- package/dist/classes/pacman.d/debian.d.ts +0 -65
- package/dist/classes/pacman.d/debian.js +0 -143
- package/dist/classes/pacman.d/fedora.d.ts +0 -53
- package/dist/classes/pacman.d/fedora.js +0 -107
- package/dist/classes/pacman.d/openmamba.d.ts +0 -52
- package/dist/classes/pacman.d/openmamba.js +0 -106
- package/dist/classes/pacman.d/opensuse.d.ts +0 -53
- package/dist/classes/pacman.d/opensuse.js +0 -109
- package/dist/classes/pacman.d.ts +0 -139
- package/dist/classes/pacman.js +0 -683
- package/dist/classes/pve-live.d.ts +0 -17
- package/dist/classes/pve-live.js +0 -52
- package/dist/classes/pxe.d.ts +0 -76
- package/dist/classes/pxe.js +0 -353
- package/dist/classes/settings.d.ts +0 -52
- 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 -563
- 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/kernel.d.ts +0 -39
- package/dist/classes/utils.d/kernel.js +0 -206
- package/dist/classes/utils.d.ts +0 -328
- package/dist/classes/utils.js +0 -958
- 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 -17
- package/dist/commands/cuckoo.js +0 -61
- package/dist/commands/dad.d.ts +0 -21
- package/dist/commands/dad.js +0 -47
- 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 -29
- package/dist/commands/export/pkg.js +0 -173
- package/dist/commands/export/tarballs.d.ts +0 -27
- package/dist/commands/export/tarballs.js +0 -79
- package/dist/commands/install.d.ts +0 -39
- package/dist/commands/install.js +0 -113
- package/dist/commands/kill.d.ts +0 -24
- package/dist/commands/kill.js +0 -50
- package/dist/commands/love.d.ts +0 -24
- package/dist/commands/love.js +0 -111
- package/dist/commands/mom.d.ts +0 -16
- package/dist/commands/mom.js +0 -30
- package/dist/commands/pods.d.ts +0 -22
- package/dist/commands/pods.js +0 -92
- package/dist/commands/produce.d.ts +0 -36
- package/dist/commands/produce.js +0 -218
- package/dist/commands/status.d.ts +0 -23
- package/dist/commands/status.js +0 -31
- package/dist/commands/tools/clean.d.ts +0 -18
- package/dist/commands/tools/clean.js +0 -37
- package/dist/commands/tools/repo.d.ts +0 -31
- package/dist/commands/tools/repo.js +0 -246
- 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 -46
- package/dist/commands/update.js +0 -238
- 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/dhcpd-proxy/classes/packet.d.ts +0 -36
- package/dist/dhcpd-proxy/classes/packet.js +0 -124
- package/dist/dhcpd-proxy/index.d.ts +0 -4
- package/dist/dhcpd-proxy/index.js +0 -4
- package/dist/dhcpd-proxy/interfaces/i-pxe.d.ts +0 -45
- package/dist/dhcpd-proxy/interfaces/i-pxe.js +0 -1
- package/dist/dhcpd-proxy/lib/packet/converters.d.ts +0 -11
- package/dist/dhcpd-proxy/lib/packet/converters.js +0 -395
- package/dist/dhcpd-proxy/lib/packet/message-types.d.ts +0 -10
- package/dist/dhcpd-proxy/lib/packet/message-types.js +0 -12
- package/dist/dhcpd-proxy/lib/packet/options.d.ts +0 -8
- package/dist/dhcpd-proxy/lib/packet/options.js +0 -264
- package/dist/dhcpd-proxy/lib/sprintf.d.ts +0 -6
- package/dist/dhcpd-proxy/lib/sprintf.js +0 -130
- package/dist/dhcpd-proxy/lib/utils.d.ts +0 -126
- package/dist/dhcpd-proxy/lib/utils.js +0 -255
- package/dist/dhcpd-proxy/simple-proxy.d.ts +0 -11
- package/dist/dhcpd-proxy/simple-proxy.js +0 -118
- package/dist/index.d.ts +0 -8
- package/dist/index.js +0 -8
- package/dist/interfaces/calamares/i-calamares-bootloader.d.ts +0 -23
- package/dist/interfaces/calamares/i-calamares-bootloader.js +0 -7
- package/dist/interfaces/calamares/i-calamares-branding.d.ts +0 -46
- package/dist/interfaces/calamares/i-calamares-branding.js +0 -1
- package/dist/interfaces/calamares/i-calamares-displaymanager.d.ts +0 -34
- package/dist/interfaces/calamares/i-calamares-displaymanager.js +0 -1
- package/dist/interfaces/calamares/i-calamares-finished.d.ts +0 -14
- package/dist/interfaces/calamares/i-calamares-finished.js +0 -1
- package/dist/interfaces/calamares/i-calamares-packages.d.ts +0 -26
- package/dist/interfaces/calamares/i-calamares-packages.js +0 -1
- package/dist/interfaces/calamares/i-calamares-partitions.d.ts +0 -39
- package/dist/interfaces/calamares/i-calamares-partitions.js +0 -1
- package/dist/interfaces/calamares/i-calamares-settings.d.ts +0 -36
- package/dist/interfaces/calamares/i-calamares-settings.js +0 -1
- 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-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-luks-passphrase.d.ts +0 -11
- package/dist/interfaces/i-luks-passphrase.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-os-release.d.ts +0 -5
- package/dist/interfaces/i-os-release.js +0 -1
- 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 -26
- package/dist/interfaces/index.js +0 -8
- package/dist/krill/classes/cfs.d.ts +0 -17
- package/dist/krill/classes/cfs.js +0 -39
- package/dist/krill/classes/krill_enums.d.ts +0 -37
- package/dist/krill/classes/krill_enums.js +0 -41
- package/dist/krill/classes/prepare.d/confirm.d.ts +0 -5
- package/dist/krill/classes/prepare.d/confirm.js +0 -30
- package/dist/krill/classes/prepare.d/keyboard.d.ts +0 -14
- package/dist/krill/classes/prepare.d/keyboard.js +0 -62
- package/dist/krill/classes/prepare.d/location.d.ts +0 -17
- package/dist/krill/classes/prepare.d/location.js +0 -59
- package/dist/krill/classes/prepare.d/network.d.ts +0 -14
- package/dist/krill/classes/prepare.d/network.js +0 -68
- package/dist/krill/classes/prepare.d/partitions.d.ts +0 -14
- package/dist/krill/classes/prepare.d/partitions.js +0 -86
- package/dist/krill/classes/prepare.d/summary.d.ts +0 -15
- package/dist/krill/classes/prepare.d/summary.js +0 -72
- package/dist/krill/classes/prepare.d/users.d.ts +0 -6
- package/dist/krill/classes/prepare.d/users.js +0 -63
- package/dist/krill/classes/prepare.d/welcome.d.ts +0 -6
- package/dist/krill/classes/prepare.d/welcome.js +0 -30
- package/dist/krill/classes/prepare.d.ts +0 -89
- package/dist/krill/classes/prepare.js +0 -319
- package/dist/krill/classes/sequence.d/add_user.d.ts +0 -20
- package/dist/krill/classes/sequence.d/add_user.js +0 -77
- package/dist/krill/classes/sequence.d/bootloader.d.ts +0 -14
- package/dist/krill/classes/sequence.d/bootloader.js +0 -117
- package/dist/krill/classes/sequence.d/bootloader_config.d.ts +0 -14
- package/dist/krill/classes/sequence.d/bootloader_config.js +0 -192
- package/dist/krill/classes/sequence.d/change_password.d.ts +0 -15
- package/dist/krill/classes/sequence.d/change_password.js +0 -18
- package/dist/krill/classes/sequence.d/del_live_user.d.ts +0 -14
- package/dist/krill/classes/sequence.d/del_live_user.js +0 -39
- package/dist/krill/classes/sequence.d/fstab.d.ts +0 -14
- package/dist/krill/classes/sequence.d/fstab.js +0 -177
- package/dist/krill/classes/sequence.d/grubcfg.d.ts +0 -17
- package/dist/krill/classes/sequence.d/grubcfg.js +0 -35
- package/dist/krill/classes/sequence.d/hostname.d.ts +0 -13
- package/dist/krill/classes/sequence.d/hostname.js +0 -50
- package/dist/krill/classes/sequence.d/initramfs.d.ts +0 -13
- package/dist/krill/classes/sequence.d/initramfs.js +0 -54
- package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +0 -14
- package/dist/krill/classes/sequence.d/initramfs_cfg.js +0 -35
- package/dist/krill/classes/sequence.d/locale.d.ts +0 -13
- package/dist/krill/classes/sequence.d/locale.js +0 -91
- package/dist/krill/classes/sequence.d/locale_cfg.d.ts +0 -10
- package/dist/krill/classes/sequence.d/locale_cfg.js +0 -58
- package/dist/krill/classes/sequence.d/m_keyboard.d.ts +0 -14
- package/dist/krill/classes/sequence.d/m_keyboard.js +0 -58
- package/dist/krill/classes/sequence.d/machine_id.d.ts +0 -15
- package/dist/krill/classes/sequence.d/machine_id.js +0 -33
- package/dist/krill/classes/sequence.d/mkfs.d.ts +0 -15
- package/dist/krill/classes/sequence.d/mkfs.js +0 -88
- package/dist/krill/classes/sequence.d/mount_fs.d.ts +0 -17
- package/dist/krill/classes/sequence.d/mount_fs.js +0 -68
- package/dist/krill/classes/sequence.d/mount_vfs.d.ts +0 -17
- package/dist/krill/classes/sequence.d/mount_vfs.js +0 -59
- package/dist/krill/classes/sequence.d/network_cfg.d.ts +0 -19
- package/dist/krill/classes/sequence.d/network_cfg.js +0 -73
- package/dist/krill/classes/sequence.d/packages.d.ts +0 -14
- package/dist/krill/classes/sequence.d/packages.js +0 -111
- package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +0 -17
- package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +0 -73
- package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +0 -16
- package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +0 -51
- package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +0 -17
- package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +0 -77
- package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +0 -10
- package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +0 -33
- package/dist/krill/classes/sequence.d/partition.d.ts +0 -14
- package/dist/krill/classes/sequence.d/partition.js +0 -84
- package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +0 -13
- package/dist/krill/classes/sequence.d/remove_installer_link.js +0 -35
- package/dist/krill/classes/sequence.d/umount.d.ts +0 -14
- package/dist/krill/classes/sequence.d/umount.js +0 -28
- package/dist/krill/classes/sequence.d/unpackfs.d.ts +0 -13
- package/dist/krill/classes/sequence.d/unpackfs.js +0 -20
- package/dist/krill/classes/sequence.d.ts +0 -134
- package/dist/krill/classes/sequence.js +0 -400
- package/dist/krill/components/finished.d.ts +0 -16
- package/dist/krill/components/finished.js +0 -56
- package/dist/krill/components/information.d.ts +0 -8
- package/dist/krill/components/information.js +0 -162
- package/dist/krill/components/install.d.ts +0 -15
- package/dist/krill/components/install.js +0 -60
- package/dist/krill/components/keyboard.d.ts +0 -16
- package/dist/krill/components/keyboard.js +0 -54
- package/dist/krill/components/location.d.ts +0 -16
- package/dist/krill/components/location.js +0 -59
- package/dist/krill/components/network.d.ts +0 -19
- package/dist/krill/components/network.js +0 -65
- package/dist/krill/components/partitions.d.ts +0 -18
- package/dist/krill/components/partitions.js +0 -89
- package/dist/krill/components/steps.d.ts +0 -13
- package/dist/krill/components/steps.js +0 -148
- package/dist/krill/components/summary.d.ts +0 -25
- package/dist/krill/components/summary.js +0 -77
- package/dist/krill/components/title.d.ts +0 -11
- package/dist/krill/components/title.js +0 -35
- package/dist/krill/components/users.d.ts +0 -24
- package/dist/krill/components/users.js +0 -80
- package/dist/krill/components/welcome.d.ts +0 -13
- package/dist/krill/components/welcome.js +0 -63
- package/dist/krill/interfaces/i_krill.d.ts +0 -44
- package/dist/krill/interfaces/i_krill.js +0 -8
- package/dist/krill/interfaces/i_krill_config.d.ts +0 -35
- package/dist/krill/interfaces/i_krill_config.js +0 -8
- package/dist/krill/lib/get_address.d.ts +0 -8
- package/dist/krill/lib/get_address.js +0 -23
- package/dist/krill/lib/get_dns.d.ts +0 -8
- package/dist/krill/lib/get_dns.js +0 -23
- package/dist/krill/lib/get_domain.d.ts +0 -8
- package/dist/krill/lib/get_domain.js +0 -23
- package/dist/krill/lib/get_gateway.d.ts +0 -8
- package/dist/krill/lib/get_gateway.js +0 -23
- package/dist/krill/lib/get_hostname.d.ts +0 -8
- package/dist/krill/lib/get_hostname.js +0 -23
- package/dist/krill/lib/get_luks_passphrase.d.ts +0 -8
- package/dist/krill/lib/get_luks_passphrase.js +0 -32
- package/dist/krill/lib/get_netmask.d.ts +0 -8
- package/dist/krill/lib/get_netmask.js +0 -23
- package/dist/krill/lib/get_password.d.ts +0 -8
- package/dist/krill/lib/get_password.js +0 -36
- package/dist/krill/lib/get_userfullname.d.ts +0 -8
- package/dist/krill/lib/get_userfullname.js +0 -23
- package/dist/krill/lib/get_username.d.ts +0 -8
- package/dist/krill/lib/get_username.js +0 -23
- package/dist/krill/lib/select_address_type.d.ts +0 -8
- package/dist/krill/lib/select_address_type.js +0 -24
- package/dist/krill/lib/select_filesystem_type.d.ts +0 -8
- package/dist/krill/lib/select_filesystem_type.js +0 -40
- package/dist/krill/lib/select_installation_device.d.ts +0 -8
- package/dist/krill/lib/select_installation_device.js +0 -40
- package/dist/krill/lib/select_installation_mode.d.ts +0 -9
- package/dist/krill/lib/select_installation_mode.js +0 -25
- package/dist/krill/lib/select_interface.d.ts +0 -8
- package/dist/krill/lib/select_interface.js +0 -24
- package/dist/krill/lib/select_keyboard_layout.d.ts +0 -11
- package/dist/krill/lib/select_keyboard_layout.js +0 -36
- package/dist/krill/lib/select_keyboard_model.d.ts +0 -11
- package/dist/krill/lib/select_keyboard_model.js +0 -34
- package/dist/krill/lib/select_keyboard_option.d.ts +0 -11
- package/dist/krill/lib/select_keyboard_option.js +0 -34
- package/dist/krill/lib/select_keyboard_variant.d.ts +0 -11
- package/dist/krill/lib/select_keyboard_variant.js +0 -35
- package/dist/krill/lib/select_languages.d.ts +0 -8
- package/dist/krill/lib/select_languages.js +0 -28
- package/dist/krill/lib/select_regions.d.ts +0 -8
- package/dist/krill/lib/select_regions.js +0 -24
- package/dist/krill/lib/select_replaced_partition.d.ts +0 -8
- package/dist/krill/lib/select_replaced_partition.js +0 -31
- package/dist/krill/lib/select_user_swap_choice.d.ts +0 -9
- package/dist/krill/lib/select_user_swap_choice.js +0 -35
- package/dist/krill/lib/select_zones.d.ts +0 -8
- package/dist/krill/lib/select_zones.js +0 -518
- package/dist/lib/kill_me_softly.d.ts +0 -11
- package/dist/lib/kill_me_softly.js +0 -61
- package/dist/lib/utils.d.ts +0 -19
- package/dist/lib/utils.js +0 -65
- package/scripts/luks-root-bootstrap-create.sh +0 -235
- package/scripts/luks-root-unlock.sh +0 -172
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/network-cfg.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / 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 { exec } from '../../../lib/utils.js';
|
|
13
|
-
/**
|
|
14
|
-
* networkcfg
|
|
15
|
-
*
|
|
16
|
-
* - debian: /etc/network/interface
|
|
17
|
-
* - ubuntu: netplan
|
|
18
|
-
* - arch:
|
|
19
|
-
*
|
|
20
|
-
* - all: /etc/resolv.conf
|
|
21
|
-
*/
|
|
22
|
-
export default async function networkCfg() {
|
|
23
|
-
const systemdCtl = new Systemctl();
|
|
24
|
-
/**
|
|
25
|
-
* debian: /etc/network/interfaces
|
|
26
|
-
*/
|
|
27
|
-
if (this.distro.familyId === 'debian' && !Pacman.packageIsInstalled('netplan.io')) {
|
|
28
|
-
const file = this.installTarget + '/etc/network/interfaces';
|
|
29
|
-
let content = '# created by eggs\n\n';
|
|
30
|
-
content += 'auto lo\n';
|
|
31
|
-
content += 'iface lo inet loopback\n\n';
|
|
32
|
-
content += 'auto ' + this.network.iface + '\n';
|
|
33
|
-
content += 'iface ' + this.network.iface + ' inet ' + this.network.addressType + '\n';
|
|
34
|
-
if (this.network.addressType !== 'dhcp') {
|
|
35
|
-
content += ' address ' + this.network.address + '\n';
|
|
36
|
-
content += ' netmask ' + this.network.netmask + '\n';
|
|
37
|
-
content += ' gateway ' + this.network.gateway + '\n';
|
|
38
|
-
}
|
|
39
|
-
try {
|
|
40
|
-
fs.writeFileSync(file, content, 'utf8');
|
|
41
|
-
}
|
|
42
|
-
catch (e) {
|
|
43
|
-
console.log("error on write: " + file);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
else if (this.distro.familyId === 'debian' && Pacman.packageIsInstalled('netplan.io')) {
|
|
47
|
-
// netplan: to do
|
|
48
|
-
}
|
|
49
|
-
else if (this.distro.familyId === 'arch') {
|
|
50
|
-
// arch: seem to work
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* resolv.conf
|
|
54
|
-
*/
|
|
55
|
-
const resolvFile = this.installTarget + '/etc/resolv.conf';
|
|
56
|
-
await exec(`rm -f ${resolvFile}`);
|
|
57
|
-
if (fs.existsSync('/run/systemd/resolve/resolv.conf')) {
|
|
58
|
-
await exec(`ln -s /run/systemd/resolve/resolv.conf ${resolvFile}`);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
let content = '# created by eggs\n\n';
|
|
62
|
-
content += 'domain ' + this.network.domain + '\n';
|
|
63
|
-
for (const element of this.network.dns) {
|
|
64
|
-
content += 'nameserver ' + element + '\n';
|
|
65
|
-
}
|
|
66
|
-
try {
|
|
67
|
-
fs.writeFileSync(resolvFile, content, 'utf8');
|
|
68
|
-
}
|
|
69
|
-
catch (e) {
|
|
70
|
-
console.log("error on write: " + resolvFile);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/packages.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / 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 '../../classes/sequence.js';
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
* @param this
|
|
13
|
-
*/
|
|
14
|
-
export default function packages(this: Sequence): Promise<void>;
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/packages.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / 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 yaml from 'js-yaml';
|
|
10
|
-
import fs from 'node:fs';
|
|
11
|
-
import Pacman from '../../../classes/pacman.js';
|
|
12
|
-
import Utils from '../../../classes/utils.js';
|
|
13
|
-
import { exec } from '../../../lib/utils.js';
|
|
14
|
-
/**
|
|
15
|
-
*
|
|
16
|
-
* @param this
|
|
17
|
-
*/
|
|
18
|
-
export default async function packages() {
|
|
19
|
-
const echoYes = Utils.setEcho(true);
|
|
20
|
-
let modulePath = '/etc/penguins-eggs.d/krill/';
|
|
21
|
-
if (Pacman.packageIsInstalled('calamares')) {
|
|
22
|
-
modulePath = '/etc/calamares/';
|
|
23
|
-
}
|
|
24
|
-
const config_file = `${modulePath}modules/packages.conf`;
|
|
25
|
-
if (fs.existsSync(config_file)) {
|
|
26
|
-
const packages = yaml.load(fs.readFileSync(config_file, 'utf8'));
|
|
27
|
-
let packagesToInstall = [];
|
|
28
|
-
let packagesToRemove = [];
|
|
29
|
-
if (packages.operations !== undefined) {
|
|
30
|
-
for (const operation of packages.operations) {
|
|
31
|
-
if ('try_remove' in operation) {
|
|
32
|
-
packagesToRemove = operation.try_remove;
|
|
33
|
-
}
|
|
34
|
-
if ('try_install' in operation) {
|
|
35
|
-
packagesToInstall = operation.try_install;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
// Alpine
|
|
40
|
-
if (this.distro.familyId === 'alpine') {
|
|
41
|
-
packages.backend = 'apk';
|
|
42
|
-
}
|
|
43
|
-
switch (packages.backend) {
|
|
44
|
-
case 'apt': {
|
|
45
|
-
/**
|
|
46
|
-
* apt
|
|
47
|
-
*/
|
|
48
|
-
if (packagesToRemove != undefined && packagesToRemove.length > 0) {
|
|
49
|
-
let cmd = `chroot ${this.installTarget} apt-get purge -y `;
|
|
50
|
-
for (const elem of packagesToRemove) {
|
|
51
|
-
if (Pacman.packageIsInstalled(elem)) {
|
|
52
|
-
cmd += elem + ' ';
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
await exec(`${cmd} ${this.toNull}`, this.echo);
|
|
56
|
-
const autoremove = `chroot ${this.installTarget} apt-get autoremove -y ${this.toNull}`;
|
|
57
|
-
await exec(autoremove, this.echo);
|
|
58
|
-
}
|
|
59
|
-
if (packagesToInstall != undefined && packagesToInstall.length > 0) {
|
|
60
|
-
let cmd = `chroot ${this.installTarget} apt-get install -y `;
|
|
61
|
-
for (const elem of packagesToInstall) {
|
|
62
|
-
cmd += elem + ' ';
|
|
63
|
-
}
|
|
64
|
-
const update = `chroot ${this.installTarget} apt-get update ${this.toNull}`;
|
|
65
|
-
await exec(update, this.echo);
|
|
66
|
-
await exec(`${cmd} ${this.toNull}`, this.echo);
|
|
67
|
-
}
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
case 'pacman': {
|
|
71
|
-
/**
|
|
72
|
-
* pacman
|
|
73
|
-
*/
|
|
74
|
-
if (packagesToRemove != undefined && packagesToRemove.length > 0) {
|
|
75
|
-
let cmd = `chroot ${this.installTarget} pacman -R\n`;
|
|
76
|
-
for (const elem of packagesToRemove) {
|
|
77
|
-
cmd += elem + ' ';
|
|
78
|
-
}
|
|
79
|
-
await exec(`${cmd} ${echoYes}`, this.echo);
|
|
80
|
-
}
|
|
81
|
-
if (packagesToInstall != undefined && packagesToInstall.length > 0) {
|
|
82
|
-
for (const elem of packagesToInstall) {
|
|
83
|
-
await exec(`chroot ${this.installTarget} pacman -S ${elem}`, echoYes);
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
88
|
-
case 'apk': {
|
|
89
|
-
/**
|
|
90
|
-
* apk
|
|
91
|
-
*/
|
|
92
|
-
if (packagesToRemove != undefined && packagesToRemove.length > 0) {
|
|
93
|
-
let cmd = `chroot ${this.installTarget} apk del `;
|
|
94
|
-
for (const elem of packagesToRemove) {
|
|
95
|
-
cmd += elem + ' ';
|
|
96
|
-
}
|
|
97
|
-
await exec(`${cmd} ${this.toNull}`, this.echo);
|
|
98
|
-
}
|
|
99
|
-
if (packagesToInstall != undefined && packagesToInstall.length > 0) {
|
|
100
|
-
let cmd = `chroot ${this.installTarget} apk add `;
|
|
101
|
-
for (const elem of packagesToInstall) {
|
|
102
|
-
cmd += elem + ' ';
|
|
103
|
-
}
|
|
104
|
-
await exec(`${cmd} ${this.toNull}`, this.echo);
|
|
105
|
-
}
|
|
106
|
-
break;
|
|
107
|
-
}
|
|
108
|
-
// No default
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/partition.d/bios-luks.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / 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
|
-
* @param installDevice
|
|
14
|
-
* @param p
|
|
15
|
-
* @returns
|
|
16
|
-
*/
|
|
17
|
-
export default function biosLuks(this: Sequence, installDevice?: string, p?: string): Promise<boolean>;
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/partition.d/bios-luks.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import { exec } from '../../../../lib/utils.js';
|
|
10
|
-
import Utils from '../../../../classes/utils.js';
|
|
11
|
-
import getLuksPassphrase from '../../../lib/get_luks_passphrase.js';
|
|
12
|
-
// React
|
|
13
|
-
import React from 'react';
|
|
14
|
-
import { render } from 'ink';
|
|
15
|
-
import Install from '../../../components/install.js';
|
|
16
|
-
/**
|
|
17
|
-
*
|
|
18
|
-
* @param this
|
|
19
|
-
* @param installDevice
|
|
20
|
-
* @param p
|
|
21
|
-
* @returns
|
|
22
|
-
*/
|
|
23
|
-
export default async function biosLuks(installDevice = "", p = "") {
|
|
24
|
-
await exec(`parted --script ${installDevice} mklabel msdos`, this.echo);
|
|
25
|
-
await exec(`parted --script --align optimal ${installDevice} mkpart primary ext4 1MiB 512MiB`, this.echo); // sda1
|
|
26
|
-
await exec(`parted --script --align optimal ${installDevice} mkpart primary ext4 512MiB 100%`, this.echo); // sda3
|
|
27
|
-
await exec(`parted --script ${installDevice} set 1 boot on`, this.echo); // sda1
|
|
28
|
-
await exec(`parted --script ${installDevice} set 1 esp on`, this.echo); // sda1
|
|
29
|
-
// BOOT 512M
|
|
30
|
-
this.devices.boot.name = `${installDevice}${p}1`; // 'boot'
|
|
31
|
-
this.devices.boot.fsType = 'ext4';
|
|
32
|
-
this.devices.boot.mountPoint = '/boot';
|
|
33
|
-
// disabilito spinner per introduzione passphrase
|
|
34
|
-
let message = "Creating partitions";
|
|
35
|
-
await redraw(React.createElement(Install, { message: message, percent: 0 }));
|
|
36
|
-
const passphrase = await getLuksPassphrase('evolution', 'evolution'); // It's just a default
|
|
37
|
-
await redraw(React.createElement(Install, { message: message, percent: 0, spinner: this.spinner }));
|
|
38
|
-
// Aggiungi parametri di sicurezza espliciti
|
|
39
|
-
const cipher = "aes-xts-plain64";
|
|
40
|
-
const keySize = "512";
|
|
41
|
-
const hash = "sha512";
|
|
42
|
-
// ROOT
|
|
43
|
-
const cryptoRoot = await exec(`echo -n "${passphrase}" | cryptsetup --batch-mode --cipher ${cipher} --key-size ${keySize} --hash ${hash} --type luks2 --key-file=- -v luksFormat ${installDevice}${p}2`, this.echo);
|
|
44
|
-
if (cryptoRoot.code !== 0) {
|
|
45
|
-
Utils.warning(`Error: ${cryptoRoot.code} ${cryptoRoot.data}`);
|
|
46
|
-
process.exit(1);
|
|
47
|
-
}
|
|
48
|
-
const cryptoRootOpen = await exec(`echo -n "${passphrase}" | cryptsetup --key-file=- --type luks2 luksOpen ${installDevice}${p}2 root_crypted`, this.echo);
|
|
49
|
-
if (cryptoRootOpen.code !== 0) {
|
|
50
|
-
Utils.warning(`Error: ${cryptoRootOpen.code} ${cryptoRootOpen.data}`);
|
|
51
|
-
process.exit(1);
|
|
52
|
-
}
|
|
53
|
-
// this.devices.boot.name = DEFINED`
|
|
54
|
-
this.devices.data.name = 'none';
|
|
55
|
-
this.devices.efi.name = 'none';
|
|
56
|
-
this.devices.root.name = `/dev/mapper/${this.luksRootName}`;
|
|
57
|
-
this.devices.root.cryptedFrom = `${installDevice}${p}2`;
|
|
58
|
-
this.devices.root.fsType = 'ext4';
|
|
59
|
-
this.devices.root.mountPoint = '/';
|
|
60
|
-
this.devices.swap.name = 'none';
|
|
61
|
-
return true;
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
*
|
|
65
|
-
* @param elem
|
|
66
|
-
*/
|
|
67
|
-
async function redraw(elem) {
|
|
68
|
-
let opt = {};
|
|
69
|
-
opt.patchConsole = false;
|
|
70
|
-
opt.debug = true;
|
|
71
|
-
console.clear();
|
|
72
|
-
render(elem, opt);
|
|
73
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/partition.d/bios-standard.ts (versione unificata)
|
|
3
|
-
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* Partiziona un disco per sistemi BIOS, gestendo dinamicamente ext4 (con swap) e btrfs (senza swap).
|
|
8
|
-
*/
|
|
9
|
-
import Sequence from '../../sequence.js';
|
|
10
|
-
/**
|
|
11
|
-
* * @param this
|
|
12
|
-
* @param installDevice
|
|
13
|
-
* @param p
|
|
14
|
-
* @returns
|
|
15
|
-
*/
|
|
16
|
-
export default function biosStandard(this: Sequence, installDevice?: string, p?: string): Promise<boolean>;
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/partition.d/bios-standard.ts (versione unificata)
|
|
3
|
-
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* Partiziona un disco per sistemi BIOS, gestendo dinamicamente ext4 (con swap) e btrfs (senza swap).
|
|
8
|
-
*/
|
|
9
|
-
import { exec } from '../../../../lib/utils.js';
|
|
10
|
-
/**
|
|
11
|
-
* * @param this
|
|
12
|
-
* @param installDevice
|
|
13
|
-
* @param p
|
|
14
|
-
* @returns
|
|
15
|
-
*/
|
|
16
|
-
export default async function biosStandard(installDevice = "", p = "") {
|
|
17
|
-
const fsType = this.partitions.filesystemType;
|
|
18
|
-
// 1. Creazione della tabella delle partizioni (comune a entrambi)
|
|
19
|
-
await exec(`parted --script ${installDevice} mklabel msdos`, this.echo);
|
|
20
|
-
// 2. Logica di partizionamento condizionale
|
|
21
|
-
if (fsType === 'btrfs') {
|
|
22
|
-
// --- CASO BTRFS: NESSUNA PARTIZIONE DI SWAP ---
|
|
23
|
-
// Creiamo un'unica partizione che occupa tutto il disco.
|
|
24
|
-
// Lo swap verrà gestito con uno swapfile direttamente su Btrfs.
|
|
25
|
-
await exec(`parted --script --align optimal ${installDevice} mkpart primary "" 1MiB 100%`, this.echo); // Partizione 1: root
|
|
26
|
-
await exec(`parted ${installDevice} set 1 boot on`, this.echo);
|
|
27
|
-
// Imposta i dispositivi per Btrfs
|
|
28
|
-
this.devices.root.name = `${installDevice}${p}1`;
|
|
29
|
-
this.devices.swap.name = 'none'; // Nessuna partizione di swap
|
|
30
|
-
}
|
|
31
|
-
else {
|
|
32
|
-
// --- CASO EXT4 (o default): CON PARTIZIONE DI SWAP ---
|
|
33
|
-
// Comportamento standard con partizione di swap.
|
|
34
|
-
await exec(`parted --script --align optimal ${installDevice} mkpart primary linux-swap 1MiB ${this.swapSize + 1}MiB`, this.echo); // Partizione 1: swap
|
|
35
|
-
await exec(`parted --script --align optimal ${installDevice} mkpart primary "" ${this.swapSize + 1}MiB 100%`, this.echo); // Partizione 2: root
|
|
36
|
-
await exec(`parted ${installDevice} set 2 boot on`, this.echo);
|
|
37
|
-
// Imposta i dispositivi per ext4
|
|
38
|
-
this.devices.swap.name = `${installDevice}${p}1`;
|
|
39
|
-
this.devices.swap.fsType = 'swap';
|
|
40
|
-
this.devices.swap.mountPoint = 'none';
|
|
41
|
-
this.devices.root.name = `${installDevice}${p}2`;
|
|
42
|
-
}
|
|
43
|
-
// 3. Impostazioni finali comuni
|
|
44
|
-
this.devices.root.fsType = fsType;
|
|
45
|
-
this.devices.root.mountPoint = '/';
|
|
46
|
-
// BOOT/DATA/EFI non sono usati in questo schema
|
|
47
|
-
this.devices.boot.name = 'none';
|
|
48
|
-
this.devices.data.name = 'none';
|
|
49
|
-
this.devices.efi.name = 'none';
|
|
50
|
-
return true;
|
|
51
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/partition.d/uefi-luks.tsx
|
|
3
|
-
* penguins-eggs v.25.7.x / 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
|
-
* @param installDevice
|
|
14
|
-
* @param p
|
|
15
|
-
* @returns
|
|
16
|
-
*/
|
|
17
|
-
export default function uefiLuks(this: Sequence, installDevice?: string, p?: string): Promise<boolean>;
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/partition.d/uefi-luks.tsx
|
|
3
|
-
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import { exec } from '../../../../lib/utils.js';
|
|
10
|
-
import Utils from '../../../../classes/utils.js';
|
|
11
|
-
import getLuksPassphrase from '../../../lib/get_luks_passphrase.js';
|
|
12
|
-
// React
|
|
13
|
-
import React from 'react';
|
|
14
|
-
import { render } from 'ink';
|
|
15
|
-
import Install from '../../../components/install.js';
|
|
16
|
-
/**
|
|
17
|
-
*
|
|
18
|
-
* @param this
|
|
19
|
-
* @param installDevice
|
|
20
|
-
* @param p
|
|
21
|
-
* @returns
|
|
22
|
-
*/
|
|
23
|
-
export default async function uefiLuks(installDevice = "", p = "") {
|
|
24
|
-
await exec(`parted --script ${installDevice} mklabel gpt`, this.echo);
|
|
25
|
-
await exec(`parted --script ${installDevice} mkpart efi fat32 34s 256MiB`, this.echo); // sda1 EFI
|
|
26
|
-
await exec(`parted --script ${installDevice} mkpart boot ext4 256MiB 768MiB`, this.echo); // sda2 boot
|
|
27
|
-
await exec(`parted --script ${installDevice} mkpart root ext4 ${768}MiB 100%`, this.echo); // sda3 root
|
|
28
|
-
await exec(`parted --script ${installDevice} set 1 boot on`, this.echo); // sda1
|
|
29
|
-
await exec(`parted --script ${installDevice} set 1 esp on`, this.echo); // sda1
|
|
30
|
-
// EFI 256M
|
|
31
|
-
this.devices.efi.name = `${installDevice}${p}1`; // 'efi'
|
|
32
|
-
this.devices.efi.fsType = 'F 32 -I';
|
|
33
|
-
this.devices.efi.mountPoint = '/boot/efi';
|
|
34
|
-
// BOOT 512M
|
|
35
|
-
this.devices.boot.name = `${installDevice}${p}2`; // 'boot'
|
|
36
|
-
this.devices.boot.fsType = 'ext4';
|
|
37
|
-
this.devices.boot.mountPoint = '/boot';
|
|
38
|
-
// disabilito spinner per introduzione passphrase
|
|
39
|
-
let message = "Creating partitions";
|
|
40
|
-
await redraw(React.createElement(Install, { message: message, percent: 0 }));
|
|
41
|
-
const passphrase = await getLuksPassphrase('evolution', 'evolution');
|
|
42
|
-
await redraw(React.createElement(Install, { message: message, percent: 0, spinner: this.spinner }));
|
|
43
|
-
// Aggiungi parametri di sicurezza espliciti
|
|
44
|
-
const cipher = "aes-xts-plain64";
|
|
45
|
-
const keySize = "512";
|
|
46
|
-
const hash = "sha512";
|
|
47
|
-
// ROOT
|
|
48
|
-
const cryptoRoot = await exec(`echo -n "${passphrase}" | cryptsetup --batch-mode --cipher ${cipher} --key-size ${keySize} --hash ${hash} --key-file=- -v luksFormat --type luks2 ${installDevice}${p}3`, this.echo);
|
|
49
|
-
if (cryptoRoot.code !== 0) {
|
|
50
|
-
Utils.warning(`Error: ${cryptoRoot.code} ${cryptoRoot.data}`);
|
|
51
|
-
process.exit(1);
|
|
52
|
-
}
|
|
53
|
-
const cryptoRootOpen = await exec(`echo -n "${passphrase}" | cryptsetup --key-file=- luksOpen --type luks2 ${installDevice}${p}3 ${this.luksRootName}`, this.echo);
|
|
54
|
-
if (cryptoRootOpen.code !== 0) {
|
|
55
|
-
Utils.warning(`Error: ${cryptoRootOpen.code} ${cryptoRootOpen.data}`);
|
|
56
|
-
process.exit(1);
|
|
57
|
-
}
|
|
58
|
-
// this.devices.boot.name = DEFINED
|
|
59
|
-
this.devices.data.name = 'none';
|
|
60
|
-
this.devices.root.name = `/dev/mapper/${this.luksRootName}`;
|
|
61
|
-
this.devices.root.cryptedFrom = `${installDevice}${p}3`;
|
|
62
|
-
this.devices.root.fsType = 'ext4';
|
|
63
|
-
this.devices.root.mountPoint = '/';
|
|
64
|
-
this.devices.swap.name = 'none';
|
|
65
|
-
return true;
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
*
|
|
69
|
-
* @param elem
|
|
70
|
-
*/
|
|
71
|
-
async function redraw(elem) {
|
|
72
|
-
let opt = {};
|
|
73
|
-
opt.patchConsole = false;
|
|
74
|
-
opt.debug = true;
|
|
75
|
-
console.clear();
|
|
76
|
-
render(elem, opt);
|
|
77
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/partition.d/uefi-standard.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / 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 uefiStandard(this: Sequence, installDevice?: string, p?: string): Promise<boolean>;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/partition.d/uefi-standard.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / 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
|
-
export default async function uefiStandard(installDevice = "", p = "") {
|
|
11
|
-
await exec(`parted --script ${installDevice} mklabel gpt`, this.echo);
|
|
12
|
-
// Partizione EFI: inizia a 1MiB e ha una dimensione di circa 256MiB
|
|
13
|
-
// Finisce a 257MiB per avere uno spazio netto di 256MiB
|
|
14
|
-
await exec(`parted --script ${installDevice} mkpart efi fat32 1MiB 257MiB`, this.echo);
|
|
15
|
-
await exec(`parted --script ${installDevice} mkpart swap linux-swap 257MiB ${this.swapSize + 257}MiB`, this.echo);
|
|
16
|
-
await exec(`parted --script ${installDevice} mkpart root ext4 ${this.swapSize + 257}MiB 100%`, this.echo);
|
|
17
|
-
await exec(`parted --script ${installDevice} set 1 boot on`, this.echo);
|
|
18
|
-
await exec(`parted --script ${installDevice} set 1 esp on`, this.echo);
|
|
19
|
-
this.devices.efi.name = `${installDevice}${p}1`;
|
|
20
|
-
this.devices.efi.fsType = 'F 32 -I';
|
|
21
|
-
this.devices.efi.mountPoint = '/boot/efi';
|
|
22
|
-
this.devices.boot.name = 'none';
|
|
23
|
-
this.devices.swap.name = `${installDevice}${p}2`;
|
|
24
|
-
this.devices.swap.fsType = 'swap';
|
|
25
|
-
this.devices.swap.mountPoint = 'none';
|
|
26
|
-
this.devices.root.name = `${installDevice}${p}3`;
|
|
27
|
-
this.devices.root.fsType = 'ext4';
|
|
28
|
-
this.devices.root.mountPoint = '/';
|
|
29
|
-
// BOOT/DATA/EFI
|
|
30
|
-
this.devices.boot.name = 'none';
|
|
31
|
-
this.devices.data.name = 'none';
|
|
32
|
-
return true;
|
|
33
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/partition.tsx
|
|
3
|
-
* penguins-eggs v.25.7.x / 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 partition(this: Sequence): Promise<boolean>;
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/partition.tsx
|
|
3
|
-
* penguins-eggs v.25.7.x / 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 os from 'node:os';
|
|
10
|
-
import Utils from '../../../classes/utils.js';
|
|
11
|
-
import { SwapChoice, InstallationMode } from '../krill_enums.js';
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
* @param this
|
|
15
|
-
*/
|
|
16
|
-
export default async function partition() {
|
|
17
|
-
const echoYes = Utils.setEcho(true);
|
|
18
|
-
let retVal = false;
|
|
19
|
-
const installDevice = this.partitions.installationDevice;
|
|
20
|
-
const replacedPartition = this.partitions.replacedPartition;
|
|
21
|
-
let p = "";
|
|
22
|
-
if (detectDeviceType(installDevice) === "standard") {
|
|
23
|
-
p = "";
|
|
24
|
-
}
|
|
25
|
-
else if (detectDeviceType(installDevice) === "mmc") {
|
|
26
|
-
p = "";
|
|
27
|
-
}
|
|
28
|
-
else if (detectDeviceType(installDevice) === "nvme") {
|
|
29
|
-
p = "p";
|
|
30
|
-
}
|
|
31
|
-
else if (detectDeviceType(installDevice) === "raid") {
|
|
32
|
-
p = "p";
|
|
33
|
-
}
|
|
34
|
-
const installationMode = this.partitions.installationMode;
|
|
35
|
-
this.swapSize = Math.round(os.totalmem() / (1024 * 1024 * 1024)); // In GB
|
|
36
|
-
switch (this.partitions.userSwapChoice) {
|
|
37
|
-
case SwapChoice.None: {
|
|
38
|
-
this.swapSize = 0;
|
|
39
|
-
break;
|
|
40
|
-
}
|
|
41
|
-
case SwapChoice.Small: {
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
case SwapChoice.Suspend: {
|
|
45
|
-
this.swapSize *= 2;
|
|
46
|
-
break;
|
|
47
|
-
}
|
|
48
|
-
case SwapChoice.File: {
|
|
49
|
-
// total mem
|
|
50
|
-
break;
|
|
51
|
-
}
|
|
52
|
-
// No default
|
|
53
|
-
}
|
|
54
|
-
if (installationMode === InstallationMode.Replace) {
|
|
55
|
-
retVal = true;
|
|
56
|
-
}
|
|
57
|
-
else if (installationMode === InstallationMode.EraseDisk && !this.efi) {
|
|
58
|
-
retVal = await this.partitionBiosStandard(installDevice, p);
|
|
59
|
-
}
|
|
60
|
-
else if (installationMode === InstallationMode.Luks && !this.efi) {
|
|
61
|
-
retVal = await this.partitionBiosLuks(installDevice, p);
|
|
62
|
-
}
|
|
63
|
-
else if (installationMode === InstallationMode.EraseDisk && this.efi) {
|
|
64
|
-
retVal = await this.partitionUefiStandard(installDevice, p);
|
|
65
|
-
}
|
|
66
|
-
else if (installationMode === InstallationMode.Luks && this.efi) {
|
|
67
|
-
retVal = await this.partitionUefiLuks(installDevice, p);
|
|
68
|
-
}
|
|
69
|
-
return retVal;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
*
|
|
73
|
-
* @param device
|
|
74
|
-
* @returns
|
|
75
|
-
*/
|
|
76
|
-
function detectDeviceType(device) {
|
|
77
|
-
if (device.includes('nvme'))
|
|
78
|
-
return 'nvme';
|
|
79
|
-
if (device.match(/^\/dev\/md\d+/))
|
|
80
|
-
return 'raid';
|
|
81
|
-
if (device.includes('mmcblk'))
|
|
82
|
-
return 'mmc';
|
|
83
|
-
return 'standard';
|
|
84
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/remove-installer-link.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / 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
|
-
* removeInstallerLink
|
|
12
|
-
*/
|
|
13
|
-
export default function removeInstallerLink(this: Sequence): Promise<void>;
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/remove-installer-link.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / 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
|
-
/**
|
|
11
|
-
* removeInstallerLink
|
|
12
|
-
*/
|
|
13
|
-
export default async function removeInstallerLink() {
|
|
14
|
-
const file = `${this.installTarget}/usr/bin/penguins-links-add.sh`;
|
|
15
|
-
let lines = [];
|
|
16
|
-
let content = '';
|
|
17
|
-
if (fs.existsSync(file)) {
|
|
18
|
-
lines = fs.readFileSync(file, { encoding: 'utf8', flag: 'r' }).split('\n');
|
|
19
|
-
for (let i = 0; i < lines.length; i++) {
|
|
20
|
-
if (lines[i]) {
|
|
21
|
-
if (lines[i].search('penguins-krill.desktop') !== -1) {
|
|
22
|
-
lines[i] = '#' + lines[i];
|
|
23
|
-
}
|
|
24
|
-
if (lines[i].search('penguins-clinstaller.desktop') !== -1) {
|
|
25
|
-
lines[i] = '#' + lines[i];
|
|
26
|
-
}
|
|
27
|
-
if (lines[i].search('install-system.desktop') !== -1) {
|
|
28
|
-
lines[i] = '#' + lines[i];
|
|
29
|
-
}
|
|
30
|
-
content += lines[i] + '\n';
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
fs.writeFileSync(file, content);
|
|
35
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/umount.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / 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 '../../classes/sequence.js';
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
* @param mountpoint
|
|
13
|
-
*/
|
|
14
|
-
export default function umount(this: Sequence, mountPoint?: string): Promise<void>;
|