penguins-eggs 25.10.28 → 25.10.30
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/addons/eggs/theme/applications/install-system.desktop +8 -6
- package/assets/calamares/io.calamares.calamares.policy +25 -0
- package/dist/classes/bleach.d.ts +37 -0
- package/dist/classes/bleach.js +148 -0
- package/dist/classes/cli-autologin.d.ts +52 -0
- package/dist/classes/cli-autologin.js +252 -0
- package/dist/classes/compressors.d.ts +54 -0
- package/dist/classes/compressors.js +109 -0
- package/dist/classes/daddy.d.ts +26 -0
- package/dist/classes/daddy.js +179 -0
- package/dist/classes/distro.d.ts +32 -0
- package/dist/classes/distro.js +363 -0
- package/dist/classes/diversions.d.ts +53 -0
- package/dist/classes/diversions.js +131 -0
- package/dist/classes/incubation/branding.d.ts +17 -0
- package/dist/classes/incubation/branding.js +85 -0
- package/dist/classes/incubation/customize/customize-partitions.d.ts +12 -0
- package/dist/classes/incubation/customize/customize-partitions.js +37 -0
- package/dist/classes/incubation/fisherman-helper/initcpio.d.ts +1 -0
- package/dist/classes/incubation/fisherman-helper/initcpio.js +69 -0
- package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
- package/dist/classes/incubation/fisherman-helper/packages.js +72 -0
- package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
- package/dist/classes/incubation/fisherman-helper/settings.js +116 -0
- package/dist/classes/incubation/fisherman.d.ts +71 -0
- package/dist/classes/incubation/fisherman.js +281 -0
- package/dist/classes/incubation/incubator.d/alpine.d.ts +32 -0
- package/dist/classes/incubation/incubator.d/alpine.js +78 -0
- package/dist/classes/incubation/incubator.d/archlinux.d.ts +32 -0
- package/dist/classes/incubation/incubator.d/archlinux.js +82 -0
- package/dist/classes/incubation/incubator.d/bionic.d.ts +32 -0
- package/dist/classes/incubation/incubator.d/bionic.js +83 -0
- package/dist/classes/incubation/incubator.d/buster.d.ts +32 -0
- package/dist/classes/incubation/incubator.d/buster.js +101 -0
- package/dist/classes/incubation/incubator.d/fedora.d.ts +32 -0
- package/dist/classes/incubation/incubator.d/fedora.js +81 -0
- package/dist/classes/incubation/incubator.d/focal.d.ts +32 -0
- package/dist/classes/incubation/incubator.d/focal.js +85 -0
- package/dist/classes/incubation/incubator.d/manjaro.d.ts +32 -0
- package/dist/classes/incubation/incubator.d/manjaro.js +82 -0
- package/dist/classes/incubation/incubator.d/noble.d.ts +32 -0
- package/dist/classes/incubation/incubator.d/noble.js +102 -0
- package/dist/classes/incubation/incubator.d/openmamba.d.ts +32 -0
- package/dist/classes/incubation/incubator.d/openmamba.js +81 -0
- package/dist/classes/incubation/incubator.d/opensuse.d.ts +32 -0
- package/dist/classes/incubation/incubator.d/opensuse.js +81 -0
- package/dist/classes/incubation/incubator.d/trixie.d.ts +32 -0
- package/dist/classes/incubation/incubator.d/trixie.js +98 -0
- package/dist/classes/incubation/incubator.d.ts +49 -0
- package/dist/classes/incubation/incubator.js +383 -0
- package/dist/classes/incubation/installer.d.ts +13 -0
- package/dist/classes/incubation/installer.js +52 -0
- package/dist/classes/keyboards.d.ts +50 -0
- package/dist/classes/keyboards.js +287 -0
- package/dist/classes/locales.d.ts +21 -0
- package/dist/classes/locales.js +77 -0
- package/dist/classes/network.d.ts +37 -0
- package/dist/classes/network.js +98 -0
- package/dist/classes/ovary.d/bind-live-fs.d.ts +18 -0
- package/dist/classes/ovary.d/bind-live-fs.js +185 -0
- package/dist/classes/ovary.d/bind-vfs.d.ts +17 -0
- package/dist/classes/ovary.d/bind-vfs.js +37 -0
- package/dist/classes/ovary.d/create-xdg-autostart.d.ts +13 -0
- package/dist/classes/ovary.d/create-xdg-autostart.js +193 -0
- package/dist/classes/ovary.d/edit-live-fs.d.ts +20 -0
- package/dist/classes/ovary.d/edit-live-fs.js +239 -0
- package/dist/classes/ovary.d/fertilization.d.ts +12 -0
- package/dist/classes/ovary.d/fertilization.js +53 -0
- package/dist/classes/ovary.d/finished.d.ts +13 -0
- package/dist/classes/ovary.d/finished.js +40 -0
- package/dist/classes/ovary.d/initrd.d.ts +21 -0
- package/dist/classes/ovary.d/initrd.js +96 -0
- package/dist/classes/ovary.d/kernel-copy.d.ts +12 -0
- package/dist/classes/ovary.d/kernel-copy.js +22 -0
- package/dist/classes/ovary.d/live-create-structure.d.ts +12 -0
- package/dist/classes/ovary.d/live-create-structure.js +70 -0
- package/dist/classes/ovary.d/luks-get-password.d.ts +12 -0
- package/dist/classes/ovary.d/luks-get-password.js +58 -0
- package/dist/classes/ovary.d/luks-helpers.d.ts +19 -0
- package/dist/classes/ovary.d/luks-helpers.js +73 -0
- package/dist/classes/ovary.d/luks-home-support.d.ts +12 -0
- package/dist/classes/ovary.d/luks-home-support.js +70 -0
- package/dist/classes/ovary.d/luks-home.d.ts +15 -0
- package/dist/classes/ovary.d/luks-home.js +132 -0
- package/dist/classes/ovary.d/luks-interactive-crypto-config.d.ts +47 -0
- package/dist/classes/ovary.d/luks-interactive-crypto-config.js +139 -0
- package/dist/classes/ovary.d/luks-root-initrd.d.ts +17 -0
- package/dist/classes/ovary.d/luks-root-initrd.js +213 -0
- package/dist/classes/ovary.d/luks-root.d.ts +15 -0
- package/dist/classes/ovary.d/luks-root.js +123 -0
- package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
- package/dist/classes/ovary.d/make-dot-disk.js +71 -0
- package/dist/classes/ovary.d/make-efi.d.ts +14 -0
- package/dist/classes/ovary.d/make-efi.js +296 -0
- package/dist/classes/ovary.d/make-iso.d.ts +13 -0
- package/dist/classes/ovary.d/make-iso.js +45 -0
- package/dist/classes/ovary.d/make-squashfs.d.ts +18 -0
- package/dist/classes/ovary.d/make-squashfs.js +111 -0
- package/dist/classes/ovary.d/merged.d.ts +27 -0
- package/dist/classes/ovary.d/merged.js +78 -0
- package/dist/classes/ovary.d/produce.d.ts +23 -0
- package/dist/classes/ovary.d/produce.js +349 -0
- package/dist/classes/ovary.d/rexec.d.ts +13 -0
- package/dist/classes/ovary.d/rexec.js +34 -0
- package/dist/classes/ovary.d/syslinux.d.ts +12 -0
- package/dist/classes/ovary.d/syslinux.js +99 -0
- package/dist/classes/ovary.d/user-create-live.d.ts +14 -0
- package/dist/classes/ovary.d/user-create-live.js +97 -0
- package/dist/classes/ovary.d/users-remove.d.ts +9 -0
- package/dist/classes/ovary.d/users-remove.js +38 -0
- package/dist/classes/ovary.d/xorriso-command.d.ts +14 -0
- package/dist/classes/ovary.d/xorriso-command.js +125 -0
- package/dist/classes/ovary.d.ts +111 -0
- package/dist/classes/ovary.js +122 -0
- package/dist/classes/pacman.d/alpine.d.ts +56 -0
- package/dist/classes/pacman.d/alpine.js +167 -0
- package/dist/classes/pacman.d/archlinux.d.ts +62 -0
- package/dist/classes/pacman.d/archlinux.js +128 -0
- package/dist/classes/pacman.d/debian.d.ts +65 -0
- package/dist/classes/pacman.d/debian.js +143 -0
- package/dist/classes/pacman.d/fedora.d.ts +53 -0
- package/dist/classes/pacman.d/fedora.js +107 -0
- package/dist/classes/pacman.d/openmamba.d.ts +52 -0
- package/dist/classes/pacman.d/openmamba.js +106 -0
- package/dist/classes/pacman.d/opensuse.d.ts +53 -0
- package/dist/classes/pacman.d/opensuse.js +109 -0
- package/dist/classes/pacman.d.ts +139 -0
- package/dist/classes/pacman.js +683 -0
- package/dist/classes/pve-live.d.ts +17 -0
- package/dist/classes/pve-live.js +52 -0
- package/dist/classes/pxe.d.ts +76 -0
- package/dist/classes/pxe.js +353 -0
- package/dist/classes/settings.d.ts +52 -0
- package/dist/classes/settings.js +185 -0
- package/dist/classes/sources_list.d.ts +28 -0
- package/dist/classes/sources_list.js +89 -0
- package/dist/classes/systemctl.d.ts +47 -0
- package/dist/classes/systemctl.js +86 -0
- package/dist/classes/tailor.d.ts +50 -0
- package/dist/classes/tailor.js +563 -0
- package/dist/classes/tools.d.ts +26 -0
- package/dist/classes/tools.js +50 -0
- package/dist/classes/users.d.ts +28 -0
- package/dist/classes/users.js +143 -0
- package/dist/classes/utils.d/kernel.d.ts +39 -0
- package/dist/classes/utils.d/kernel.js +206 -0
- package/dist/classes/utils.d.ts +330 -0
- package/dist/classes/utils.js +968 -0
- package/dist/classes/xdg.d.ts +45 -0
- package/dist/classes/xdg.js +337 -0
- package/dist/classes/yolk.d.ts +33 -0
- package/dist/classes/yolk.js +114 -0
- package/dist/commands/adapt.d.ts +17 -0
- package/dist/commands/adapt.js +33 -0
- package/dist/commands/analyze.d.ts +26 -0
- package/dist/commands/analyze.js +95 -0
- package/dist/commands/calamares.d.ts +29 -0
- package/dist/commands/calamares.js +112 -0
- package/dist/commands/config.d.ts +35 -0
- package/dist/commands/config.js +120 -0
- package/dist/commands/cuckoo.d.ts +17 -0
- package/dist/commands/cuckoo.js +61 -0
- package/dist/commands/dad.d.ts +21 -0
- package/dist/commands/dad.js +47 -0
- package/dist/commands/export/iso.d.ts +19 -0
- package/dist/commands/export/iso.js +55 -0
- package/dist/commands/export/pkg.d.ts +29 -0
- package/dist/commands/export/pkg.js +173 -0
- package/dist/commands/export/tarballs.d.ts +27 -0
- package/dist/commands/export/tarballs.js +79 -0
- package/dist/commands/install.d.ts +39 -0
- package/dist/commands/install.js +113 -0
- package/dist/commands/kill.d.ts +24 -0
- package/dist/commands/kill.js +50 -0
- package/dist/commands/love.d.ts +25 -0
- package/dist/commands/love.js +118 -0
- package/dist/commands/mom.d.ts +16 -0
- package/dist/commands/mom.js +30 -0
- package/dist/commands/pods.d.ts +22 -0
- package/dist/commands/pods.js +92 -0
- package/dist/commands/produce.d.ts +37 -0
- package/dist/commands/produce.js +232 -0
- package/dist/commands/status.d.ts +23 -0
- package/dist/commands/status.js +31 -0
- package/dist/commands/tools/clean.d.ts +18 -0
- package/dist/commands/tools/clean.js +37 -0
- package/dist/commands/tools/repo.d.ts +31 -0
- package/dist/commands/tools/repo.js +246 -0
- package/dist/commands/tools/skel.d.ts +18 -0
- package/dist/commands/tools/skel.js +44 -0
- package/dist/commands/tools/stat.d.ts +31 -0
- package/dist/commands/tools/stat.js +70 -0
- package/dist/commands/tools/yolk.d.ts +24 -0
- package/dist/commands/tools/yolk.js +45 -0
- package/dist/commands/update.d.ts +46 -0
- package/dist/commands/update.js +238 -0
- package/dist/commands/wardrobe/get.d.ts +23 -0
- package/dist/commands/wardrobe/get.js +52 -0
- package/dist/commands/wardrobe/list.d.ts +24 -0
- package/dist/commands/wardrobe/list.js +125 -0
- package/dist/commands/wardrobe/show.d.ts +25 -0
- package/dist/commands/wardrobe/show.js +97 -0
- package/dist/commands/wardrobe/wear.d.ts +26 -0
- package/dist/commands/wardrobe/wear.js +84 -0
- package/dist/dhcpd-proxy/classes/packet.d.ts +36 -0
- package/dist/dhcpd-proxy/classes/packet.js +124 -0
- package/dist/dhcpd-proxy/index.d.ts +4 -0
- package/dist/dhcpd-proxy/index.js +4 -0
- package/dist/dhcpd-proxy/interfaces/i-pxe.d.ts +45 -0
- package/dist/dhcpd-proxy/interfaces/i-pxe.js +1 -0
- package/dist/dhcpd-proxy/lib/packet/converters.d.ts +11 -0
- package/dist/dhcpd-proxy/lib/packet/converters.js +395 -0
- package/dist/dhcpd-proxy/lib/packet/message-types.d.ts +10 -0
- package/dist/dhcpd-proxy/lib/packet/message-types.js +12 -0
- package/dist/dhcpd-proxy/lib/packet/options.d.ts +8 -0
- package/dist/dhcpd-proxy/lib/packet/options.js +264 -0
- package/dist/dhcpd-proxy/lib/sprintf.d.ts +6 -0
- package/dist/dhcpd-proxy/lib/sprintf.js +130 -0
- package/dist/dhcpd-proxy/lib/utils.d.ts +126 -0
- package/dist/dhcpd-proxy/lib/utils.js +255 -0
- package/dist/dhcpd-proxy/simple-proxy.d.ts +11 -0
- package/dist/dhcpd-proxy/simple-proxy.js +118 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +8 -0
- package/dist/interfaces/calamares/i-calamares-bootloader.d.ts +23 -0
- package/dist/interfaces/calamares/i-calamares-bootloader.js +7 -0
- package/dist/interfaces/calamares/i-calamares-branding.d.ts +46 -0
- package/dist/interfaces/calamares/i-calamares-branding.js +1 -0
- package/dist/interfaces/calamares/i-calamares-displaymanager.d.ts +34 -0
- package/dist/interfaces/calamares/i-calamares-displaymanager.js +1 -0
- package/dist/interfaces/calamares/i-calamares-finished.d.ts +14 -0
- package/dist/interfaces/calamares/i-calamares-finished.js +1 -0
- package/dist/interfaces/calamares/i-calamares-packages.d.ts +26 -0
- package/dist/interfaces/calamares/i-calamares-packages.js +1 -0
- package/dist/interfaces/calamares/i-calamares-partitions.d.ts +39 -0
- package/dist/interfaces/calamares/i-calamares-partitions.js +1 -0
- package/dist/interfaces/calamares/i-calamares-settings.d.ts +36 -0
- package/dist/interfaces/calamares/i-calamares-settings.js +1 -0
- package/dist/interfaces/i-addons.d.ts +12 -0
- package/dist/interfaces/i-addons.js +8 -0
- package/dist/interfaces/i-analyze.d.ts +17 -0
- package/dist/interfaces/i-analyze.js +17 -0
- package/dist/interfaces/i-app.d.ts +14 -0
- package/dist/interfaces/i-app.js +8 -0
- package/dist/interfaces/i-config-tools.d.ts +15 -0
- package/dist/interfaces/i-config-tools.js +8 -0
- package/dist/interfaces/i-devices.d.ts +20 -0
- package/dist/interfaces/i-devices.js +8 -0
- package/dist/interfaces/i-distro.d.ts +23 -0
- package/dist/interfaces/i-distro.js +8 -0
- package/dist/interfaces/i-drive-list.d.ts +33 -0
- package/dist/interfaces/i-drive-list.js +8 -0
- package/dist/interfaces/i-eggs-config.d.ts +32 -0
- package/dist/interfaces/i-eggs-config.js +8 -0
- package/dist/interfaces/i-excludes.d.ts +14 -0
- package/dist/interfaces/i-excludes.js +8 -0
- package/dist/interfaces/i-exec.d.ts +11 -0
- package/dist/interfaces/i-exec.js +8 -0
- package/dist/interfaces/i-initrd.d.ts +13 -0
- package/dist/interfaces/i-initrd.js +8 -0
- package/dist/interfaces/i-install.d.ts +16 -0
- package/dist/interfaces/i-install.js +8 -0
- package/dist/interfaces/i-installer.d.ts +17 -0
- package/dist/interfaces/i-installer.js +8 -0
- package/dist/interfaces/i-luks-passphrase.d.ts +11 -0
- package/dist/interfaces/i-luks-passphrase.js +8 -0
- package/dist/interfaces/i-materia.d.ts +36 -0
- package/dist/interfaces/i-materia.js +8 -0
- package/dist/interfaces/i-net.d.ts +16 -0
- package/dist/interfaces/i-net.js +8 -0
- package/dist/interfaces/i-os-release.d.ts +5 -0
- package/dist/interfaces/i-os-release.js +1 -0
- package/dist/interfaces/i-packages.d.ts +16 -0
- package/dist/interfaces/i-packages.js +8 -0
- package/dist/interfaces/i-partitions.d.ts +16 -0
- package/dist/interfaces/i-partitions.js +8 -0
- package/dist/interfaces/i-pxe.d.ts +45 -0
- package/dist/interfaces/i-pxe.js +1 -0
- package/dist/interfaces/i-remix.d.ts +21 -0
- package/dist/interfaces/i-remix.js +8 -0
- package/dist/interfaces/i-settings.d.ts +33 -0
- package/dist/interfaces/i-settings.js +8 -0
- package/dist/interfaces/i-user.d.ts +14 -0
- package/dist/interfaces/i-user.js +8 -0
- package/dist/interfaces/i-workdir.d.ts +14 -0
- package/dist/interfaces/i-workdir.js +8 -0
- package/dist/interfaces/i-xkb-model.d.ts +24 -0
- package/dist/interfaces/i-xkb-model.js +8 -0
- package/dist/interfaces/index.d.ts +26 -0
- package/dist/interfaces/index.js +8 -0
- package/dist/krill/classes/cfs.d.ts +17 -0
- package/dist/krill/classes/cfs.js +39 -0
- package/dist/krill/classes/krill_enums.d.ts +37 -0
- package/dist/krill/classes/krill_enums.js +41 -0
- package/dist/krill/classes/prepare.d/confirm.d.ts +5 -0
- package/dist/krill/classes/prepare.d/confirm.js +30 -0
- package/dist/krill/classes/prepare.d/keyboard.d.ts +14 -0
- package/dist/krill/classes/prepare.d/keyboard.js +62 -0
- package/dist/krill/classes/prepare.d/location.d.ts +17 -0
- package/dist/krill/classes/prepare.d/location.js +59 -0
- package/dist/krill/classes/prepare.d/network.d.ts +14 -0
- package/dist/krill/classes/prepare.d/network.js +68 -0
- package/dist/krill/classes/prepare.d/partitions.d.ts +14 -0
- package/dist/krill/classes/prepare.d/partitions.js +86 -0
- package/dist/krill/classes/prepare.d/summary.d.ts +15 -0
- package/dist/krill/classes/prepare.d/summary.js +72 -0
- package/dist/krill/classes/prepare.d/users.d.ts +6 -0
- package/dist/krill/classes/prepare.d/users.js +63 -0
- package/dist/krill/classes/prepare.d/welcome.d.ts +6 -0
- package/dist/krill/classes/prepare.d/welcome.js +30 -0
- package/dist/krill/classes/prepare.d.ts +89 -0
- package/dist/krill/classes/prepare.js +319 -0
- package/dist/krill/classes/sequence.d/add_user.d.ts +20 -0
- package/dist/krill/classes/sequence.d/add_user.js +77 -0
- package/dist/krill/classes/sequence.d/bootloader.d.ts +14 -0
- package/dist/krill/classes/sequence.d/bootloader.js +117 -0
- package/dist/krill/classes/sequence.d/bootloader_config.d.ts +14 -0
- package/dist/krill/classes/sequence.d/bootloader_config.js +192 -0
- package/dist/krill/classes/sequence.d/change_password.d.ts +15 -0
- package/dist/krill/classes/sequence.d/change_password.js +18 -0
- package/dist/krill/classes/sequence.d/del_live_user.d.ts +14 -0
- package/dist/krill/classes/sequence.d/del_live_user.js +39 -0
- package/dist/krill/classes/sequence.d/fstab.d.ts +14 -0
- package/dist/krill/classes/sequence.d/fstab.js +177 -0
- package/dist/krill/classes/sequence.d/grubcfg.d.ts +17 -0
- package/dist/krill/classes/sequence.d/grubcfg.js +35 -0
- package/dist/krill/classes/sequence.d/hostname.d.ts +13 -0
- package/dist/krill/classes/sequence.d/hostname.js +50 -0
- package/dist/krill/classes/sequence.d/initramfs.d.ts +13 -0
- package/dist/krill/classes/sequence.d/initramfs.js +54 -0
- package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +14 -0
- package/dist/krill/classes/sequence.d/initramfs_cfg.js +35 -0
- package/dist/krill/classes/sequence.d/locale.d.ts +13 -0
- package/dist/krill/classes/sequence.d/locale.js +91 -0
- package/dist/krill/classes/sequence.d/locale_cfg.d.ts +10 -0
- package/dist/krill/classes/sequence.d/locale_cfg.js +58 -0
- package/dist/krill/classes/sequence.d/m_keyboard.d.ts +14 -0
- package/dist/krill/classes/sequence.d/m_keyboard.js +58 -0
- package/dist/krill/classes/sequence.d/machine_id.d.ts +15 -0
- package/dist/krill/classes/sequence.d/machine_id.js +33 -0
- package/dist/krill/classes/sequence.d/mkfs.d.ts +15 -0
- package/dist/krill/classes/sequence.d/mkfs.js +88 -0
- package/dist/krill/classes/sequence.d/mount_fs.d.ts +17 -0
- package/dist/krill/classes/sequence.d/mount_fs.js +68 -0
- package/dist/krill/classes/sequence.d/mount_vfs.d.ts +17 -0
- package/dist/krill/classes/sequence.d/mount_vfs.js +59 -0
- package/dist/krill/classes/sequence.d/network_cfg.d.ts +19 -0
- package/dist/krill/classes/sequence.d/network_cfg.js +73 -0
- package/dist/krill/classes/sequence.d/packages.d.ts +14 -0
- package/dist/krill/classes/sequence.d/packages.js +111 -0
- package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +17 -0
- package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +73 -0
- package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +16 -0
- package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +51 -0
- package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +17 -0
- package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +77 -0
- package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +10 -0
- package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +33 -0
- package/dist/krill/classes/sequence.d/partition.d.ts +14 -0
- package/dist/krill/classes/sequence.d/partition.js +84 -0
- package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +13 -0
- package/dist/krill/classes/sequence.d/remove_installer_link.js +35 -0
- package/dist/krill/classes/sequence.d/umount.d.ts +14 -0
- package/dist/krill/classes/sequence.d/umount.js +28 -0
- package/dist/krill/classes/sequence.d/unpackfs.d.ts +13 -0
- package/dist/krill/classes/sequence.d/unpackfs.js +20 -0
- package/dist/krill/classes/sequence.d.ts +134 -0
- package/dist/krill/classes/sequence.js +400 -0
- package/dist/krill/components/finished.d.ts +16 -0
- package/dist/krill/components/finished.js +56 -0
- package/dist/krill/components/information.d.ts +8 -0
- package/dist/krill/components/information.js +162 -0
- package/dist/krill/components/install.d.ts +15 -0
- package/dist/krill/components/install.js +60 -0
- package/dist/krill/components/keyboard.d.ts +16 -0
- package/dist/krill/components/keyboard.js +54 -0
- package/dist/krill/components/location.d.ts +16 -0
- package/dist/krill/components/location.js +59 -0
- package/dist/krill/components/network.d.ts +19 -0
- package/dist/krill/components/network.js +65 -0
- package/dist/krill/components/partitions.d.ts +18 -0
- package/dist/krill/components/partitions.js +89 -0
- package/dist/krill/components/steps.d.ts +13 -0
- package/dist/krill/components/steps.js +148 -0
- package/dist/krill/components/summary.d.ts +25 -0
- package/dist/krill/components/summary.js +77 -0
- package/dist/krill/components/title.d.ts +11 -0
- package/dist/krill/components/title.js +35 -0
- package/dist/krill/components/users.d.ts +24 -0
- package/dist/krill/components/users.js +80 -0
- package/dist/krill/components/welcome.d.ts +13 -0
- package/dist/krill/components/welcome.js +63 -0
- package/dist/krill/interfaces/i_krill.d.ts +44 -0
- package/dist/krill/interfaces/i_krill.js +8 -0
- package/dist/krill/interfaces/i_krill_config.d.ts +35 -0
- package/dist/krill/interfaces/i_krill_config.js +8 -0
- package/dist/krill/lib/get_address.d.ts +8 -0
- package/dist/krill/lib/get_address.js +23 -0
- package/dist/krill/lib/get_dns.d.ts +8 -0
- package/dist/krill/lib/get_dns.js +23 -0
- package/dist/krill/lib/get_domain.d.ts +8 -0
- package/dist/krill/lib/get_domain.js +23 -0
- package/dist/krill/lib/get_gateway.d.ts +8 -0
- package/dist/krill/lib/get_gateway.js +23 -0
- package/dist/krill/lib/get_hostname.d.ts +8 -0
- package/dist/krill/lib/get_hostname.js +23 -0
- package/dist/krill/lib/get_luks_passphrase.d.ts +8 -0
- package/dist/krill/lib/get_luks_passphrase.js +32 -0
- package/dist/krill/lib/get_netmask.d.ts +8 -0
- package/dist/krill/lib/get_netmask.js +23 -0
- package/dist/krill/lib/get_password.d.ts +8 -0
- package/dist/krill/lib/get_password.js +36 -0
- package/dist/krill/lib/get_userfullname.d.ts +8 -0
- package/dist/krill/lib/get_userfullname.js +23 -0
- package/dist/krill/lib/get_username.d.ts +8 -0
- package/dist/krill/lib/get_username.js +23 -0
- package/dist/krill/lib/select_address_type.d.ts +8 -0
- package/dist/krill/lib/select_address_type.js +24 -0
- package/dist/krill/lib/select_filesystem_type.d.ts +8 -0
- package/dist/krill/lib/select_filesystem_type.js +40 -0
- package/dist/krill/lib/select_installation_device.d.ts +8 -0
- package/dist/krill/lib/select_installation_device.js +40 -0
- package/dist/krill/lib/select_installation_mode.d.ts +9 -0
- package/dist/krill/lib/select_installation_mode.js +25 -0
- package/dist/krill/lib/select_interface.d.ts +8 -0
- package/dist/krill/lib/select_interface.js +24 -0
- package/dist/krill/lib/select_keyboard_layout.d.ts +11 -0
- package/dist/krill/lib/select_keyboard_layout.js +36 -0
- package/dist/krill/lib/select_keyboard_model.d.ts +11 -0
- package/dist/krill/lib/select_keyboard_model.js +34 -0
- package/dist/krill/lib/select_keyboard_option.d.ts +11 -0
- package/dist/krill/lib/select_keyboard_option.js +34 -0
- package/dist/krill/lib/select_keyboard_variant.d.ts +11 -0
- package/dist/krill/lib/select_keyboard_variant.js +35 -0
- package/dist/krill/lib/select_languages.d.ts +8 -0
- package/dist/krill/lib/select_languages.js +28 -0
- package/dist/krill/lib/select_regions.d.ts +8 -0
- package/dist/krill/lib/select_regions.js +24 -0
- package/dist/krill/lib/select_replaced_partition.d.ts +8 -0
- package/dist/krill/lib/select_replaced_partition.js +31 -0
- package/dist/krill/lib/select_user_swap_choice.d.ts +9 -0
- package/dist/krill/lib/select_user_swap_choice.js +35 -0
- package/dist/krill/lib/select_zones.d.ts +8 -0
- package/dist/krill/lib/select_zones.js +518 -0
- package/dist/lib/kill_me_softly.d.ts +11 -0
- package/dist/lib/kill_me_softly.js +61 -0
- package/dist/lib/utils.d.ts +19 -0
- package/dist/lib/utils.js +65 -0
- package/dracut/dracut.conf.d/50-live.conf +12 -13
- package/package.json +1 -1
- package/perrisbrewery/template/dependencies.yaml +1 -0
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/ovary.d/edit-live-fs.ts
|
|
3
|
+
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
// packages
|
|
9
|
+
import fs from 'fs';
|
|
10
|
+
import os from 'os';
|
|
11
|
+
import path from 'node:path';
|
|
12
|
+
import shx from 'shelljs';
|
|
13
|
+
import Utils from '../utils.js';
|
|
14
|
+
import Pacman from '../pacman.js';
|
|
15
|
+
import Systemctl from '../systemctl.js';
|
|
16
|
+
import { exec } from '../../lib/utils.js';
|
|
17
|
+
// _dirname
|
|
18
|
+
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
19
|
+
/**
|
|
20
|
+
* editLiveFs
|
|
21
|
+
* - Mark if is_clone or is_clone_crypted
|
|
22
|
+
* - Truncate logs, remove archived log
|
|
23
|
+
* - Allow all fixed drives to be mounted with pmount
|
|
24
|
+
* - Enable or disable password login trhough ssh for users (not root)
|
|
25
|
+
* - Create an empty /etc/fstab
|
|
26
|
+
* - Blanck /etc/machine-id
|
|
27
|
+
* - Add some basic files to /dev
|
|
28
|
+
* - Clear configs from /etc/network/interfaces, wicd and NetworkManager and netman
|
|
29
|
+
*/
|
|
30
|
+
export async function editLiveFs(clone = false) {
|
|
31
|
+
if (this.verbose) {
|
|
32
|
+
console.log('Ovary: editLiveFs');
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* /etc/penguins-eggs.d/is_clone file created on live
|
|
36
|
+
*/
|
|
37
|
+
if (clone) {
|
|
38
|
+
await exec(`touch ${this.settings.work_dir.merged}/etc/penguins-eggs.d/is_clone`, this.echo);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* /etc/default/epoptes-client created on live
|
|
42
|
+
*/
|
|
43
|
+
if (Pacman.packageIsInstalled('epoptes')) {
|
|
44
|
+
const file = `${this.settings.work_dir.merged}/etc/default/epoptes-client`;
|
|
45
|
+
const text = `SERVER=${os.hostname}.local\n`;
|
|
46
|
+
fs.writeFileSync(file, text);
|
|
47
|
+
}
|
|
48
|
+
if (this.familyId === 'debian') {
|
|
49
|
+
// Aggiungo UMASK=0077 in /etc/initramfs-tools/conf.d/calamares-safe-initramfs.conf
|
|
50
|
+
const text = 'UMASK=0077\n';
|
|
51
|
+
const file = '/etc/initramfs-tools/conf.d/eggs-safe-initramfs.conf';
|
|
52
|
+
Utils.write(file, text);
|
|
53
|
+
}
|
|
54
|
+
// Truncate logs, remove archived logs.
|
|
55
|
+
let cmd = `find ${this.settings.work_dir.merged}/var/log -name "*gz" -print0 | xargs -0r rm -f`;
|
|
56
|
+
await exec(cmd, this.echo);
|
|
57
|
+
cmd = `find ${this.settings.work_dir.merged}/var/log/ -type f -exec truncate -s 0 {} \\;`;
|
|
58
|
+
await exec(cmd, this.echo);
|
|
59
|
+
// Allow all fixed drives to be mounted with pmount
|
|
60
|
+
if (this.settings.config.pmount_fixed && fs.existsSync(`${this.settings.work_dir.merged}/etc/pmount.allow`)) {
|
|
61
|
+
// MX aggiunto /etc
|
|
62
|
+
await exec(`sed -i 's:#/dev/sd\[a-z\]:/dev/sd\[a-z\]:' ${this.settings.work_dir.merged}/etc/pmount.allow`, this.echo);
|
|
63
|
+
}
|
|
64
|
+
// Remove obsolete live-config file
|
|
65
|
+
if (fs.existsSync(`${this.settings.work_dir.merged}lib/live/config/1161-openssh-server`)) {
|
|
66
|
+
await exec(`rm -f ${this.settings.work_dir.merged}/lib/live/config/1161-openssh-server`, this.echo);
|
|
67
|
+
}
|
|
68
|
+
if (fs.existsSync(`${this.settings.work_dir.merged}/etc/ssh/sshd_config`)) {
|
|
69
|
+
/**
|
|
70
|
+
* enable/disable SSH root/users password login
|
|
71
|
+
*/
|
|
72
|
+
await exec(`sed -i '/PermitRootLogin/d' ${this.settings.work_dir.merged}/etc/ssh/sshd_config`);
|
|
73
|
+
await exec(`sed -i '/PasswordAuthentication/d' ${this.settings.work_dir.merged}/etc/ssh/sshd_config`);
|
|
74
|
+
if (this.settings.config.ssh_pass) {
|
|
75
|
+
await exec(`echo 'PasswordAuthentication yes' | tee -a ${this.settings.work_dir.merged}/etc/ssh/sshd_config`, this.echo);
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
await exec(`echo 'PermitRootLogin prohibit-password' | tee -a ${this.settings.work_dir.merged}/etc/ssh/sshd_config`, this.echo);
|
|
79
|
+
await exec(`echo 'PasswordAuthentication no' | tee -a ${this.settings.work_dir.merged}/etc/ssh/sshd_config`, this.echo);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* ufw --force reset
|
|
84
|
+
*/
|
|
85
|
+
// if (Pacman.packageIsInstalled('ufw')) {
|
|
86
|
+
// await exec('ufw --force reset')
|
|
87
|
+
// }
|
|
88
|
+
/**
|
|
89
|
+
* /etc/fstab should exist, even if it's empty,
|
|
90
|
+
* to prevent error messages at boot
|
|
91
|
+
*/
|
|
92
|
+
await exec(`rm ${this.settings.work_dir.merged}/etc/fstab`, this.echo);
|
|
93
|
+
await exec(`touch ${this.settings.work_dir.merged}/etc/fstab`, this.echo);
|
|
94
|
+
/**
|
|
95
|
+
* Remove crypttab if exists
|
|
96
|
+
* this is crucial for tpm systems.
|
|
97
|
+
*/
|
|
98
|
+
if (fs.existsSync(`${this.settings.work_dir.merged}/etc/crypttab`)) {
|
|
99
|
+
await exec(`rm ${this.settings.work_dir.merged}/etc/crypttab`, this.echo);
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Blank out systemd machine id.
|
|
103
|
+
* If it does not exist, systemd-journald will fail,
|
|
104
|
+
* but if it exists and is empty, systemd will automatically
|
|
105
|
+
* set up a new unique ID.
|
|
106
|
+
*/
|
|
107
|
+
if (fs.existsSync(`${this.settings.work_dir.merged}/etc/machine-id`)) {
|
|
108
|
+
await exec(`rm ${this.settings.work_dir.merged}/etc/machine-id`, this.echo);
|
|
109
|
+
await exec(`touch ${this.settings.work_dir.merged}/etc/machine-id`, this.echo);
|
|
110
|
+
Utils.write(`${this.settings.work_dir.merged}/etc/machine-id`, ':');
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* LMDE4: utilizza UbuntuMono16.pf2
|
|
114
|
+
* aggiungo un link a /boot/grub/fonts/UbuntuMono16.pf2
|
|
115
|
+
*/
|
|
116
|
+
if (fs.existsSync(`${this.settings.work_dir.merged}/boot/grub/fonts/unicode.pf2`)) {
|
|
117
|
+
shx.cp(`${this.settings.work_dir.merged}/boot/grub/fonts/unicode.pf2`, `${this.settings.work_dir.merged}/boot/grub/fonts/UbuntuMono16.pf2`);
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* cleaning /etc/resolv.conf
|
|
121
|
+
*/
|
|
122
|
+
const resolvFile = `${this.settings.work_dir.merged}/etc/resolv.conf`;
|
|
123
|
+
shx.rm(resolvFile);
|
|
124
|
+
/**
|
|
125
|
+
* Per tutte le distro systemd
|
|
126
|
+
*/
|
|
127
|
+
if (Utils.isSystemd()) {
|
|
128
|
+
const systemdctl = new Systemctl(this.verbose);
|
|
129
|
+
/*
|
|
130
|
+
* Arch: /ci/minimal/arch-minimal.sh:
|
|
131
|
+
* systemctl set-default multi-user.target
|
|
132
|
+
* systemctl enable getty@tty1.service
|
|
133
|
+
* systemctl enable systemd-networkd.service
|
|
134
|
+
* systemctl enable 'systemd-resolved.service
|
|
135
|
+
*/
|
|
136
|
+
if (await systemdctl.isEnabled('remote-cryptsetup.target')) {
|
|
137
|
+
await systemdctl.disable('remote-cryptsetup.target', this.settings.work_dir.merged, true);
|
|
138
|
+
}
|
|
139
|
+
if (await systemdctl.isEnabled('speech-dispatcherd.service')) {
|
|
140
|
+
await systemdctl.disable('speech-dispatcherd.service', this.settings.work_dir.merged, true);
|
|
141
|
+
}
|
|
142
|
+
if (await systemdctl.isEnabled('wpa_supplicant-nl80211@.service')) {
|
|
143
|
+
await systemdctl.disable('wpa_supplicant-nl80211@.service', this.settings.work_dir.merged, true);
|
|
144
|
+
}
|
|
145
|
+
if (await systemdctl.isEnabled('wpa_supplicant@.service')) {
|
|
146
|
+
await systemdctl.disable('wpa_supplicant@.service', this.settings.work_dir.merged, true);
|
|
147
|
+
}
|
|
148
|
+
if (await systemdctl.isEnabled('wpa_supplicant-wired@.service')) {
|
|
149
|
+
await systemdctl.disable('wpa_supplicant-wired@.service', this.settings.work_dir.merged, true);
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* All systemd distros
|
|
153
|
+
*/
|
|
154
|
+
await exec(`rm -f ${this.settings.work_dir.merged}/var/lib/wicd/configurations/*`, this.echo);
|
|
155
|
+
await exec(`rm -f ${this.settings.work_dir.merged}/etc/wicd/wireless-settings.conf`, this.echo);
|
|
156
|
+
await exec(`rm -f ${this.settings.work_dir.merged}/etc/NetworkManager/system-connections/*`, this.echo);
|
|
157
|
+
await exec(`rm -f ${this.settings.work_dir.merged}/etc/network/wifi/*`, this.echo);
|
|
158
|
+
/**
|
|
159
|
+
* removing from /etc/network/:
|
|
160
|
+
* if-down.d if-post-down.d if-pre-up.d if-up.d interfaces interfaces.d
|
|
161
|
+
*/
|
|
162
|
+
const cleanDirs = ['if-down.d', 'if-post-down.d', 'if-pre-up.d', 'if-up.d', 'interfaces.d'];
|
|
163
|
+
let cleanDir = '';
|
|
164
|
+
for (cleanDir of cleanDirs) {
|
|
165
|
+
await exec(`rm -f ${this.settings.work_dir.merged}/etc/network/${cleanDir}/wpasupplicant`, this.echo);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Clear configs from /etc/network/interfaces, wicd and NetworkManager
|
|
170
|
+
* and netman, so they aren't stealthily included in the snapshot.
|
|
171
|
+
*/
|
|
172
|
+
if (this.familyId === 'debian') {
|
|
173
|
+
if (fs.existsSync(`${this.settings.work_dir.merged}/etc/network/interfaces`)) {
|
|
174
|
+
await exec(`rm -f ${this.settings.work_dir.merged}/etc/network/interfaces`, this.echo);
|
|
175
|
+
Utils.write(`${this.settings.work_dir.merged}/etc/network/interfaces`, 'auto lo\niface lo inet loopback');
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* add some basic files to /dev
|
|
179
|
+
*/
|
|
180
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/console`)) {
|
|
181
|
+
await exec(`mknod -m 622 ${this.settings.work_dir.merged}/dev/console c 5 1`, this.echo);
|
|
182
|
+
}
|
|
183
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/null`)) {
|
|
184
|
+
await exec(`mknod -m 666 ${this.settings.work_dir.merged}/dev/null c 1 3`, this.echo);
|
|
185
|
+
}
|
|
186
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/zero`)) {
|
|
187
|
+
await exec(`mknod -m 666 ${this.settings.work_dir.merged}/dev/zero c 1 5`, this.echo);
|
|
188
|
+
}
|
|
189
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/ptmx`)) {
|
|
190
|
+
await exec(`mknod -m 666 ${this.settings.work_dir.merged}/dev/ptmx c 5 2`, this.echo);
|
|
191
|
+
}
|
|
192
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/tty`)) {
|
|
193
|
+
await exec(`mknod -m 666 ${this.settings.work_dir.merged}/dev/tty c 5 0`, this.echo);
|
|
194
|
+
}
|
|
195
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/random`)) {
|
|
196
|
+
await exec(`mknod -m 444 ${this.settings.work_dir.merged}/dev/random c 1 8`, this.echo);
|
|
197
|
+
}
|
|
198
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/urandom`)) {
|
|
199
|
+
await exec(`mknod -m 444 ${this.settings.work_dir.merged}/dev/urandom c 1 9`, this.echo);
|
|
200
|
+
}
|
|
201
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/{console,ptmx,tty}`)) {
|
|
202
|
+
await exec(`chown -v root:tty ${this.settings.work_dir.merged}/dev/{console,ptmx,tty}`, this.echo);
|
|
203
|
+
}
|
|
204
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/fd`)) {
|
|
205
|
+
await exec(`ln -sv /proc/self/fd ${this.settings.work_dir.merged}/dev/fd`, this.echo);
|
|
206
|
+
}
|
|
207
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/stdin`)) {
|
|
208
|
+
await exec(`ln -sv /proc/self/fd/0 ${this.settings.work_dir.merged}/dev/stdin`, this.echo);
|
|
209
|
+
}
|
|
210
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/stdout`)) {
|
|
211
|
+
await exec(`ln -sv /proc/self/fd/1 ${this.settings.work_dir.merged}/dev/stdout`, this.echo);
|
|
212
|
+
}
|
|
213
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/stderr`)) {
|
|
214
|
+
await exec(`ln -sv /proc/self/fd/2 ${this.settings.work_dir.merged}/dev/stderr`, this.echo);
|
|
215
|
+
}
|
|
216
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/core`)) {
|
|
217
|
+
await exec(`ln -sv /proc/kcore ${this.settings.work_dir.merged}/dev/core`, this.echo);
|
|
218
|
+
}
|
|
219
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/shm`)) {
|
|
220
|
+
await exec(`mkdir -v ${this.settings.work_dir.merged}/dev/shm`, this.echo);
|
|
221
|
+
}
|
|
222
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/pts`)) {
|
|
223
|
+
await exec(`mkdir -v ${this.settings.work_dir.merged}/dev/pts`, this.echo);
|
|
224
|
+
}
|
|
225
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/dev/shm`)) {
|
|
226
|
+
await exec(`chmod 1777 ${this.settings.work_dir.merged}/dev/shm`, this.echo);
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* creo /tmp
|
|
230
|
+
*/
|
|
231
|
+
if (!fs.existsSync(`${this.settings.work_dir.merged}/tmp`)) {
|
|
232
|
+
await exec(`mkdir ${this.settings.work_dir.merged}/tmp`, this.echo);
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Assegno 1777 a /tmp creava problemi con MXLINUX
|
|
236
|
+
*/
|
|
237
|
+
await exec(`chmod 1777 ${this.settings.work_dir.merged}/tmp`, this.echo);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/xorriso-command.ts
|
|
3
|
+
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import Ovary from '../ovary.js';
|
|
9
|
+
/**
|
|
10
|
+
* @returns {boolean} success
|
|
11
|
+
*/
|
|
12
|
+
export declare function fertilization(this: Ovary, snapshot_prefix?: string, snapshot_basename?: string, theme?: string, compression?: string, nointeratctive?: boolean): Promise<boolean>;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/xorriso-command.ts
|
|
3
|
+
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
// packages
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import Settings from '../settings.js';
|
|
11
|
+
import Utils from '../utils.js';
|
|
12
|
+
import Distro from '../distro.js';
|
|
13
|
+
// _dirname
|
|
14
|
+
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
15
|
+
/**
|
|
16
|
+
* @returns {boolean} success
|
|
17
|
+
*/
|
|
18
|
+
export async function fertilization(snapshot_prefix = '', snapshot_basename = '', theme = '', compression = '', nointeratctive = false) {
|
|
19
|
+
// familyId, distroId from Distro
|
|
20
|
+
const distro = new Distro();
|
|
21
|
+
this.familyId = distro.familyId;
|
|
22
|
+
this.distroId = distro.distroId;
|
|
23
|
+
this.distroLike = distro.distroLike;
|
|
24
|
+
this.distroLliveMediumPath = distro.liveMediumPath;
|
|
25
|
+
this.settings = new Settings();
|
|
26
|
+
if (await this.settings.load()) {
|
|
27
|
+
await this.settings.loadRemix(this.theme);
|
|
28
|
+
this.volid = Utils.getVolid(this.settings.remix.name);
|
|
29
|
+
this.uuid = Utils.uuidGen();
|
|
30
|
+
//this.familyId = this.settings.distro.familyId
|
|
31
|
+
this.nest = this.settings.config.snapshot_mnt;
|
|
32
|
+
if (snapshot_prefix !== '') {
|
|
33
|
+
this.settings.config.snapshot_prefix = snapshot_prefix;
|
|
34
|
+
}
|
|
35
|
+
if (snapshot_basename !== '') {
|
|
36
|
+
this.settings.config.snapshot_basename = snapshot_basename;
|
|
37
|
+
}
|
|
38
|
+
if (theme !== '') {
|
|
39
|
+
this.theme = theme;
|
|
40
|
+
}
|
|
41
|
+
if (compression !== '') {
|
|
42
|
+
this.settings.config.compression = compression;
|
|
43
|
+
}
|
|
44
|
+
if (!nointeratctive) {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
this.settings.listFreeSpace();
|
|
48
|
+
if (await Utils.customConfirm('Select yes to continue...')) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/ovary.d/finished.ts
|
|
3
|
+
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import Ovary from './../ovary.js';
|
|
9
|
+
/**
|
|
10
|
+
* finished = show the results
|
|
11
|
+
* @param scriptOnly
|
|
12
|
+
*/
|
|
13
|
+
export declare function finished(this: Ovary, scriptOnly?: boolean): void;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/ovary.d/finished.ts
|
|
3
|
+
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import chalk from 'chalk';
|
|
9
|
+
// packages
|
|
10
|
+
import path from 'path';
|
|
11
|
+
// _dirname
|
|
12
|
+
/**
|
|
13
|
+
* finished = show the results
|
|
14
|
+
* @param scriptOnly
|
|
15
|
+
*/
|
|
16
|
+
export function finished(scriptOnly = false) {
|
|
17
|
+
// Utils.titles('produce')
|
|
18
|
+
if (scriptOnly) {
|
|
19
|
+
const pathOvarium = path.join(this.settings.config.snapshot_dir, 'ovarium');
|
|
20
|
+
console.log('eggs is finished!\n\nYou can find the scripts to build iso: ' + chalk.cyanBright(this.settings.isoFilename) + '\nin the ovarium: ' + chalk.cyanBright(pathOvarium) + '.');
|
|
21
|
+
console.log('usage');
|
|
22
|
+
console.log(chalk.cyanBright(`cd ${pathOvarium}`));
|
|
23
|
+
console.log(chalk.cyanBright('sudo ./bind'));
|
|
24
|
+
console.log('Make all yours modifications in the directories filesystem.squashfs and iso.');
|
|
25
|
+
console.log('After when you are ready:');
|
|
26
|
+
console.log(chalk.cyanBright('sudo ./mksquashfs'));
|
|
27
|
+
console.log(chalk.cyanBright('sudo ./mkisofs'));
|
|
28
|
+
console.log(chalk.cyanBright('sudo ./ubind'));
|
|
29
|
+
console.log('happy hacking!');
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
console.log('eggs is finished!\n\nYou can find the file iso: ' + chalk.cyanBright(this.settings.isoFilename) + '\nin the nest: ' + chalk.cyanBright(this.settings.config.snapshot_dir) + '.');
|
|
33
|
+
}
|
|
34
|
+
console.log();
|
|
35
|
+
console.log('Remember, on liveCD user = ' + chalk.cyanBright(this.settings.config.user_opt) + '/' + chalk.cyanBright(this.settings.config.user_opt_passwd));
|
|
36
|
+
console.log(' root = ' + chalk.cyanBright('root') + '/' + chalk.cyanBright(this.settings.config.root_passwd));
|
|
37
|
+
if (this.genisoimage) {
|
|
38
|
+
console.log(`Note: format UDF, generated by ${chalk.cyanBright('genisoimage')}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/ovary.d/initrd.ts
|
|
3
|
+
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import Ovary from '../ovary.js';
|
|
9
|
+
/**
|
|
10
|
+
* initrdAlpine
|
|
11
|
+
*/
|
|
12
|
+
export declare function initrdAlpine(this: Ovary): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* initrdArch
|
|
15
|
+
*/
|
|
16
|
+
export declare function initrdArch(this: Ovary): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* initrdDebian
|
|
19
|
+
*/
|
|
20
|
+
export declare function initrdDebian(this: Ovary, verbose?: boolean): Promise<void>;
|
|
21
|
+
export declare function initrdDracut(this: Ovary): Promise<void>;
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/ovary.d/initrd.ts
|
|
3
|
+
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import fs from 'fs';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
// classes
|
|
11
|
+
import { exec } from '../../lib/utils.js';
|
|
12
|
+
import Utils from '../utils.js';
|
|
13
|
+
import Diversions from '../diversions.js';
|
|
14
|
+
// _dirname
|
|
15
|
+
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
16
|
+
/**
|
|
17
|
+
* initrdAlpine
|
|
18
|
+
*/
|
|
19
|
+
export async function initrdAlpine() {
|
|
20
|
+
Utils.warning(`creating ${path.basename(this.initrd)} Alpine on (ISO)/live`);
|
|
21
|
+
let initrdImg = Utils.initrdImg();
|
|
22
|
+
initrdImg = initrdImg.slice(Math.max(0, initrdImg.lastIndexOf('/') + 1));
|
|
23
|
+
const pathConf = path.resolve(__dirname, `../../../mkinitfs/live.conf`);
|
|
24
|
+
const prefix = this.settings.config.snapshot_prefix;
|
|
25
|
+
const log = `> ${this.settings.iso_work}${prefix}mkinitfs.log.txt 2>&1`;
|
|
26
|
+
const cmd = `mkinitfs -c ${pathConf} -o ${this.settings.iso_work}live/${initrdImg} ${this.kernel} ${log}`;
|
|
27
|
+
await exec(cmd, this.echo);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* initrdArch
|
|
31
|
+
*/
|
|
32
|
+
export async function initrdArch() {
|
|
33
|
+
Utils.warning(`creating ${path.basename(this.initrd)} using mkinitcpio on (ISO)/live`);
|
|
34
|
+
let dirConf = 'arch';
|
|
35
|
+
let tool = 'archiso';
|
|
36
|
+
let hookSrc = '/usr/lib/initcpio/hooks/archiso_pxe_http';
|
|
37
|
+
let hookDest = '/etc/initcpio/hooks/archiso_pxe_http';
|
|
38
|
+
let edit = `sed -i 's/export copytoram="y"/# export copytoram="y"/' ${hookDest}`;
|
|
39
|
+
if (Diversions.isManjaroBased(this.distroId)) {
|
|
40
|
+
dirConf = 'manjaro';
|
|
41
|
+
tool = 'miso';
|
|
42
|
+
hookSrc = `/etc/initcpio/hooks/miso_pxe_http`;
|
|
43
|
+
hookDest = hookSrc;
|
|
44
|
+
edit = `sed -i 's/copytoram="y"/# copytoram="y"/' ${hookDest}`;
|
|
45
|
+
if (this.distroId === "Biglinux" || this.distroId === "Bigcommunity") {
|
|
46
|
+
dirConf = 'biglinux';
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
const restore = fs.existsSync(hookDest);
|
|
50
|
+
const pathConf = path.resolve(__dirname, `../../../mkinitcpio/${dirConf}`);
|
|
51
|
+
const fileConf = pathConf + '/live.conf';
|
|
52
|
+
let hookSaved = `/tmp/${path.basename(hookSrc)}`;
|
|
53
|
+
if (hookSrc !== hookDest) {
|
|
54
|
+
await exec(`cp ${hookSrc} ${hookDest}`);
|
|
55
|
+
}
|
|
56
|
+
await exec(`cp ${hookSrc} ${hookSaved}`);
|
|
57
|
+
await exec(edit, this.echo);
|
|
58
|
+
const prefix = this.settings.config.snapshot_prefix;
|
|
59
|
+
const log = `> ${this.settings.iso_work}${prefix}mkinitcpio.log.txt 2>&1`;
|
|
60
|
+
let cmd = `mkinitcpio -c ${fileConf} -g ${this.settings.iso_work}live/${path.basename(this.initrd)} -k ${this.kernel} ${log}`;
|
|
61
|
+
await exec(cmd, this.echo);
|
|
62
|
+
await exec(`rm -f ${hookDest}`);
|
|
63
|
+
if (restore) {
|
|
64
|
+
await exec(`cp ${hookSaved} ${hookDest}`);
|
|
65
|
+
}
|
|
66
|
+
await exec(`rm -f ${hookSaved}`);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* initrdDebian
|
|
70
|
+
*/
|
|
71
|
+
export async function initrdDebian(verbose = false) {
|
|
72
|
+
Utils.warning(`creating ${this.initrd} using mkinitramfs on (ISO)/live`);
|
|
73
|
+
const prefix = this.settings.config.snapshot_prefix;
|
|
74
|
+
const destFinal = `${this.settings.iso_work}live/${path.basename(this.initrd)}`;
|
|
75
|
+
const log = `> ${this.settings.iso_work}${prefix}mkinitramfs.log.txt 2>&1`;
|
|
76
|
+
const target = path.join(this.dotMnt, 'filesystem.squashfs');
|
|
77
|
+
const cmd = `mkinitramfs -v -o ${destFinal} ${this.kernel} ${log}`;
|
|
78
|
+
await exec(cmd, this.echo);
|
|
79
|
+
}
|
|
80
|
+
/*
|
|
81
|
+
* initrdDracut) Almalinux/Fedora/Openmamba/Opensuse/Rocky/
|
|
82
|
+
*/
|
|
83
|
+
export async function initrdDracut() {
|
|
84
|
+
Utils.warning(`creating ${path.basename(this.initrd)} using dracut on (ISO)/live`);
|
|
85
|
+
const prefix = this.settings.config.snapshot_prefix;
|
|
86
|
+
const log = `> ${this.settings.iso_work}${prefix}dracut.log.txt 2>&1`;
|
|
87
|
+
const confdir = '--confdir ' + path.resolve(__dirname, `../../../dracut/dracut.conf.d`);
|
|
88
|
+
const kmoddir = `--kmoddir /lib/modules/${this.kernel}`;
|
|
89
|
+
const initramfs = `${this.settings.iso_work}live/${path.basename(this.initrd)}`;
|
|
90
|
+
const cmd = `dracut --force ${confdir} ${kmoddir} ${initramfs} ${this.kernel} ${log}`;
|
|
91
|
+
console.log(cmd);
|
|
92
|
+
await exec(cmd, this.echo);
|
|
93
|
+
// clean per btrfs
|
|
94
|
+
let clean = `../../../scripts/99clean ${this.kernel}`;
|
|
95
|
+
await exec(clean, this.echo);
|
|
96
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/ovary.d/produce.ts
|
|
3
|
+
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import Ovary from './../ovary.js';
|
|
9
|
+
/**
|
|
10
|
+
* kernelCopy
|
|
11
|
+
*/
|
|
12
|
+
export declare function kernelCopy(this: Ovary): Promise<void>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/ovary.d/produce.ts
|
|
3
|
+
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import path from 'path';
|
|
9
|
+
// interfaces
|
|
10
|
+
// libraries
|
|
11
|
+
import { exec } from '../../lib/utils.js';
|
|
12
|
+
// classes
|
|
13
|
+
import Utils from './../utils.js';
|
|
14
|
+
// _dirname
|
|
15
|
+
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
16
|
+
/**
|
|
17
|
+
* kernelCopy
|
|
18
|
+
*/
|
|
19
|
+
export async function kernelCopy() {
|
|
20
|
+
Utils.warning(`copying ${path.basename(this.vmlinuz)} on (ISO)/live`);
|
|
21
|
+
await exec(`cp ${this.vmlinuz} ${this.settings.iso_work}live/`, this.echo);
|
|
22
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/ovary.d/live-create-structure.ts
|
|
3
|
+
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import Ovary from './../ovary.js';
|
|
9
|
+
/**
|
|
10
|
+
* Crea la struttura della workdir
|
|
11
|
+
*/
|
|
12
|
+
export declare function liveCreateStructure(this: Ovary): Promise<void>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/ovary.d/live-create-structure.ts
|
|
3
|
+
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import path from 'path';
|
|
9
|
+
// interfaces
|
|
10
|
+
// libraries
|
|
11
|
+
import { exec } from '../../lib/utils.js';
|
|
12
|
+
// classes
|
|
13
|
+
import Utils from './../utils.js';
|
|
14
|
+
// _dirname
|
|
15
|
+
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
16
|
+
/**
|
|
17
|
+
* Crea la struttura della workdir
|
|
18
|
+
*/
|
|
19
|
+
export async function liveCreateStructure() {
|
|
20
|
+
Utils.warning(`creating live structure on ${this.nest}`);
|
|
21
|
+
let cmd = '';
|
|
22
|
+
cmd = `# create nest\n`;
|
|
23
|
+
cmd += `mkdir -p ${this.nest}\n`;
|
|
24
|
+
cmd += `# README.md\n`;
|
|
25
|
+
cmd += `cp ${path.resolve(__dirname, '../../../conf/README.md')} ${this.nest}README.md\n`;
|
|
26
|
+
cmd += `# cleaning dotMnt\n`;
|
|
27
|
+
cmd += `rm -rf ${this.dotMnt}efi\n`;
|
|
28
|
+
cmd += `rm -rf ${this.dotMnt}filesystem.squashfs\n`;
|
|
29
|
+
cmd += `rm -rf ${this.dotMnt}/iso\n`;
|
|
30
|
+
cmd += `mkdir -p ${this.dotMnt}/iso/live\n`;
|
|
31
|
+
cmd += `mkdir -p ${this.dotMnt}/iso/boot/grub/${Utils.uefiFormat()}\n`;
|
|
32
|
+
cmd += `mkdir -p ${this.dotMnt}/iso/isolinux\n`;
|
|
33
|
+
cmd += `# cleaning (nest).overlay\n`;
|
|
34
|
+
cmd += `umount ${this.dotLivefs}/* > /dev/null 2>&1\n`;
|
|
35
|
+
cmd += `umount ${this.dotOverlay.lowerdir}/* > /dev/null 2>&1\n`;
|
|
36
|
+
cmd += `umount ${this.dotOverlay.upperdir}/* > /dev/null 2>&1\n`;
|
|
37
|
+
cmd += `umount ${this.dotOverlay.workdir}/* > /dev/null 2>&1\n`;
|
|
38
|
+
cmd += `rm -rf ${this.nest}.overlay\n`;
|
|
39
|
+
cmd += `mkdir -p ${this.dotOverlay.lowerdir}\n`;
|
|
40
|
+
cmd += `mkdir -p ${this.dotOverlay.upperdir}\n`;
|
|
41
|
+
cmd += `mkdir -p ${this.dotOverlay.workdir}\n`;
|
|
42
|
+
cmd += `sleep 1\n`;
|
|
43
|
+
cmd += `# cleaning dotLivefs\n`;
|
|
44
|
+
cmd += `rm -rf ${this.dotLivefs}\n`;
|
|
45
|
+
cmd += `mkdir -p ${this.dotLivefs}\n`;
|
|
46
|
+
cmd += `# cleaning (nest)/ovarium\n`;
|
|
47
|
+
cmd += `rm -rf ${this.nest}ovarium\n`;
|
|
48
|
+
cmd += `mkdir -p ${this.nest}ovarium\n`;
|
|
49
|
+
cmd += `# cleaning (nest)/links\n`;
|
|
50
|
+
cmd += `rm -f ${this.nest}iso\n`;
|
|
51
|
+
cmd += `ln -s ${this.nest}.mnt/iso ${this.nest}/iso\n`;
|
|
52
|
+
cmd += `rm -f ${this.nest}livefs\n`;
|
|
53
|
+
cmd += `ln -s ${this.dotLivefs} ${this.nest}livefs\n`;
|
|
54
|
+
tryCatch(cmd, this.verbose);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
* @param cmd
|
|
59
|
+
*/
|
|
60
|
+
async function tryCatch(cmd = '', verbose = false) {
|
|
61
|
+
try {
|
|
62
|
+
let echo = Utils.setEcho(verbose);
|
|
63
|
+
// console.log(cmd)
|
|
64
|
+
await exec(cmd, echo);
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
console.log(`Error: ${error}`);
|
|
68
|
+
await Utils.pressKeyToExit(cmd);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/ovary.d/luks-get-password.ts
|
|
3
|
+
* penguins-eggs v.25.10.x / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import Ovary from '../ovary.js';
|
|
9
|
+
/**
|
|
10
|
+
* Ottiene la password LUKS dall'utente
|
|
11
|
+
*/
|
|
12
|
+
export declare function luksGetPassword(this: Ovary): Promise<void>;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/ovary.d/luks-get-password.ts
|
|
3
|
+
* penguins-eggs v.25.10.x / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import Utils from '../utils.js';
|
|
9
|
+
/**
|
|
10
|
+
* Ottiene la password LUKS dall'utente
|
|
11
|
+
*/
|
|
12
|
+
export async function luksGetPassword() {
|
|
13
|
+
const inquirer = (await import('inquirer')).default;
|
|
14
|
+
// Chiedi se usare password di default
|
|
15
|
+
const useDefault = await inquirer.prompt([{
|
|
16
|
+
type: 'confirm',
|
|
17
|
+
name: 'useDefault',
|
|
18
|
+
message: `Use default password "${this.luksPassword}" for LUKS encryption?`,
|
|
19
|
+
default: false
|
|
20
|
+
}]);
|
|
21
|
+
if (useDefault.useDefault) {
|
|
22
|
+
Utils.warning(`Using default password: ${this.luksPassword}`);
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
// Chiedi password personalizzata con conferma
|
|
26
|
+
let password = '';
|
|
27
|
+
let confirmed = false;
|
|
28
|
+
while (!confirmed) {
|
|
29
|
+
const answers = await inquirer.prompt([
|
|
30
|
+
{
|
|
31
|
+
type: 'password',
|
|
32
|
+
name: 'password',
|
|
33
|
+
message: 'Enter LUKS encryption password:',
|
|
34
|
+
validate: (input) => {
|
|
35
|
+
if (input.length < 8) {
|
|
36
|
+
return 'Password must be at least 8 characters';
|
|
37
|
+
}
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
type: 'password',
|
|
43
|
+
name: 'confirm',
|
|
44
|
+
message: 'Confirm password:'
|
|
45
|
+
}
|
|
46
|
+
]);
|
|
47
|
+
if (answers.password === answers.confirm) {
|
|
48
|
+
password = answers.password;
|
|
49
|
+
confirmed = true;
|
|
50
|
+
this.hidden = true;
|
|
51
|
+
Utils.success('Password confirmed!');
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
Utils.error('Passwords do not match. Please try again.');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
this.luksPassword = password;
|
|
58
|
+
}
|