penguins-eggs 25.10.3 → 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 +1 -1
- package/README.md +826 -0
- package/conf/distros/archlinux/calamares/modules/bootloader.yml +86 -0
- package/conf/distros/archlinux/calamares/modules/partition.yml +8 -386
- package/conf/distros/archlinux/calamares/settings.yml +0 -4
- 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/mount.yml +6 -1
- package/conf/distros/fedora/calamares/settings.yml +6 -1
- package/conf/distros/focal/calamares/modules/mount.yml +23 -5
- package/conf/distros/noble/calamares/libexec/calamares-l10n-helper.sh +3 -0
- package/conf/distros/opensuse/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +1 -1
- package/conf/distros/opensuse/calamares/modules/dracut.mustache +7 -0
- package/conf/distros/opensuse/calamares/modules/packages.mustache +1 -0
- package/conf/distros/opensuse/calamares/modules/removeuser.mustache +2 -1
- package/conf/distros/opensuse/calamares/modules/unpackfs.mustache +2 -1
- package/conf/distros/opensuse/calamares/settings.yml +1 -1
- 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/package.json +5 -5
- package/conf/distros/archlinux/calamares/modules/shellprocess@sync.yml +0 -5
- package/conf/distros/opensuse/calamares/modules/dracut.yml +0 -14
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/analyze.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 { Command, Flags } from '@oclif/core';
|
|
9
|
+
import fs, { constants } from 'node:fs';
|
|
10
|
+
import { access } from 'node:fs/promises';
|
|
11
|
+
import si from 'systeminformation';
|
|
12
|
+
import Users from '../classes/users.js';
|
|
13
|
+
import Utils from '../classes/utils.js';
|
|
14
|
+
export default class Analyze extends Command {
|
|
15
|
+
static description = 'analyze for syncto';
|
|
16
|
+
static examples = ['sudo eggs analyze'];
|
|
17
|
+
static flags = {
|
|
18
|
+
help: Flags.help({ char: 'h' }),
|
|
19
|
+
verbose: Flags.boolean({ char: 'v', description: 'verbose' })
|
|
20
|
+
};
|
|
21
|
+
config_file = '/etc/penguins-eggs.d/eggs.yaml';
|
|
22
|
+
snapshot_dir = '';
|
|
23
|
+
work_dir = {};
|
|
24
|
+
/**
|
|
25
|
+
* fill
|
|
26
|
+
*/
|
|
27
|
+
async fill() {
|
|
28
|
+
try {
|
|
29
|
+
const usersArray = [];
|
|
30
|
+
await access('/etc/passwd', constants.R_OK | constants.W_OK);
|
|
31
|
+
const passwd = fs.readFileSync('/etc/passwd', 'utf8').split('\n');
|
|
32
|
+
for (const element of passwd) {
|
|
33
|
+
const line = element.split(':');
|
|
34
|
+
const users = new Users(line[0], line[1], line[2], line[3], line[4], line[5], line[6]);
|
|
35
|
+
await users.getValues();
|
|
36
|
+
if (users.password !== undefined) {
|
|
37
|
+
usersArray.push(users);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return usersArray;
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
console.error("can't read /etc/passwd");
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
async run() {
|
|
48
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
49
|
+
const { flags } = await this.parse(Analyze);
|
|
50
|
+
let verbose = false;
|
|
51
|
+
if (flags.verbose) {
|
|
52
|
+
verbose = true;
|
|
53
|
+
}
|
|
54
|
+
Utils.warning('eggs will analyze your system, and get users data');
|
|
55
|
+
const echo = Utils.setEcho(verbose);
|
|
56
|
+
let totalSize = 0;
|
|
57
|
+
if (Utils.isRoot(this.id)) {
|
|
58
|
+
const audio = await si.audio();
|
|
59
|
+
const bios = await si.bios();
|
|
60
|
+
const blockDevices = await si.blockDevices();
|
|
61
|
+
const chassis = await si.chassis();
|
|
62
|
+
const cpu = await si.cpu();
|
|
63
|
+
const diskLayout = await si.diskLayout();
|
|
64
|
+
const mem = await si.mem();
|
|
65
|
+
const usb = await si.usb();
|
|
66
|
+
console.log(`chassis: ${chassis.manufacturer} model: ${chassis.manufacturer}`);
|
|
67
|
+
console.log(`bios vendor: ${bios.vendor} version: ${bios.version} revision: ${bios.revision}`);
|
|
68
|
+
console.log(`processor: ${cpu.brand} core: ${cpu.cores} `);
|
|
69
|
+
if (diskLayout[0].device !== undefined) {
|
|
70
|
+
console.log(`disk0: ${diskLayout[0].device}`);
|
|
71
|
+
}
|
|
72
|
+
if (diskLayout[1] !== undefined) {
|
|
73
|
+
console.log(`disk1: ${diskLayout[1].device}`);
|
|
74
|
+
}
|
|
75
|
+
if (diskLayout[2] !== undefined) {
|
|
76
|
+
console.log(`disk1: ${diskLayout[2].device}`);
|
|
77
|
+
}
|
|
78
|
+
// console.log(`name: ${blockDevices[0].name} fs: ${blockDevices[0].fsType}`)
|
|
79
|
+
// console.log(`name: ${blockDevices[1].name} fs: ${blockDevices[1].fsType}`)
|
|
80
|
+
// console.log(`name: ${blockDevices[2].name} fs: ${blockDevices[2].fsType}`)
|
|
81
|
+
// console.log(`name: ${blockDevices[3].name} fs: ${blockDevices[3].fsType}`)
|
|
82
|
+
// console.log(`usb: ${usb[0].name}`)
|
|
83
|
+
const users = await this.fill();
|
|
84
|
+
for (let i = 0; i < users.length; i++)
|
|
85
|
+
if (users[i].saveIt) {
|
|
86
|
+
console.log(`user: ${users[i].login} \thome: ${users[i].home.padEnd(16)} \tsize: ${Utils.formatBytes(users[i].size)} \tBytes: ${users[i].size} `);
|
|
87
|
+
totalSize += users[i].size;
|
|
88
|
+
}
|
|
89
|
+
console.log(`Total\t\t\t\t\tSize: ${Utils.formatBytes(totalSize)} \tBytes: ${totalSize}`);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
Utils.useRoot(this.id);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/calamares.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 { Command } from '@oclif/core';
|
|
9
|
+
import Incubator from '../classes/incubation/incubator.js';
|
|
10
|
+
import Settings from '../classes/settings.js';
|
|
11
|
+
import { IRemix } from '../interfaces/index.js';
|
|
12
|
+
export default class Calamares extends Command {
|
|
13
|
+
static description: string;
|
|
14
|
+
static examples: string[];
|
|
15
|
+
static flags: {
|
|
16
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
17
|
+
install: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
nointeractive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
19
|
+
policies: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
20
|
+
release: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
21
|
+
remove: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
22
|
+
theme: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
23
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
24
|
+
};
|
|
25
|
+
incubator: Incubator;
|
|
26
|
+
remix: IRemix;
|
|
27
|
+
settings: Settings;
|
|
28
|
+
run(): Promise<void>;
|
|
29
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/calamares.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 { Command, Flags } from '@oclif/core';
|
|
9
|
+
import fs from 'node:fs';
|
|
10
|
+
import path from 'node:path';
|
|
11
|
+
import Incubator from '../classes/incubation/incubator.js';
|
|
12
|
+
import Pacman from '../classes/pacman.js';
|
|
13
|
+
import Settings from '../classes/settings.js';
|
|
14
|
+
import Utils from '../classes/utils.js';
|
|
15
|
+
export default class Calamares extends Command {
|
|
16
|
+
static description = 'configure calamares or install or configure it';
|
|
17
|
+
static examples = ['sudo eggs calamares', 'sudo eggs calamares --install', 'sudo eggs calamares --install --theme=/path/to/theme', 'sudo eggs calamares --remove'];
|
|
18
|
+
static flags = {
|
|
19
|
+
help: Flags.help({ char: 'h' }),
|
|
20
|
+
install: Flags.boolean({ char: 'i', description: 'install calamares and its dependencies' }),
|
|
21
|
+
nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
22
|
+
policies: Flags.boolean({ char: 'p', description: 'configure calamares policies' }),
|
|
23
|
+
release: Flags.boolean({ char: 'r', description: 'release: remove calamares and all its dependencies after the installation' }),
|
|
24
|
+
remove: Flags.boolean({ description: 'remove calamares and its dependencies' }),
|
|
25
|
+
theme: Flags.string({ description: 'theme/branding for eggs and calamares' }),
|
|
26
|
+
verbose: Flags.boolean({ char: 'v' })
|
|
27
|
+
};
|
|
28
|
+
incubator = {};
|
|
29
|
+
remix = {};
|
|
30
|
+
settings = {};
|
|
31
|
+
async run() {
|
|
32
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
33
|
+
this.settings = new Settings();
|
|
34
|
+
const { flags } = await this.parse(Calamares);
|
|
35
|
+
const { verbose } = flags;
|
|
36
|
+
const { remove } = flags;
|
|
37
|
+
const { install } = flags;
|
|
38
|
+
const { release } = flags;
|
|
39
|
+
const { nointeractive } = flags;
|
|
40
|
+
let { policies } = flags;
|
|
41
|
+
let theme = 'eggs';
|
|
42
|
+
if (flags.theme !== undefined) {
|
|
43
|
+
theme = flags.theme;
|
|
44
|
+
if (theme.includes('/')) {
|
|
45
|
+
if (theme.endsWith('/')) {
|
|
46
|
+
theme = theme.slice(0, Math.max(0, theme.length - 1));
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
const wpath = `/home/${await Utils.getPrimaryUser()}/.wardrobe/vendors/`;
|
|
51
|
+
theme = wpath + flags.theme;
|
|
52
|
+
}
|
|
53
|
+
theme = path.resolve(theme);
|
|
54
|
+
if (!fs.existsSync(theme + '/theme')) {
|
|
55
|
+
console.log('Cannot find theme: ' + theme);
|
|
56
|
+
process.exit();
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
console.log(`theme: ${theme}`);
|
|
60
|
+
let installer = 'krill';
|
|
61
|
+
if (Pacman.calamaresExists()) {
|
|
62
|
+
installer = 'calamares';
|
|
63
|
+
}
|
|
64
|
+
if (Utils.isRoot(this.id)) {
|
|
65
|
+
if (!nointeractive || (await Utils.customConfirm('Select yes to continue...'))) {
|
|
66
|
+
if (remove) {
|
|
67
|
+
if (Pacman.calamaresExists()) {
|
|
68
|
+
await Pacman.calamaresRemove();
|
|
69
|
+
if (await this.settings.load()) {
|
|
70
|
+
this.settings.config.force_installer = false;
|
|
71
|
+
this.settings.save(this.settings.config);
|
|
72
|
+
installer = "krill";
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
process.exit();
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Install
|
|
79
|
+
*/
|
|
80
|
+
if (install) {
|
|
81
|
+
Utils.warning('installing package calamares');
|
|
82
|
+
await Pacman.calamaresInstall();
|
|
83
|
+
if (await this.settings.load()) {
|
|
84
|
+
this.settings.config.force_installer = true;
|
|
85
|
+
this.settings.save(this.settings.config);
|
|
86
|
+
policies = true;
|
|
87
|
+
installer = "calamares";
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* policies
|
|
93
|
+
*/
|
|
94
|
+
if (policies) {
|
|
95
|
+
Utils.warning('configuring calamares policies');
|
|
96
|
+
await Pacman.calamaresPolicies();
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* configure
|
|
100
|
+
*/
|
|
101
|
+
if (await this.settings.load()) {
|
|
102
|
+
await this.settings.loadRemix(theme);
|
|
103
|
+
const isClone = false;
|
|
104
|
+
this.incubator = new Incubator(this.settings.remix, this.settings.distro, this.settings.config.user_opt, theme, isClone, verbose);
|
|
105
|
+
await this.incubator.config(release);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
Utils.useRoot(this.id);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/config.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 { Command } from '@oclif/core';
|
|
9
|
+
import { IInstall } from '../interfaces/index.js';
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
*/
|
|
13
|
+
export default class Config extends Command {
|
|
14
|
+
static description: string;
|
|
15
|
+
static examples: string[];
|
|
16
|
+
static flags: {
|
|
17
|
+
clean: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
19
|
+
nointeractive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
20
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
* @param i
|
|
25
|
+
* @param verbose
|
|
26
|
+
*/
|
|
27
|
+
static install(i: IInstall, nointeractive?: boolean, verbose?: boolean): Promise<void>;
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
*
|
|
31
|
+
* @param verbose
|
|
32
|
+
*/
|
|
33
|
+
static thatWeNeed(nointeractive?: boolean, verbose?: boolean, cryptedclone?: boolean): Promise<IInstall>;
|
|
34
|
+
run(): Promise<void>;
|
|
35
|
+
}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/config.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 { Command, Flags } from '@oclif/core';
|
|
9
|
+
import Bleach from '../classes/bleach.js';
|
|
10
|
+
import Pacman from '../classes/pacman.js';
|
|
11
|
+
import Utils from '../classes/utils.js';
|
|
12
|
+
import { exec } from '../lib/utils.js';
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
export default class Config extends Command {
|
|
17
|
+
static description = 'Configure eggs to run it';
|
|
18
|
+
static examples = ['sudo eggs config', 'sudo eggs config --clean', 'sudo eggs config --clean --nointeractive'];
|
|
19
|
+
static flags = {
|
|
20
|
+
clean: Flags.boolean({ char: 'c', description: 'remove old configuration before to create new one' }),
|
|
21
|
+
help: Flags.help({ char: 'h' }),
|
|
22
|
+
nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
23
|
+
verbose: Flags.boolean({ char: 'v', description: 'verbose' })
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @param i
|
|
28
|
+
* @param verbose
|
|
29
|
+
*/
|
|
30
|
+
static async install(i, nointeractive = false, verbose = false) {
|
|
31
|
+
const echo = Utils.setEcho(verbose);
|
|
32
|
+
Utils.warning("sudo eggs config");
|
|
33
|
+
if (i.configurationInstall) {
|
|
34
|
+
Utils.warning('- creating configuration...');
|
|
35
|
+
await Pacman.configurationInstall(verbose);
|
|
36
|
+
}
|
|
37
|
+
if (i.configurationRefresh) {
|
|
38
|
+
Utils.warning('- refreshing configuration for new machine...');
|
|
39
|
+
await Pacman.configurationMachineNew(verbose);
|
|
40
|
+
}
|
|
41
|
+
if (i.distroTemplate) {
|
|
42
|
+
Utils.warning('- copying distro templates...');
|
|
43
|
+
await Pacman.distroTemplateInstall(verbose);
|
|
44
|
+
}
|
|
45
|
+
if (i.needUpdate && !nointeractive && Pacman.distro().familyId === 'debian') {
|
|
46
|
+
Utils.warning('- updating system...');
|
|
47
|
+
await exec('apt-get update --yes', echo);
|
|
48
|
+
}
|
|
49
|
+
if (i.calamares) {
|
|
50
|
+
let message = "- You are on a graphic system, is suggested\n";
|
|
51
|
+
message += " to install the GUI installer calamares.\n";
|
|
52
|
+
message += ' just type: "sudo eggs calamares --install"';
|
|
53
|
+
Utils.warning(message);
|
|
54
|
+
}
|
|
55
|
+
if (i.addEfi && Pacman.distro().familyId === 'debian') {
|
|
56
|
+
Utils.warning('- installing UEFI support');
|
|
57
|
+
await exec('apt-get install grub-efi-' + Utils.uefiArch() + '-bin --yes', echo);
|
|
58
|
+
}
|
|
59
|
+
if (i.needUpdate && !nointeractive) {
|
|
60
|
+
Utils.warning('cleaning the system...');
|
|
61
|
+
if (Pacman.distro().familyId === 'debian') {
|
|
62
|
+
const bleach = new Bleach();
|
|
63
|
+
await bleach.clean(verbose);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
*
|
|
69
|
+
*
|
|
70
|
+
* @param verbose
|
|
71
|
+
*/
|
|
72
|
+
static async thatWeNeed(nointeractive = false, verbose = false, cryptedclone = false) {
|
|
73
|
+
const i = {};
|
|
74
|
+
i.distroTemplate = !Pacman.distroTemplateCheck();
|
|
75
|
+
i.addEfi = !Pacman.isUefi();
|
|
76
|
+
i.calamares = false;
|
|
77
|
+
if (!cryptedclone &&
|
|
78
|
+
!Pacman.calamaresExists() &&
|
|
79
|
+
Pacman.isInstalledGui() &&
|
|
80
|
+
Pacman.isCalamaresAvailable()) {
|
|
81
|
+
i.calamares = true;
|
|
82
|
+
}
|
|
83
|
+
i.configurationInstall = !Pacman.configurationCheck();
|
|
84
|
+
if (!i.configurationInstall) {
|
|
85
|
+
i.configurationRefresh = !Pacman.configurationMachineNew();
|
|
86
|
+
}
|
|
87
|
+
return i;
|
|
88
|
+
}
|
|
89
|
+
async run() {
|
|
90
|
+
const { flags } = await this.parse(Config);
|
|
91
|
+
const { nointeractive } = flags;
|
|
92
|
+
const { verbose } = flags;
|
|
93
|
+
if (!nointeractive) {
|
|
94
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
95
|
+
}
|
|
96
|
+
if (Utils.isRoot(this.id)) {
|
|
97
|
+
if (flags.clean) {
|
|
98
|
+
Utils.warning('removing old configurations');
|
|
99
|
+
await exec('rm /etc/penguins-eggs.d -rf');
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Se stiamo utilizzando eggs da sorgenti
|
|
103
|
+
* Aggiungo autocomplete e manPage
|
|
104
|
+
*/
|
|
105
|
+
if (Utils.isSources()) {
|
|
106
|
+
Utils.warning('creating autocomplete...');
|
|
107
|
+
await Pacman.autocompleteInstall(verbose);
|
|
108
|
+
Utils.warning('creating eggs man page...');
|
|
109
|
+
await Pacman.manPageInstall(verbose);
|
|
110
|
+
}
|
|
111
|
+
const i = await Config.thatWeNeed(nointeractive, verbose);
|
|
112
|
+
if (i.needUpdate || i.configurationInstall || i.configurationRefresh || i.distroTemplate) {
|
|
113
|
+
await Config.install(i, nointeractive, verbose);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
Utils.useRoot(this.id);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/cuckoo.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 { Command } from '@oclif/core';
|
|
9
|
+
export default class Cuckoo extends Command {
|
|
10
|
+
static description: string;
|
|
11
|
+
static examples: string[];
|
|
12
|
+
static flags: {
|
|
13
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
14
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
};
|
|
16
|
+
run(): Promise<void>;
|
|
17
|
+
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/cuckoo.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 { Command, Flags } from '@oclif/core';
|
|
9
|
+
import network from '../classes/network.js';
|
|
10
|
+
import Pxe from '../classes/pxe.js';
|
|
11
|
+
import Settings from '../classes/settings.js';
|
|
12
|
+
import Utils from '../classes/utils.js';
|
|
13
|
+
export default class Cuckoo extends Command {
|
|
14
|
+
static description = 'PXE start with proxy-dhcp';
|
|
15
|
+
static examples = ['sudo eggs cuckoo'];
|
|
16
|
+
static flags = {
|
|
17
|
+
help: Flags.help({ char: 'h' }),
|
|
18
|
+
verbose: Flags.boolean({ char: 'v', description: 'verbose' })
|
|
19
|
+
};
|
|
20
|
+
async run() {
|
|
21
|
+
const { args, flags } = await this.parse(Cuckoo);
|
|
22
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
23
|
+
if (Utils.isRoot()) {
|
|
24
|
+
const settings = new Settings();
|
|
25
|
+
settings.load();
|
|
26
|
+
const nest = settings.config.snapshot_mnt;
|
|
27
|
+
const pxeRoot = nest + 'pxe';
|
|
28
|
+
const pxe = new Pxe(nest, pxeRoot, flags.verbose);
|
|
29
|
+
await pxe.fertilization();
|
|
30
|
+
await pxe.build();
|
|
31
|
+
const n = new network();
|
|
32
|
+
/**
|
|
33
|
+
* service proxy-dhcp
|
|
34
|
+
*/
|
|
35
|
+
const dhcpOptions = {
|
|
36
|
+
bios_filename: 'lpxelinux.0',
|
|
37
|
+
efi32_filename: 'ipxe32.efi',
|
|
38
|
+
efi64_filename: 'ipxe.pxe', // era ipxe.efi
|
|
39
|
+
host: n.address,
|
|
40
|
+
subnet: n.cidr,
|
|
41
|
+
tftpserver: n.address,
|
|
42
|
+
broadcast: n.broadcast()
|
|
43
|
+
};
|
|
44
|
+
pxe.dhcpdStart(dhcpOptions);
|
|
45
|
+
/**
|
|
46
|
+
* service tftp
|
|
47
|
+
*/
|
|
48
|
+
const tftpOptions = {
|
|
49
|
+
denyPUT: true,
|
|
50
|
+
host: n.address,
|
|
51
|
+
port: 69,
|
|
52
|
+
root: pxeRoot
|
|
53
|
+
};
|
|
54
|
+
await pxe.tftpStart(tftpOptions);
|
|
55
|
+
await pxe.httpStart();
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
Utils.useRoot(this.id);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/dad.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 { Command } from '@oclif/core';
|
|
9
|
+
export default class Dad extends Command {
|
|
10
|
+
static description: string;
|
|
11
|
+
static examples: string[];
|
|
12
|
+
static flags: {
|
|
13
|
+
clean: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
default: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
|
+
nointeractive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
17
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
18
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
19
|
+
};
|
|
20
|
+
run(): Promise<void>;
|
|
21
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/dad.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 { Command, Flags } from '@oclif/core';
|
|
9
|
+
import chalk from 'chalk';
|
|
10
|
+
import fs from 'node:fs';
|
|
11
|
+
import Daddy from '../classes/daddy.js';
|
|
12
|
+
import Utils from '../classes/utils.js';
|
|
13
|
+
import { exec } from '../lib/utils.js';
|
|
14
|
+
export default class Dad extends Command {
|
|
15
|
+
static description = 'ask help from daddy - TUI configuration helper';
|
|
16
|
+
static examples = ['sudo dad', 'sudo dad --clean', 'sudo dad --default'];
|
|
17
|
+
static flags = {
|
|
18
|
+
clean: Flags.boolean({ char: 'c', description: 'remove old configuration before to create' }),
|
|
19
|
+
default: Flags.boolean({ char: 'd', description: 'reset to default values' }),
|
|
20
|
+
file: Flags.string({ char: 'f', description: 'use a file configuration custom' }),
|
|
21
|
+
nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
22
|
+
help: Flags.help({ char: 'h' }),
|
|
23
|
+
verbose: Flags.boolean({ char: 'v' })
|
|
24
|
+
};
|
|
25
|
+
async run() {
|
|
26
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
27
|
+
console.log(chalk.cyan('Daddy, what else did you leave for me?'));
|
|
28
|
+
const { flags } = await this.parse(Dad);
|
|
29
|
+
const fileCustom = flags.file;
|
|
30
|
+
const isCustom = fileCustom !== undefined && fileCustom !== '';
|
|
31
|
+
const reset = flags.default;
|
|
32
|
+
if (Utils.isRoot(this.id)) {
|
|
33
|
+
if (flags.clean || flags.default || flags.mine) {
|
|
34
|
+
await exec('rm /etc/penguins-eggs.d -rf');
|
|
35
|
+
}
|
|
36
|
+
if (isCustom && !fs.existsSync(fileCustom)) {
|
|
37
|
+
console.log(chalk.red(`Custom configuration file: ${flags.custom} not found!`));
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
const daddy = new Daddy();
|
|
41
|
+
daddy.helpMe(reset, isCustom, fileCustom, flags.verbose);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
Utils.useRoot(this.id);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/export/iso.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 { Command } from '@oclif/core';
|
|
9
|
+
export default class ExportIso extends Command {
|
|
10
|
+
static description: string;
|
|
11
|
+
static examples: string[];
|
|
12
|
+
static flags: {
|
|
13
|
+
checksum: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
|
+
clean: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
16
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
17
|
+
};
|
|
18
|
+
run(): Promise<void>;
|
|
19
|
+
}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/export/iso.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 { Command, Flags } from '@oclif/core';
|
|
9
|
+
import Tools from '../../classes/tools.js';
|
|
10
|
+
import Utils from '../../classes/utils.js';
|
|
11
|
+
import { exec } from '../../lib/utils.js';
|
|
12
|
+
export default class ExportIso extends Command {
|
|
13
|
+
static description = 'export iso in the destination host';
|
|
14
|
+
static examples = ['eggs export iso', 'eggs export iso --clean'];
|
|
15
|
+
static flags = {
|
|
16
|
+
checksum: Flags.boolean({ char: 'C', description: 'export checksums md5 and sha256' }),
|
|
17
|
+
clean: Flags.boolean({ char: 'c', description: 'delete old ISOs before to copy' }),
|
|
18
|
+
help: Flags.help({ char: 'h' }),
|
|
19
|
+
verbose: Flags.boolean({ char: 'v', description: 'verbose' })
|
|
20
|
+
};
|
|
21
|
+
async run() {
|
|
22
|
+
const { flags } = await this.parse(ExportIso);
|
|
23
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
24
|
+
Utils.warning(ExportIso.description);
|
|
25
|
+
const Tu = new Tools();
|
|
26
|
+
await Tu.loadSettings();
|
|
27
|
+
const echo = Utils.setEcho(flags.verbose);
|
|
28
|
+
const rmount = `/tmp/eggs-${(Math.random() + 1).toString(36).slice(7)}`;
|
|
29
|
+
let cmd = `rm -f ${rmount}\n`;
|
|
30
|
+
const filters = ['*.iso', '*.md5', '*.sha256'];
|
|
31
|
+
cmd += `mkdir ${rmount}\n`;
|
|
32
|
+
cmd += `sshfs ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathIso} ${rmount}\n`;
|
|
33
|
+
if (flags.clean) {
|
|
34
|
+
cmd += `rm -f ${rmount}/${Tu.snapshot_name}*\n`;
|
|
35
|
+
}
|
|
36
|
+
cmd += `cp ${Tu.snapshot_dir}${Tu.snapshot_name}${filters[0]} ${rmount}\n`;
|
|
37
|
+
if (flags.checksum) {
|
|
38
|
+
cmd += `cp ${Tu.snapshot_dir}${Tu.snapshot_name}${filters[1]} ${rmount}\n`;
|
|
39
|
+
cmd += `cp ${Tu.snapshot_dir}${Tu.snapshot_name}${filters[2]} ${rmount}\n`;
|
|
40
|
+
}
|
|
41
|
+
cmd += 'sync\n';
|
|
42
|
+
cmd += `umount ${rmount}\n`;
|
|
43
|
+
cmd += `rm -f ${rmount}\m`;
|
|
44
|
+
if (!flags.verbose) {
|
|
45
|
+
if (flags.clean) {
|
|
46
|
+
console.log(`remove ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathIso}${Tu.snapshot_name}${filters[0]}`);
|
|
47
|
+
}
|
|
48
|
+
if (flags.checksum) {
|
|
49
|
+
console.log(`export ${Tu.config.localPathIso}/${Tu.snapshot_name}${filters[1]}/${filters[2]} to ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathIso}`);
|
|
50
|
+
}
|
|
51
|
+
console.log(`scp ${Tu.config.localPathIso}/${Tu.snapshot_name}${filters[0]} ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathIso}`);
|
|
52
|
+
}
|
|
53
|
+
await exec(cmd, echo);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/export/deb.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 { Command } from '@oclif/core';
|
|
9
|
+
import Tools from '../../classes/tools.js';
|
|
10
|
+
export default class ExportPkg extends Command {
|
|
11
|
+
static description: string;
|
|
12
|
+
static examples: string[];
|
|
13
|
+
static flags: {
|
|
14
|
+
all: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
|
+
clean: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
16
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
17
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
};
|
|
19
|
+
user: string;
|
|
20
|
+
all: boolean;
|
|
21
|
+
clean: boolean;
|
|
22
|
+
verbose: boolean;
|
|
23
|
+
echo: {};
|
|
24
|
+
Tu: Tools;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
28
|
+
run(): Promise<void>;
|
|
29
|
+
}
|