penguins-eggs 10.1.0 → 10.1.1
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 -32
- package/README.md +109 -78
- package/conf/derivatives.yaml +3 -0
- package/conf/distros/buster/calamares/modules/users.yml +1 -0
- package/conf/distros/noble/calamares/modules/users.yml +1 -0
- package/dist/classes/bleach.d.ts +32 -0
- package/dist/classes/bleach.js +135 -0
- package/dist/classes/cli-autologin.d.ts +52 -0
- package/dist/classes/cli-autologin.js +247 -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 +167 -0
- package/dist/classes/distro.d.ts +56 -0
- package/dist/classes/distro.js +413 -0
- package/dist/classes/diversions.d.ts +52 -0
- package/dist/classes/diversions.js +126 -0
- package/dist/classes/incubation/branding.d.ts +17 -0
- package/dist/classes/incubation/branding.js +85 -0
- package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +11 -0
- package/dist/classes/incubation/fisherman-helper/displaymanager.js +40 -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 +83 -0
- package/dist/classes/incubation/fisherman.d.ts +70 -0
- package/dist/classes/incubation/fisherman.js +263 -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/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 +85 -0
- package/dist/classes/incubation/incubator.d/jessie.d.ts +31 -0
- package/dist/classes/incubation/incubator.d/jessie.js +44 -0
- package/dist/classes/incubation/incubator.d/noble.d.ts +32 -0
- package/dist/classes/incubation/incubator.d/noble.js +85 -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/rolling.d.ts +32 -0
- package/dist/classes/incubation/incubator.d/rolling.js +80 -0
- package/dist/classes/incubation/incubator.d.ts +44 -0
- package/dist/classes/incubation/incubator.js +382 -0
- package/dist/classes/incubation/installer.d.ts +13 -0
- package/dist/classes/incubation/installer.js +52 -0
- package/dist/classes/keyboards.d.ts +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 +177 -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 +51 -0
- package/dist/classes/ovary.d/finished.d.ts +13 -0
- package/dist/classes/ovary.d/finished.js +41 -0
- package/dist/classes/ovary.d/initrd.d.ts +21 -0
- package/dist/classes/ovary.d/initrd.js +68 -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 +90 -0
- package/dist/classes/ovary.d/make-dot-disk.d.ts +12 -0
- package/dist/classes/ovary.d/make-dot-disk.js +40 -0
- package/dist/classes/ovary.d/make-efi.d.ts +12 -0
- package/dist/classes/ovary.d/make-efi.js +271 -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 +77 -0
- package/dist/classes/ovary.d/produce.d.ts +23 -0
- package/dist/classes/ovary.d/produce.js +293 -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 +79 -0
- package/dist/classes/ovary.d/user-create-live.d.ts +14 -0
- package/dist/classes/ovary.d/user-create-live.js +93 -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-commend.d.ts +14 -0
- package/dist/classes/ovary.d/xorriso-commend.js +119 -0
- package/dist/classes/ovary.d.ts +82 -0
- package/dist/classes/ovary.js +86 -0
- package/dist/classes/pacman.d/aldos.d.ts +52 -0
- package/dist/classes/pacman.d/aldos.js +100 -0
- package/dist/classes/pacman.d/alpine.d.ts +56 -0
- package/dist/classes/pacman.d/alpine.js +162 -0
- package/dist/classes/pacman.d/archlinux.d.ts +62 -0
- package/dist/classes/pacman.d/archlinux.js +136 -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 +101 -0
- package/dist/classes/pacman.d/openmamba.d.ts +52 -0
- package/dist/classes/pacman.d/openmamba.js +100 -0
- package/dist/classes/pacman.d/opensuse.d.ts +53 -0
- package/dist/classes/pacman.d/opensuse.js +102 -0
- package/dist/classes/pacman.d/voidlinux.d.ts +52 -0
- package/dist/classes/pacman.d/voidlinux.js +90 -0
- package/dist/classes/pacman.d.ts +139 -0
- package/dist/classes/pacman.js +776 -0
- package/dist/classes/pve-live.d.ts +17 -0
- package/dist/classes/pve-live.js +52 -0
- package/dist/classes/pxe.d.ts +74 -0
- package/dist/classes/pxe.js +410 -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 +527 -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/architecture.d.ts +41 -0
- package/dist/classes/utils.d/architecture.js +87 -0
- package/dist/classes/utils.d/console-output.d.ts +26 -0
- package/dist/classes/utils.d/console-output.js +46 -0
- package/dist/classes/utils.d/filesystem.d.ts +53 -0
- package/dist/classes/utils.d/filesystem.js +152 -0
- package/dist/classes/utils.d/formatters.d.ts +32 -0
- package/dist/classes/utils.d/formatters.js +64 -0
- package/dist/classes/utils.d/kernel.d.ts +83 -0
- package/dist/classes/utils.d/kernel.js +288 -0
- package/dist/classes/utils.d/network.d.ts +43 -0
- package/dist/classes/utils.d/network.js +133 -0
- package/dist/classes/utils.d/package-info.d.ts +55 -0
- package/dist/classes/utils.d/package-info.js +137 -0
- package/dist/classes/utils.d/snapshot.d.ts +44 -0
- package/dist/classes/utils.d/snapshot.js +102 -0
- package/dist/classes/utils.d/system.d.ts +63 -0
- package/dist/classes/utils.d/system.js +200 -0
- package/dist/classes/utils.d/user-interaction.d.ts +39 -0
- package/dist/classes/utils.d/user-interaction.js +104 -0
- package/dist/classes/utils.d.ts +95 -0
- package/dist/classes/utils.js +111 -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 +16 -0
- package/dist/commands/cuckoo.js +62 -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 +163 -0
- package/dist/commands/export/tarballs.d.ts +27 -0
- package/dist/commands/export/tarballs.js +79 -0
- package/dist/commands/install.d.ts +38 -0
- package/dist/commands/install.js +91 -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 +26 -0
- package/dist/commands/tools/ppa.js +138 -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 +51 -0
- package/dist/commands/update.js +219 -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/index.d.ts +8 -0
- package/dist/index.js +8 -0
- package/dist/index_old.d.ts +8 -0
- package/dist/index_old.js +8 -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-branding.d.ts +36 -0
- package/dist/interfaces/i-branding.js +8 -0
- package/dist/interfaces/i-calamares-displaymanager.d.ts +17 -0
- package/dist/interfaces/i-calamares-displaymanager.js +1 -0
- package/dist/interfaces/i-calamares-finished.d.ts +12 -0
- package/dist/interfaces/i-calamares-finished.js +1 -0
- package/dist/interfaces/i-calamares-packages.d.ts +28 -0
- package/dist/interfaces/i-calamares-packages.js +1 -0
- package/dist/interfaces/i-calamares-partition.d.ts +40 -0
- package/dist/interfaces/i-calamares-partition.js +1 -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 +69 -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 +314 -0
- package/dist/krill/classes/sequence.d/add_user.d.ts +20 -0
- package/dist/krill/classes/sequence.d/add_user.js +66 -0
- package/dist/krill/classes/sequence.d/bootloader.d.ts +14 -0
- package/dist/krill/classes/sequence.d/bootloader.js +95 -0
- package/dist/krill/classes/sequence.d/bootloader_config.d.ts +14 -0
- package/dist/krill/classes/sequence.d/bootloader_config.js +165 -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 +189 -0
- package/dist/krill/classes/sequence.d/grubcfg.d.ts +17 -0
- package/dist/krill/classes/sequence.d/grubcfg.js +33 -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 +72 -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 +40 -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 +17 -0
- package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +36 -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 +78 -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 +32 -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 +133 -0
- package/dist/krill/classes/sequence.js +396 -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 +40 -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 +39 -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 +42 -0
- package/dist/lib/utils.js +87 -0
- package/dist/penguins-eggs_10.1.1-0_amd64.deb +0 -0
- package/dist/penguins-eggs_10.1.1-0_amd64.deb.sha256 +1 -0
- package/package.json +25 -23
- package/scripts/_eggs +6 -12
- package/scripts/eggs.bash +1 -2
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/yolk.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import yaml from 'js-yaml';
|
|
9
|
+
import fs from 'node:fs';
|
|
10
|
+
import shx from 'shelljs';
|
|
11
|
+
import { exec } from '../lib/utils.js';
|
|
12
|
+
import Bleach from './bleach.js';
|
|
13
|
+
import Pacman from './pacman.js';
|
|
14
|
+
import Utils from './utils.js';
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
export default class Yolk {
|
|
19
|
+
echo = {};
|
|
20
|
+
verbose = false;
|
|
21
|
+
yolkDir = '/var/local/yolk';
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
async create(verbose = false) {
|
|
26
|
+
this.verbose = verbose;
|
|
27
|
+
this.echo = Utils.setEcho(verbose);
|
|
28
|
+
if (Utils.uefiArch() !== 'amd64') {
|
|
29
|
+
Utils.warning(`yolk is not used on ${Utils.uefiArch()} architecture`);
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
Utils.warning(`Creating yolk on ${this.yolkDir}`);
|
|
33
|
+
Utils.warning('Updating system');
|
|
34
|
+
if (!Pacman.commandIsInstalled('dpkg-scanpackages')) {
|
|
35
|
+
Utils.warning(`I cannot find the command dpkg-scanpackages`);
|
|
36
|
+
process.exit(0);
|
|
37
|
+
}
|
|
38
|
+
let cmd = '';
|
|
39
|
+
try {
|
|
40
|
+
cmd = 'apt-get update --yes';
|
|
41
|
+
await exec(cmd, this.echo);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
console.log(error);
|
|
45
|
+
await Utils.pressKeyToExit(cmd);
|
|
46
|
+
process.exit(0);
|
|
47
|
+
}
|
|
48
|
+
if (this.exists()) {
|
|
49
|
+
await this.erase();
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
await exec(`mkdir ${this.yolkDir} -p`, this.echo);
|
|
53
|
+
await exec(`chown _apt:root ${this.yolkDir} -R`, this.echo);
|
|
54
|
+
}
|
|
55
|
+
const yolk_yaml = '/etc/penguins-eggs.d/yolk.yaml';
|
|
56
|
+
const yolk = yaml.load(fs.readFileSync(yolk_yaml, 'utf8'));
|
|
57
|
+
process.chdir(this.yolkDir);
|
|
58
|
+
Utils.warning(`Downloading packages and its dependencies`);
|
|
59
|
+
for (const pkg of yolk.packages) {
|
|
60
|
+
Utils.warning(`- ${pkg}`);
|
|
61
|
+
cmd = `apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances ${pkg} | grep "^\\w" | sort -u`;
|
|
62
|
+
let depends = pkg + '\n';
|
|
63
|
+
depends += (await exec(cmd, { capture: true, echo: false })).data;
|
|
64
|
+
await this.installDeps(depends.split('\n'));
|
|
65
|
+
}
|
|
66
|
+
// create Package.gz
|
|
67
|
+
cmd = 'dpkg-scanpackages -h md5,sha1,sha256 . | gzip -c > Packages.gz';
|
|
68
|
+
Utils.warning(cmd);
|
|
69
|
+
await exec(cmd, { capture: true, echo: false });
|
|
70
|
+
// Create Release date: Sat, 14 Aug 2021 07:42:00 UTC
|
|
71
|
+
const now = shx.exec('date -R -u').stdout.trim();
|
|
72
|
+
const content = `Archive: stable\nComponent: yolk\nOrigin: penguins-eggs\nArchitecture: ${Utils.uefiArch()} \nDate: ${now}\n`;
|
|
73
|
+
Utils.warning('Writing Release');
|
|
74
|
+
fs.writeFileSync('Release', content);
|
|
75
|
+
// Cleaning
|
|
76
|
+
Utils.warning('Cleaning apt cache');
|
|
77
|
+
const bleach = new Bleach();
|
|
78
|
+
await bleach.clean(verbose);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Svuota la repo yolk
|
|
82
|
+
*/
|
|
83
|
+
async erase() {
|
|
84
|
+
await exec(`rm ${this.yolkDir}/*`, this.echo);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Check if yoil exists and it's a repo
|
|
88
|
+
*/
|
|
89
|
+
exists() {
|
|
90
|
+
const check = `${this.yolkDir}/Packages.gz`;
|
|
91
|
+
return fs.existsSync(check);
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* if depends are not Installed
|
|
95
|
+
* download depends
|
|
96
|
+
* @param depends
|
|
97
|
+
*/
|
|
98
|
+
async installDeps(depends) {
|
|
99
|
+
// select for downloads only packages NOT already installed
|
|
100
|
+
const toDownloads = [];
|
|
101
|
+
for (const depend of depends) {
|
|
102
|
+
// if (depend !== '' && !Pacman.packageIsInstalled(depend)) {
|
|
103
|
+
toDownloads.push(depend);
|
|
104
|
+
// }
|
|
105
|
+
}
|
|
106
|
+
// now we go to downloads them
|
|
107
|
+
for (const toDownload of toDownloads) {
|
|
108
|
+
process.chdir(this.yolkDir);
|
|
109
|
+
const cmd = `apt-get download ${toDownload}`;
|
|
110
|
+
// Utils.warning(`- ${cmd}`)
|
|
111
|
+
await exec(cmd, this.echo);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/adapt.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / 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 Adapt 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,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/adapt.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / 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 Utils from '../classes/utils.js';
|
|
10
|
+
import { exec } from '../lib/utils.js';
|
|
11
|
+
export default class Adapt extends Command {
|
|
12
|
+
static description = 'adapt monitor resolution for VM only';
|
|
13
|
+
static examples = ['eggs adapt'];
|
|
14
|
+
static flags = {
|
|
15
|
+
help: Flags.help({ char: 'h' }),
|
|
16
|
+
verbose: Flags.boolean({ char: 'v' })
|
|
17
|
+
};
|
|
18
|
+
async run() {
|
|
19
|
+
const { args, flags } = await this.parse(Adapt);
|
|
20
|
+
let verbose = false;
|
|
21
|
+
if (flags.verbose) {
|
|
22
|
+
verbose = true;
|
|
23
|
+
}
|
|
24
|
+
const echo = Utils.setEcho(verbose);
|
|
25
|
+
// const {args, flags} = this.parse(Adjust)
|
|
26
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
27
|
+
Utils.warning('Adapt monitor resolutions to the size of window in virtual machines');
|
|
28
|
+
await exec('xrandr --output Virtual-0 --auto', echo);
|
|
29
|
+
await exec('xrandr --output Virtual-1 --auto', echo);
|
|
30
|
+
await exec('xrandr --output Virtual-2 --auto', echo);
|
|
31
|
+
await exec('xrandr --output Virtual-3 --auto', echo);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/analyze.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from '@oclif/core';
|
|
9
|
+
import Users from '../classes/users.js';
|
|
10
|
+
import { IWorkDir } from '../interfaces/i-workdir.js';
|
|
11
|
+
export default class Analyze extends Command {
|
|
12
|
+
static description: string;
|
|
13
|
+
static examples: string[];
|
|
14
|
+
static flags: {
|
|
15
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
16
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
17
|
+
};
|
|
18
|
+
config_file: string;
|
|
19
|
+
snapshot_dir: string;
|
|
20
|
+
work_dir: IWorkDir;
|
|
21
|
+
/**
|
|
22
|
+
* fill
|
|
23
|
+
*/
|
|
24
|
+
fill(): Promise<Users[]>;
|
|
25
|
+
run(): Promise<void>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/analyze.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / 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.10.0.0 / 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.10.0.0 / 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.10.0.0 / 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.10.0.0 / 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,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/cuckoo.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / 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
|
+
};
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/cuckoo.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / 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
|
+
};
|
|
19
|
+
async run() {
|
|
20
|
+
const { args, flags } = await this.parse(Cuckoo);
|
|
21
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
22
|
+
if (Utils.isRoot()) {
|
|
23
|
+
const settings = new Settings();
|
|
24
|
+
settings.load();
|
|
25
|
+
const nest = settings.config.snapshot_mnt;
|
|
26
|
+
const pxeRoot = nest + 'pxe';
|
|
27
|
+
const pxe = new Pxe(nest, pxeRoot);
|
|
28
|
+
await pxe.fertilization();
|
|
29
|
+
await pxe.build();
|
|
30
|
+
const n = new network();
|
|
31
|
+
/**
|
|
32
|
+
* service proxy-dhcp
|
|
33
|
+
*/
|
|
34
|
+
const dhcpOptions = {
|
|
35
|
+
bios_filename: 'lpxelinux.0',
|
|
36
|
+
efi32_filename: 'ipxe32.efi',
|
|
37
|
+
efi64_filename: 'ipxe.efi',
|
|
38
|
+
host: n.address,
|
|
39
|
+
subnet: n.cidr,
|
|
40
|
+
tftpserver: n.address
|
|
41
|
+
};
|
|
42
|
+
pxe.dhcpStart(dhcpOptions);
|
|
43
|
+
/**
|
|
44
|
+
* service tftp
|
|
45
|
+
*/
|
|
46
|
+
const tftpOptions = {
|
|
47
|
+
denyPUT: true,
|
|
48
|
+
host: n.address,
|
|
49
|
+
port: 69,
|
|
50
|
+
root: pxeRoot
|
|
51
|
+
};
|
|
52
|
+
await pxe.tftpStart(tftpOptions);
|
|
53
|
+
/**
|
|
54
|
+
* service http
|
|
55
|
+
*/
|
|
56
|
+
await pxe.httpStart();
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
Utils.useRoot(this.id);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|