penguins-eggs 10.0.57 → 10.1.0
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 +100 -1
- package/README.md +84 -44
- package/addons/eggs/theme/calamares/modules/{_users.yml → users.yml} +3 -3
- package/addons/eggs/theme/livecd/grub.main.full.cfg +1 -7
- package/addons/eggs/theme/livecd/grub.main.simple.cfg +1 -1
- package/assets/config.cfg +30 -0
- package/conf/derivatives.yaml +1 -3
- package/conf/derivatives_fedora.yaml +6 -0
- package/conf/distros/alpine/calamares/modules/users.yml +3 -3
- package/conf/distros/bionic/calamares/calamares-modules/grubcfg/grubcfg.yml +1 -1
- package/conf/distros/bionic/calamares/modules/users.yml +3 -3
- package/conf/distros/buster/calamares/calamares-modules/cleanup/cleanup.sh +8 -1
- package/conf/distros/buster/calamares/modules/partition.yml +159 -23
- package/conf/distros/buster/calamares/modules/removeuser.yml +1 -1
- package/conf/distros/buster/calamares/modules/users.yml +3 -3
- package/conf/distros/fedora/calamares/modules/users.yml +3 -3
- package/conf/distros/noble/calamares/modules/focal-jammy/users.yml +3 -3
- package/conf/distros/opensuse/calamares/modules/users.yml +3 -3
- package/conf/distros/rolling/calamares/modules/users.yml +3 -3
- package/conf/eggs.yaml +1 -1
- package/conf/exclude.list.d/master.list +1 -0
- package/conf/krill.yaml +8 -0
- package/conf/love.yaml +4 -4
- package/package.json +33 -29
- package/perrisbrewery/scripts/postinst +98 -0
- package/perrisbrewery/scripts/postrm +82 -0
- package/perrisbrewery/scripts/preinst +40 -0
- package/perrisbrewery/scripts/prerm +47 -0
- package/perrisbrewery/template/control.template +17 -0
- package/perrisbrewery/template/dependencies-bionic.yaml +33 -0
- package/perrisbrewery/template/dependencies.yaml +37 -0
- package/perrisbrewery/template/man.template.md +110 -0
- package/pods/README.md +14 -0
- package/pods/almalinux.sh +10 -0
- package/pods/archlinux.sh +10 -0
- package/pods/ci/README.md +5 -0
- package/pods/ci/kernel-overlay-install.sh +114 -0
- package/pods/ci/minimal/almalinux-container2host.sh +165 -0
- package/pods/ci/minimal/archlinux-container2host.sh +125 -0
- package/pods/ci/minimal/debian-container2host.sh +173 -0
- package/pods/ci/minimal/fedora-container2host.sh +170 -0
- package/pods/ci/minimal/manjaro-container2host.sh +123 -0
- package/pods/ci/minimal/opensuse-container2host.sh +143 -0
- package/pods/ci/penguins-eggs-execute.sh +22 -0
- package/pods/ci/penguins-eggs-install.sh +115 -0
- package/pods/ci/run +34 -0
- package/pods/ci/run-on-almalinux.sh +50 -0
- package/pods/ci/run-on-archlinux.sh +64 -0
- package/pods/ci/run-on-debian.sh +51 -0
- package/pods/ci/run-on-devuan.sh +48 -0
- package/pods/ci/run-on-fedora.sh +51 -0
- package/pods/ci/run-on-manjaro.sh +61 -0
- package/pods/ci/run-on-opensuse.sh +58 -0
- package/pods/ci/run-on-rockylinux.sh +51 -0
- package/pods/ci/run-on-ubuntu.sh +52 -0
- package/pods/debian.sh +23 -0
- package/pods/devuan.sh +26 -0
- package/pods/fedora.sh +12 -0
- package/pods/lmde.sh +22 -0
- package/pods/manjaro.sh +10 -0
- package/pods/opensuse.sh +12 -0
- package/pods/podman.command.sh +85 -0
- package/pods/rocky.sh +12 -0
- package/pods/run-build-packages-debs.sh +45 -0
- package/pods/run-create-debs.sh +23 -0
- package/pods/ubuntu.sh +24 -0
- package/scripts/_eggs +23 -6
- package/scripts/eggs.bash +8 -6
- 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 -341
- package/dist/classes/diversions.d.ts +0 -52
- package/dist/classes/diversions.js +0 -126
- 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 -78
- 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 -1850
- package/dist/classes/pacman.d/aldos.d.ts +0 -52
- package/dist/classes/pacman.d/aldos.js +0 -100
- package/dist/classes/pacman.d/alpine.d.ts +0 -56
- package/dist/classes/pacman.d/alpine.js +0 -162
- package/dist/classes/pacman.d/archlinux.d.ts +0 -62
- package/dist/classes/pacman.d/archlinux.js +0 -139
- 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 -101
- package/dist/classes/pacman.d/openmamba.d.ts +0 -52
- package/dist/classes/pacman.d/openmamba.js +0 -100
- package/dist/classes/pacman.d/opensuse.d.ts +0 -53
- package/dist/classes/pacman.d/opensuse.js +0 -102
- package/dist/classes/pacman.d/voidlinux.d.ts +0 -52
- package/dist/classes/pacman.d/voidlinux.js +0 -90
- package/dist/classes/pacman.d.ts +0 -139
- package/dist/classes/pacman.js +0 -775
- 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 -326
- package/dist/classes/utils.js +0 -1025
- 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 -29
- package/dist/commands/export/pkg.js +0 -163
- package/dist/commands/export/tarballs.d.ts +0 -27
- package/dist/commands/export/tarballs.js +0 -84
- 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 -201
- 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 -219
- 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 -156
- 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-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 -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 -165
- package/dist/krill/modules/bootloader.d.ts +0 -14
- package/dist/krill/modules/bootloader.js +0 -95
- 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 -128
- 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 -345
- 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 -28
- 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 -626
- package/dist/krill/sequence.d.ts +0 -154
- package/dist/krill/sequence.js +0 -652
- 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 -34
- 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,165 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/bootloader-config.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 Utils from '../../classes/utils.js';
|
|
10
|
-
import { exec } from '../../lib/utils.js';
|
|
11
|
-
/**
|
|
12
|
-
*
|
|
13
|
-
* @param this
|
|
14
|
-
*/
|
|
15
|
-
export default async function bootloaderConfig() {
|
|
16
|
-
let cmd = '';
|
|
17
|
-
/**
|
|
18
|
-
* aldos
|
|
19
|
-
*/
|
|
20
|
-
if (this.distro.familyId === 'aldos') {
|
|
21
|
-
if (this.efi) {
|
|
22
|
-
try {
|
|
23
|
-
cmd = `chroot ${this.installTarget} yum install grub2 grub2-efi-x64 efibootmgr} ${this.toNull}`;
|
|
24
|
-
await exec(cmd, this.echo);
|
|
25
|
-
}
|
|
26
|
-
catch (error) {
|
|
27
|
-
await showError(cmd, error);
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
try {
|
|
32
|
-
cmd = `chroot ${this.installTarget} yum install grub2 grub2-pc ${this.toNull}`;
|
|
33
|
-
await exec(cmd, this.echo);
|
|
34
|
-
}
|
|
35
|
-
catch (error) {
|
|
36
|
-
await showError(cmd, error);
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* alpine
|
|
41
|
-
*/
|
|
42
|
-
}
|
|
43
|
-
else if (this.distro.familyId === 'alpine') {
|
|
44
|
-
if (this.efi) {
|
|
45
|
-
try {
|
|
46
|
-
cmd = `chroot ${this.installTarget} apk add grub grub-efi efibootmgr} ${this.toNull}`;
|
|
47
|
-
await exec(cmd, this.echo);
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
await showError(cmd, error);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
else {
|
|
54
|
-
try {
|
|
55
|
-
cmd = `chroot ${this.installTarget} apk add grub grub-bios ${this.toNull}`;
|
|
56
|
-
await exec(cmd, this.echo);
|
|
57
|
-
}
|
|
58
|
-
catch (error) {
|
|
59
|
-
await showError(cmd, error);
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* archlinux
|
|
64
|
-
*/
|
|
65
|
-
}
|
|
66
|
-
else if (this.distro.familyId === 'archlinux') {
|
|
67
|
-
if (this.efi) {
|
|
68
|
-
try {
|
|
69
|
-
cmd = `chroot ${this.installTarget} pacman -Sy grub efibootmgr} ${this.toNull}`;
|
|
70
|
-
await exec(cmd, this.echo);
|
|
71
|
-
}
|
|
72
|
-
catch (error) {
|
|
73
|
-
await showError(cmd, error);
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
try {
|
|
78
|
-
cmd = `chroot ${this.installTarget} pacman -Sy grub ${this.toNull}`;
|
|
79
|
-
await exec(cmd, this.echo);
|
|
80
|
-
}
|
|
81
|
-
catch (error) {
|
|
82
|
-
await showError(cmd, error);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
/**
|
|
86
|
-
* debian
|
|
87
|
-
*/
|
|
88
|
-
}
|
|
89
|
-
else if (this.distro.familyId === 'debian') {
|
|
90
|
-
try {
|
|
91
|
-
cmd = `chroot ${this.installTarget} apt-get -y update ${this.toNull}`;
|
|
92
|
-
await exec(cmd, this.echo);
|
|
93
|
-
}
|
|
94
|
-
catch (error) {
|
|
95
|
-
await showError(cmd, error);
|
|
96
|
-
}
|
|
97
|
-
await exec('sleep 1', this.echo);
|
|
98
|
-
const aptInstallOptions = ' apt install -y --no-upgrade --allow-unauthenticated -o Acquire::gpgv::Options::=--ignore-time-conflict ';
|
|
99
|
-
if (this.efi) {
|
|
100
|
-
try {
|
|
101
|
-
cmd = `chroot ${this.installTarget} ${aptInstallOptions} grub-efi-${Utils.uefiArch()} --allow-unauthenticated ${this.toNull}`;
|
|
102
|
-
await exec(cmd, this.echo);
|
|
103
|
-
}
|
|
104
|
-
catch (error) {
|
|
105
|
-
await showError(cmd, error);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
try {
|
|
110
|
-
cmd = `chroot ${this.installTarget} ${aptInstallOptions} grub-pc ${this.toNull}`;
|
|
111
|
-
await exec(cmd, this.echo);
|
|
112
|
-
}
|
|
113
|
-
catch (error) {
|
|
114
|
-
await showError(cmd, error);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* fedora/openmamba
|
|
119
|
-
*/
|
|
120
|
-
}
|
|
121
|
-
else if (this.distro.familyId === 'fedora' || this.distro.familyId === 'openmamba') {
|
|
122
|
-
if (this.efi) {
|
|
123
|
-
try {
|
|
124
|
-
cmd = `chroot ${this.installTarget} dnf -y install grub2 grub2-efi-x64 efibootmgr shim ${this.toNull}`;
|
|
125
|
-
await exec(cmd, this.echo);
|
|
126
|
-
}
|
|
127
|
-
catch (error) {
|
|
128
|
-
await showError(cmd, error);
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
else {
|
|
132
|
-
try {
|
|
133
|
-
cmd = `chroot ${this.installTarget} dnf -y install grub2 grub2-pc ${this.toNull}`;
|
|
134
|
-
await exec(cmd, this.echo);
|
|
135
|
-
}
|
|
136
|
-
catch (error) {
|
|
137
|
-
await showError(cmd, error);
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* opensuse
|
|
142
|
-
*/
|
|
143
|
-
}
|
|
144
|
-
else if (this.distro.familyId === 'opensuse') {
|
|
145
|
-
if (this.efi) {
|
|
146
|
-
try {
|
|
147
|
-
cmd = `chroot ${this.installTarget} zypper install -y grub2 grub2-i386-pc grub2-x86_64-efi- efibootmgr} ${this.toNull}`;
|
|
148
|
-
await exec(cmd, this.echo);
|
|
149
|
-
}
|
|
150
|
-
catch (error) {
|
|
151
|
-
await showError(cmd, error);
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
/**
|
|
157
|
-
*
|
|
158
|
-
* @param cmd
|
|
159
|
-
* @param error
|
|
160
|
-
*/
|
|
161
|
-
async function showError(cmd, error) {
|
|
162
|
-
console.log('error:', error);
|
|
163
|
-
console.log(cmd);
|
|
164
|
-
await Utils.pressKeyToExit(cmd, true);
|
|
165
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/bootloader.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 bootloader(this: Sequence): Promise<void>;
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/bootloader.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 Diversion from '../../classes/diversions.js';
|
|
10
|
-
import Utils from '../../classes/utils.js';
|
|
11
|
-
import { exec } from '../../lib/utils.js';
|
|
12
|
-
import fs from 'node:fs';
|
|
13
|
-
import path from 'node:path';
|
|
14
|
-
/**
|
|
15
|
-
*
|
|
16
|
-
* @param this
|
|
17
|
-
*/
|
|
18
|
-
export default async function bootloader() {
|
|
19
|
-
let grubName = Diversion.grubName(this.distro.familyId);
|
|
20
|
-
let grubForce = Diversion.grubForce(this.distro.familyId);
|
|
21
|
-
/**
|
|
22
|
-
* grub-install: added --force per fedora family
|
|
23
|
-
*/
|
|
24
|
-
let cmd = `chroot ${this.installTarget} ${grubName}-install ${this.partitions.installationDevice} ${grubForce} ${this.toNull}`;
|
|
25
|
-
await exec(cmd, this.echo);
|
|
26
|
-
/**
|
|
27
|
-
* grub-mkconfig
|
|
28
|
-
*/
|
|
29
|
-
cmd = `chroot ${this.installTarget} ${grubName}-mkconfig -o /boot/${grubName}/grub.cfg ${this.toNull}`;
|
|
30
|
-
await exec(cmd, this.echo);
|
|
31
|
-
/**
|
|
32
|
-
* In fedora family, we need to call kernel-install to force entry creation
|
|
33
|
-
*/
|
|
34
|
-
if (this.distro.familyId === "fedora") {
|
|
35
|
-
/**
|
|
36
|
-
* create grub2 entries
|
|
37
|
-
*
|
|
38
|
-
*/
|
|
39
|
-
cmd = `chroot ${this.installTarget} kernel-install add $(uname -r) /boot/vmlinuz-$(uname -r)`;
|
|
40
|
-
await exec(cmd, this.echo);
|
|
41
|
-
/**
|
|
42
|
-
* and not only: on RHEL, Almalinux, Rocky it take UUID from janitor
|
|
43
|
-
*/
|
|
44
|
-
if (this.distro.distroId === "Almalinux" || this.distro.distroId === "Rocky") {
|
|
45
|
-
/**
|
|
46
|
-
* grub2: adapt entries at new system
|
|
47
|
-
*/
|
|
48
|
-
const rootUUID = Utils.uuid(this.devices.root.name);
|
|
49
|
-
const resumeUUID = Utils.uuid(this.devices.swap.name);
|
|
50
|
-
await updateEntries(this.installTarget, rootUUID, resumeUUID);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
*
|
|
56
|
-
* @param installTarget
|
|
57
|
-
* @param rootUUID
|
|
58
|
-
* @param resumeUUID
|
|
59
|
-
*/
|
|
60
|
-
async function updateEntries(installTarget, rootUUID, resumeUUID) {
|
|
61
|
-
const entriesPath = path.join(installTarget, `/boot/loader/entries/`);
|
|
62
|
-
const entries = fs.readdirSync(entriesPath);
|
|
63
|
-
if (entries.length > 0) {
|
|
64
|
-
for (const entry of entries) {
|
|
65
|
-
const currentEntry = path.join(entriesPath, entry);
|
|
66
|
-
let source = fs.readFileSync(currentEntry, 'utf8');
|
|
67
|
-
let lines = source.split('\n');
|
|
68
|
-
let content = '';
|
|
69
|
-
for (let line of lines) {
|
|
70
|
-
line = searchAndReplace(line, 'root=UUID=', rootUUID);
|
|
71
|
-
line = searchAndReplace(line, 'resume=UUID=', resumeUUID);
|
|
72
|
-
content += line + '\n';
|
|
73
|
-
}
|
|
74
|
-
fs.writeFileSync(`${currentEntry}`, content, 'utf-8');
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
*
|
|
80
|
-
* @param line
|
|
81
|
-
* @param search
|
|
82
|
-
* @param replace
|
|
83
|
-
* @returns
|
|
84
|
-
*/
|
|
85
|
-
function searchAndReplace(line, search, replace) {
|
|
86
|
-
if (line.includes(search)) {
|
|
87
|
-
const lenSearch = search.length;
|
|
88
|
-
const lenReplace = replace.length;
|
|
89
|
-
const at = line.indexOf(search);
|
|
90
|
-
const first = line.substring(0, at + lenSearch);
|
|
91
|
-
const last = line.substring(at + lenSearch + lenReplace);
|
|
92
|
-
line = first + replace + last;
|
|
93
|
-
}
|
|
94
|
-
return line;
|
|
95
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/change-password.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
|
-
* changePassword
|
|
12
|
-
* @param name
|
|
13
|
-
* @param newPassword
|
|
14
|
-
*/
|
|
15
|
-
export default function changePassword(this: Sequence, name?: string, newPassword?: string): Promise<void>;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/change-password.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
|
-
* changePassword
|
|
12
|
-
* @param name
|
|
13
|
-
* @param newPassword
|
|
14
|
-
*/
|
|
15
|
-
export default async function changePassword(name = 'live', newPassword = 'evolution') {
|
|
16
|
-
const cmd = `echo ${name}:${newPassword} | chroot ${this.installTarget} chpasswd ${this.toNull}`;
|
|
17
|
-
await exec(cmd, this.echo);
|
|
18
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/del-live-user.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import Sequence from '../sequence.js';
|
|
10
|
-
/**
|
|
11
|
-
* delUser
|
|
12
|
-
* va corretto con users.conf di calamares
|
|
13
|
-
*/
|
|
14
|
-
export default function delLiveUser(this: Sequence): Promise<void>;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/del-live-user.ts
|
|
3
|
-
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
|
-
*/
|
|
9
|
-
import Utils from '../../classes/utils.js';
|
|
10
|
-
import { exec } from '../../lib/utils.js';
|
|
11
|
-
/**
|
|
12
|
-
* delUser
|
|
13
|
-
* va corretto con users.conf di calamares
|
|
14
|
-
*/
|
|
15
|
-
export default async function delLiveUser() {
|
|
16
|
-
if (Utils.isLive()) {
|
|
17
|
-
const user = this.settings.config.user_opt;
|
|
18
|
-
let userExists = false;
|
|
19
|
-
try {
|
|
20
|
-
const cmd = `#!/bin/sh\ngetent passwd "${user}" > /dev/null`;
|
|
21
|
-
await exec(cmd, Utils.setEcho(this.verbose));
|
|
22
|
-
userExists = true;
|
|
23
|
-
}
|
|
24
|
-
catch (error) {
|
|
25
|
-
console.log(error);
|
|
26
|
-
}
|
|
27
|
-
finally {
|
|
28
|
-
if (userExists) {
|
|
29
|
-
let cmd = `chroot ${this.installTarget} deluser --remove-home ${user} ${this.toNull}`;
|
|
30
|
-
if (this.distro.familyId === 'archlinux' ||
|
|
31
|
-
this.distro.familyId === 'fedora' ||
|
|
32
|
-
this.distro.familyId === 'opensuse') {
|
|
33
|
-
cmd = `chroot ${this.installTarget} sudo userdel -r ${user} ${this.toNull}`;
|
|
34
|
-
}
|
|
35
|
-
await exec(cmd, this.echo);
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/fstab.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
|
-
* fstab()
|
|
12
|
-
* @param devices
|
|
13
|
-
*/
|
|
14
|
-
export default function fstab(this: Sequence, installDevice: string, crypted?: boolean): Promise<void>;
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/fstab.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 shx from 'shelljs';
|
|
10
|
-
import Pacman from '../../classes/pacman.js';
|
|
11
|
-
import Utils from '../../classes/utils.js';
|
|
12
|
-
/**
|
|
13
|
-
* fstab()
|
|
14
|
-
* @param devices
|
|
15
|
-
*/
|
|
16
|
-
export default async function fstab(installDevice, crypted = false) {
|
|
17
|
-
let text = '';
|
|
18
|
-
/**
|
|
19
|
-
* crypttab
|
|
20
|
-
*/
|
|
21
|
-
if (this.partitions.installationMode === 'full-encrypted') {
|
|
22
|
-
const crypttab = this.installTarget + '/etc/crypttab';
|
|
23
|
-
text += '# /etc/crypttab: mappings for encrypted partitions.\n';
|
|
24
|
-
text += '#\n';
|
|
25
|
-
text += '# Each mapped device will be created in /dev/mapper, so your /etc/fstab\n';
|
|
26
|
-
text += '# should use the /dev/mapper/<name> paths for encrypted devices.\n';
|
|
27
|
-
text += '#\n';
|
|
28
|
-
text += '# See crypttab(5) for the supported syntax.\n';
|
|
29
|
-
text += '#\n';
|
|
30
|
-
text += '# NOTE: You need not list your root (/) partition here, but it must be set up\n';
|
|
31
|
-
text += '# beforehand by the initramfs (/etc/mkinitcpio.conf). The same applies\n';
|
|
32
|
-
text += '# to encrypted swap, which should be set up with mkinitcpio-openswap\n';
|
|
33
|
-
text += '# for resume support.\n';
|
|
34
|
-
text += '#\n';
|
|
35
|
-
text += '# <name> <device> <password> <options>\n';
|
|
36
|
-
text += `#swap_crypted was ${this.devices.swap.cryptedFrom}\n`;
|
|
37
|
-
text += `swap_crypted UUID=${Utils.uuid(this.devices.swap.cryptedFrom)} none luks,discard\n`;
|
|
38
|
-
text += `#root_crypted was ${this.devices.root.cryptedFrom}\n`;
|
|
39
|
-
text += `root_crypted UUID=${Utils.uuid(this.devices.root.cryptedFrom)} none luks,swap\n`;
|
|
40
|
-
Utils.write(crypttab, text);
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* fstab
|
|
44
|
-
*/
|
|
45
|
-
if (!Pacman.packageIsInstalled('btrfs-progs')) {
|
|
46
|
-
this.partitions.filesystemType === 'ext4';
|
|
47
|
-
}
|
|
48
|
-
const fstab = this.installTarget + '/etc/fstab';
|
|
49
|
-
let mountOptsRoot = '';
|
|
50
|
-
let mountOptsBoot = '';
|
|
51
|
-
let mountOptsData = '';
|
|
52
|
-
let mountOptsEfi = '';
|
|
53
|
-
let mountOptsSwap = '';
|
|
54
|
-
if (this.partitions.filesystemType === 'ext4') {
|
|
55
|
-
if (await isRotational(installDevice)) {
|
|
56
|
-
mountOptsRoot = 'defaults,relatime 0 1';
|
|
57
|
-
mountOptsBoot = 'defaults,relatime 0 1';
|
|
58
|
-
mountOptsData = 'defaults,relatime 0 1';
|
|
59
|
-
mountOptsEfi = 'defaults,relatime 0 2';
|
|
60
|
-
mountOptsSwap = 'defaults,relatime 0 2';
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
mountOptsRoot = 'defaults,noatime 0 1';
|
|
64
|
-
mountOptsBoot = 'defaults,noatime 0 1';
|
|
65
|
-
mountOptsData = 'defaults,noatime 0 1';
|
|
66
|
-
mountOptsEfi = 'defaults,noatime 0 2';
|
|
67
|
-
mountOptsSwap = 'defaults,noatime 0 2';
|
|
68
|
-
}
|
|
69
|
-
text = '';
|
|
70
|
-
text += `# ${this.devices.root.name} ${this.devices.root.mountPoint} ${this.devices.root.fsType} ${mountOptsRoot}\n`;
|
|
71
|
-
text += `UUID=${Utils.uuid(this.devices.root.name)} ${this.devices.root.mountPoint} ${this.devices.root.fsType} ${mountOptsRoot}\n`;
|
|
72
|
-
if (this.devices.boot.name !== 'none') {
|
|
73
|
-
text += `# ${this.devices.boot.name} ${this.devices.boot.mountPoint} ${this.devices.boot.fsType} ${mountOptsBoot}\n`;
|
|
74
|
-
text += `UUID=${Utils.uuid(this.devices.boot.name)} ${this.devices.boot.mountPoint} ${this.devices.root.fsType} ${mountOptsBoot}\n`;
|
|
75
|
-
}
|
|
76
|
-
if (this.devices.data.name !== 'none') {
|
|
77
|
-
text += `# ${this.devices.data.name} ${this.devices.data.mountPoint} ${this.devices.data.fsType} ${mountOptsData}\n`;
|
|
78
|
-
text += `UUID=${Utils.uuid(this.devices.data.name)} ${this.devices.data.mountPoint} ${this.devices.data.fsType} ${mountOptsData}\n`;
|
|
79
|
-
}
|
|
80
|
-
if (this.efi) {
|
|
81
|
-
text += `# ${this.devices.efi.name} ${this.devices.efi.mountPoint} vfat ${mountOptsEfi}\n`;
|
|
82
|
-
text += `UUID=${Utils.uuid(this.devices.efi.name)} ${this.devices.efi.mountPoint} vfat ${mountOptsEfi}\n`;
|
|
83
|
-
}
|
|
84
|
-
text += `# ${this.devices.swap.name} ${this.devices.swap.mountPoint} ${this.devices.swap.fsType} ${mountOptsSwap}\n`;
|
|
85
|
-
text += `UUID=${Utils.uuid(this.devices.swap.name)} ${this.devices.swap.mountPoint} ${this.devices.swap.fsType} ${mountOptsSwap}\n`;
|
|
86
|
-
}
|
|
87
|
-
else if (this.partitions.filesystemType === 'btrfs') {
|
|
88
|
-
const base = '/ btrfs subvol=/@,defaults 0 0';
|
|
89
|
-
const snapshots = '/.snapshots btrfs subvol=/@snapshots,defaults 0 0';
|
|
90
|
-
const home = '/home btrfs subvol=/@home,defaults 0 0';
|
|
91
|
-
const root = '/root btrfs subvol=/@root,defaults 0 0';
|
|
92
|
-
const var_log = '/var/log btrfs subvol=/@var@log,defaults 0 0';
|
|
93
|
-
const var_lib_AccountsService = '/var/lib/AccountsService btrfs subvol=/@var@lib@AccountsService,defaults 0 0';
|
|
94
|
-
const var_lib_blueman = '/var/lib/blueman btrfs subvol=/@var@lib@blueman,defaults 0 0';
|
|
95
|
-
const tmp = '/tmp btrfs subvol=/@tmp,defaults 0 0';
|
|
96
|
-
text += `# ${this.devices.root.name} btrfs ${this.devices.root.mountPoint} subvol\n`;
|
|
97
|
-
text += `UUID=${Utils.uuid(this.devices.root.name)} ${base}\n`;
|
|
98
|
-
text += `# UUID=${Utils.uuid(this.devices.root.name)} ${snapshots}\n`;
|
|
99
|
-
text += `# UUID=${Utils.uuid(this.devices.root.name)} ${home}\n`;
|
|
100
|
-
text += `# UUID=${Utils.uuid(this.devices.root.name)} ${root}\n`;
|
|
101
|
-
text += `# UUID=${Utils.uuid(this.devices.root.name)} ${var_log}\n`;
|
|
102
|
-
text += `# UUID=${Utils.uuid(this.devices.root.name)} ${var_lib_AccountsService}\n`;
|
|
103
|
-
text += `# UUID=${Utils.uuid(this.devices.root.name)} ${var_lib_blueman}\n`;
|
|
104
|
-
text += `# UUID=${Utils.uuid(this.devices.root.name)} ${tmp}\n`;
|
|
105
|
-
}
|
|
106
|
-
//console.log(text)
|
|
107
|
-
//Utils.pressKeyToExit()
|
|
108
|
-
Utils.write(fstab, text);
|
|
109
|
-
}
|
|
110
|
-
/**
|
|
111
|
-
* isRotational
|
|
112
|
-
* @param device
|
|
113
|
-
*/
|
|
114
|
-
async function isRotational(device) {
|
|
115
|
-
device = device.slice(4);
|
|
116
|
-
let response;
|
|
117
|
-
let retVal = false;
|
|
118
|
-
// Check if the selected disk is a software raid
|
|
119
|
-
if (device.startsWith('md')) {
|
|
120
|
-
// Get the first disk from which the raid is composed
|
|
121
|
-
device = shx.exec(`cat /proc/mdstat | grep ${device} | cut -f 5 -d " " | cut -f 1 -d "["`).stdout.trim();
|
|
122
|
-
}
|
|
123
|
-
response = shx.exec(`cat /sys/block/${device}/queue/rotational`, { silent: true }).stdout.trim();
|
|
124
|
-
if (response === '1') {
|
|
125
|
-
retVal = true;
|
|
126
|
-
}
|
|
127
|
-
return retVal;
|
|
128
|
-
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/grubcfg.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
|
-
* grubcfg
|
|
12
|
-
* - open /etc/default/grub
|
|
13
|
-
* - find GRUB_CMDLINE_LINUX_DEFAULT=
|
|
14
|
-
* - replace with GRUB_CMDLINE_LINUX_DEFAULT=
|
|
15
|
-
* 's/GRUB_CMDLINE_LINUX_DEFAULT=.*$/GRUB_CMDLINE_LINUX_DEFAULT=/g'
|
|
16
|
-
*/
|
|
17
|
-
export default function grubcfg(this: Sequence): Promise<void>;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/grubcfg.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
|
-
/**
|
|
12
|
-
* grubcfg
|
|
13
|
-
* - open /etc/default/grub
|
|
14
|
-
* - find GRUB_CMDLINE_LINUX_DEFAULT=
|
|
15
|
-
* - replace with GRUB_CMDLINE_LINUX_DEFAULT=
|
|
16
|
-
* 's/GRUB_CMDLINE_LINUX_DEFAULT=.*$/GRUB_CMDLINE_LINUX_DEFAULT=/g'
|
|
17
|
-
*/
|
|
18
|
-
export default async function grubcfg() {
|
|
19
|
-
const file = `${this.installTarget}/etc/default/grub`;
|
|
20
|
-
let content = '';
|
|
21
|
-
const grubs = fs.readFileSync(file, 'utf8').split('\n');
|
|
22
|
-
for (let i = 0; i < grubs.length; i++) {
|
|
23
|
-
if (grubs[i].includes('GRUB_CMDLINE_LINUX_DEFAULT=')) {
|
|
24
|
-
grubs[i] = this.partitions.installationMode === 'full-encrypted' ? `GRUB_CMDLINE_LINUX_DEFAULT="resume=UUID=${Utils.uuid(this.devices.swap.name)}"` : `GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=${Utils.uuid(this.devices.swap.name)}"`;
|
|
25
|
-
}
|
|
26
|
-
content += grubs[i] + '\n';
|
|
27
|
-
}
|
|
28
|
-
fs.writeFileSync(file, content, 'utf-8');
|
|
29
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/hostnames.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
|
-
* hostname
|
|
12
|
-
*/
|
|
13
|
-
export default function hostname(this: Sequence, domain?: string): Promise<void>;
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/hostnames.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
|
-
/**
|
|
11
|
-
* hostname
|
|
12
|
-
*/
|
|
13
|
-
export default async function hostname(domain = '') {
|
|
14
|
-
const { hostname } = this.users;
|
|
15
|
-
/**
|
|
16
|
-
* hostname
|
|
17
|
-
*/
|
|
18
|
-
{
|
|
19
|
-
const file = this.installTarget + '/etc/hostname';
|
|
20
|
-
const text = hostname;
|
|
21
|
-
fs.writeFileSync(file, text);
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* hosts
|
|
25
|
-
*/
|
|
26
|
-
{
|
|
27
|
-
const file = this.installTarget + '/etc/hosts';
|
|
28
|
-
if (domain === '(none)') {
|
|
29
|
-
domain = '';
|
|
30
|
-
}
|
|
31
|
-
let text = '127.0.0.1 localhost localhost.localdomain\n';
|
|
32
|
-
if (this.network.addressType === 'static') {
|
|
33
|
-
text += `${this.network.address} ${hostname} ${hostname}${domain} pvelocalhost pvelocalhost.pvelocaldomain\n`;
|
|
34
|
-
}
|
|
35
|
-
else if (domain === '') {
|
|
36
|
-
text += `127.0.1.1 ${hostname}\n`;
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
text += `127.0.1.1 ${hostname} ${hostname}${domain}\n`;
|
|
40
|
-
}
|
|
41
|
-
text += '# The following lines are desirable for IPv6 capable hosts\n';
|
|
42
|
-
text += ':: 1 ip6 - localhost ip6 - loopback\n';
|
|
43
|
-
text += 'fe00:: 0 ip6 - localnet\n';
|
|
44
|
-
text += 'ff00:: 0 ip6 - mcastprefix\n';
|
|
45
|
-
text += 'ff02:: 1 ip6 - allnodes\n';
|
|
46
|
-
text += 'ff02:: 2 ip6 - allrouters\n';
|
|
47
|
-
text += 'ff02:: 3 ip6 - allhosts\n';
|
|
48
|
-
fs.writeFileSync(file, text);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/initramfs-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
|
-
*
|
|
12
|
-
* @param this
|
|
13
|
-
*/
|
|
14
|
-
export default function initramfsCfg(this: Sequence, installDevice: string): Promise<void>;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/krill/modules/initramfs-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 Utils from '../../classes/utils.js';
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
* @param this
|
|
13
|
-
*/
|
|
14
|
-
export default async function initramfsCfg(installDevice) {
|
|
15
|
-
if (this.distro.familyId === 'debian') {
|
|
16
|
-
// userSwapChoices = ['none', 'small', 'suspend', 'file']
|
|
17
|
-
const file = this.installTarget + '/etc/initramfs-tools/conf.d/resume';
|
|
18
|
-
let text = '';
|
|
19
|
-
text += this.partitions.userSwapChoice === 'none' || this.partitions.userSwapChoice === 'file' ? '#RESUME=none\n' : 'RESUME=UUID=' + Utils.uuid(this.devices.swap.name);
|
|
20
|
-
Utils.write(file, text);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
@@ -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>;
|