penguins-eggs 10.0.60 → 10.1.0
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 +93 -1
- package/README.md +79 -40
- package/addons/eggs/theme/calamares/modules/{_users.yml → users.yml} +3 -3
- package/addons/eggs/theme/livecd/grub.main.full.cfg +1 -1
- package/addons/eggs/theme/livecd/grub.main.simple.cfg +1 -1
- package/conf/derivatives.yaml +1 -3
- package/conf/derivatives_fedora.yaml +6 -0
- package/conf/distros/alpine/calamares/modules/users.yml +3 -3
- package/conf/distros/bionic/calamares/calamares-modules/grubcfg/grubcfg.yml +1 -1
- package/conf/distros/bionic/calamares/modules/users.yml +3 -3
- package/conf/distros/buster/calamares/modules/users.yml +3 -3
- package/conf/distros/fedora/calamares/modules/users.yml +3 -3
- package/conf/distros/noble/calamares/modules/focal-jammy/users.yml +3 -3
- package/conf/distros/opensuse/calamares/modules/users.yml +3 -3
- package/conf/distros/rolling/calamares/modules/users.yml +3 -3
- package/conf/eggs.yaml +1 -1
- package/conf/love.yaml +4 -4
- package/package.json +22 -19
- package/perrisbrewery/scripts/postinst +98 -0
- package/perrisbrewery/scripts/postrm +82 -0
- package/perrisbrewery/scripts/preinst +40 -0
- package/perrisbrewery/scripts/prerm +47 -0
- package/perrisbrewery/template/control.template +17 -0
- package/perrisbrewery/template/dependencies-bionic.yaml +33 -0
- package/perrisbrewery/template/dependencies.yaml +37 -0
- package/perrisbrewery/template/man.template.md +110 -0
- package/pods/README.md +14 -0
- package/pods/almalinux.sh +10 -0
- package/pods/archlinux.sh +10 -0
- package/pods/ci/README.md +5 -0
- package/pods/ci/kernel-overlay-install.sh +114 -0
- package/pods/ci/minimal/almalinux-container2host.sh +165 -0
- package/pods/ci/minimal/archlinux-container2host.sh +125 -0
- package/pods/ci/minimal/debian-container2host.sh +173 -0
- package/pods/ci/minimal/fedora-container2host.sh +170 -0
- package/pods/ci/minimal/manjaro-container2host.sh +123 -0
- package/pods/ci/minimal/opensuse-container2host.sh +143 -0
- package/pods/ci/penguins-eggs-execute.sh +22 -0
- package/pods/ci/penguins-eggs-install.sh +115 -0
- package/pods/ci/run +34 -0
- package/pods/ci/run-on-almalinux.sh +50 -0
- package/pods/ci/run-on-archlinux.sh +64 -0
- package/pods/ci/run-on-debian.sh +51 -0
- package/pods/ci/run-on-devuan.sh +48 -0
- package/pods/ci/run-on-fedora.sh +51 -0
- package/pods/ci/run-on-manjaro.sh +61 -0
- package/pods/ci/run-on-opensuse.sh +58 -0
- package/pods/ci/run-on-rockylinux.sh +51 -0
- package/pods/ci/run-on-ubuntu.sh +52 -0
- package/pods/debian.sh +23 -0
- package/pods/devuan.sh +26 -0
- package/pods/fedora.sh +12 -0
- package/pods/lmde.sh +22 -0
- package/pods/manjaro.sh +10 -0
- package/pods/opensuse.sh +12 -0
- package/pods/podman.command.sh +85 -0
- package/pods/rocky.sh +12 -0
- package/pods/run-build-packages-debs.sh +45 -0
- package/pods/run-create-debs.sh +23 -0
- package/pods/ubuntu.sh +24 -0
- package/scripts/_eggs +21 -6
- package/scripts/eggs.bash +6 -4
- package/dist/classes/bleach.d.ts +0 -32
- package/dist/classes/bleach.js +0 -135
- package/dist/classes/cli-autologin.d.ts +0 -52
- package/dist/classes/cli-autologin.js +0 -247
- package/dist/classes/compressors.d.ts +0 -54
- package/dist/classes/compressors.js +0 -109
- package/dist/classes/daddy.d.ts +0 -26
- package/dist/classes/daddy.js +0 -167
- package/dist/classes/distro.d.ts +0 -32
- package/dist/classes/distro.js +0 -341
- package/dist/classes/diversions.d.ts +0 -52
- package/dist/classes/diversions.js +0 -126
- package/dist/classes/incubation/branding.d.ts +0 -17
- package/dist/classes/incubation/branding.js +0 -85
- package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +0 -11
- package/dist/classes/incubation/fisherman-helper/displaymanager.js +0 -40
- package/dist/classes/incubation/fisherman-helper/packages.d.ts +0 -20
- package/dist/classes/incubation/fisherman-helper/packages.js +0 -72
- package/dist/classes/incubation/fisherman-helper/settings.d.ts +0 -15
- package/dist/classes/incubation/fisherman-helper/settings.js +0 -83
- package/dist/classes/incubation/fisherman.d.ts +0 -70
- package/dist/classes/incubation/fisherman.js +0 -263
- package/dist/classes/incubation/incubator.d/alpine.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/alpine.js +0 -78
- package/dist/classes/incubation/incubator.d/bionic.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/bionic.js +0 -83
- package/dist/classes/incubation/incubator.d/buster.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/buster.js +0 -85
- package/dist/classes/incubation/incubator.d/jessie.d.ts +0 -31
- package/dist/classes/incubation/incubator.d/jessie.js +0 -44
- package/dist/classes/incubation/incubator.d/noble.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/noble.js +0 -85
- package/dist/classes/incubation/incubator.d/openmamba.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/openmamba.js +0 -81
- package/dist/classes/incubation/incubator.d/opensuse.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/opensuse.js +0 -81
- package/dist/classes/incubation/incubator.d/rolling.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/rolling.js +0 -80
- package/dist/classes/incubation/incubator.d.ts +0 -44
- package/dist/classes/incubation/incubator.js +0 -382
- package/dist/classes/incubation/installer.d.ts +0 -13
- package/dist/classes/incubation/installer.js +0 -52
- package/dist/classes/keyboards.d.ts +0 -50
- package/dist/classes/keyboards.js +0 -287
- package/dist/classes/locales.d.ts +0 -21
- package/dist/classes/locales.js +0 -77
- package/dist/classes/network.d.ts +0 -37
- package/dist/classes/network.js +0 -98
- package/dist/classes/ovary.d/bind-live-fs.d.ts +0 -18
- package/dist/classes/ovary.d/bind-live-fs.js +0 -185
- package/dist/classes/ovary.d/bind-vfs.d.ts +0 -17
- package/dist/classes/ovary.d/bind-vfs.js +0 -37
- package/dist/classes/ovary.d/create-xdg-autostart.d.ts +0 -13
- package/dist/classes/ovary.d/create-xdg-autostart.js +0 -194
- package/dist/classes/ovary.d/edit-live-fs.d.ts +0 -19
- package/dist/classes/ovary.d/edit-live-fs.js +0 -249
- package/dist/classes/ovary.d/fertilization.d.ts +0 -12
- package/dist/classes/ovary.d/fertilization.js +0 -46
- package/dist/classes/ovary.d/finished.d.ts +0 -13
- package/dist/classes/ovary.d/finished.js +0 -41
- package/dist/classes/ovary.d/initrd.d.ts +0 -21
- package/dist/classes/ovary.d/initrd.js +0 -72
- package/dist/classes/ovary.d/kernel-copy.d.ts +0 -12
- package/dist/classes/ovary.d/kernel-copy.js +0 -36
- package/dist/classes/ovary.d/live-create-structure.d.ts +0 -12
- package/dist/classes/ovary.d/live-create-structure.js +0 -90
- package/dist/classes/ovary.d/make-dot-disk.d.ts +0 -12
- package/dist/classes/ovary.d/make-dot-disk.js +0 -40
- package/dist/classes/ovary.d/make-efi.d.ts +0 -12
- package/dist/classes/ovary.d/make-efi.js +0 -268
- package/dist/classes/ovary.d/make-iso.d.ts +0 -13
- package/dist/classes/ovary.d/make-iso.js +0 -45
- package/dist/classes/ovary.d/make-squashfs.d.ts +0 -18
- package/dist/classes/ovary.d/make-squashfs.js +0 -117
- package/dist/classes/ovary.d/merged.d.ts +0 -31
- package/dist/classes/ovary.d/merged.js +0 -87
- package/dist/classes/ovary.d/produce.d.ts +0 -23
- package/dist/classes/ovary.d/produce.js +0 -287
- package/dist/classes/ovary.d/rexec.d.ts +0 -13
- package/dist/classes/ovary.d/rexec.js +0 -34
- package/dist/classes/ovary.d/syslinux.d.ts +0 -12
- package/dist/classes/ovary.d/syslinux.js +0 -79
- package/dist/classes/ovary.d/user-create-live.d.ts +0 -14
- package/dist/classes/ovary.d/user-create-live.js +0 -86
- package/dist/classes/ovary.d/users-remove.d.ts +0 -9
- package/dist/classes/ovary.d/users-remove.js +0 -38
- package/dist/classes/ovary.d/xorriso-commend.d.ts +0 -14
- package/dist/classes/ovary.d/xorriso-commend.js +0 -119
- package/dist/classes/ovary.d.ts +0 -77
- package/dist/classes/ovary.js +0 -81
- package/dist/classes/pacman.d/aldos.d.ts +0 -52
- package/dist/classes/pacman.d/aldos.js +0 -100
- package/dist/classes/pacman.d/alpine.d.ts +0 -56
- package/dist/classes/pacman.d/alpine.js +0 -162
- package/dist/classes/pacman.d/archlinux.d.ts +0 -62
- package/dist/classes/pacman.d/archlinux.js +0 -140
- package/dist/classes/pacman.d/debian.d.ts +0 -65
- package/dist/classes/pacman.d/debian.js +0 -143
- package/dist/classes/pacman.d/fedora.d.ts +0 -53
- package/dist/classes/pacman.d/fedora.js +0 -101
- package/dist/classes/pacman.d/openmamba.d.ts +0 -52
- package/dist/classes/pacman.d/openmamba.js +0 -100
- package/dist/classes/pacman.d/opensuse.d.ts +0 -53
- package/dist/classes/pacman.d/opensuse.js +0 -102
- package/dist/classes/pacman.d/voidlinux.d.ts +0 -52
- package/dist/classes/pacman.d/voidlinux.js +0 -90
- package/dist/classes/pacman.d.ts +0 -139
- package/dist/classes/pacman.js +0 -775
- package/dist/classes/pve-live.d.ts +0 -17
- package/dist/classes/pve-live.js +0 -52
- package/dist/classes/pxe.d.ts +0 -74
- package/dist/classes/pxe.js +0 -410
- package/dist/classes/settings.d.ts +0 -52
- package/dist/classes/settings.js +0 -185
- package/dist/classes/sources_list.d.ts +0 -28
- package/dist/classes/sources_list.js +0 -89
- package/dist/classes/systemctl.d.ts +0 -47
- package/dist/classes/systemctl.js +0 -86
- package/dist/classes/tailor.d.ts +0 -50
- package/dist/classes/tailor.js +0 -526
- package/dist/classes/tools.d.ts +0 -26
- package/dist/classes/tools.js +0 -50
- package/dist/classes/users.d.ts +0 -28
- package/dist/classes/users.js +0 -143
- package/dist/classes/utils.d.ts +0 -327
- package/dist/classes/utils.js +0 -1019
- package/dist/classes/xdg.d.ts +0 -45
- package/dist/classes/xdg.js +0 -337
- package/dist/classes/yolk.d.ts +0 -33
- package/dist/classes/yolk.js +0 -114
- package/dist/commands/adapt.d.ts +0 -17
- package/dist/commands/adapt.js +0 -33
- package/dist/commands/analyze.d.ts +0 -26
- package/dist/commands/analyze.js +0 -95
- package/dist/commands/calamares.d.ts +0 -29
- package/dist/commands/calamares.js +0 -112
- package/dist/commands/config.d.ts +0 -35
- package/dist/commands/config.js +0 -120
- package/dist/commands/cuckoo.d.ts +0 -16
- package/dist/commands/cuckoo.js +0 -62
- package/dist/commands/dad.d.ts +0 -20
- package/dist/commands/dad.js +0 -46
- package/dist/commands/export/iso.d.ts +0 -19
- package/dist/commands/export/iso.js +0 -55
- package/dist/commands/export/pkg.d.ts +0 -29
- package/dist/commands/export/pkg.js +0 -163
- package/dist/commands/export/tarballs.d.ts +0 -27
- package/dist/commands/export/tarballs.js +0 -84
- package/dist/commands/install.d.ts +0 -38
- package/dist/commands/install.js +0 -91
- package/dist/commands/kill.d.ts +0 -24
- package/dist/commands/kill.js +0 -50
- package/dist/commands/love.d.ts +0 -20
- package/dist/commands/love.js +0 -59
- package/dist/commands/mom.d.ts +0 -16
- package/dist/commands/mom.js +0 -30
- package/dist/commands/produce.d.ts +0 -34
- package/dist/commands/produce.js +0 -201
- package/dist/commands/status.d.ts +0 -23
- package/dist/commands/status.js +0 -31
- package/dist/commands/syncfrom.d.ts +0 -45
- package/dist/commands/syncfrom.js +0 -152
- package/dist/commands/syncto.d.ts +0 -40
- package/dist/commands/syncto.js +0 -175
- package/dist/commands/tools/clean.d.ts +0 -18
- package/dist/commands/tools/clean.js +0 -37
- package/dist/commands/tools/ppa.d.ts +0 -26
- package/dist/commands/tools/ppa.js +0 -138
- package/dist/commands/tools/skel.d.ts +0 -18
- package/dist/commands/tools/skel.js +0 -44
- package/dist/commands/tools/stat.d.ts +0 -31
- package/dist/commands/tools/stat.js +0 -70
- package/dist/commands/tools/yolk.d.ts +0 -24
- package/dist/commands/tools/yolk.js +0 -45
- package/dist/commands/update.d.ts +0 -51
- package/dist/commands/update.js +0 -219
- package/dist/commands/wardrobe/get.d.ts +0 -23
- package/dist/commands/wardrobe/get.js +0 -52
- package/dist/commands/wardrobe/list.d.ts +0 -24
- package/dist/commands/wardrobe/list.js +0 -125
- package/dist/commands/wardrobe/show.d.ts +0 -25
- package/dist/commands/wardrobe/show.js +0 -97
- package/dist/commands/wardrobe/wear.d.ts +0 -26
- package/dist/commands/wardrobe/wear.js +0 -84
- package/dist/index.d.ts +0 -54
- package/dist/index.js +0 -147
- package/dist/index_old.d.ts +0 -8
- package/dist/index_old.js +0 -8
- package/dist/interfaces/i-addons.d.ts +0 -12
- package/dist/interfaces/i-addons.js +0 -8
- package/dist/interfaces/i-analyze.d.ts +0 -17
- package/dist/interfaces/i-analyze.js +0 -17
- package/dist/interfaces/i-app.d.ts +0 -14
- package/dist/interfaces/i-app.js +0 -8
- package/dist/interfaces/i-branding.d.ts +0 -36
- package/dist/interfaces/i-branding.js +0 -8
- package/dist/interfaces/i-calamares-displaymanager.d.ts +0 -17
- package/dist/interfaces/i-calamares-displaymanager.js +0 -1
- package/dist/interfaces/i-calamares-finished.d.ts +0 -12
- package/dist/interfaces/i-calamares-finished.js +0 -1
- package/dist/interfaces/i-calamares-packages.d.ts +0 -28
- package/dist/interfaces/i-calamares-packages.js +0 -1
- package/dist/interfaces/i-calamares-partition.d.ts +0 -40
- package/dist/interfaces/i-calamares-partition.js +0 -1
- package/dist/interfaces/i-config-tools.d.ts +0 -15
- package/dist/interfaces/i-config-tools.js +0 -8
- package/dist/interfaces/i-devices.d.ts +0 -20
- package/dist/interfaces/i-devices.js +0 -8
- package/dist/interfaces/i-distro.d.ts +0 -23
- package/dist/interfaces/i-distro.js +0 -8
- package/dist/interfaces/i-drive-list.d.ts +0 -33
- package/dist/interfaces/i-drive-list.js +0 -8
- package/dist/interfaces/i-eggs-config.d.ts +0 -32
- package/dist/interfaces/i-eggs-config.js +0 -8
- package/dist/interfaces/i-excludes.d.ts +0 -14
- package/dist/interfaces/i-excludes.js +0 -8
- package/dist/interfaces/i-exec.d.ts +0 -11
- package/dist/interfaces/i-exec.js +0 -8
- package/dist/interfaces/i-initrd.d.ts +0 -13
- package/dist/interfaces/i-initrd.js +0 -8
- package/dist/interfaces/i-install.d.ts +0 -16
- package/dist/interfaces/i-install.js +0 -8
- package/dist/interfaces/i-installer.d.ts +0 -17
- package/dist/interfaces/i-installer.js +0 -8
- package/dist/interfaces/i-luks-passphrase.d.ts +0 -11
- package/dist/interfaces/i-luks-passphrase.js +0 -8
- package/dist/interfaces/i-materia.d.ts +0 -36
- package/dist/interfaces/i-materia.js +0 -8
- package/dist/interfaces/i-net.d.ts +0 -16
- package/dist/interfaces/i-net.js +0 -8
- package/dist/interfaces/i-os-release.d.ts +0 -5
- package/dist/interfaces/i-os-release.js +0 -1
- package/dist/interfaces/i-packages.d.ts +0 -16
- package/dist/interfaces/i-packages.js +0 -8
- package/dist/interfaces/i-partitions.d.ts +0 -16
- package/dist/interfaces/i-partitions.js +0 -8
- package/dist/interfaces/i-pxe.d.ts +0 -45
- package/dist/interfaces/i-pxe.js +0 -1
- package/dist/interfaces/i-remix.d.ts +0 -21
- package/dist/interfaces/i-remix.js +0 -8
- package/dist/interfaces/i-settings.d.ts +0 -33
- package/dist/interfaces/i-settings.js +0 -8
- package/dist/interfaces/i-user.d.ts +0 -14
- package/dist/interfaces/i-user.js +0 -8
- package/dist/interfaces/i-workdir.d.ts +0 -14
- package/dist/interfaces/i-workdir.js +0 -8
- package/dist/interfaces/i-xkb-model.d.ts +0 -24
- package/dist/interfaces/i-xkb-model.js +0 -8
- package/dist/interfaces/index.d.ts +0 -26
- package/dist/interfaces/index.js +0 -8
- package/dist/krill/classes/cfs.d.ts +0 -17
- package/dist/krill/classes/cfs.js +0 -39
- package/dist/krill/classes/krill_enums.d.ts +0 -24
- package/dist/krill/classes/krill_enums.js +0 -26
- package/dist/krill/classes/prepare.d/confirm.d.ts +0 -5
- package/dist/krill/classes/prepare.d/confirm.js +0 -30
- package/dist/krill/classes/prepare.d/keyboard.d.ts +0 -14
- package/dist/krill/classes/prepare.d/keyboard.js +0 -62
- package/dist/krill/classes/prepare.d/location.d.ts +0 -17
- package/dist/krill/classes/prepare.d/location.js +0 -59
- package/dist/krill/classes/prepare.d/network.d.ts +0 -14
- package/dist/krill/classes/prepare.d/network.js +0 -68
- package/dist/krill/classes/prepare.d/partitions.d.ts +0 -14
- package/dist/krill/classes/prepare.d/partitions.js +0 -86
- package/dist/krill/classes/prepare.d/summary.d.ts +0 -15
- package/dist/krill/classes/prepare.d/summary.js +0 -69
- package/dist/krill/classes/prepare.d/users.d.ts +0 -6
- package/dist/krill/classes/prepare.d/users.js +0 -63
- package/dist/krill/classes/prepare.d/welcome.d.ts +0 -6
- package/dist/krill/classes/prepare.d/welcome.js +0 -30
- package/dist/krill/classes/prepare.d.ts +0 -64
- package/dist/krill/classes/prepare.js +0 -314
- package/dist/krill/classes/sequence.d/add_user.d.ts +0 -20
- package/dist/krill/classes/sequence.d/add_user.js +0 -48
- package/dist/krill/classes/sequence.d/bootloader.d.ts +0 -14
- package/dist/krill/classes/sequence.d/bootloader.js +0 -95
- package/dist/krill/classes/sequence.d/bootloader_config.d.ts +0 -14
- package/dist/krill/classes/sequence.d/bootloader_config.js +0 -165
- package/dist/krill/classes/sequence.d/change_password.d.ts +0 -15
- package/dist/krill/classes/sequence.d/change_password.js +0 -18
- package/dist/krill/classes/sequence.d/del_live_user.d.ts +0 -14
- package/dist/krill/classes/sequence.d/del_live_user.js +0 -39
- package/dist/krill/classes/sequence.d/fstab.d.ts +0 -14
- package/dist/krill/classes/sequence.d/fstab.js +0 -189
- package/dist/krill/classes/sequence.d/grubcfg.d.ts +0 -17
- package/dist/krill/classes/sequence.d/grubcfg.js +0 -33
- package/dist/krill/classes/sequence.d/hostname.d.ts +0 -13
- package/dist/krill/classes/sequence.d/hostname.js +0 -50
- package/dist/krill/classes/sequence.d/initramfs.d.ts +0 -13
- package/dist/krill/classes/sequence.d/initramfs.js +0 -54
- package/dist/krill/classes/sequence.d/initramfs_cfg.d.ts +0 -14
- package/dist/krill/classes/sequence.d/initramfs_cfg.js +0 -35
- package/dist/krill/classes/sequence.d/locale.d.ts +0 -13
- package/dist/krill/classes/sequence.d/locale.js +0 -91
- package/dist/krill/classes/sequence.d/locale_cfg.d.ts +0 -10
- package/dist/krill/classes/sequence.d/locale_cfg.js +0 -58
- package/dist/krill/classes/sequence.d/m_keyboard.d.ts +0 -14
- package/dist/krill/classes/sequence.d/m_keyboard.js +0 -58
- package/dist/krill/classes/sequence.d/machine_id.d.ts +0 -15
- package/dist/krill/classes/sequence.d/machine_id.js +0 -33
- package/dist/krill/classes/sequence.d/mkfs.d.ts +0 -15
- package/dist/krill/classes/sequence.d/mkfs.js +0 -72
- package/dist/krill/classes/sequence.d/mount_fs.d.ts +0 -17
- package/dist/krill/classes/sequence.d/mount_fs.js +0 -68
- package/dist/krill/classes/sequence.d/mount_vfs.d.ts +0 -17
- package/dist/krill/classes/sequence.d/mount_vfs.js +0 -40
- package/dist/krill/classes/sequence.d/network_cfg.d.ts +0 -19
- package/dist/krill/classes/sequence.d/network_cfg.js +0 -73
- package/dist/krill/classes/sequence.d/packages.d.ts +0 -14
- package/dist/krill/classes/sequence.d/packages.js +0 -111
- package/dist/krill/classes/sequence.d/partition.d/bios_luks.d.ts +0 -17
- package/dist/krill/classes/sequence.d/partition.d/bios_luks.js +0 -73
- package/dist/krill/classes/sequence.d/partition.d/bios_standard.d.ts +0 -17
- package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +0 -36
- package/dist/krill/classes/sequence.d/partition.d/uefi_luks.d.ts +0 -17
- package/dist/krill/classes/sequence.d/partition.d/uefi_luks.js +0 -78
- package/dist/krill/classes/sequence.d/partition.d/uefi_standard.d.ts +0 -10
- package/dist/krill/classes/sequence.d/partition.d/uefi_standard.js +0 -32
- package/dist/krill/classes/sequence.d/partition.d.ts +0 -14
- package/dist/krill/classes/sequence.d/partition.js +0 -84
- package/dist/krill/classes/sequence.d/remove_installer_link.d.ts +0 -13
- package/dist/krill/classes/sequence.d/remove_installer_link.js +0 -35
- package/dist/krill/classes/sequence.d/umount.d.ts +0 -14
- package/dist/krill/classes/sequence.d/umount.js +0 -28
- package/dist/krill/classes/sequence.d/unpackfs.d.ts +0 -13
- package/dist/krill/classes/sequence.d/unpackfs.js +0 -20
- package/dist/krill/classes/sequence.d.ts +0 -136
- package/dist/krill/classes/sequence.js +0 -663
- package/dist/krill/components/finished.d.ts +0 -16
- package/dist/krill/components/finished.js +0 -56
- package/dist/krill/components/information.d.ts +0 -8
- package/dist/krill/components/information.js +0 -156
- package/dist/krill/components/install.d.ts +0 -15
- package/dist/krill/components/install.js +0 -60
- package/dist/krill/components/keyboard.d.ts +0 -16
- package/dist/krill/components/keyboard.js +0 -54
- package/dist/krill/components/location.d.ts +0 -16
- package/dist/krill/components/location.js +0 -59
- package/dist/krill/components/network.d.ts +0 -19
- package/dist/krill/components/network.js +0 -65
- package/dist/krill/components/partitions.d.ts +0 -18
- package/dist/krill/components/partitions.js +0 -89
- package/dist/krill/components/steps.d.ts +0 -13
- package/dist/krill/components/steps.js +0 -148
- package/dist/krill/components/summary.d.ts +0 -25
- package/dist/krill/components/summary.js +0 -77
- package/dist/krill/components/title.d.ts +0 -11
- package/dist/krill/components/title.js +0 -35
- package/dist/krill/components/users.d.ts +0 -24
- package/dist/krill/components/users.js +0 -80
- package/dist/krill/components/welcome.d.ts +0 -13
- package/dist/krill/components/welcome.js +0 -63
- package/dist/krill/interfaces/i_krill.d.ts +0 -44
- package/dist/krill/interfaces/i_krill.js +0 -8
- package/dist/krill/interfaces/i_krill_config.d.ts +0 -35
- package/dist/krill/interfaces/i_krill_config.js +0 -8
- package/dist/krill/lib/get_address.d.ts +0 -8
- package/dist/krill/lib/get_address.js +0 -23
- package/dist/krill/lib/get_dns.d.ts +0 -8
- package/dist/krill/lib/get_dns.js +0 -23
- package/dist/krill/lib/get_domain.d.ts +0 -8
- package/dist/krill/lib/get_domain.js +0 -23
- package/dist/krill/lib/get_gateway.d.ts +0 -8
- package/dist/krill/lib/get_gateway.js +0 -23
- package/dist/krill/lib/get_hostname.d.ts +0 -8
- package/dist/krill/lib/get_hostname.js +0 -23
- package/dist/krill/lib/get_luks_passphrase.d.ts +0 -8
- package/dist/krill/lib/get_luks_passphrase.js +0 -40
- package/dist/krill/lib/get_netmask.d.ts +0 -8
- package/dist/krill/lib/get_netmask.js +0 -23
- package/dist/krill/lib/get_password.d.ts +0 -8
- package/dist/krill/lib/get_password.js +0 -36
- package/dist/krill/lib/get_userfullname.d.ts +0 -8
- package/dist/krill/lib/get_userfullname.js +0 -23
- package/dist/krill/lib/get_username.d.ts +0 -8
- package/dist/krill/lib/get_username.js +0 -23
- package/dist/krill/lib/kill_me_softly.d.ts +0 -11
- package/dist/krill/lib/kill_me_softly.js +0 -61
- package/dist/krill/lib/select_address_type.d.ts +0 -8
- package/dist/krill/lib/select_address_type.js +0 -24
- package/dist/krill/lib/select_filesystem_type.d.ts +0 -8
- package/dist/krill/lib/select_filesystem_type.js +0 -39
- package/dist/krill/lib/select_installation_device.d.ts +0 -8
- package/dist/krill/lib/select_installation_device.js +0 -40
- package/dist/krill/lib/select_installation_mode.d.ts +0 -9
- package/dist/krill/lib/select_installation_mode.js +0 -25
- package/dist/krill/lib/select_interface.d.ts +0 -8
- package/dist/krill/lib/select_interface.js +0 -24
- package/dist/krill/lib/select_keyboard_layout.d.ts +0 -11
- package/dist/krill/lib/select_keyboard_layout.js +0 -36
- package/dist/krill/lib/select_keyboard_model.d.ts +0 -11
- package/dist/krill/lib/select_keyboard_model.js +0 -34
- package/dist/krill/lib/select_keyboard_option.d.ts +0 -11
- package/dist/krill/lib/select_keyboard_option.js +0 -34
- package/dist/krill/lib/select_keyboard_variant.d.ts +0 -11
- package/dist/krill/lib/select_keyboard_variant.js +0 -35
- package/dist/krill/lib/select_languages.d.ts +0 -8
- package/dist/krill/lib/select_languages.js +0 -28
- package/dist/krill/lib/select_regions.d.ts +0 -8
- package/dist/krill/lib/select_regions.js +0 -24
- package/dist/krill/lib/select_replaced_partition.d.ts +0 -8
- package/dist/krill/lib/select_replaced_partition.js +0 -31
- package/dist/krill/lib/select_user_swap_choice.d.ts +0 -9
- package/dist/krill/lib/select_user_swap_choice.js +0 -35
- package/dist/krill/lib/select_zones.d.ts +0 -8
- package/dist/krill/lib/select_zones.js +0 -518
- package/dist/lib/utils.d.ts +0 -42
- package/dist/lib/utils.js +0 -87
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/make-efi.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 Ovary from '../ovary.js';
|
|
9
|
-
/**
|
|
10
|
-
* makeEFI
|
|
11
|
-
*/
|
|
12
|
-
export declare function makeEfi(this: Ovary, theme?: string): Promise<void>;
|
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/make-efi.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 mustache from 'mustache';
|
|
9
|
-
// packages
|
|
10
|
-
import fs from 'node:fs';
|
|
11
|
-
import path from 'node:path';
|
|
12
|
-
// classes
|
|
13
|
-
import { exec } from '../../lib/utils.js';
|
|
14
|
-
import Diversions from '../diversions.js';
|
|
15
|
-
import Utils from '../utils.js';
|
|
16
|
-
// _dirname
|
|
17
|
-
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
18
|
-
/**
|
|
19
|
-
* makeEFI
|
|
20
|
-
*/
|
|
21
|
-
export async function makeEfi(theme = 'eggs') {
|
|
22
|
-
Utils.warning("creating efi configuration...");
|
|
23
|
-
const efiPath = path.join(this.settings.config.snapshot_mnt, '/efi/');
|
|
24
|
-
const efiWorkDir = path.join(efiPath, '/work/');
|
|
25
|
-
const efiMemdiskDir = path.join(efiPath, '/memdisk/');
|
|
26
|
-
const efiMnt = path.join(efiPath, '/mnt/');
|
|
27
|
-
const isoDir = this.settings.iso_work;
|
|
28
|
-
const readmes = `${isoDir}/READMES`;
|
|
29
|
-
let readmeContent = `# README\n`;
|
|
30
|
-
/**
|
|
31
|
-
* check: grub/grub2 command MUST to exists
|
|
32
|
-
*/
|
|
33
|
-
const grubName = Diversions.grubName(this.familyId);
|
|
34
|
-
if (grubName === '') {
|
|
35
|
-
Utils.error('Cannot find command grub/grub2.');
|
|
36
|
-
process.exit(1);
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* GAE = Grub Arch Efi path+grubx86.efi/signed
|
|
40
|
-
*/
|
|
41
|
-
let GAE = srcGAES();
|
|
42
|
-
if (!fs.existsSync(srcGAE())) {
|
|
43
|
-
GAE = srcGAE();
|
|
44
|
-
}
|
|
45
|
-
if (!fs.existsSync(GAE)) {
|
|
46
|
-
if (this.familyId === 'debian') {
|
|
47
|
-
console.log(`error: cannot find ${GAE}`);
|
|
48
|
-
process.exit(1);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
// Create READMES on ISO
|
|
52
|
-
await exec(`mkdir ${readmes}`);
|
|
53
|
-
// clean/create all in efiPath
|
|
54
|
-
if (fs.existsSync(efiPath)) {
|
|
55
|
-
await exec(`rm -rf ${efiPath}`);
|
|
56
|
-
}
|
|
57
|
-
await exec(`mkdir ${efiPath}`, this.echo);
|
|
58
|
-
await exec(`mkdir ${efiMemdiskDir}`, this.echo);
|
|
59
|
-
await exec(`mkdir ${efiMnt}`, this.echo);
|
|
60
|
-
await exec(`mkdir ${efiWorkDir}`, this.echo);
|
|
61
|
-
const grub1 = `${efiMemdiskDir}/boot/grub/grub.cfg`;
|
|
62
|
-
let grubText1 = `# grub.cfg 1\n`;
|
|
63
|
-
/**
|
|
64
|
-
* create efi.img
|
|
65
|
-
*/
|
|
66
|
-
await exec(`mkdir ${path.join(efiMemdiskDir, "/boot")}`, this.echo);
|
|
67
|
-
await exec(`mkdir ${path.join(efiMemdiskDir, "/boot/grub")}`, this.echo);
|
|
68
|
-
// create grub.cfg 1 in memdisk
|
|
69
|
-
Utils.warning("creating grub.cfg (1) in (efi.img)/boot/grub");
|
|
70
|
-
grubText1 += `# created on ${efiMemdiskDir}\n`;
|
|
71
|
-
grubText1 += `\n`;
|
|
72
|
-
grubText1 += `search --set=root --file /.disk/id/${this.uuid}\n`;
|
|
73
|
-
grubText1 += 'set prefix=($root)/boot/grub\n';
|
|
74
|
-
grubText1 += `configfile ($root)/boot/grub/grub.cfg\n`;
|
|
75
|
-
Utils.write(grub1, grubText1);
|
|
76
|
-
/**
|
|
77
|
-
* creating structure efiWordDir
|
|
78
|
-
*/
|
|
79
|
-
await exec(`mkdir -p ${efiWorkDir}/boot/grub`, this.echo);
|
|
80
|
-
await exec(`mkdir -p ${efiWorkDir}/EFI/boot`);
|
|
81
|
-
/**
|
|
82
|
-
* create tarred efiMemdiskDir
|
|
83
|
-
*/
|
|
84
|
-
const currentDir = process.cwd();
|
|
85
|
-
process.chdir(efiMemdiskDir);
|
|
86
|
-
await exec('tar -cvf memdisk boot', this.echo);
|
|
87
|
-
process.chdir(currentDir);
|
|
88
|
-
/**
|
|
89
|
-
* Create boot image "boot/grub/efi.img"
|
|
90
|
-
*/
|
|
91
|
-
const efiImg = `${efiWorkDir}boot/grub/efi.img`;
|
|
92
|
-
await exec(`dd if=/dev/zero of=${efiImg} bs=1M count=16`, this.echo);
|
|
93
|
-
await exec(`/sbin/mkdosfs -F 12 ${efiImg}`, this.echo);
|
|
94
|
-
// mount efi.img on mnt-img
|
|
95
|
-
await exec(`mount -o loop ${efiImg} ${efiMnt}`, this.echo);
|
|
96
|
-
// create structure inside efiMnt
|
|
97
|
-
await exec(`mkdir ${efiMnt}/boot`, this.echo);
|
|
98
|
-
await exec(`mkdir ${efiMnt}/boot/grub`, this.echo);
|
|
99
|
-
await exec(`mkdir ${efiMnt}/boot/grub/x86_64-efi`, this.echo);
|
|
100
|
-
await exec(`cp -r /usr/lib/grub/x86_64-efi/*.mod ${efiMnt}/boot/grub/x86_64-efi/`, this.echo);
|
|
101
|
-
await exec(`mkdir ${efiMnt}/EFI`, this.echo);
|
|
102
|
-
await exec(`mkdir ${efiMnt}/EFI/boot`, this.echo);
|
|
103
|
-
/**
|
|
104
|
-
* copy grub.cfg to (efi.img)/boot/grub
|
|
105
|
-
*/
|
|
106
|
-
await exec(`cp ${grub1} ${efiMnt}/boot/grub`);
|
|
107
|
-
// readme
|
|
108
|
-
readmeContent += `## copyng on (efi.img) ${efiMnt}\n`;
|
|
109
|
-
readmeContent += `${grub1} copied to /boot/grub`;
|
|
110
|
-
if (this.settings.distro.codenameLikeId === 'bookworm') {
|
|
111
|
-
/**
|
|
112
|
-
* (efi.img)/EFI/boot/bootx84.efi (shimx64.efi)
|
|
113
|
-
* (efi.img)/EFI/boot/grubx84.efi
|
|
114
|
-
*/
|
|
115
|
-
Utils.warning(`copy ${srcShim()} to ${efiMnt}/EFI/boot/${bootArchEfi()}`);
|
|
116
|
-
Utils.warning(`copy ${srcGAES()} to ${efiMnt}/EFI/boot/${nameGAE()}`);
|
|
117
|
-
await exec(`cp ${srcShim()} ${efiMnt}/EFI/boot/${bootArchEfi()}`, this.echo);
|
|
118
|
-
await exec(`cp ${srcGAES()} ${efiMnt}/EFI/boot/${nameGAE()}`, this.echo);
|
|
119
|
-
readmeContent += `${srcShim()} copied as ${bootArchEfi()}\n`;
|
|
120
|
-
readmeContent += `${GAE} copied as ${nameGAE()}\n`;
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
/**
|
|
124
|
-
* we need to build bootx64.efi
|
|
125
|
-
*/
|
|
126
|
-
Utils.warning(`create ${bootArchEfi()} not signed and copy as ${bootArchEfi()}`);
|
|
127
|
-
await exec(`${grubName}-mkimage -O "${Utils.uefiFormat()}" \
|
|
128
|
-
-m "${efiMemdiskDir}/memdisk" \
|
|
129
|
-
-o "${efiMemdiskDir}/${bootArchEfi()}" \
|
|
130
|
-
-p '(memdisk)/boot/grub' \
|
|
131
|
-
search iso9660 configfile normal memdisk tar cat part_msdos part_gpt fat ext2 ntfs ntfscomp hfsplus chain boot linux squash4 loopback`, this.echo);
|
|
132
|
-
await exec(`cp ${efiMemdiskDir}/${bootArchEfi()} ${efiMnt}/EFI/boot/`, this.echo);
|
|
133
|
-
// Creare EFI
|
|
134
|
-
readmeContent += `created grubx64.efi not signed and copied as ${bootArchEfi()}\n`;
|
|
135
|
-
}
|
|
136
|
-
// replicate EFI on ISO
|
|
137
|
-
await exec(`cp -r ${efiMnt}/EFI ${isoDir}/EFI`, this.echo);
|
|
138
|
-
// umount efiMnt
|
|
139
|
-
await exec(`umount ${efiMnt}`, this.echo);
|
|
140
|
-
/**
|
|
141
|
-
* creating grub.cfg (2) on (iso)/boot/grub
|
|
142
|
-
*/
|
|
143
|
-
Utils.warning("creating grub.cfg (2) on (iso)/boot/grub");
|
|
144
|
-
// copy splash to efiWorkDir
|
|
145
|
-
const splashDest = `${efiWorkDir}/boot/grub/splash.png`;
|
|
146
|
-
let splashSrc = path.resolve(__dirname, `../../../addons/${theme}/theme/livecd/splash.png`);
|
|
147
|
-
if (this.theme.includes('/')) {
|
|
148
|
-
splashSrc = `${theme}/theme/livecd/splash.png`;
|
|
149
|
-
}
|
|
150
|
-
if (!fs.existsSync(splashSrc)) {
|
|
151
|
-
Utils.warning('Cannot find: ' + splashSrc);
|
|
152
|
-
process.exit(1);
|
|
153
|
-
}
|
|
154
|
-
await exec(`cp ${splashSrc} ${splashDest}`, this.echo);
|
|
155
|
-
// select themeSrc
|
|
156
|
-
let themeSrc = path.resolve(__dirname, `../../../addons/${theme}/theme/livecd/grub.theme.cfg`);
|
|
157
|
-
if (this.theme.includes('/')) {
|
|
158
|
-
themeSrc = `${theme}/theme/livecd/grub.theme.cfg`;
|
|
159
|
-
}
|
|
160
|
-
// copy theme
|
|
161
|
-
const themeDest = `${isoDir}/boot/grub/theme.cfg`;
|
|
162
|
-
if (!fs.existsSync(themeSrc)) {
|
|
163
|
-
Utils.warning('Cannot find: ' + themeSrc);
|
|
164
|
-
process.exit(1);
|
|
165
|
-
}
|
|
166
|
-
fs.copyFileSync(themeSrc, themeDest);
|
|
167
|
-
// selecting available fonts
|
|
168
|
-
if (fs.existsSync('/usr/share/grub/font.pf2')) {
|
|
169
|
-
await exec(`cp /usr/share/grub/font.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
|
|
170
|
-
}
|
|
171
|
-
else if (fs.existsSync('/usr/share/grub/unicode.pf2')) {
|
|
172
|
-
await exec(`cp /usr/share/grub/unicode.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
|
|
173
|
-
}
|
|
174
|
-
else if (fs.existsSync('/usr/share/grub/ascii.pf2')) {
|
|
175
|
-
await exec(`cp /usr/share/grub/ascii.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
|
|
176
|
-
}
|
|
177
|
-
// Copy workdir files to ISO/boot
|
|
178
|
-
await exec(`rsync -avx ${efiWorkDir}/boot ${isoDir}/`, this.echo);
|
|
179
|
-
readmeContent += `\n`;
|
|
180
|
-
readmeContent += `## Copyng on ${isoDir}\n`;
|
|
181
|
-
readmeContent += `rsync -avx ${efiWorkDir}/boot (iso)/boot\n`;
|
|
182
|
-
/**
|
|
183
|
-
* prepare main grub.cfg from grub.main.cfg
|
|
184
|
-
*/
|
|
185
|
-
let grubTemplate = `${theme}/theme/livecd/grub.main.cfg`;
|
|
186
|
-
if (!fs.existsSync(grubTemplate)) {
|
|
187
|
-
grubTemplate = path.resolve(__dirname, '../../../addons/eggs/theme/livecd/grub.main.cfg');
|
|
188
|
-
}
|
|
189
|
-
if (!fs.existsSync(grubTemplate)) {
|
|
190
|
-
Utils.warning('Cannot find: ' + grubTemplate);
|
|
191
|
-
process.exit(1);
|
|
192
|
-
}
|
|
193
|
-
const kernel_parameters = Diversions.kernelParameters(this.familyId, this.volid); // this.kernelParameters()
|
|
194
|
-
const g2 = path.join(isoDir, '/boot/grub/grub.cfg');
|
|
195
|
-
const template = fs.readFileSync(grubTemplate, 'utf8');
|
|
196
|
-
const view = {
|
|
197
|
-
fullname: this.settings.remix.fullname.toUpperCase(),
|
|
198
|
-
initrdImg: `/live${this.settings.initrdImg}`,
|
|
199
|
-
kernel: Utils.kernelVersion(),
|
|
200
|
-
kernel_parameters,
|
|
201
|
-
vmlinuz: `/live${this.settings.vmlinuz}`
|
|
202
|
-
};
|
|
203
|
-
let grubText2 = `# grub.cfg 2\n`;
|
|
204
|
-
grubText2 += ` # created on ${g2}`;
|
|
205
|
-
grubText2 += `\n`;
|
|
206
|
-
grubText2 += mustache.render(template, view);
|
|
207
|
-
fs.writeFileSync(g2, grubText2);
|
|
208
|
-
/**
|
|
209
|
-
* create loopback.cfg
|
|
210
|
-
*/
|
|
211
|
-
fs.writeFileSync(`${isoDir}/boot/grub/loopback.cfg`, 'source /boot/grub/grub.cfg\n');
|
|
212
|
-
/**
|
|
213
|
-
* create (iso)/boot/grub/x86_64-efi/grub.cfg
|
|
214
|
-
*/
|
|
215
|
-
fs.writeFileSync(`${isoDir}/boot/grub/${Utils.uefiFormat()}/grub.cfg`, 'source /boot/grub/grub.cfg\n');
|
|
216
|
-
/**
|
|
217
|
-
* config.cfg
|
|
218
|
-
*/
|
|
219
|
-
await exec(`cp ${path.resolve(__dirname, `../../../assets/config.cfg`)} ${isoDir}/boot/grub`);
|
|
220
|
-
fs.writeFileSync(`${readmes}/grub1.cfg`, grubText1);
|
|
221
|
-
fs.writeFileSync(`${readmes}/grub2.cfg`, grubText2);
|
|
222
|
-
fs.writeFileSync(`${readmes}/README.md`, readmeContent);
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
*
|
|
226
|
-
* @returns
|
|
227
|
-
*/
|
|
228
|
-
function bootArchEfi() {
|
|
229
|
-
let bn = 'nothing.efi';
|
|
230
|
-
if (process.arch === 'x64') {
|
|
231
|
-
bn = 'bootx64.efi';
|
|
232
|
-
}
|
|
233
|
-
else if (process.arch === 'arm64') {
|
|
234
|
-
bn = 'bootaa64.efi';
|
|
235
|
-
}
|
|
236
|
-
return bn;
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* FUNCTIONS
|
|
240
|
-
*/
|
|
241
|
-
function nameGAE() {
|
|
242
|
-
let bn = 'nothing.efi';
|
|
243
|
-
if (process.arch === 'x64') {
|
|
244
|
-
bn = 'grubx64.efi';
|
|
245
|
-
}
|
|
246
|
-
else if (process.arch === 'arm64') {
|
|
247
|
-
bn = 'grubaa64.efi';
|
|
248
|
-
}
|
|
249
|
-
return bn;
|
|
250
|
-
}
|
|
251
|
-
function nameGAES() {
|
|
252
|
-
return nameGAE() + '.signed';
|
|
253
|
-
}
|
|
254
|
-
function srcGAE() {
|
|
255
|
-
return '/usr/lib/grub/' + Utils.uefiFormat() + '/monolithic/' + nameGAE();
|
|
256
|
-
}
|
|
257
|
-
function srcGAES() {
|
|
258
|
-
let signedGrub = `/usr/lib/grub/${Utils.uefiFormat()}-signed/${nameGAES()}`;
|
|
259
|
-
if (!fs.existsSync(signedGrub)) {
|
|
260
|
-
Utils.warning(`cannot find ${signedGrub}}`);
|
|
261
|
-
}
|
|
262
|
-
return signedGrub;
|
|
263
|
-
}
|
|
264
|
-
function srcShim() {
|
|
265
|
-
const signedShim = '/usr/lib/shim/shimx64.efi.signed';
|
|
266
|
-
const unsignedShim = '/usr/lib/shim/shimx64.efi';
|
|
267
|
-
return fs.existsSync(signedShim) ? signedShim : unsignedShim;
|
|
268
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/make-iso.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 Ovary from '../ovary.js';
|
|
9
|
-
/**
|
|
10
|
-
* makeIso
|
|
11
|
-
* cmd: cmd 4 xorriso
|
|
12
|
-
*/
|
|
13
|
-
export declare function makeIso(this: Ovary, cmd: string, scriptOnly?: boolean): Promise<void>;
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/make-iso.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
|
-
// packages
|
|
9
|
-
import path from 'node:path';
|
|
10
|
-
// classes
|
|
11
|
-
import { exec } from '../../lib/utils.js';
|
|
12
|
-
import Utils from '../utils.js';
|
|
13
|
-
// _dirname
|
|
14
|
-
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
15
|
-
/**
|
|
16
|
-
* makeIso
|
|
17
|
-
* cmd: cmd 4 xorriso
|
|
18
|
-
*/
|
|
19
|
-
export async function makeIso(cmd, scriptOnly = false) {
|
|
20
|
-
// echo = { echo: true, ignore: false }
|
|
21
|
-
if (this.verbose) {
|
|
22
|
-
console.log('Ovary: makeIso');
|
|
23
|
-
}
|
|
24
|
-
Utils.writeX(`${this.settings.work_dir.ovarium}mkisofs`, cmd);
|
|
25
|
-
// Create link to iso ALLWAYES
|
|
26
|
-
const src = this.settings.config.snapshot_mnt + this.settings.isoFilename;
|
|
27
|
-
const dest = this.settings.config.snapshot_dir + this.settings.isoFilename;
|
|
28
|
-
await exec(`ln -s ${src} ${dest}`);
|
|
29
|
-
if (!scriptOnly) {
|
|
30
|
-
const test = (await exec(cmd, Utils.setEcho(true))).code;
|
|
31
|
-
if (test !== 0) {
|
|
32
|
-
process.exit();
|
|
33
|
-
}
|
|
34
|
-
// Create link to iso
|
|
35
|
-
const src = this.settings.config.snapshot_mnt + this.settings.isoFilename;
|
|
36
|
-
const dest = this.settings.config.snapshot_dir + this.settings.isoFilename;
|
|
37
|
-
await exec(`ln -s ${src} ${dest}`);
|
|
38
|
-
// Create md5sum, sha256sum
|
|
39
|
-
if (this.settings.config.make_md5sum) {
|
|
40
|
-
Utils.warning('creating md5, sha256');
|
|
41
|
-
await exec(`md5sum ${src} > ${dest.replace('.iso', '.md5')}`);
|
|
42
|
-
await exec(`sha256sum ${src} > ${dest.replace('.iso', '.sha256')}`);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/make-squashfs.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 Ovary from '../ovary.js';
|
|
9
|
-
/**
|
|
10
|
-
* squashFs: crea in live filesystem.squashfs
|
|
11
|
-
*/
|
|
12
|
-
export declare function makeSquashfs(this: Ovary, scriptOnly?: boolean, unsecure?: boolean): Promise<string>;
|
|
13
|
-
/**
|
|
14
|
-
* Add or remove exclusion
|
|
15
|
-
* @param add {boolean} true = add, false remove
|
|
16
|
-
* @param exclusion {string} path to add/remove
|
|
17
|
-
*/
|
|
18
|
-
export declare function addRemoveExclusion(this: Ovary, add: boolean, exclusion: string): void;
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/make-squashfs.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
|
-
// packages
|
|
9
|
-
import fs from 'fs';
|
|
10
|
-
import path from 'node:path';
|
|
11
|
-
import shx from 'shelljs';
|
|
12
|
-
// classes
|
|
13
|
-
import { exec } from '../../lib/utils.js';
|
|
14
|
-
import Utils from '../utils.js';
|
|
15
|
-
// _dirname
|
|
16
|
-
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
17
|
-
/**
|
|
18
|
-
* squashFs: crea in live filesystem.squashfs
|
|
19
|
-
*/
|
|
20
|
-
export async function makeSquashfs(scriptOnly = false, unsecure = false) {
|
|
21
|
-
if (this.verbose) {
|
|
22
|
-
console.log('Ovary: makeSquashfs');
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* exclude all the accurence of cryptdisks in rc0.d, etc
|
|
26
|
-
*/
|
|
27
|
-
const fexcludes = [
|
|
28
|
-
'/boot/efi/EFI',
|
|
29
|
-
'/boot/loader/entries/',
|
|
30
|
-
'/etc/fstab',
|
|
31
|
-
'/etc/mtab',
|
|
32
|
-
'/etc/udev/rules.d/70-persistent-cd.rules',
|
|
33
|
-
'/etc/udev/rules.d/70-persistent-net.rules',
|
|
34
|
-
];
|
|
35
|
-
for (const i in fexcludes) {
|
|
36
|
-
this.addRemoveExclusion(true, fexcludes[i]);
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Non sò che fa, ma sicuro non serve per archlinux
|
|
40
|
-
*/
|
|
41
|
-
if (this.familyId === 'debian') {
|
|
42
|
-
const rcd = ['rc0.d', 'rc1.d', 'rc2.d', 'rc3.d', 'rc4.d', 'rc5.d', 'rc6.d', 'rcS.d'];
|
|
43
|
-
let files;
|
|
44
|
-
for (const i in rcd) {
|
|
45
|
-
files = fs.readdirSync(`${this.settings.work_dir.merged}/etc/${rcd[i]}`);
|
|
46
|
-
for (const n in files) {
|
|
47
|
-
if (files[n].includes('cryptdisks')) {
|
|
48
|
-
this.addRemoveExclusion(true, `/etc/${rcd[i]}${files[n]}`);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* secure
|
|
55
|
-
*/
|
|
56
|
-
if (!unsecure) {
|
|
57
|
-
this.addRemoveExclusion(true, `root/*`);
|
|
58
|
-
this.addRemoveExclusion(true, `root/.*`);
|
|
59
|
-
}
|
|
60
|
-
if (shx.exec('/usr/bin/test -L /etc/localtime', { silent: true }) && shx.exec('cat /etc/timezone', { silent: true }) !== 'Europe/Rome') {
|
|
61
|
-
// this.addRemoveExclusion(true, '/etc/localtime')
|
|
62
|
-
}
|
|
63
|
-
this.addRemoveExclusion(true, this.settings.config.snapshot_dir /* .absolutePath() */);
|
|
64
|
-
if (fs.existsSync(`${this.settings.iso_work}/live/filesystem.squashfs`)) {
|
|
65
|
-
fs.unlinkSync(`${this.settings.iso_work}/live/filesystem.squashfs`);
|
|
66
|
-
}
|
|
67
|
-
const compression = `-comp ${this.settings.config.compression}`;
|
|
68
|
-
/**
|
|
69
|
-
* limit: patch per Raspberry
|
|
70
|
-
*/
|
|
71
|
-
const limit = '';
|
|
72
|
-
if (Utils.uefiArch() === 'arm64') {
|
|
73
|
-
// limit = ' -processors 2 -mem 1024M'
|
|
74
|
-
}
|
|
75
|
-
/**
|
|
76
|
-
* mksquashfs
|
|
77
|
-
*
|
|
78
|
-
* SYNTAX: mksquashfs source1 source2 ...
|
|
79
|
-
* FILESYSTEM [OPTIONS]
|
|
80
|
-
* [-ef exclude.list]
|
|
81
|
-
* [-e list of exclude dirs/files]
|
|
82
|
-
*/
|
|
83
|
-
let cmd = `mksquashfs ${this.settings.work_dir.merged} ${this.settings.iso_work}live/filesystem.squashfs ${compression} ${limit} -wildcards -ef ${this.settings.config.snapshot_excludes} ${this.settings.session_excludes}`;
|
|
84
|
-
cmd = cmd.replaceAll(/\s\s+/g, ' ');
|
|
85
|
-
Utils.writeX(`${this.settings.work_dir.ovarium}mksquashfs`, cmd);
|
|
86
|
-
if (!scriptOnly) {
|
|
87
|
-
Utils.warning('creating filesystem.squashfs on ISO/live');
|
|
88
|
-
// Utils.warning(`compression: ` + compression)
|
|
89
|
-
const test = (await exec(cmd, Utils.setEcho(true))).code;
|
|
90
|
-
if (test !== 0) {
|
|
91
|
-
process.exit();
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
return cmd;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Add or remove exclusion
|
|
98
|
-
* @param add {boolean} true = add, false remove
|
|
99
|
-
* @param exclusion {string} path to add/remove
|
|
100
|
-
*/
|
|
101
|
-
export function addRemoveExclusion(add, exclusion) {
|
|
102
|
-
if (this.verbose) {
|
|
103
|
-
console.log('Ovary: addRemoveExclusion');
|
|
104
|
-
}
|
|
105
|
-
if (exclusion.startsWith('/')) {
|
|
106
|
-
exclusion = exclusion.slice(1); // remove / initial Non compatible with rsync
|
|
107
|
-
}
|
|
108
|
-
if (add) {
|
|
109
|
-
this.settings.session_excludes += this.settings.session_excludes === '' ? `-e '${exclusion}' ` : ` '${exclusion}' `;
|
|
110
|
-
}
|
|
111
|
-
else {
|
|
112
|
-
this.settings.session_excludes.replace(` '${exclusion}'`, '');
|
|
113
|
-
if (this.settings.session_excludes === '-e') {
|
|
114
|
-
this.settings.session_excludes = '';
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/merge.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 Ovary from '../ovary.js';
|
|
9
|
-
/**
|
|
10
|
-
* Ritorna true se c'è bisogno del mount --bind
|
|
11
|
-
*
|
|
12
|
-
* Ci sono tre tipologie:
|
|
13
|
-
*
|
|
14
|
-
* - normal solo la creazione della directory, nessun mount
|
|
15
|
-
* - merged creazione della directory e mount ro
|
|
16
|
-
* - mergedAndOverlay creazione directory, overlay e mount rw
|
|
17
|
-
* - copied: creazione directory e copia
|
|
18
|
-
*/
|
|
19
|
-
export declare function merged(this: Ovary, dir: string): boolean;
|
|
20
|
-
/**
|
|
21
|
-
* Restituisce true per le direcory da montare con overlay
|
|
22
|
-
*
|
|
23
|
-
* Ci sono tre tipologie:
|
|
24
|
-
*
|
|
25
|
-
* - normal solo la creazione della directory, nessun mount
|
|
26
|
-
* - merged creazione della directory e mount ro
|
|
27
|
-
* - mergedAndOverlay creazione directory, overlay e mount rw
|
|
28
|
-
*
|
|
29
|
-
* @param dir
|
|
30
|
-
*/
|
|
31
|
-
export declare function mergedAndOverlay(this: Ovary, dir: string): boolean;
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/merge.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
|
-
// packages
|
|
9
|
-
import path from 'node:path';
|
|
10
|
-
// _dirname
|
|
11
|
-
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
12
|
-
/**
|
|
13
|
-
* Ritorna true se c'è bisogno del mount --bind
|
|
14
|
-
*
|
|
15
|
-
* Ci sono tre tipologie:
|
|
16
|
-
*
|
|
17
|
-
* - normal solo la creazione della directory, nessun mount
|
|
18
|
-
* - merged creazione della directory e mount ro
|
|
19
|
-
* - mergedAndOverlay creazione directory, overlay e mount rw
|
|
20
|
-
* - copied: creazione directory e copia
|
|
21
|
-
*/
|
|
22
|
-
export function merged(dir) {
|
|
23
|
-
if (this.verbose) {
|
|
24
|
-
console.log('Ovary: merged');
|
|
25
|
-
}
|
|
26
|
-
let merged = true;
|
|
27
|
-
if (dir === 'home') {
|
|
28
|
-
merged = this.clone;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
const noMergeDirs = [
|
|
32
|
-
'boot', // will be copied now
|
|
33
|
-
'cdrom',
|
|
34
|
-
'dev',
|
|
35
|
-
'media',
|
|
36
|
-
'mnt',
|
|
37
|
-
'proc',
|
|
38
|
-
'run',
|
|
39
|
-
'swapfile',
|
|
40
|
-
'sys',
|
|
41
|
-
'tmp'
|
|
42
|
-
];
|
|
43
|
-
// deepin
|
|
44
|
-
noMergeDirs.push('data', 'recovery');
|
|
45
|
-
for (const noMergeDir of noMergeDirs) {
|
|
46
|
-
if (dir === noMergeDir) {
|
|
47
|
-
merged = false;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
return merged;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Restituisce true per le direcory da montare con overlay
|
|
55
|
-
*
|
|
56
|
-
* Ci sono tre tipologie:
|
|
57
|
-
*
|
|
58
|
-
* - normal solo la creazione della directory, nessun mount
|
|
59
|
-
* - merged creazione della directory e mount ro
|
|
60
|
-
* - mergedAndOverlay creazione directory, overlay e mount rw
|
|
61
|
-
*
|
|
62
|
-
* @param dir
|
|
63
|
-
*/
|
|
64
|
-
export function mergedAndOverlay(dir) {
|
|
65
|
-
if (this.verbose) {
|
|
66
|
-
console.log('Ovary: mergedAndOverlay');
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Debian: usrmerged
|
|
70
|
-
* bin -> usr/bin
|
|
71
|
-
* lib -> usr/lib
|
|
72
|
-
* lib64 -> usr/lib64
|
|
73
|
-
* sbin -> usr/sbin
|
|
74
|
-
*
|
|
75
|
-
* 'bin' rimossa da overlay
|
|
76
|
-
*/
|
|
77
|
-
// aggiunto bin per autologin su Alpine
|
|
78
|
-
const mountDirs = ['etc', 'usr', 'var'];
|
|
79
|
-
let mountDir = '';
|
|
80
|
-
let overlay = false;
|
|
81
|
-
for (mountDir of mountDirs) {
|
|
82
|
-
if (mountDir === dir) {
|
|
83
|
-
overlay = true;
|
|
84
|
-
}
|
|
85
|
-
}
|
|
86
|
-
return overlay;
|
|
87
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/produce.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 { IAddons, IExcludes } from '../../interfaces/index.js';
|
|
9
|
-
import Ovary from './../ovary.js';
|
|
10
|
-
/**
|
|
11
|
-
* produce
|
|
12
|
-
* @param clone
|
|
13
|
-
* @param cryptedclone
|
|
14
|
-
* @param scriptOnly
|
|
15
|
-
* @param yolkRenew
|
|
16
|
-
* @param release
|
|
17
|
-
* @param myAddons
|
|
18
|
-
* @param nointeractive
|
|
19
|
-
* @param noicons
|
|
20
|
-
* @param unsecure
|
|
21
|
-
* @param verbose
|
|
22
|
-
*/
|
|
23
|
-
export declare function produce(this: Ovary, clone: boolean | undefined, cryptedclone: boolean | undefined, scriptOnly: boolean | undefined, yolkRenew: boolean | undefined, release: boolean | undefined, myAddons: IAddons, myLinks: string[], excludes: IExcludes, nointeractive?: boolean, noicons?: boolean, unsecure?: boolean, verbose?: boolean): Promise<void>;
|