penguins-eggs 25.9.25 → 25.10.6
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 +9 -1
- package/README.md +66 -62
- 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 +0 -0
- package/assets/calamares/install-system.sh +0 -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/README.md +1 -1
- package/conf/distros/alpine/calamares/calamares-modules/machineid-openrc/machineid-openrc.sh +0 -0
- package/conf/distros/alpine/calamares/modules/displaymanager.yml +9 -19
- package/conf/distros/alpine/calamares/modules/packages.mustache +4 -0
- package/conf/distros/archlinux/calamares/modules/README.md +13 -0
- package/conf/distros/{rolling → archlinux}/calamares/modules/bootloader.yml +14 -3
- package/conf/distros/archlinux/calamares/modules/displaymanager.yml +12 -0
- package/conf/distros/archlinux/calamares/modules/finished.yml +5 -0
- package/conf/distros/archlinux/calamares/modules/initcpio.mustache +4 -0
- package/conf/distros/archlinux/calamares/modules/packages.mustache +5 -0
- package/conf/distros/archlinux/calamares/modules/partition.yml +15 -0
- package/conf/distros/archlinux/calamares/modules/removeuser.mustache +3 -0
- package/conf/distros/archlinux/calamares/modules/shellprocess@disable-grub-btrfs.yml +9 -0
- package/conf/distros/archlinux/calamares/modules/unpackfs.mustache +6 -0
- package/conf/distros/{rolling → archlinux}/calamares/modules/users.yml +3 -1
- package/conf/distros/{rolling → archlinux}/calamares/settings.yml +11 -7
- 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/displaymanager.yml +9 -19
- package/conf/distros/buster/calamares/modules/mount.yml +4 -105
- package/conf/distros/buster/calamares/modules/packages.mustache +5 -0
- package/conf/distros/buster/calamares/modules/removeuser.mustache +3 -0
- package/conf/distros/buster/calamares/modules/shellprocess@boot_deploy.yml +1 -0
- package/conf/distros/buster/calamares/modules/shellprocess@boot_reconfigure.yml +1 -0
- package/conf/distros/buster/calamares/modules/shellprocess@mkinitramfs.yml +2 -0
- package/conf/distros/buster/calamares/modules/unpackfs.mustache +6 -0
- package/conf/distros/buster/calamares/settings.yml +1 -1
- package/conf/distros/fedora/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +0 -0
- package/conf/distros/fedora/calamares/modules/README.md +4 -0
- package/conf/distros/fedora/calamares/modules/bootloader.yml +2 -1
- package/conf/distros/fedora/calamares/modules/displaymanager.yml +9 -19
- package/conf/distros/fedora/calamares/modules/dracut.mustache +7 -0
- package/conf/distros/fedora/calamares/modules/mount.yml +6 -1
- package/conf/distros/fedora/calamares/modules/packages.mustache +5 -0
- package/conf/distros/fedora/calamares/modules/removeuser.mustache +3 -0
- package/conf/distros/fedora/calamares/modules/unpackfs.mustache +6 -0
- package/conf/distros/fedora/calamares/settings.yml +6 -1
- package/conf/distros/focal/calamares/calamares-modules/.keepit +0 -0
- package/conf/distros/focal/calamares/calamares-modules/cleanup/cleanup.sh +20 -0
- package/conf/distros/focal/calamares/calamares-modules/cleanup/module.yml +9 -0
- package/conf/distros/focal/calamares/calamares-modules/sources-yolk/sources-yolk.sh +50 -0
- package/conf/distros/focal/calamares/modules/after_bootloader_context.yml +19 -0
- package/conf/distros/focal/calamares/modules/automirror.yml +6 -0
- package/conf/distros/focal/calamares/modules/before_bootloader_context.yml +19 -0
- package/conf/distros/focal/calamares/modules/before_bootloader_mkdirs_context.yml +11 -0
- package/conf/distros/{bionic → focal}/calamares/modules/bootloader.yml +2 -7
- package/conf/distros/focal/calamares/modules/displaymanager.yml +12 -0
- package/conf/distros/{bionic → focal}/calamares/modules/finished.yml +1 -2
- package/conf/distros/focal/calamares/modules/fstab.yml +13 -0
- package/conf/distros/focal/calamares/modules/grubcfg.yml +5 -0
- package/conf/distros/focal/calamares/modules/locale.yml +9 -0
- package/conf/distros/focal/calamares/modules/machineid.yml +9 -0
- package/conf/distros/focal/calamares/modules/mount.yml +41 -0
- package/conf/distros/focal/calamares/modules/packages.mustache +5 -0
- package/conf/distros/{jessie/krill/modules/partitions.yml → focal/calamares/modules/partition.yml} +5 -3
- package/conf/distros/focal/calamares/modules/removeuser.mustache +3 -0
- package/conf/distros/focal/calamares/modules/shellprocess_add386arch.yml +6 -0
- package/conf/distros/focal/calamares/modules/shellprocess_bug-LP#1829805.yml +5 -0
- package/conf/distros/focal/calamares/modules/shellprocess_logs.yml +6 -0
- package/conf/distros/focal/calamares/modules/unpackfs.mustache +6 -0
- package/conf/distros/focal/calamares/modules/users.yml +19 -0
- package/conf/distros/focal/calamares/modules/welcome.yml +26 -0
- package/conf/distros/focal/calamares/settings.yml +72 -0
- package/conf/distros/manjaro/calamares/modules/bootloader.yml +15 -0
- package/conf/distros/manjaro/calamares/modules/displaymanager.yml +12 -0
- package/conf/distros/manjaro/calamares/modules/finished.yml +4 -0
- package/conf/distros/manjaro/calamares/modules/initcpio.mustache +4 -0
- package/conf/distros/manjaro/calamares/modules/locale.yml +6 -0
- package/conf/distros/manjaro/calamares/modules/machineid.yml +4 -0
- package/conf/distros/manjaro/calamares/modules/mhwdcfg.yml +18 -0
- package/conf/distros/manjaro/calamares/modules/packages.mustache +5 -0
- package/conf/distros/manjaro/calamares/modules/partition.yml +14 -0
- package/conf/distros/manjaro/calamares/modules/postcfg.yml +4 -0
- package/conf/distros/manjaro/calamares/modules/removeuser.mustache +3 -0
- package/conf/distros/manjaro/calamares/modules/services.yml +71 -0
- package/conf/distros/manjaro/calamares/modules/shellprocess@disable-grub-btrfs.yml +9 -0
- package/conf/distros/manjaro/calamares/modules/unpackfs.mustache +6 -0
- package/conf/distros/manjaro/calamares/modules/users.yml +22 -0
- package/conf/distros/manjaro/calamares/modules/welcome.yml +23 -0
- package/conf/distros/{jessie/krill → manjaro/calamares}/settings.yml +18 -52
- package/conf/distros/noble/README.md +24 -0
- package/conf/distros/noble/calamares/calamares-modules/cleanup/cleanup.sh +20 -0
- package/conf/distros/noble/calamares/calamares-modules/cleanup/module.yml +9 -0
- package/conf/distros/noble/calamares/calamares-modules/sources-yolk/sources-yolk.sh +50 -0
- package/conf/distros/noble/calamares/libexec/calamares-aptsources.sh +0 -0
- package/conf/distros/noble/calamares/libexec/calamares-l10n-helper.sh +3 -0
- package/conf/distros/noble/calamares/libexec/calamares-logs-helper.sh +0 -0
- package/conf/distros/noble/calamares/libexec/calamares-nomodeset.sh +0 -0
- package/conf/distros/noble/calamares/modules/displaymanager.yml +7 -16
- package/conf/distros/noble/calamares/modules/packages.mustache +5 -0
- package/conf/distros/noble/calamares/modules/removeuser.mustache +3 -0
- package/conf/distros/noble/calamares/modules/shellprocess@boot_deploy.yml +1 -0
- package/conf/distros/noble/calamares/modules/shellprocess@boot_reconfigure.yml +1 -0
- package/conf/distros/noble/calamares/modules/shellprocess@install_translations.yml +1 -0
- package/conf/distros/noble/calamares/modules/shellprocess@logs.yml +1 -0
- package/conf/distros/noble/calamares/modules/shellprocess@mkinitramfs.yml +2 -0
- package/conf/distros/noble/calamares/modules/shellprocess@nomodeset.yml +1 -0
- package/conf/distros/noble/calamares/modules/unpackfs.mustache +6 -0
- package/conf/distros/noble/calamares/modules/users.yml +1 -1
- package/conf/distros/opensuse/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +1 -1
- package/conf/distros/opensuse/calamares/modules/displaymanager.yml +4 -18
- package/conf/distros/opensuse/calamares/modules/dracut.mustache +7 -0
- package/conf/distros/opensuse/calamares/modules/packages.mustache +5 -0
- package/conf/distros/opensuse/calamares/modules/removeuser.mustache +3 -0
- package/conf/distros/opensuse/calamares/modules/unpackfs.mustache +6 -0
- package/conf/distros/opensuse/calamares/settings.yml +1 -1
- package/conf/distros/opensuse/calamares/zstd2lzo.sh +0 -0
- package/conf/distros/trixie/calamares/calamares-modules/bootloader-config/bootloader-config.sh +40 -0
- package/conf/distros/{stretch/krill/krill-modules → trixie/calamares/calamares-modules}/bootloader-config/module.yml +2 -1
- package/conf/distros/trixie/calamares/calamares-modules/cleanup/cleanup.sh +20 -0
- package/conf/distros/trixie/calamares/calamares-modules/cleanup/module.yml +9 -0
- package/conf/distros/trixie/calamares/calamares-modules/dpkg-unsafe-io/dpkg-unsafe-io.sh +13 -0
- package/conf/distros/trixie/calamares/calamares-modules/dpkg-unsafe-io/module.yml +6 -0
- package/conf/distros/trixie/calamares/calamares-modules/dpkg-unsafe-io-undo/module.yml +6 -0
- package/conf/distros/trixie/calamares/calamares-modules/sources-yolk/sources-yolk.sh +50 -0
- package/conf/distros/trixie/calamares/calamares-modules/sources-yolk-undo/module.yml +8 -0
- package/conf/distros/trixie/calamares/libexec/.keepit +0 -0
- package/conf/distros/trixie/calamares/libexec/README.md +5 -0
- package/conf/distros/{openmamba → trixie}/calamares/modules/bootloader.yml +3 -0
- package/conf/distros/trixie/calamares/modules/displaymanager.yml +12 -0
- package/conf/distros/trixie/calamares/modules/finished.yml +5 -0
- package/conf/distros/trixie/calamares/modules/fstab.yml +12 -0
- package/conf/distros/{rolling → trixie}/calamares/modules/locale.yml +23 -57
- package/conf/distros/{openmamba → trixie}/calamares/modules/luksopenswaphookcfg.yml +1 -3
- package/conf/distros/trixie/calamares/modules/machineid.yml +17 -0
- package/conf/distros/{openmamba → trixie}/calamares/modules/mount.yml +2 -2
- package/conf/distros/trixie/calamares/modules/packages.mustache +5 -0
- package/conf/distros/{openmamba → trixie}/calamares/modules/partition.yml +70 -10
- package/conf/distros/trixie/calamares/modules/removeuser.mustache +3 -0
- package/conf/distros/trixie/calamares/modules/shellprocess@boot_deploy.yml +24 -0
- package/conf/distros/trixie/calamares/modules/shellprocess@boot_reconfigure.yml +15 -0
- package/conf/distros/trixie/calamares/modules/shellprocess@mkinitramfs.yml +6 -0
- package/conf/distros/trixie/calamares/modules/unpackfs.mustache +6 -0
- package/conf/distros/{bionic → trixie}/calamares/modules/users.yml +4 -3
- package/conf/distros/{rolling → trixie}/calamares/modules/welcome.yml +1 -1
- package/conf/distros/{stretch/krill → trixie/calamares}/settings.yml +25 -12
- 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 +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 +175 -0
- package/dist/classes/distro.d.ts +32 -0
- package/dist/classes/distro.js +356 -0
- package/dist/classes/diversions.d.ts +53 -0
- package/dist/classes/diversions.js +133 -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 +4 -0
- package/dist/classes/incubation/customize/customize-partitions.js +29 -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 +81 -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 +101 -0
- package/dist/classes/incubation/incubator.d.ts +48 -0
- package/dist/classes/incubation/incubator.js +378 -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 +194 -0
- package/dist/classes/ovary.d/edit-live-fs.d.ts +20 -0
- package/dist/classes/ovary.d/edit-live-fs.js +245 -0
- package/dist/classes/ovary.d/fertilization.d.ts +12 -0
- package/dist/classes/ovary.d/fertilization.js +52 -0
- package/dist/classes/ovary.d/finished.d.ts +13 -0
- package/dist/classes/ovary.d/finished.js +44 -0
- package/dist/classes/ovary.d/initrd.d.ts +21 -0
- package/dist/classes/ovary.d/initrd.js +97 -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 +73 -0
- package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
- package/dist/classes/ovary.d/make-dot-disk.js +62 -0
- package/dist/classes/ovary.d/make-efi.d.ts +14 -0
- package/dist/classes/ovary.d/make-efi.js +274 -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 +110 -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 +319 -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 +82 -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 +123 -0
- package/dist/classes/ovary.d.ts +87 -0
- package/dist/classes/ovary.js +90 -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 +327 -0
- package/dist/classes/utils.js +955 -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 +21 -0
- package/dist/commands/love.js +73 -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 +35 -0
- package/dist/commands/produce.js +221 -0
- package/dist/commands/status.d.ts +23 -0
- package/dist/commands/status.js +31 -0
- package/dist/commands/syncfrom.d.ts +45 -0
- package/dist/commands/syncfrom.js +152 -0
- package/dist/commands/syncto.d.ts +40 -0
- package/dist/commands/syncto.js +175 -0
- package/dist/commands/tools/clean.d.ts +18 -0
- package/dist/commands/tools/clean.js +37 -0
- package/dist/commands/tools/ppa.d.ts +31 -0
- package/dist/commands/tools/ppa.js +244 -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/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/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +48 -43
- package/package.json +129 -125
- 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/scripts/99clean +0 -0
- package/scripts/_eggs +9 -7
- package/scripts/adapt.sh +0 -0
- package/scripts/bros/waydroid-helper.sh +0 -0
- package/scripts/eggs.bash +3 -3
- package/scripts/lsb_release +0 -0
- package/scripts/mom.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/alpine/calamares/modules/packages.yml +0 -6
- package/conf/distros/beowulf/README.md +0 -3
- package/conf/distros/bionic/README.md +0 -31
- package/conf/distros/bionic/calamares/calamares-modules/add386arch/module.yml +0 -8
- package/conf/distros/bionic/calamares/calamares-modules/after-bootloader/after-bootloader.sh +0 -1
- package/conf/distros/bionic/calamares/calamares-modules/after-bootloader/module.yml +0 -8
- package/conf/distros/bionic/calamares/calamares-modules/before-bootloader/before-bootloader.sh +0 -5
- package/conf/distros/bionic/calamares/calamares-modules/before-bootloader/module.yml +0 -8
- package/conf/distros/bionic/calamares/calamares-modules/before-bootloader-mkdirs/before-bootloader-mkdirs.sh +0 -1
- package/conf/distros/bionic/calamares/calamares-modules/before-bootloader-mkdirs/module.yml +0 -8
- package/conf/distros/bionic/calamares/calamares-modules/bug/bug.sh +0 -1
- package/conf/distros/bionic/calamares/calamares-modules/bug/module.yml +0 -8
- package/conf/distros/bionic/calamares/calamares-modules/grubcfg/grubcfg.yml +0 -45
- package/conf/distros/bionic/calamares/calamares-modules/grubcfg/main.py +0 -231
- package/conf/distros/bionic/calamares/calamares-modules/grubcfg/module.yml +0 -5
- package/conf/distros/bionic/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -82
- package/conf/distros/bionic/calamares/modules/fstab.yml +0 -13
- package/conf/distros/bionic/calamares/modules/packages.yml +0 -6
- package/conf/distros/bionic/calamares/modules/partition.yml +0 -8
- package/conf/distros/bionic/calamares/modules/removeuser.yml +0 -15
- package/conf/distros/bionic/calamares/modules/unpackfs.yml +0 -6
- package/conf/distros/bionic/calamares/modules/welcome.yml +0 -22
- package/conf/distros/bionic/calamares/settings.yml +0 -52
- package/conf/distros/bookworm/README.md +0 -9
- package/conf/distros/bullseye/README.md +0 -9
- package/conf/distros/buster/calamares/modules/mount.3.2.yml +0 -20
- package/conf/distros/buster/calamares/modules/packages.yml +0 -6
- package/conf/distros/buster/calamares/modules/removeuser.yml +0 -15
- package/conf/distros/buster/calamares/modules/unpackfs.yml +0 -6
- package/conf/distros/chimaera/README.md +0 -3
- package/conf/distros/daedalus/README.md +0 -3
- package/conf/distros/devel/README.md +0 -3
- package/conf/distros/excalibur/README.md +0 -3
- package/conf/distros/fedora/calamares/modules/dracut.yml +0 -14
- package/conf/distros/fedora/calamares/modules/packages.yml +0 -6
- package/conf/distros/fedora/calamares/modules/removeuser.yml +0 -15
- package/conf/distros/fedora/calamares/modules/unpackfs.yml +0 -6
- package/conf/distros/focal/README.md +0 -3
- package/conf/distros/jammy/README.md +0 -41
- package/conf/distros/jessie/README.me +0 -3
- package/conf/distros/jessie/krill/krill-modules/bootloader-config/bootloader-config.sh +0 -28
- package/conf/distros/jessie/krill/krill-modules/bootloader-config/module.yml +0 -8
- package/conf/distros/jessie/krill/krill-modules/remove-link/module.yml +0 -9
- package/conf/distros/jessie/krill/krill-modules/remove-link/remove-link.sh +0 -5
- package/conf/distros/jessie/krill/krill-modules/sources-yolk/sources-yolk.sh +0 -75
- package/conf/distros/jessie/krill/modules/removeuser.yml +0 -15
- package/conf/distros/noble/calamares/modules/packages.yml +0 -6
- package/conf/distros/noble/calamares/modules/unpackfs.yml +0 -6
- package/conf/distros/openmamba/calamares/modules/displaymanager.yml +0 -22
- package/conf/distros/openmamba/calamares/modules/finished.yml +0 -47
- package/conf/distros/openmamba/calamares/modules/fstab.yml +0 -37
- package/conf/distros/openmamba/calamares/modules/grubcfg.yml +0 -51
- package/conf/distros/openmamba/calamares/modules/keyboard.yml +0 -33
- package/conf/distros/openmamba/calamares/modules/locale.yml +0 -131
- package/conf/distros/openmamba/calamares/modules/machineid.yml +0 -56
- package/conf/distros/openmamba/calamares/modules/openrcdmcryptcfg.yml +0 -5
- package/conf/distros/openmamba/calamares/modules/packages.yml +0 -6
- package/conf/distros/openmamba/calamares/modules/removeuser.yml +0 -13
- package/conf/distros/openmamba/calamares/modules/services-systemd.yml +0 -54
- package/conf/distros/openmamba/calamares/modules/umount.yml +0 -14
- package/conf/distros/openmamba/calamares/modules/unpackfs.yml +0 -93
- package/conf/distros/openmamba/calamares/modules/users.yml +0 -272
- package/conf/distros/openmamba/calamares/modules/welcome.yml +0 -138
- package/conf/distros/openmamba/calamares/settings.yml +0 -226
- package/conf/distros/opensuse/calamares/modules/dracut.yml +0 -14
- package/conf/distros/opensuse/calamares/modules/packages.yml +0 -6
- package/conf/distros/opensuse/calamares/modules/removeuser.yml +0 -2
- package/conf/distros/opensuse/calamares/modules/unpackfs.yml +0 -5
- package/conf/distros/rolling/calamares/modules/displaymanager.yml +0 -21
- package/conf/distros/rolling/calamares/modules/finished.yml +0 -47
- package/conf/distros/rolling/calamares/modules/fstab.yml +0 -31
- package/conf/distros/rolling/calamares/modules/luksopenswaphookcfg.yml +0 -5
- package/conf/distros/rolling/calamares/modules/machineid.yml +0 -40
- package/conf/distros/rolling/calamares/modules/mount.yml +0 -115
- package/conf/distros/rolling/calamares/modules/packages.yml +0 -6
- package/conf/distros/rolling/calamares/modules/partition.yml +0 -242
- package/conf/distros/rolling/calamares/modules/removeuser.yml +0 -16
- package/conf/distros/rolling/calamares/modules/shellprocess_sync.yml +0 -5
- package/conf/distros/rolling/calamares/modules/unpackfs.yml +0 -7
- package/conf/distros/stretch/README.md +0 -4
- package/conf/distros/stretch/krill/krill-modules/bootloader-config/bootloader-config.sh +0 -28
- package/conf/distros/stretch/krill/krill-modules/remove-link/module.yml +0 -9
- package/conf/distros/stretch/krill/krill-modules/remove-link/remove-link.sh +0 -5
- package/conf/distros/stretch/krill/krill-modules/sources-yolk/sources-yolk.sh +0 -75
- package/conf/distros/stretch/krill/modules/partitions.yml +0 -8
- package/conf/distros/stretch/krill/modules/removeuser.yml +0 -15
- package/conf/distros/trixie/README.md +0 -9
- package/conf/distros/voidlinux/README.md +0 -1
- package/pods/README.md +0 -14
- package/pods/almalinux.sh +0 -10
- package/pods/archlinux.sh +0 -10
- package/pods/ci/README.md +0 -5
- package/pods/ci/kernel-overlay-install.sh +0 -114
- package/pods/ci/minimal/almalinux-container2host.sh +0 -165
- package/pods/ci/minimal/archlinux-container2host.sh +0 -125
- package/pods/ci/minimal/debian-container2host.sh +0 -173
- package/pods/ci/minimal/fedora-container2host.sh +0 -170
- package/pods/ci/minimal/manjaro-container2host.sh +0 -123
- package/pods/ci/minimal/opensuse-container2host.sh +0 -143
- package/pods/ci/penguins-eggs-execute.sh +0 -22
- package/pods/ci/penguins-eggs-install.sh +0 -115
- package/pods/ci/run +0 -34
- package/pods/ci/run-on-almalinux.sh +0 -50
- package/pods/ci/run-on-archlinux.sh +0 -64
- package/pods/ci/run-on-debian.sh +0 -51
- package/pods/ci/run-on-devuan.sh +0 -48
- package/pods/ci/run-on-fedora.sh +0 -51
- package/pods/ci/run-on-manjaro.sh +0 -61
- package/pods/ci/run-on-opensuse.sh +0 -58
- package/pods/ci/run-on-rockylinux.sh +0 -51
- package/pods/ci/run-on-ubuntu.sh +0 -52
- package/pods/debian.sh +0 -23
- package/pods/devuan.sh +0 -26
- package/pods/fedora.sh +0 -12
- package/pods/lmde.sh +0 -22
- package/pods/manjaro.sh +0 -10
- package/pods/opensuse.sh +0 -12
- package/pods/podman.command.sh +0 -85
- package/pods/rocky.sh +0 -12
- package/pods/run-build-packages-debs.sh +0 -45
- package/pods/run-create-debs.sh +0 -23
- package/pods/ubuntu.sh +0 -24
- /package/conf/distros/alpine/calamares/modules/{removeuser.yml → removeuser.mustache} +0 -0
- /package/conf/distros/alpine/calamares/modules/{unpackfs.yml → unpackfs.mustache} +0 -0
- /package/conf/distros/{bionic → focal}/calamares/calamares-modules/sources-yolk/module.yml +0 -0
- /package/conf/distros/{jessie/krill/krill-modules/sources-yolk-unmount → focal/calamares/calamares-modules/sources-yolk-undo}/module.yml +0 -0
- /package/conf/distros/{jessie/krill/krill-modules → noble/calamares/calamares-modules}/sources-yolk/module.yml +0 -0
- /package/conf/distros/{stretch/krill/krill-modules/sources-yolk-unmount → noble/calamares/calamares-modules/sources-yolk-undo}/module.yml +0 -0
- /package/conf/distros/{stretch/krill/krill-modules → trixie/calamares/calamares-modules}/sources-yolk/module.yml +0 -0
|
@@ -0,0 +1,955 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/utils.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
|
+
* Refactored Utils class - imports from modular utilities
|
|
9
|
+
*/
|
|
10
|
+
import shx from 'shelljs';
|
|
11
|
+
import fs from 'fs';
|
|
12
|
+
import dns from 'dns';
|
|
13
|
+
import path from 'path';
|
|
14
|
+
import os from 'os';
|
|
15
|
+
import inquirer from 'inquirer';
|
|
16
|
+
import { execSync, spawnSync } from 'child_process';
|
|
17
|
+
import chalk from 'chalk';
|
|
18
|
+
import { Netmask } from 'netmask';
|
|
19
|
+
import Kernel from './utils.d/kernel.js';
|
|
20
|
+
import Distro from './distro.js';
|
|
21
|
+
// pjson
|
|
22
|
+
import { createRequire } from 'module';
|
|
23
|
+
const require = createRequire(import.meta.url);
|
|
24
|
+
const pjson = require('../../package.json');
|
|
25
|
+
// __dirname
|
|
26
|
+
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
27
|
+
/**
|
|
28
|
+
* Utils: general porpourse utils
|
|
29
|
+
* @remarks all the utilities
|
|
30
|
+
*/
|
|
31
|
+
export default class Utils {
|
|
32
|
+
static vmlinuz(kernel = '') {
|
|
33
|
+
return Kernel.vmlinuz(kernel);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* @deprecated Use Kernel.initramfs() instead
|
|
37
|
+
*/
|
|
38
|
+
static initrdImg(kernel = '') {
|
|
39
|
+
return Kernel.initramfs(kernel);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Custom function to sort object keys
|
|
43
|
+
* @param obj
|
|
44
|
+
* @returns
|
|
45
|
+
*/
|
|
46
|
+
static sortObjectKeys(obj) {
|
|
47
|
+
const sorted = {};
|
|
48
|
+
Object.keys(obj)
|
|
49
|
+
.sort()
|
|
50
|
+
.forEach(key => {
|
|
51
|
+
sorted[key] = obj[key];
|
|
52
|
+
});
|
|
53
|
+
return sorted;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
*
|
|
57
|
+
* @param file
|
|
58
|
+
* @param search
|
|
59
|
+
* @returns value
|
|
60
|
+
*/
|
|
61
|
+
static searchOnFile(file = '', search = '') {
|
|
62
|
+
const lines = fs.readFileSync(file, 'utf8').split("\n");
|
|
63
|
+
let value = '';
|
|
64
|
+
lines.forEach(line => {
|
|
65
|
+
line = line.replace(/\s+/g, ' '); // Remove multiple spaces with single space
|
|
66
|
+
if (line.includes(search)) {
|
|
67
|
+
value = line.substring(line.indexOf('=') + 1);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
value = value.replaceAll('"', ''); // Remove "
|
|
71
|
+
return value.trim();
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Restituisce il prefisso della iso
|
|
75
|
+
* @param distroId
|
|
76
|
+
* @param codenameId
|
|
77
|
+
*/
|
|
78
|
+
static snapshotPrefix(distroId, codenameId) {
|
|
79
|
+
let result = `egg-of_${distroId.toLowerCase()}-`;
|
|
80
|
+
if (codenameId === 'rolling' || codenameId === '') {
|
|
81
|
+
const releaseId = Utils.getOsRelease().VERSION_ID.trim();
|
|
82
|
+
if (releaseId !== '') {
|
|
83
|
+
result += releaseId;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
result += `${codenameId.toLowerCase()}`;
|
|
88
|
+
}
|
|
89
|
+
if (!result.endsWith('-')) {
|
|
90
|
+
result += '-';
|
|
91
|
+
}
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Detect if running inside a container (Docker or LXC)
|
|
96
|
+
*/
|
|
97
|
+
static isContainer() {
|
|
98
|
+
// Check for Docker's specific file
|
|
99
|
+
if (fs.existsSync('/.dockerenv')) {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
// Check the cgroup file, which works for Docker, Podman, LXC, etc.
|
|
103
|
+
try {
|
|
104
|
+
const cgroupContent = fs.readFileSync('/proc/1/cgroup', 'utf8');
|
|
105
|
+
return cgroupContent.includes('/docker/') || cgroupContent.includes('/kubepods/');
|
|
106
|
+
}
|
|
107
|
+
catch (e) {
|
|
108
|
+
return false;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Check if the system uses Systemd
|
|
113
|
+
*/
|
|
114
|
+
static isSystemd() {
|
|
115
|
+
let isSystemd = false;
|
|
116
|
+
if (!this.isContainer()) {
|
|
117
|
+
isSystemd = fs.readFileSync("/proc/1/comm").includes('systemd');
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
isSystemd = true;
|
|
121
|
+
let distro = new Distro();
|
|
122
|
+
if (distro.distroId === "Devuan") {
|
|
123
|
+
isSystemd = false;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return isSystemd;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Check if the system uses SysVinit
|
|
130
|
+
*/
|
|
131
|
+
static isSysvinit() {
|
|
132
|
+
let isSysvinit = false;
|
|
133
|
+
if (!this.isContainer()) {
|
|
134
|
+
isSysvinit = fs.readFileSync("/proc/1/comm").includes('init');
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
let distro = new Distro();
|
|
138
|
+
if (distro.distroId === "Devuan") {
|
|
139
|
+
isSysvinit = true;
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return isSysvinit;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Check if the system uses OpenRC
|
|
146
|
+
*/
|
|
147
|
+
static isOpenRc() {
|
|
148
|
+
let isOpenRc = false;
|
|
149
|
+
if (!this.isContainer()) {
|
|
150
|
+
try {
|
|
151
|
+
execSync('command -v openrc');
|
|
152
|
+
isOpenRc = true;
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
isOpenRc = false;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
return isOpenRc;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Occore vedere un modo per creare machine-id dove non esiste
|
|
162
|
+
*/
|
|
163
|
+
static machineId() {
|
|
164
|
+
let result = '';
|
|
165
|
+
if (fs.existsSync('/etc/machine-id')) {
|
|
166
|
+
result = fs.readFileSync('/etc/machine-id', 'utf-8').trim();
|
|
167
|
+
}
|
|
168
|
+
else if (fs.existsSync('/var/lib/dbus/machine-id')) {
|
|
169
|
+
result = fs.readFileSync('/var/lib/dbus/machine-id', 'utf-8').trim();
|
|
170
|
+
}
|
|
171
|
+
return result;
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
*
|
|
175
|
+
* @param msg
|
|
176
|
+
*/
|
|
177
|
+
static warning(msg = '') {
|
|
178
|
+
console.log(pjson.shortName + ' >>> ' + chalk.cyanBright(msg) + '.');
|
|
179
|
+
}
|
|
180
|
+
static error(msg = '') {
|
|
181
|
+
console.error(pjson.shortName + ' >>> ' + chalk.bgMagentaBright(chalk.whiteBright(msg)) + '.');
|
|
182
|
+
}
|
|
183
|
+
/**
|
|
184
|
+
* Return the primary user's name
|
|
185
|
+
*/
|
|
186
|
+
static async getPrimaryUser() {
|
|
187
|
+
const { execSync } = require('child_process');
|
|
188
|
+
let primaryUser = '';
|
|
189
|
+
try {
|
|
190
|
+
// Attempt to get the user from logname
|
|
191
|
+
primaryUser = execSync('/usr/bin/logname 2>/dev/null', { encoding: 'utf-8' }).trim();
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
// console.log("logname failed, so we continue with other methods")
|
|
195
|
+
}
|
|
196
|
+
if (primaryUser === 'root') {
|
|
197
|
+
primaryUser = '';
|
|
198
|
+
}
|
|
199
|
+
if (primaryUser === '') {
|
|
200
|
+
try {
|
|
201
|
+
// Check if doas is installed and get the DOAS_USER
|
|
202
|
+
execSync('command -v doas', { stdio: 'ignore' });
|
|
203
|
+
primaryUser = execSync('echo $DOAS_USER', { encoding: 'utf-8' }).trim();
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
// console.log("doas is not installed or DOAS_USER is not set, continue with the next method")
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
if (primaryUser === '') {
|
|
210
|
+
try {
|
|
211
|
+
// Check for the SUDO_USER
|
|
212
|
+
primaryUser = execSync('echo $SUDO_USER', { encoding: 'utf-8' }).trim();
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
// console.log("SUDO_USER is not set, continue with the next method")
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
if (primaryUser === '') {
|
|
219
|
+
// console.log("Fallback to the USER environment variable")
|
|
220
|
+
primaryUser = process.env.USER || '';
|
|
221
|
+
}
|
|
222
|
+
if (primaryUser === '') {
|
|
223
|
+
primaryUser = 'dummy';
|
|
224
|
+
// console.error('Cannot determine the primary user.');
|
|
225
|
+
// process.exit(1);
|
|
226
|
+
}
|
|
227
|
+
return primaryUser;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* restituisce uuid
|
|
231
|
+
* @param device
|
|
232
|
+
*/
|
|
233
|
+
static uuid(device) {
|
|
234
|
+
const uuid = shx.exec(`blkid -s UUID -o value ${device}`).stdout.trim();
|
|
235
|
+
return uuid;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
*
|
|
239
|
+
* @param device
|
|
240
|
+
* @returns
|
|
241
|
+
*/
|
|
242
|
+
static uuidGen() {
|
|
243
|
+
const uuid = shx.exec(`uuidgen`, { silent: true }).stdout.trim();
|
|
244
|
+
return uuid;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
*
|
|
248
|
+
* @param date
|
|
249
|
+
*/
|
|
250
|
+
static formatDate(date) {
|
|
251
|
+
const d = new Date(date);
|
|
252
|
+
let month = String(d.getMonth() + 1);
|
|
253
|
+
let day = String(d.getDate());
|
|
254
|
+
const year = d.getFullYear();
|
|
255
|
+
let hh = String(d.getHours());
|
|
256
|
+
let mm = String(d.getMinutes());
|
|
257
|
+
if (month.length < 2) {
|
|
258
|
+
month = '0' + month;
|
|
259
|
+
}
|
|
260
|
+
if (day.length < 2) {
|
|
261
|
+
day = '0' + day;
|
|
262
|
+
}
|
|
263
|
+
if (hh.length < 2) {
|
|
264
|
+
hh = '0' + hh;
|
|
265
|
+
}
|
|
266
|
+
if (mm.length < 2) {
|
|
267
|
+
mm = '0' + mm;
|
|
268
|
+
}
|
|
269
|
+
return [year, month, day].join('-') + '_' + hh + mm;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* return the name of the package: penguins-eggs
|
|
273
|
+
* @returns penguins-eggs
|
|
274
|
+
*/
|
|
275
|
+
static getPackageName() {
|
|
276
|
+
return pjson.shortName;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Count the eggs present in the nest
|
|
280
|
+
* @returns {number} Numero degli snapshot presenti
|
|
281
|
+
*/
|
|
282
|
+
static getSnapshotCount(snapshot_dir = '/') {
|
|
283
|
+
if (fs.existsSync(snapshot_dir)) {
|
|
284
|
+
const files = fs.readdirSync(snapshot_dir);
|
|
285
|
+
let nIsos = 0;
|
|
286
|
+
for (const f of files) {
|
|
287
|
+
if (f.endsWith('.iso')) {
|
|
288
|
+
nIsos++;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
return nIsos;
|
|
292
|
+
}
|
|
293
|
+
return 0;
|
|
294
|
+
}
|
|
295
|
+
/**
|
|
296
|
+
* Get the syze of the snapshot
|
|
297
|
+
* @returns {string} grandezza dello snapshot in Byte
|
|
298
|
+
*/
|
|
299
|
+
static getSnapshotSize(snapshot_dir = '/') {
|
|
300
|
+
let fileSizeInBytes = 0;
|
|
301
|
+
const size = shx.exec(`/usr/bin/find ${snapshot_dir} -maxdepth 1 -type f -name '*.iso' -exec du -sc {} + | tail -1 | awk '{print $1}'`, { silent: true }).stdout.trim();
|
|
302
|
+
if (size === '') {
|
|
303
|
+
fileSizeInBytes = 0;
|
|
304
|
+
}
|
|
305
|
+
else {
|
|
306
|
+
fileSizeInBytes = Number(size);
|
|
307
|
+
}
|
|
308
|
+
return fileSizeInBytes;
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* uefiArch
|
|
312
|
+
* @returns arch
|
|
313
|
+
*/
|
|
314
|
+
static uefiArch() {
|
|
315
|
+
let arch = '';
|
|
316
|
+
if (process.arch === 'ia32') {
|
|
317
|
+
arch = 'i386';
|
|
318
|
+
//
|
|
319
|
+
if (shx.exec('uname -m', { silent: true }).stdout.trim() === 'x86_64') {
|
|
320
|
+
arch = 'amd64';
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
else if (process.arch === 'x64') {
|
|
324
|
+
arch = 'amd64';
|
|
325
|
+
}
|
|
326
|
+
else if (process.arch === 'arm64') {
|
|
327
|
+
arch = 'arm64';
|
|
328
|
+
}
|
|
329
|
+
return arch;
|
|
330
|
+
}
|
|
331
|
+
/**
|
|
332
|
+
* i386-pc,
|
|
333
|
+
* i386-efi,
|
|
334
|
+
* x86_64-efi,
|
|
335
|
+
* arm64-efi,
|
|
336
|
+
*
|
|
337
|
+
* ATTEMZIONE: install efibootmgr
|
|
338
|
+
*
|
|
339
|
+
* Fedora/RHEL have i386-pc
|
|
340
|
+
*/
|
|
341
|
+
static uefiFormat() {
|
|
342
|
+
let format = '';
|
|
343
|
+
if (process.arch === 'ia32') {
|
|
344
|
+
format = 'i386-efi';
|
|
345
|
+
if (shx.exec('uname -m', { silent: true }).stdout.trim() === 'x86_64') {
|
|
346
|
+
format = 'x86_64-efi';
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
else if (process.arch === 'x64') {
|
|
350
|
+
format = 'x86_64-efi';
|
|
351
|
+
}
|
|
352
|
+
else if (process.arch === 'arm64') {
|
|
353
|
+
format = 'arm64-efi';
|
|
354
|
+
}
|
|
355
|
+
return format;
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
*
|
|
359
|
+
* @returns
|
|
360
|
+
*/
|
|
361
|
+
static usrLibPath() {
|
|
362
|
+
let path = '';
|
|
363
|
+
if (process.arch === 'x64') {
|
|
364
|
+
path = 'x86_64-linux-gnu';
|
|
365
|
+
}
|
|
366
|
+
else if (process.arch === 'arm64') {
|
|
367
|
+
path = 'aarch64-linux-gnu';
|
|
368
|
+
}
|
|
369
|
+
return path;
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
*
|
|
373
|
+
* @param prefix
|
|
374
|
+
* @param backup
|
|
375
|
+
* @returns
|
|
376
|
+
*/
|
|
377
|
+
static getPrefix(prefix, backup = false) {
|
|
378
|
+
if (backup) {
|
|
379
|
+
if (prefix.substring(0, 7) === 'egg-of_') {
|
|
380
|
+
prefix = 'egg-bk_' + prefix.substring(7);
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
prefix = 'egg-bk_' + prefix;
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
return prefix;
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
*
|
|
390
|
+
* @param volid
|
|
391
|
+
*/
|
|
392
|
+
static getVolid(volid = 'unknown') {
|
|
393
|
+
// // 28 + 4 .iso = 32 lunghezza max di volid
|
|
394
|
+
if (volid.length >= 32) {
|
|
395
|
+
volid = volid.substring(0, 32);
|
|
396
|
+
}
|
|
397
|
+
return volid;
|
|
398
|
+
}
|
|
399
|
+
/**
|
|
400
|
+
* Return postfix
|
|
401
|
+
* @param basename
|
|
402
|
+
* @returns eggName
|
|
403
|
+
*/
|
|
404
|
+
static getPostfix() {
|
|
405
|
+
let postfix = '_' + Utils.formatDate(new Date()) + '.iso';
|
|
406
|
+
return postfix;
|
|
407
|
+
}
|
|
408
|
+
/**
|
|
409
|
+
* Calculate the space used on the disk
|
|
410
|
+
* @return {void}
|
|
411
|
+
*/
|
|
412
|
+
static getUsedSpace() {
|
|
413
|
+
let fileSizeInBytes = 0;
|
|
414
|
+
if (this.isLive()) {
|
|
415
|
+
fileSizeInBytes = 0; // this.getLiveRootSpace()
|
|
416
|
+
}
|
|
417
|
+
else {
|
|
418
|
+
fileSizeInBytes = Number(shx.exec(`df /home | /usr/bin/awk 'NR==2 {print $3}'`, {
|
|
419
|
+
silent: true
|
|
420
|
+
}).stdout);
|
|
421
|
+
}
|
|
422
|
+
return fileSizeInBytes;
|
|
423
|
+
}
|
|
424
|
+
/**
|
|
425
|
+
* Extimate the linuxfs dimension
|
|
426
|
+
* probably is better to rename it as
|
|
427
|
+
* getLiveSpaceRootNeed
|
|
428
|
+
* @returns {number} Byte
|
|
429
|
+
*/
|
|
430
|
+
static getLiveRootSpace(type = 'debian-live') {
|
|
431
|
+
let squashFs = '/run/live/medium/live/filesystem.squashfs';
|
|
432
|
+
if (type === 'mx') {
|
|
433
|
+
squashFs = '/live/boot-dev/antiX/linuxfs';
|
|
434
|
+
}
|
|
435
|
+
// Ottengo la dimensione del file compresso
|
|
436
|
+
const compressedFs = fs.statSync(squashFs).size;
|
|
437
|
+
// get compression factor by reading the linuxfs squasfs file, if available
|
|
438
|
+
const compressedFs_compression_type = shx.exec(`dd if=${compressedFs} bs=1 skip=20 count=2 status=none 2>/dev/null| /usr/bin/od -An -tdI`);
|
|
439
|
+
let compression_factor = 0;
|
|
440
|
+
if (compressedFs_compression_type === '1') {
|
|
441
|
+
compression_factor = 37; // gzip
|
|
442
|
+
}
|
|
443
|
+
else if (compressedFs_compression_type === '2') {
|
|
444
|
+
compression_factor = 52; // lzo, not used by antiX
|
|
445
|
+
}
|
|
446
|
+
else if (compressedFs_compression_type === '3') {
|
|
447
|
+
compression_factor = 52; // lzma, not used by antiX
|
|
448
|
+
}
|
|
449
|
+
else if (compressedFs_compression_type === '4') {
|
|
450
|
+
compression_factor = 31; // xz
|
|
451
|
+
}
|
|
452
|
+
else if (compressedFs_compression_type === '5') {
|
|
453
|
+
compression_factor = 52; // lz4
|
|
454
|
+
}
|
|
455
|
+
else {
|
|
456
|
+
compression_factor = 30; // anything else or linuxfs not reachable (toram), should be pretty conservative
|
|
457
|
+
}
|
|
458
|
+
let rootfs_file_size = 0;
|
|
459
|
+
const linuxfs_file_size = (Number(shx.exec('df /live/linux --output=used --total | /usr/bin/tail -n1').stdout.trim()) * 1024 * 100) / compression_factor;
|
|
460
|
+
if (fs.existsSync('/live/persist-root')) {
|
|
461
|
+
rootfs_file_size = Number(shx.exec('df /live/persist-root --output=used --total | /usr/bin/tail -n1').stdout.trim()) * 1024;
|
|
462
|
+
}
|
|
463
|
+
let rootSpaceNeeded;
|
|
464
|
+
if (type === 'mx') {
|
|
465
|
+
/**
|
|
466
|
+
* add rootfs file size to the calculated linuxfs file size. Probaby conservative, as rootfs will likely have some overlap with linuxfs
|
|
467
|
+
*/
|
|
468
|
+
rootSpaceNeeded = linuxfs_file_size + rootfs_file_size;
|
|
469
|
+
}
|
|
470
|
+
else {
|
|
471
|
+
rootSpaceNeeded = linuxfs_file_size;
|
|
472
|
+
}
|
|
473
|
+
return rootSpaceNeeded / 1073741824.0; // Converte in GB
|
|
474
|
+
}
|
|
475
|
+
/**
|
|
476
|
+
* Return true if i686 architecture
|
|
477
|
+
* @remarks to move in Utils
|
|
478
|
+
* @returns {boolean} true se l'architettura è i686
|
|
479
|
+
*/
|
|
480
|
+
static isi686() {
|
|
481
|
+
return process.arch === 'ia32';
|
|
482
|
+
}
|
|
483
|
+
/**
|
|
484
|
+
* Controlla se è un pacchetto deb
|
|
485
|
+
* /usr/lib/penguins-eggs/bin/node
|
|
486
|
+
*/
|
|
487
|
+
static isPackage() {
|
|
488
|
+
let ret = false;
|
|
489
|
+
//if (process.execPath !== '/usr/bin/node') {
|
|
490
|
+
if (process.execPath === '/usr/lib/penguins-eggs/bin/node') {
|
|
491
|
+
ret = true;
|
|
492
|
+
}
|
|
493
|
+
return ret;
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Controlla se è un pacchetto sorgente
|
|
497
|
+
*/
|
|
498
|
+
static isSources() {
|
|
499
|
+
let ret = false;
|
|
500
|
+
if (__dirname.substring(0, 6) === '/home/') {
|
|
501
|
+
ret = true;
|
|
502
|
+
}
|
|
503
|
+
return ret;
|
|
504
|
+
}
|
|
505
|
+
/**
|
|
506
|
+
* Controlla se è un pacchetto npm
|
|
507
|
+
*/
|
|
508
|
+
static isNpmPackage() {
|
|
509
|
+
return !(this.isPackage() || this.isSources());
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
*
|
|
513
|
+
*/
|
|
514
|
+
static rootPenguin() {
|
|
515
|
+
return path.resolve(__dirname, '../../');
|
|
516
|
+
}
|
|
517
|
+
/**
|
|
518
|
+
* return the short name of the package: eggs
|
|
519
|
+
* @returns eggs
|
|
520
|
+
*/
|
|
521
|
+
static getFriendName() {
|
|
522
|
+
return pjson.shortName;
|
|
523
|
+
}
|
|
524
|
+
/**
|
|
525
|
+
* return the version of the package
|
|
526
|
+
* @returns version example 8.0.0
|
|
527
|
+
*/
|
|
528
|
+
static getPackageVersion() {
|
|
529
|
+
return pjson.version;
|
|
530
|
+
}
|
|
531
|
+
/**
|
|
532
|
+
* Get author name
|
|
533
|
+
*/
|
|
534
|
+
static getAuthorName() {
|
|
535
|
+
return 'Piero Proietti piero.proietti@gmail.com';
|
|
536
|
+
}
|
|
537
|
+
/**
|
|
538
|
+
* Return the Debian version
|
|
539
|
+
* @returns {number} Versione di Debian
|
|
540
|
+
*/
|
|
541
|
+
static getDebianVersion() {
|
|
542
|
+
const cmd = "cat /etc/debian_version | /usr/bin/cut -f1 -d'.'";
|
|
543
|
+
const version = Number(shx.exec(cmd, { silent: true }).stdout);
|
|
544
|
+
return version;
|
|
545
|
+
}
|
|
546
|
+
/**
|
|
547
|
+
* Return true if live system
|
|
548
|
+
* @returns {boolean} isLive
|
|
549
|
+
*/
|
|
550
|
+
static isLive() {
|
|
551
|
+
let retVal = false;
|
|
552
|
+
const paths = [
|
|
553
|
+
'/lib/live/mount', // debian-live
|
|
554
|
+
'/run/live/rootfs/filesystem.squashfs', // debian trixie
|
|
555
|
+
'/lib/live/mount/rootfs/filesystem.squashfs', // ubuntu bionic
|
|
556
|
+
'/live/aufs', // mx-linux
|
|
557
|
+
'/media/root-rw', // AlpineLinux
|
|
558
|
+
'/run/archiso/airootfs', // Arch
|
|
559
|
+
'/run/miso/sfs/livefs', // Manjarolinux
|
|
560
|
+
'/run/rootfsbase' // Fedora
|
|
561
|
+
];
|
|
562
|
+
for (let i = 0; i < paths.length; i++) {
|
|
563
|
+
if (Utils.isMountpoint(paths[i])) {
|
|
564
|
+
retVal = true;
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
return retVal;
|
|
568
|
+
}
|
|
569
|
+
/**
|
|
570
|
+
* Ritorna vero se path è un mountpoint
|
|
571
|
+
* @param path
|
|
572
|
+
*/
|
|
573
|
+
static isMountpoint(path = '') {
|
|
574
|
+
const cmd = `mountpoint -q ${path}`;
|
|
575
|
+
// return 0 if the directory is a mountpoint, non-zero if not.
|
|
576
|
+
const result = shx.exec(cmd, { silent: true }).code;
|
|
577
|
+
return result === 0;
|
|
578
|
+
}
|
|
579
|
+
/**
|
|
580
|
+
*
|
|
581
|
+
* @param device
|
|
582
|
+
* @returns
|
|
583
|
+
*/
|
|
584
|
+
static isBlockDevice(device = '') {
|
|
585
|
+
const cmd = `lsblk -d -o name | grep ${device}`;
|
|
586
|
+
const result = shx.exec(cmd, { silent: true }).code;
|
|
587
|
+
return result === 0;
|
|
588
|
+
}
|
|
589
|
+
/**
|
|
590
|
+
* return true if eggs run as root
|
|
591
|
+
* @returns isRoot
|
|
592
|
+
*/
|
|
593
|
+
static isRoot(command = '') {
|
|
594
|
+
if (process.getuid && process.getuid() === 0) {
|
|
595
|
+
return true;
|
|
596
|
+
}
|
|
597
|
+
return false;
|
|
598
|
+
}
|
|
599
|
+
/**
|
|
600
|
+
*
|
|
601
|
+
* @param command
|
|
602
|
+
*/
|
|
603
|
+
static useRoot(command = '') {
|
|
604
|
+
Utils.titles(pjson.shortName + ' ' + command + ` need to run with root privileges. Please, prefix it with sudo`);
|
|
605
|
+
}
|
|
606
|
+
/**
|
|
607
|
+
* get the kernel version
|
|
608
|
+
*/
|
|
609
|
+
static kernelVersion() {
|
|
610
|
+
return os.release();
|
|
611
|
+
}
|
|
612
|
+
/**
|
|
613
|
+
* return the name of network device
|
|
614
|
+
*/
|
|
615
|
+
static async iface() {
|
|
616
|
+
// return shx.exec(`ifconfig | awk 'FNR==1 { print $1 }' | tr --d :`, { silent: true }).stdout.trim()
|
|
617
|
+
const interfaces = Object.keys(os.networkInterfaces());
|
|
618
|
+
let netDeviceName = '';
|
|
619
|
+
for (const k in interfaces) {
|
|
620
|
+
if (interfaces[k] != 'lo') {
|
|
621
|
+
netDeviceName = interfaces[k];
|
|
622
|
+
}
|
|
623
|
+
}
|
|
624
|
+
return netDeviceName;
|
|
625
|
+
}
|
|
626
|
+
/**
|
|
627
|
+
* address
|
|
628
|
+
*/
|
|
629
|
+
static address() {
|
|
630
|
+
const interfaces = os.networkInterfaces();
|
|
631
|
+
let address = '';
|
|
632
|
+
if (interfaces !== undefined) {
|
|
633
|
+
for (const devName in interfaces) {
|
|
634
|
+
const iface = interfaces[devName];
|
|
635
|
+
if (iface !== undefined) {
|
|
636
|
+
for (const alias of iface) {
|
|
637
|
+
if (alias.family === 'IPv4' &&
|
|
638
|
+
alias.address !== '127.0.0.1' &&
|
|
639
|
+
!alias.internal) {
|
|
640
|
+
// take just the first!
|
|
641
|
+
if (address === '') {
|
|
642
|
+
address = alias.address;
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
}
|
|
649
|
+
return address;
|
|
650
|
+
}
|
|
651
|
+
/**
|
|
652
|
+
* netmask
|
|
653
|
+
*/
|
|
654
|
+
static netmask() {
|
|
655
|
+
const interfaces = os.networkInterfaces();
|
|
656
|
+
let netmask = '';
|
|
657
|
+
if (interfaces !== undefined) {
|
|
658
|
+
for (const devName in interfaces) {
|
|
659
|
+
const iface = interfaces[devName];
|
|
660
|
+
if (iface !== undefined) {
|
|
661
|
+
for (const alias of iface) {
|
|
662
|
+
if (alias.family === 'IPv4' &&
|
|
663
|
+
alias.address !== '127.0.0.1' &&
|
|
664
|
+
!alias.internal) {
|
|
665
|
+
// take just the first!
|
|
666
|
+
if (netmask === '') {
|
|
667
|
+
netmask = alias.netmask;
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
}
|
|
672
|
+
}
|
|
673
|
+
}
|
|
674
|
+
return netmask;
|
|
675
|
+
}
|
|
676
|
+
/**
|
|
677
|
+
* cidr
|
|
678
|
+
*/
|
|
679
|
+
static cidr() {
|
|
680
|
+
const interfaces = os.networkInterfaces();
|
|
681
|
+
let cidr = '';
|
|
682
|
+
if (interfaces !== undefined) {
|
|
683
|
+
for (const devName in interfaces) {
|
|
684
|
+
const iface = interfaces[devName];
|
|
685
|
+
if (iface !== undefined) {
|
|
686
|
+
for (const alias of iface) {
|
|
687
|
+
if (alias.family === 'IPv4' &&
|
|
688
|
+
alias.address !== '127.0.0.1' &&
|
|
689
|
+
!alias.internal) {
|
|
690
|
+
// take just the first!
|
|
691
|
+
if (cidr === '') {
|
|
692
|
+
if (alias.cidr !== null) {
|
|
693
|
+
cidr = alias.cidr;
|
|
694
|
+
}
|
|
695
|
+
}
|
|
696
|
+
}
|
|
697
|
+
}
|
|
698
|
+
}
|
|
699
|
+
}
|
|
700
|
+
}
|
|
701
|
+
return cidr;
|
|
702
|
+
}
|
|
703
|
+
/**
|
|
704
|
+
*
|
|
705
|
+
* broadcast
|
|
706
|
+
*/
|
|
707
|
+
static broadcast() {
|
|
708
|
+
let n = new Netmask(Utils.cidr());
|
|
709
|
+
return n.broadcast;
|
|
710
|
+
}
|
|
711
|
+
/**
|
|
712
|
+
* dns
|
|
713
|
+
*/
|
|
714
|
+
static getDns() {
|
|
715
|
+
return dns.getServers();
|
|
716
|
+
}
|
|
717
|
+
/**
|
|
718
|
+
* getDomain
|
|
719
|
+
*/
|
|
720
|
+
static getDomain() {
|
|
721
|
+
return shx.exec('domainname', { silent: true }).stdout.trim();
|
|
722
|
+
// return shx.exec(`route -n | grep 'UG[ \t]' | awk '{print $2}'`, { silent: true }).stdout.trim()
|
|
723
|
+
}
|
|
724
|
+
/**
|
|
725
|
+
* @returns gateway
|
|
726
|
+
*/
|
|
727
|
+
static gateway() {
|
|
728
|
+
return shx.exec(`ip r | grep 'default' | awk '{print $3}'`, { silent: true }).stdout.trim();
|
|
729
|
+
//return shx.exec(`route -n | grep 'UG[ \t]' | awk '{print $2}'`, { silent: true }).stdout.trim()
|
|
730
|
+
}
|
|
731
|
+
/**
|
|
732
|
+
* write a file
|
|
733
|
+
* @param file
|
|
734
|
+
* @param text
|
|
735
|
+
*/
|
|
736
|
+
static write(file, text) {
|
|
737
|
+
text = text.trim() + '\n';
|
|
738
|
+
file = file.trim();
|
|
739
|
+
fs.writeFileSync(file, text);
|
|
740
|
+
}
|
|
741
|
+
/**
|
|
742
|
+
*
|
|
743
|
+
* @param file
|
|
744
|
+
* @param cmd
|
|
745
|
+
*/
|
|
746
|
+
static writeX(file, cmd) {
|
|
747
|
+
let text = `#!/bin/sh\n\n`;
|
|
748
|
+
text += `# Created at: ${Utils.formatDate(new Date())}\n`;
|
|
749
|
+
text += `# By: penguins_eggs v. ${Utils.getPackageVersion()}\n`;
|
|
750
|
+
text += `# ==> Perri\'s Brewery edition <== \n\n`;
|
|
751
|
+
text += cmd;
|
|
752
|
+
Utils.write(file, text);
|
|
753
|
+
shx.chmod('+x', file);
|
|
754
|
+
}
|
|
755
|
+
/**
|
|
756
|
+
*
|
|
757
|
+
* @param file
|
|
758
|
+
* @param cmd
|
|
759
|
+
*/
|
|
760
|
+
static writeXs(file, cmds) {
|
|
761
|
+
let cmd = '';
|
|
762
|
+
for (const elem of cmds) {
|
|
763
|
+
cmd += elem + '\n';
|
|
764
|
+
}
|
|
765
|
+
Utils.writeX(file, cmd);
|
|
766
|
+
}
|
|
767
|
+
/**
|
|
768
|
+
*
|
|
769
|
+
* @param msg
|
|
770
|
+
*/
|
|
771
|
+
static async customConfirm(msg = 'Select yes to continue... ') {
|
|
772
|
+
const varResult = await Utils.customConfirmCompanion(msg);
|
|
773
|
+
const result = JSON.parse(varResult);
|
|
774
|
+
if (result.confirm === 'Yes') {
|
|
775
|
+
return true;
|
|
776
|
+
}
|
|
777
|
+
else {
|
|
778
|
+
return false;
|
|
779
|
+
}
|
|
780
|
+
}
|
|
781
|
+
/**
|
|
782
|
+
*
|
|
783
|
+
* @param msg
|
|
784
|
+
*/
|
|
785
|
+
static async customConfirmCompanion(msg = 'Select yes to continue... ') {
|
|
786
|
+
return new Promise(function (resolve) {
|
|
787
|
+
const questions = [
|
|
788
|
+
{
|
|
789
|
+
type: 'list',
|
|
790
|
+
name: 'confirm',
|
|
791
|
+
message: msg,
|
|
792
|
+
choices: ['No', 'Yes'],
|
|
793
|
+
default: 'No'
|
|
794
|
+
}
|
|
795
|
+
];
|
|
796
|
+
inquirer.prompt(questions).then(function (options) {
|
|
797
|
+
resolve(JSON.stringify(options));
|
|
798
|
+
});
|
|
799
|
+
});
|
|
800
|
+
}
|
|
801
|
+
/**
|
|
802
|
+
*
|
|
803
|
+
* @param msg
|
|
804
|
+
*/
|
|
805
|
+
static async customConfirmAbort(msg = 'Confirm') {
|
|
806
|
+
return new Promise(function (resolve) {
|
|
807
|
+
const questions = [
|
|
808
|
+
{
|
|
809
|
+
type: 'list',
|
|
810
|
+
name: 'confirm',
|
|
811
|
+
message: msg,
|
|
812
|
+
choices: ['No', 'Yes', 'Abort'],
|
|
813
|
+
default: 'Yes'
|
|
814
|
+
}
|
|
815
|
+
];
|
|
816
|
+
inquirer.prompt(questions).then(function (options) {
|
|
817
|
+
resolve(JSON.stringify(options));
|
|
818
|
+
});
|
|
819
|
+
});
|
|
820
|
+
}
|
|
821
|
+
/**
|
|
822
|
+
*
|
|
823
|
+
*/
|
|
824
|
+
static async pressKeyToExit(warning = 'Process will end', procContinue = true) {
|
|
825
|
+
Utils.warning(warning);
|
|
826
|
+
let msg = 'Press a key to exit...';
|
|
827
|
+
if (procContinue) {
|
|
828
|
+
msg = 'Press a key to continue...';
|
|
829
|
+
}
|
|
830
|
+
console.log(msg);
|
|
831
|
+
const pressKeyToExit = spawnSync('read _ ', { shell: true, stdio: [0, 1, 2] });
|
|
832
|
+
if (!procContinue) {
|
|
833
|
+
process.exit(0);
|
|
834
|
+
}
|
|
835
|
+
}
|
|
836
|
+
static async debug(cmd = 'cmd', procContinue = true) {
|
|
837
|
+
console.log(chalk.redBright('DEBUG >>> ') + cmd + '\n');
|
|
838
|
+
let msg = 'Press a key to exit...';
|
|
839
|
+
if (procContinue) {
|
|
840
|
+
msg = 'Press a key to continue...';
|
|
841
|
+
}
|
|
842
|
+
console.log(msg);
|
|
843
|
+
const pressKeyToExit = spawnSync('read _ ', { shell: true, stdio: [0, 1, 2] });
|
|
844
|
+
if (!procContinue) {
|
|
845
|
+
process.exit(0);
|
|
846
|
+
}
|
|
847
|
+
}
|
|
848
|
+
/**
|
|
849
|
+
* titles
|
|
850
|
+
* Penguin's are gettings alive!
|
|
851
|
+
*/
|
|
852
|
+
static titles(command = '') {
|
|
853
|
+
console.clear();
|
|
854
|
+
console.log('');
|
|
855
|
+
console.log(' E G G S: the reproductive system of penguins');
|
|
856
|
+
console.log('');
|
|
857
|
+
console.log(Utils.flag());
|
|
858
|
+
console.log('command: ' + chalk.bgBlack.white(command) + '\n');
|
|
859
|
+
}
|
|
860
|
+
/**
|
|
861
|
+
*
|
|
862
|
+
* @returns flag
|
|
863
|
+
*/
|
|
864
|
+
static flag() {
|
|
865
|
+
return chalk.bgGreen.whiteBright(' ' + pjson.name + ' ') +
|
|
866
|
+
chalk.bgWhite.blue(" Perri's Brewery edition ") +
|
|
867
|
+
chalk.bgRed.whiteBright(' ver. ' + pjson.version + ' ');
|
|
868
|
+
}
|
|
869
|
+
/**
|
|
870
|
+
*
|
|
871
|
+
* @param verbose
|
|
872
|
+
*/
|
|
873
|
+
static setEcho(verbose = false) {
|
|
874
|
+
let echo = { echo: false, ignore: true };
|
|
875
|
+
if (verbose) {
|
|
876
|
+
echo = { echo: true, ignore: false };
|
|
877
|
+
}
|
|
878
|
+
return echo;
|
|
879
|
+
}
|
|
880
|
+
/**
|
|
881
|
+
*
|
|
882
|
+
* @param bytes
|
|
883
|
+
* @param decimals
|
|
884
|
+
* @returns
|
|
885
|
+
*/
|
|
886
|
+
static formatBytes(bytes, decimals = 2) {
|
|
887
|
+
if (bytes === 0)
|
|
888
|
+
return '0 Bytes';
|
|
889
|
+
const k = 1024;
|
|
890
|
+
const dm = decimals < 0 ? 0 : decimals;
|
|
891
|
+
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
|
|
892
|
+
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
893
|
+
return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + sizes[i];
|
|
894
|
+
}
|
|
895
|
+
/**
|
|
896
|
+
*
|
|
897
|
+
* @returns wardrobe
|
|
898
|
+
*/
|
|
899
|
+
static async wardrobe() {
|
|
900
|
+
let wardrobe = `${os.homedir()}/.wardrobe`;
|
|
901
|
+
if (Utils.isRoot()) {
|
|
902
|
+
wardrobe = `/home/${await Utils.getPrimaryUser()}/.wardrobe`;
|
|
903
|
+
}
|
|
904
|
+
return wardrobe;
|
|
905
|
+
}
|
|
906
|
+
// Se il metodo fa parte di una classe, usa `static`. Altrimenti, rimuovilo.
|
|
907
|
+
static getOsRelease() {
|
|
908
|
+
const osReleasePath = path.join('/etc', 'os-release');
|
|
909
|
+
// Inizializza l'oggetto con valori predefiniti
|
|
910
|
+
const osInfo = {
|
|
911
|
+
ID: '',
|
|
912
|
+
VERSION_ID: '',
|
|
913
|
+
VERSION_CODENAME: 'n/a'
|
|
914
|
+
};
|
|
915
|
+
// Verifica se il file esiste
|
|
916
|
+
if (!fs.existsSync(osReleasePath)) {
|
|
917
|
+
console.error('/etc/os-release file does not exist.');
|
|
918
|
+
return osInfo;
|
|
919
|
+
}
|
|
920
|
+
// Leggi il contenuto del file
|
|
921
|
+
let fileContent;
|
|
922
|
+
try {
|
|
923
|
+
fileContent = fs.readFileSync(osReleasePath, 'utf8');
|
|
924
|
+
}
|
|
925
|
+
catch (error) {
|
|
926
|
+
console.error('Error reading /etc/os-release:', error);
|
|
927
|
+
return osInfo;
|
|
928
|
+
}
|
|
929
|
+
// Analizza ogni linea
|
|
930
|
+
const lines = fileContent.split('\n');
|
|
931
|
+
lines.forEach(line => {
|
|
932
|
+
if (line.startsWith('#') || line.trim() === '')
|
|
933
|
+
return;
|
|
934
|
+
const [key, value] = line.split('=');
|
|
935
|
+
if (key && value) {
|
|
936
|
+
const trimmedKey = key.trim();
|
|
937
|
+
const trimmedValue = value.trim().replace(/"/g, '');
|
|
938
|
+
// Popola solo le chiavi desiderate
|
|
939
|
+
if (trimmedKey === 'ID') {
|
|
940
|
+
osInfo.ID = trimmedValue;
|
|
941
|
+
}
|
|
942
|
+
else if (trimmedKey === 'VERSION_ID') {
|
|
943
|
+
osInfo.VERSION_ID = trimmedValue;
|
|
944
|
+
}
|
|
945
|
+
else if (trimmedKey === 'VERSION_CODENAME') {
|
|
946
|
+
osInfo.VERSION_CODENAME = trimmedValue;
|
|
947
|
+
}
|
|
948
|
+
}
|
|
949
|
+
});
|
|
950
|
+
// capitalize distroId
|
|
951
|
+
osInfo.ID = osInfo.ID[0].toUpperCase() + osInfo.ID.slice(1).toLowerCase();
|
|
952
|
+
osInfo.VERSION_CODENAME = osInfo.VERSION_CODENAME.toLowerCase();
|
|
953
|
+
return osInfo;
|
|
954
|
+
}
|
|
955
|
+
}
|