penguins-eggs 25.10.28 → 25.11.8
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 +4 -4
- package/README.md +770 -3
- package/addons/eggs/adapt/applications/eggs-adapt.desktop +0 -0
- package/addons/eggs/pve/applications/eggs-pve.desktop +0 -0
- package/addons/eggs/rsupport/applications/eggs-rsupport.desktop +0 -0
- package/addons/eggs/theme/applications/install-system.desktop +8 -6
- package/assets/calamares/install-system.sh +0 -0
- package/assets/calamares/io.calamares.calamares.policy +25 -0
- package/assets/penguins-eggs.desktop +0 -0
- package/assets/penguins-krill.desktop +0 -0
- package/assets/penguins-links-add.desktop +0 -0
- package/assets/penguins-live-installer.desktop +0 -0
- package/bin/dev.js +0 -0
- package/conf/distros/alpine/calamares/calamares-modules/machineid-openrc/machineid-openrc.sh +0 -0
- package/conf/distros/alpine/calamares/modules/packages.mustache +1 -0
- package/conf/distros/alpine/calamares/modules/removeuser.mustache +2 -14
- package/conf/distros/alpine/calamares/modules/unpackfs.mustache +2 -2
- package/conf/distros/buster/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
- package/conf/distros/buster/calamares/calamares-modules/dpkg-unsafe-io/dpkg-unsafe-io.sh +0 -0
- package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
- package/conf/distros/buster/calamares/modules/shellprocess@boot_deploy.yml +1 -16
- package/conf/distros/fedora/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +0 -0
- package/conf/distros/noble/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
- package/conf/distros/noble/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
- package/conf/distros/noble/calamares/libexec/calamares-aptsources.sh +0 -0
- package/conf/distros/noble/calamares/libexec/calamares-l10n-helper.sh +0 -0
- package/conf/distros/noble/calamares/libexec/calamares-logs-helper.sh +1 -1
- package/conf/distros/noble/calamares/libexec/calamares-nomodeset.sh +0 -0
- package/conf/distros/noble/calamares/modules/shellprocess@boot_deploy.yml +1 -11
- package/conf/distros/noble/calamares/modules/shellprocess@logs.yml +1 -1
- package/conf/distros/opensuse/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +0 -0
- package/conf/distros/opensuse/calamares/settings.yml +0 -0
- package/conf/distros/opensuse/calamares/zstd2lzo.sh +0 -0
- package/conf/distros/trixie/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
- package/conf/distros/trixie/calamares/calamares-modules/dpkg-unsafe-io/dpkg-unsafe-io.sh +0 -0
- package/conf/distros/trixie/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
- package/conf/distros/trixie/calamares/modules/shellprocess@boot_deploy.yml +2 -10
- package/conf/init/unattended.sh +0 -0
- package/dist/classes/bleach.d.ts +37 -0
- package/dist/classes/bleach.js +148 -0
- package/dist/classes/cli-autologin.d.ts +14 -0
- package/dist/classes/cli-autologin.js +227 -0
- package/dist/classes/compressors.d.ts +54 -0
- package/dist/classes/compressors.js +109 -0
- package/dist/classes/daddy.d.ts +44 -0
- package/dist/classes/daddy.js +208 -0
- package/dist/classes/distro-hossein.d.ts +52 -0
- package/dist/classes/distro-hossein.js +239 -0
- package/dist/classes/distro.d.ts +32 -0
- package/dist/classes/distro.js +363 -0
- package/dist/classes/diversions.d.ts +19 -0
- package/dist/classes/diversions.js +100 -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 +76 -0
- package/dist/classes/incubation/fisherman.js +301 -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/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 +106 -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 +382 -0
- package/dist/classes/incubation/installer.d.ts +13 -0
- package/dist/classes/incubation/installer.js +52 -0
- package/dist/classes/keyboards.d.ts +31 -0
- package/dist/classes/keyboards.js +136 -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 +91 -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 +681 -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 +413 -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 +21 -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/create-symlink +0 -0
- package/dracut/dracut.conf.d/50-live.conf +12 -13
- package/dracut/export +0 -0
- package/dracut/export-dracut-analysis +0 -0
- package/dracut/export-dracut-log +0 -0
- package/dracut/mkisofs +0 -0
- package/dracut/modules.d/00debug-shell/debug-hook.sh +0 -0
- package/dracut/modules.d/00debug-shell/module-setup.sh +0 -0
- package/dracut/modules.d/90block/block-cmdline.sh +0 -0
- package/dracut/modules.d/90block/module-setup.sh +0 -0
- package/dracut/modules.d/95iso-scan/iso-scan-fallback.sh +0 -0
- package/dracut/modules.d/95iso-scan/iso-scan.sh +0 -0
- package/dracut/modules.d/95iso-scan/module-setup.sh +0 -0
- package/dracut/modules.d/95luks-loop/luks-loop.sh +0 -0
- package/dracut/modules.d/95luks-loop/module-setup.sh +0 -0
- package/dracut/renew-initramfs +0 -0
- package/dracut/sbin2bin +0 -0
- package/dracut/update-dracut-conf-d +0 -0
- package/dracut/update-dracut-modules +0 -0
- package/eui/eui-autostart-cinnamon.desktop +0 -0
- package/eui/eui-autostart-xfce.desktop +0 -0
- package/eui/eui-create-image.sh +0 -0
- package/eui/eui-start.sh +0 -0
- package/package.json +130 -124
- package/perrisbrewery/scripts/postinst +0 -0
- package/perrisbrewery/scripts/postrm +0 -0
- package/perrisbrewery/scripts/preinst +0 -0
- package/perrisbrewery/scripts/prerm +0 -0
- package/perrisbrewery/template/dependencies.yaml +7 -5
- package/scripts/99clean +0 -0
- package/scripts/adapt.sh +0 -0
- package/scripts/boot-encrypted-root.sh +0 -0
- package/scripts/bros/waydroid-helper.sh +0 -0
- package/scripts/lsb_release +0 -0
- package/scripts/mom.sh +0 -0
- package/scripts/mount-encrypted-home.sh +0 -0
- package/scripts/pve-live.service +0 -0
- package/scripts/pve-live.sh +0 -0
- package/scripts/resy +0 -0
- package/conf/distros/focal/calamares/calamares-modules/.keepit +0 -0
- package/conf/distros/focal/calamares/calamares-modules/cleanup/cleanup.sh +0 -20
- package/conf/distros/focal/calamares/calamares-modules/cleanup/module.yml +0 -9
- package/conf/distros/focal/calamares/calamares-modules/sources-yolk/module.yml +0 -8
- package/conf/distros/focal/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -50
- package/conf/distros/focal/calamares/calamares-modules/sources-yolk-undo/module.yml +0 -8
- package/conf/distros/focal/calamares/modules/after_bootloader_context.yml +0 -19
- package/conf/distros/focal/calamares/modules/automirror.yml +0 -6
- package/conf/distros/focal/calamares/modules/before_bootloader_context.yml +0 -19
- package/conf/distros/focal/calamares/modules/before_bootloader_mkdirs_context.yml +0 -11
- package/conf/distros/focal/calamares/modules/bootloader.yml +0 -34
- package/conf/distros/focal/calamares/modules/displaymanager.yml +0 -12
- package/conf/distros/focal/calamares/modules/finished.yml +0 -4
- package/conf/distros/focal/calamares/modules/fstab.yml +0 -13
- package/conf/distros/focal/calamares/modules/grubcfg.yml +0 -5
- package/conf/distros/focal/calamares/modules/locale.yml +0 -9
- package/conf/distros/focal/calamares/modules/machineid.yml +0 -9
- package/conf/distros/focal/calamares/modules/mount.yml +0 -41
- package/conf/distros/focal/calamares/modules/packages.mustache +0 -5
- package/conf/distros/focal/calamares/modules/partition.yml +0 -10
- package/conf/distros/focal/calamares/modules/removeuser.mustache +0 -3
- package/conf/distros/focal/calamares/modules/shellprocess_add386arch.yml +0 -6
- package/conf/distros/focal/calamares/modules/shellprocess_bug-LP#1829805.yml +0 -5
- package/conf/distros/focal/calamares/modules/shellprocess_logs.yml +0 -6
- package/conf/distros/focal/calamares/modules/unpackfs.mustache +0 -6
- package/conf/distros/focal/calamares/modules/users.yml +0 -19
- package/conf/distros/focal/calamares/modules/welcome.yml +0 -26
- package/conf/distros/focal/calamares/settings.yml +0 -72
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/compressors.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
|
+
export default class Compressors {
|
|
9
|
+
dest: string;
|
|
10
|
+
isEnabled: {
|
|
11
|
+
error: boolean;
|
|
12
|
+
gzip: boolean;
|
|
13
|
+
lz4: boolean;
|
|
14
|
+
lzma: boolean;
|
|
15
|
+
lzo: boolean;
|
|
16
|
+
xz: boolean;
|
|
17
|
+
zstd: boolean;
|
|
18
|
+
};
|
|
19
|
+
source: string;
|
|
20
|
+
/**
|
|
21
|
+
* fast compression
|
|
22
|
+
* @returns
|
|
23
|
+
*/
|
|
24
|
+
fast(): string;
|
|
25
|
+
/**
|
|
26
|
+
* max
|
|
27
|
+
* @returns
|
|
28
|
+
*/
|
|
29
|
+
max(): string;
|
|
30
|
+
pendrive(level?: string): string;
|
|
31
|
+
/**
|
|
32
|
+
* populate
|
|
33
|
+
*/
|
|
34
|
+
populate(): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
* standard
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
standard(): string;
|
|
40
|
+
/**
|
|
41
|
+
* check mksquashfs exists
|
|
42
|
+
* @param compressor
|
|
43
|
+
* @returns
|
|
44
|
+
*/
|
|
45
|
+
private check;
|
|
46
|
+
/**
|
|
47
|
+
* prepareCheck
|
|
48
|
+
*/
|
|
49
|
+
private prepareCheck;
|
|
50
|
+
/**
|
|
51
|
+
* removeCheck
|
|
52
|
+
*/
|
|
53
|
+
private removeCheck;
|
|
54
|
+
}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/compressors.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 shx from 'shelljs';
|
|
9
|
+
export default class Compressors {
|
|
10
|
+
dest = '/tmp/eggs-mksquash-dest';
|
|
11
|
+
isEnabled = {
|
|
12
|
+
error: false,
|
|
13
|
+
gzip: true,
|
|
14
|
+
lz4: false,
|
|
15
|
+
lzma: false,
|
|
16
|
+
lzo: false,
|
|
17
|
+
xz: false,
|
|
18
|
+
zstd: false
|
|
19
|
+
};
|
|
20
|
+
source = '/tmp/eggs-mksquash-test';
|
|
21
|
+
/**
|
|
22
|
+
* fast compression
|
|
23
|
+
* @returns
|
|
24
|
+
*/
|
|
25
|
+
fast() {
|
|
26
|
+
let comp = 'gzip';
|
|
27
|
+
if (this.isEnabled.zstd) {
|
|
28
|
+
comp = 'zstd -b 1M -Xcompression-level 3';
|
|
29
|
+
}
|
|
30
|
+
else if (this.isEnabled.lz4) {
|
|
31
|
+
comp = 'lz4';
|
|
32
|
+
}
|
|
33
|
+
return comp;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* max
|
|
37
|
+
* @returns
|
|
38
|
+
*/
|
|
39
|
+
max() {
|
|
40
|
+
let filter = 'x86';
|
|
41
|
+
if (process.arch === 'arm64') {
|
|
42
|
+
filter = 'arm';
|
|
43
|
+
}
|
|
44
|
+
const options = '-b 1M -no-duplicates -no-recovery -always-use-fragments';
|
|
45
|
+
if (process.arch === 'ia32') {
|
|
46
|
+
// options = '-b 1M'
|
|
47
|
+
}
|
|
48
|
+
const comp = `xz -Xbcj ${filter} ${options}`;
|
|
49
|
+
return comp;
|
|
50
|
+
}
|
|
51
|
+
pendrive(level = '15') {
|
|
52
|
+
let comp = 'gzip';
|
|
53
|
+
if (this.isEnabled.zstd) {
|
|
54
|
+
comp = `zstd -b 1M -Xcompression-level ${level}`;
|
|
55
|
+
}
|
|
56
|
+
else if (this.isEnabled.lz4) {
|
|
57
|
+
comp = 'lz4';
|
|
58
|
+
}
|
|
59
|
+
return comp;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* populate
|
|
63
|
+
*/
|
|
64
|
+
async populate() {
|
|
65
|
+
await this.prepareCheck();
|
|
66
|
+
this.isEnabled.error = await this.check('error');
|
|
67
|
+
this.isEnabled.lzma = await this.check('lzma');
|
|
68
|
+
this.isEnabled.lzo = await this.check('lzo');
|
|
69
|
+
this.isEnabled.lz4 = await this.check('lz4');
|
|
70
|
+
this.isEnabled.xz = await this.check('xz');
|
|
71
|
+
this.isEnabled.zstd = await this.check('zstd');
|
|
72
|
+
await this.removeCheck();
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* standard
|
|
76
|
+
* @returns
|
|
77
|
+
*/
|
|
78
|
+
standard() {
|
|
79
|
+
const comp = 'xz -b 1M';
|
|
80
|
+
return comp;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* check mksquashfs exists
|
|
84
|
+
* @param compressor
|
|
85
|
+
* @returns
|
|
86
|
+
*/
|
|
87
|
+
async check(compressor) {
|
|
88
|
+
let result = false;
|
|
89
|
+
const { stderr } = shx.exec('mksquashfs ' + this.source + ' ' + this.dest + ' -comp ' + compressor + ' -no-xattrs -ef ' + this.dest, { silent: true });
|
|
90
|
+
if (stderr === '') {
|
|
91
|
+
result = true;
|
|
92
|
+
}
|
|
93
|
+
return result;
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* prepareCheck
|
|
97
|
+
*/
|
|
98
|
+
async prepareCheck() {
|
|
99
|
+
shx.exec('rm -rf ' + this.source, { silent: true });
|
|
100
|
+
shx.exec('mkdir ' + this.source, { silent: true });
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* removeCheck
|
|
104
|
+
*/
|
|
105
|
+
async removeCheck() {
|
|
106
|
+
shx.exec('rm -rf ' + this.source, { silent: true });
|
|
107
|
+
shx.exec('rm -f ' + this.dest, { silent: true });
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/daddy.ts
|
|
3
|
+
* penguins-eggs v.25.7.x / ECMAScript 2020
|
|
4
|
+
* author: Piero Proietti (modified by Hossein Seilani)
|
|
5
|
+
* license: MIT
|
|
6
|
+
*/
|
|
7
|
+
import Settings from '../classes/settings.js';
|
|
8
|
+
import { IEggsConfig } from '../interfaces/i-eggs-config.js';
|
|
9
|
+
export default class Daddy {
|
|
10
|
+
settings: Settings;
|
|
11
|
+
/**
|
|
12
|
+
* [CHANGE 1] Modular, type-safe, interactive configuration editor
|
|
13
|
+
* This method asks the user for LiveCD parameters using inquirer and returns
|
|
14
|
+
* a fully typed IEggsConfig object. It replaces the older JSON.stringify/parse approach.
|
|
15
|
+
*/
|
|
16
|
+
editConfig(config: IEggsConfig): Promise<IEggsConfig>;
|
|
17
|
+
/**
|
|
18
|
+
* [CHANGE 2] Central method to manage environment, configuration and save
|
|
19
|
+
* This method is modular, type-safe, and handles:
|
|
20
|
+
* - Pacman and distro templates check
|
|
21
|
+
* - Load, reset, or apply custom configuration
|
|
22
|
+
* - Save configuration to disk
|
|
23
|
+
* - Provide clear guidance to the user
|
|
24
|
+
*/
|
|
25
|
+
helpMe(reset?: boolean, isCustom?: boolean, fileCustom?: string, verbose?: boolean): Promise<void>;
|
|
26
|
+
/**
|
|
27
|
+
* Check and install Pacman configuration and templates if missing
|
|
28
|
+
*/
|
|
29
|
+
private checkPacman;
|
|
30
|
+
/**
|
|
31
|
+
* Apply reset or custom configuration
|
|
32
|
+
*/
|
|
33
|
+
private applyResetOrCustomConfig;
|
|
34
|
+
/**
|
|
35
|
+
* Load and apply a custom YAML configuration
|
|
36
|
+
* [CHANGE 3] Async reading of file and type-safe parsing
|
|
37
|
+
*/
|
|
38
|
+
private applyCustomYAML;
|
|
39
|
+
/**
|
|
40
|
+
* Display final guidance and tips to the user
|
|
41
|
+
* [CHANGE 4] Modular, clear, user-friendly messages
|
|
42
|
+
*/
|
|
43
|
+
private displayFinalHelp;
|
|
44
|
+
}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/daddy.ts
|
|
3
|
+
* penguins-eggs v.25.7.x / ECMAScript 2020
|
|
4
|
+
* author: Piero Proietti (modified by Hossein Seilani)
|
|
5
|
+
* license: MIT
|
|
6
|
+
*/
|
|
7
|
+
import chalk from 'chalk';
|
|
8
|
+
import inquirer from 'inquirer';
|
|
9
|
+
import yaml from 'js-yaml';
|
|
10
|
+
import fs from 'node:fs/promises';
|
|
11
|
+
import path from 'node:path';
|
|
12
|
+
import { exec } from '../lib/utils.js';
|
|
13
|
+
import Pacman from '../classes/pacman.js';
|
|
14
|
+
import Settings from '../classes/settings.js';
|
|
15
|
+
import Utils from '../classes/utils.js';
|
|
16
|
+
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
17
|
+
export default class Daddy {
|
|
18
|
+
settings = {};
|
|
19
|
+
/**
|
|
20
|
+
* [CHANGE 1] Modular, type-safe, interactive configuration editor
|
|
21
|
+
* This method asks the user for LiveCD parameters using inquirer and returns
|
|
22
|
+
* a fully typed IEggsConfig object. It replaces the older JSON.stringify/parse approach.
|
|
23
|
+
*/
|
|
24
|
+
async editConfig(config) {
|
|
25
|
+
console.log(chalk.cyan('Edit and save Live system parameters\n'));
|
|
26
|
+
// Determine default compression option
|
|
27
|
+
let compressionOpt;
|
|
28
|
+
switch (config.compression) {
|
|
29
|
+
case 'xz':
|
|
30
|
+
compressionOpt = 1;
|
|
31
|
+
break;
|
|
32
|
+
case 'xz -Xbcj x86':
|
|
33
|
+
compressionOpt = 2;
|
|
34
|
+
break;
|
|
35
|
+
default:
|
|
36
|
+
compressionOpt = 0;
|
|
37
|
+
break;
|
|
38
|
+
}
|
|
39
|
+
// Provide a default snapshot prefix if empty
|
|
40
|
+
if (!config.snapshot_prefix) {
|
|
41
|
+
config.snapshot_prefix = Utils.snapshotPrefix(this.settings.distro.distroId, this.settings.distro.codenameId);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* // Define type-safe inquirer questions
|
|
45
|
+
* const questions: inquirer.QuestionCollection<IEggsConfig> = [
|
|
46
|
+
*/
|
|
47
|
+
const questions = [
|
|
48
|
+
{
|
|
49
|
+
type: 'input',
|
|
50
|
+
name: 'snapshot_prefix',
|
|
51
|
+
message: 'LiveCD iso prefix: ',
|
|
52
|
+
default: config.snapshot_prefix,
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
type: 'input',
|
|
56
|
+
name: 'snapshot_basename',
|
|
57
|
+
message: 'LiveCD iso basename: ',
|
|
58
|
+
default: config.snapshot_basename,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
type: 'input',
|
|
62
|
+
name: 'user_opt',
|
|
63
|
+
message: 'LiveCD user:',
|
|
64
|
+
default: config.user_opt,
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
type: 'input',
|
|
68
|
+
name: 'user_opt_passwd',
|
|
69
|
+
message: 'LiveCD user password:',
|
|
70
|
+
default: config.user_opt_passwd,
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
type: 'input',
|
|
74
|
+
name: 'root_passwd',
|
|
75
|
+
message: 'LiveCD root password:',
|
|
76
|
+
default: config.root_passwd,
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
type: 'list',
|
|
80
|
+
name: 'compression',
|
|
81
|
+
message: 'LiveCD compression: ',
|
|
82
|
+
choices: ['fast', 'max'],
|
|
83
|
+
default: compressionOpt,
|
|
84
|
+
},
|
|
85
|
+
];
|
|
86
|
+
try {
|
|
87
|
+
// Prompt the user and return the typed config object
|
|
88
|
+
const answers = await inquirer.prompt(questions);
|
|
89
|
+
return answers;
|
|
90
|
+
}
|
|
91
|
+
catch (err) {
|
|
92
|
+
console.error(chalk.red('Error editing configuration:'), err);
|
|
93
|
+
throw err;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* [CHANGE 2] Central method to manage environment, configuration and save
|
|
98
|
+
* This method is modular, type-safe, and handles:
|
|
99
|
+
* - Pacman and distro templates check
|
|
100
|
+
* - Load, reset, or apply custom configuration
|
|
101
|
+
* - Save configuration to disk
|
|
102
|
+
* - Provide clear guidance to the user
|
|
103
|
+
*/
|
|
104
|
+
async helpMe(reset = false, isCustom = false, fileCustom = '', verbose = false) {
|
|
105
|
+
try {
|
|
106
|
+
if (isCustom)
|
|
107
|
+
console.log('Using custom file:', fileCustom);
|
|
108
|
+
// Step 1: Check system prerequisites
|
|
109
|
+
await this.checkPacman(verbose);
|
|
110
|
+
// Step 2: Load settings
|
|
111
|
+
this.settings = new Settings();
|
|
112
|
+
const loaded = await this.settings.load();
|
|
113
|
+
let config = loaded ? this.settings.config : {};
|
|
114
|
+
// Step 3: Apply reset or custom configuration
|
|
115
|
+
if (reset || isCustom) {
|
|
116
|
+
await this.applyResetOrCustomConfig(config, isCustom, fileCustom);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
config = await this.editConfig(config);
|
|
120
|
+
}
|
|
121
|
+
// Step 4: Save final configuration
|
|
122
|
+
await this.settings.save(config);
|
|
123
|
+
// Step 5: Display help messages
|
|
124
|
+
this.displayFinalHelp();
|
|
125
|
+
}
|
|
126
|
+
catch (err) {
|
|
127
|
+
console.error(chalk.red('An error occurred in helpMe:'), err);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Check and install Pacman configuration and templates if missing
|
|
132
|
+
*/
|
|
133
|
+
async checkPacman(verbose) {
|
|
134
|
+
if (!Pacman.configurationCheck()) {
|
|
135
|
+
console.log('- creating configuration directory...');
|
|
136
|
+
await Pacman.configurationInstall(verbose);
|
|
137
|
+
}
|
|
138
|
+
if (!Pacman.distroTemplateCheck()) {
|
|
139
|
+
console.log('- installing distro template...');
|
|
140
|
+
await Pacman.distroTemplateInstall(verbose);
|
|
141
|
+
}
|
|
142
|
+
if (!Pacman.calamaresExists() && Pacman.isInstalledGui() && Pacman.isCalamaresAvailable()) {
|
|
143
|
+
console.log('- GUI system detected, calamares is available but not installed.');
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Apply reset or custom configuration
|
|
148
|
+
*/
|
|
149
|
+
async applyResetOrCustomConfig(config, isCustom, fileCustom) {
|
|
150
|
+
// Reset snapshot prefix if empty
|
|
151
|
+
if (!config.snapshot_prefix) {
|
|
152
|
+
let fstype = '';
|
|
153
|
+
try {
|
|
154
|
+
const { data } = await exec(`findmnt -n -o FSTYPE /`, { capture: true });
|
|
155
|
+
fstype = data.trim() === 'ext4' ? '' : `${data.trim()}-`;
|
|
156
|
+
}
|
|
157
|
+
catch (err) {
|
|
158
|
+
console.warn('Unable to detect FSTYPE:', err);
|
|
159
|
+
}
|
|
160
|
+
config.snapshot_prefix = Utils.snapshotPrefix(this.settings.distro.distroId, this.settings.distro.codenameId) + fstype;
|
|
161
|
+
}
|
|
162
|
+
// Apply custom YAML if needed
|
|
163
|
+
if (isCustom && fileCustom) {
|
|
164
|
+
await this.applyCustomYAML(config, fileCustom);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Load and apply a custom YAML configuration
|
|
169
|
+
* [CHANGE 3] Async reading of file and type-safe parsing
|
|
170
|
+
*/
|
|
171
|
+
async applyCustomYAML(config, fileCustom) {
|
|
172
|
+
try {
|
|
173
|
+
const conf = await fs.readFile(fileCustom, 'utf8');
|
|
174
|
+
const confCustom = yaml.load(conf);
|
|
175
|
+
// Safely copy fields from YAML to config
|
|
176
|
+
config.snapshot_basename = confCustom.snapshot_basename ?? config.snapshot_basename;
|
|
177
|
+
config.snapshot_prefix = confCustom.snapshot_prefix ?? config.snapshot_prefix;
|
|
178
|
+
config.user_opt = confCustom.user_opt ?? config.user_opt;
|
|
179
|
+
config.user_opt_passwd = confCustom.user_opt_passwd ?? config.user_opt_passwd;
|
|
180
|
+
config.root_passwd = confCustom.root_passwd ?? config.root_passwd;
|
|
181
|
+
config.theme = confCustom.theme ?? config.theme;
|
|
182
|
+
}
|
|
183
|
+
catch (err) {
|
|
184
|
+
console.error(chalk.red('Failed to load custom YAML config:'), err);
|
|
185
|
+
throw err;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Display final guidance and tips to the user
|
|
190
|
+
* [CHANGE 4] Modular, clear, user-friendly messages
|
|
191
|
+
*/
|
|
192
|
+
displayFinalHelp() {
|
|
193
|
+
console.log();
|
|
194
|
+
console.log(chalk.cyan('Your configuration was saved on: /etc/penguins-eggs.d'));
|
|
195
|
+
console.log(chalk.cyan('You can create a clean ISO with: ') + chalk.white('sudo eggs produce'));
|
|
196
|
+
console.log(chalk.cyan('Or a full personal clone: ') + chalk.white('sudo eggs produce --clone'));
|
|
197
|
+
console.log();
|
|
198
|
+
console.log(chalk.cyan('If you don’t have enough space to remaster, you can mount remote or local space:'));
|
|
199
|
+
console.log(chalk.cyan('- Create a hidden mountpoint under the nest:'));
|
|
200
|
+
console.log(chalk.white('sudo mkdir /home/eggs/.mnt -p'));
|
|
201
|
+
console.log(chalk.cyan('- Mount remote space:'));
|
|
202
|
+
console.log(chalk.white('sudo sshfs -o allow_other root@192.168.1.2:/zfs/iso /home/eggs/.mnt'));
|
|
203
|
+
console.log(chalk.cyan('- Or mount a local partition:'));
|
|
204
|
+
console.log(chalk.white('sudo mount /dev/sdx1 /home/eggs/.mnt'));
|
|
205
|
+
console.log();
|
|
206
|
+
console.log(chalk.cyan('More help? ') + chalk.white('eggs mom'));
|
|
207
|
+
}
|
|
208
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* penguins-eggs
|
|
3
|
+
* class: distro.ts
|
|
4
|
+
* author: Piero Proietti (modified by Hossein Seilani)
|
|
5
|
+
* license: MIT
|
|
6
|
+
*
|
|
7
|
+
* FINAL VERSION WITH EXPLAINED COMMENTS AND NEW CHANGE TAGS
|
|
8
|
+
*/
|
|
9
|
+
import { IDistro } from '../interfaces/index.js';
|
|
10
|
+
declare class Distro implements IDistro {
|
|
11
|
+
bugReportUrl: string;
|
|
12
|
+
codenameId: string;
|
|
13
|
+
distroUniqueId: string;
|
|
14
|
+
distroId: string;
|
|
15
|
+
distroLike: string;
|
|
16
|
+
familyId: string;
|
|
17
|
+
homeUrl: string;
|
|
18
|
+
isCalamaresAvailable: boolean;
|
|
19
|
+
liveMediumPath: string;
|
|
20
|
+
releaseId: string;
|
|
21
|
+
squashfs: string;
|
|
22
|
+
supportUrl: string;
|
|
23
|
+
syslinuxPath: string;
|
|
24
|
+
usrLibPath: string;
|
|
25
|
+
constructor();
|
|
26
|
+
/**
|
|
27
|
+
* NEW CHANGE6: Modular configuration for main distro types like Alpine, Fedora-family, etc.
|
|
28
|
+
* This simplifies the constructor and keeps distro-specific logic isolated.
|
|
29
|
+
*/
|
|
30
|
+
private configureDistro;
|
|
31
|
+
/**
|
|
32
|
+
* NEW CHANGE12: Map Debian, Ubuntu, Devuan codenames to proper IDs and paths
|
|
33
|
+
* This avoids long if/else chains and allows easier future updates.
|
|
34
|
+
*/
|
|
35
|
+
private debianFamily;
|
|
36
|
+
/**
|
|
37
|
+
* NEW CHANGE15: Async derivative detection from YAML files
|
|
38
|
+
* This allows future-proofing and easy updates for new distros.
|
|
39
|
+
*/
|
|
40
|
+
private detectDerivatives;
|
|
41
|
+
/**
|
|
42
|
+
* NEW CHANGE16: Apply family-specific paths for usrLibPath, squashfs, and liveMediumPath
|
|
43
|
+
* Handles Debian, openSUSE, Manjaro and derivatives consistently.
|
|
44
|
+
*/
|
|
45
|
+
private applyFamilySpecificPaths;
|
|
46
|
+
/**
|
|
47
|
+
* NEW CHANGE17: Load custom HOME, SUPPORT, BUG_REPORT URLs from /etc/os-release
|
|
48
|
+
* Allows overrides of default URLs for user-friendly experience.
|
|
49
|
+
*/
|
|
50
|
+
private loadOSReleaseUrls;
|
|
51
|
+
}
|
|
52
|
+
export default Distro;
|