penguins-eggs 25.10.6 → 25.10.23
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 +51 -145
- package/README.md +59 -120
- package/README.pdf +1723 -1731
- package/addons/eggs/theme/livecd/isolinux.main.simple.cfg +2 -3
- package/conf/distros/trixie/calamares/modules/shellprocess@boot_deploy.yml +3 -4
- package/conf/love.yaml +1 -1
- package/dracut/create-symlink +71 -0
- package/dracut/dracut-log.txt +3 -0
- package/dracut/dracut.conf.d/50-live.conf +24 -6
- package/dracut/dracut.conf.d/README.md +10 -0
- package/dracut/export +4 -0
- package/dracut/export-dracut-analysis +51 -0
- package/dracut/export-dracut-log +2 -0
- package/dracut/mkisofs +10 -0
- package/dracut/modules.d/00debug-shell/debug-hook.sh +13 -0
- package/dracut/modules.d/00debug-shell/module-setup.sh +20 -0
- package/dracut/modules.d/90block/README.md +7 -0
- package/dracut/modules.d/90block/block-cmdline.sh +3 -0
- package/dracut/modules.d/90block/module-setup.sh +15 -0
- package/dracut/modules.d/95iso-scan/README.md +3 -0
- package/dracut/modules.d/95iso-scan/iso-scan-fallback.sh +12 -0
- package/dracut/modules.d/95iso-scan/iso-scan.sh +92 -0
- package/dracut/modules.d/95iso-scan/module-setup.sh +18 -0
- package/dracut/modules.d/95luks-loop/README.md +9 -0
- package/dracut/modules.d/95luks-loop/luks-loop.sh +90 -0
- package/dracut/modules.d/95luks-loop/module-setup.sh +17 -0
- package/dracut/renew-initramfs +17 -0
- package/dracut/sbin2bin +10 -0
- package/dracut/update-dracut-conf-d +2 -0
- package/dracut/update-dracut-modules +62 -0
- package/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +7 -661
- package/package.json +10 -9
- package/perrisbrewery/template/dependencies.yaml +6 -5
- package/scripts/_eggs +16 -31
- package/scripts/boot-encrypted-root.sh +177 -0
- package/scripts/eggs.bash +4 -6
- package/scripts/mount-encrypted-home.sh +259 -0
- package/dist/classes/bleach.d.ts +0 -37
- package/dist/classes/bleach.js +0 -148
- package/dist/classes/cli-autologin.d.ts +0 -52
- package/dist/classes/cli-autologin.js +0 -252
- 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 -175
- package/dist/classes/distro.d.ts +0 -32
- package/dist/classes/distro.js +0 -356
- package/dist/classes/diversions.d.ts +0 -53
- package/dist/classes/diversions.js +0 -133
- package/dist/classes/incubation/branding.d.ts +0 -17
- package/dist/classes/incubation/branding.js +0 -85
- package/dist/classes/incubation/customize/customize-partitions.d.ts +0 -4
- package/dist/classes/incubation/customize/customize-partitions.js +0 -29
- package/dist/classes/incubation/fisherman-helper/initcpio.d.ts +0 -1
- package/dist/classes/incubation/fisherman-helper/initcpio.js +0 -69
- 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 -116
- package/dist/classes/incubation/fisherman.d.ts +0 -71
- package/dist/classes/incubation/fisherman.js +0 -281
- 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/archlinux.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/archlinux.js +0 -81
- 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 -101
- package/dist/classes/incubation/incubator.d/fedora.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/fedora.js +0 -81
- package/dist/classes/incubation/incubator.d/focal.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/focal.js +0 -85
- package/dist/classes/incubation/incubator.d/manjaro.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/manjaro.js +0 -82
- package/dist/classes/incubation/incubator.d/noble.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/noble.js +0 -102
- 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/trixie.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/trixie.js +0 -101
- package/dist/classes/incubation/incubator.d.ts +0 -48
- package/dist/classes/incubation/incubator.js +0 -378
- 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 -20
- package/dist/classes/ovary.d/edit-live-fs.js +0 -245
- package/dist/classes/ovary.d/fertilization.d.ts +0 -12
- package/dist/classes/ovary.d/fertilization.js +0 -52
- package/dist/classes/ovary.d/finished.d.ts +0 -13
- package/dist/classes/ovary.d/finished.js +0 -44
- package/dist/classes/ovary.d/initrd.d.ts +0 -21
- package/dist/classes/ovary.d/initrd.js +0 -97
- package/dist/classes/ovary.d/kernel-copy.d.ts +0 -12
- package/dist/classes/ovary.d/kernel-copy.js +0 -22
- package/dist/classes/ovary.d/live-create-structure.d.ts +0 -12
- package/dist/classes/ovary.d/live-create-structure.js +0 -73
- package/dist/classes/ovary.d/make-dot-disk.d.ts +0 -12
- package/dist/classes/ovary.d/make-dot-disk.js +0 -62
- package/dist/classes/ovary.d/make-efi.d.ts +0 -14
- package/dist/classes/ovary.d/make-efi.js +0 -274
- 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 -110
- package/dist/classes/ovary.d/merged.d.ts +0 -27
- package/dist/classes/ovary.d/merged.js +0 -78
- package/dist/classes/ovary.d/produce.d.ts +0 -23
- package/dist/classes/ovary.d/produce.js +0 -319
- 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 -82
- package/dist/classes/ovary.d/user-create-live.d.ts +0 -14
- package/dist/classes/ovary.d/user-create-live.js +0 -97
- 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-command.d.ts +0 -14
- package/dist/classes/ovary.d/xorriso-command.js +0 -123
- package/dist/classes/ovary.d.ts +0 -87
- package/dist/classes/ovary.js +0 -90
- package/dist/classes/pacman.d/alpine.d.ts +0 -56
- package/dist/classes/pacman.d/alpine.js +0 -167
- package/dist/classes/pacman.d/archlinux.d.ts +0 -62
- package/dist/classes/pacman.d/archlinux.js +0 -128
- 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 -107
- package/dist/classes/pacman.d/openmamba.d.ts +0 -52
- package/dist/classes/pacman.d/openmamba.js +0 -106
- package/dist/classes/pacman.d/opensuse.d.ts +0 -53
- package/dist/classes/pacman.d/opensuse.js +0 -109
- package/dist/classes/pacman.d.ts +0 -139
- package/dist/classes/pacman.js +0 -683
- package/dist/classes/pve-live.d.ts +0 -17
- package/dist/classes/pve-live.js +0 -52
- package/dist/classes/pxe.d.ts +0 -76
- package/dist/classes/pxe.js +0 -353
- 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 -563
- 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/kernel.d.ts +0 -39
- package/dist/classes/utils.d/kernel.js +0 -206
- package/dist/classes/utils.d.ts +0 -327
- package/dist/classes/utils.js +0 -955
- 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 -17
- package/dist/commands/cuckoo.js +0 -61
- package/dist/commands/dad.d.ts +0 -21
- package/dist/commands/dad.js +0 -47
- 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 -173
- package/dist/commands/export/tarballs.d.ts +0 -27
- package/dist/commands/export/tarballs.js +0 -79
- package/dist/commands/install.d.ts +0 -39
- package/dist/commands/install.js +0 -113
- package/dist/commands/kill.d.ts +0 -24
- package/dist/commands/kill.js +0 -50
- package/dist/commands/love.d.ts +0 -21
- package/dist/commands/love.js +0 -73
- package/dist/commands/mom.d.ts +0 -16
- package/dist/commands/mom.js +0 -30
- package/dist/commands/pods.d.ts +0 -22
- package/dist/commands/pods.js +0 -92
- package/dist/commands/produce.d.ts +0 -35
- package/dist/commands/produce.js +0 -221
- 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 -31
- package/dist/commands/tools/ppa.js +0 -244
- 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 -46
- package/dist/commands/update.js +0 -238
- 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/dhcpd-proxy/classes/packet.d.ts +0 -36
- package/dist/dhcpd-proxy/classes/packet.js +0 -124
- package/dist/dhcpd-proxy/index.d.ts +0 -4
- package/dist/dhcpd-proxy/index.js +0 -4
- package/dist/dhcpd-proxy/interfaces/i-pxe.d.ts +0 -45
- package/dist/dhcpd-proxy/interfaces/i-pxe.js +0 -1
- package/dist/dhcpd-proxy/lib/packet/converters.d.ts +0 -11
- package/dist/dhcpd-proxy/lib/packet/converters.js +0 -395
- package/dist/dhcpd-proxy/lib/packet/message-types.d.ts +0 -10
- package/dist/dhcpd-proxy/lib/packet/message-types.js +0 -12
- package/dist/dhcpd-proxy/lib/packet/options.d.ts +0 -8
- package/dist/dhcpd-proxy/lib/packet/options.js +0 -264
- package/dist/dhcpd-proxy/lib/sprintf.d.ts +0 -6
- package/dist/dhcpd-proxy/lib/sprintf.js +0 -130
- package/dist/dhcpd-proxy/lib/utils.d.ts +0 -126
- package/dist/dhcpd-proxy/lib/utils.js +0 -255
- package/dist/dhcpd-proxy/simple-proxy.d.ts +0 -11
- package/dist/dhcpd-proxy/simple-proxy.js +0 -118
- package/dist/index.d.ts +0 -8
- package/dist/index.js +0 -8
- package/dist/interfaces/calamares/i-calamares-bootloader.d.ts +0 -23
- package/dist/interfaces/calamares/i-calamares-bootloader.js +0 -7
- package/dist/interfaces/calamares/i-calamares-branding.d.ts +0 -46
- package/dist/interfaces/calamares/i-calamares-branding.js +0 -1
- package/dist/interfaces/calamares/i-calamares-displaymanager.d.ts +0 -34
- package/dist/interfaces/calamares/i-calamares-displaymanager.js +0 -1
- package/dist/interfaces/calamares/i-calamares-finished.d.ts +0 -14
- package/dist/interfaces/calamares/i-calamares-finished.js +0 -1
- package/dist/interfaces/calamares/i-calamares-packages.d.ts +0 -26
- package/dist/interfaces/calamares/i-calamares-packages.js +0 -1
- package/dist/interfaces/calamares/i-calamares-partitions.d.ts +0 -39
- package/dist/interfaces/calamares/i-calamares-partitions.js +0 -1
- package/dist/interfaces/calamares/i-calamares-settings.d.ts +0 -36
- package/dist/interfaces/calamares/i-calamares-settings.js +0 -1
- 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-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 -37
- package/dist/krill/classes/krill_enums.js +0 -41
- 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 -72
- 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 -89
- package/dist/krill/classes/prepare.js +0 -319
- package/dist/krill/classes/sequence.d/add_user.d.ts +0 -20
- package/dist/krill/classes/sequence.d/add_user.js +0 -77
- package/dist/krill/classes/sequence.d/bootloader.d.ts +0 -14
- package/dist/krill/classes/sequence.d/bootloader.js +0 -117
- package/dist/krill/classes/sequence.d/bootloader_config.d.ts +0 -14
- package/dist/krill/classes/sequence.d/bootloader_config.js +0 -192
- 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 -177
- package/dist/krill/classes/sequence.d/grubcfg.d.ts +0 -17
- package/dist/krill/classes/sequence.d/grubcfg.js +0 -35
- 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 -88
- 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 -59
- 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 -16
- package/dist/krill/classes/sequence.d/partition.d/bios_standard.js +0 -51
- 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 -77
- 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 -33
- 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 -134
- package/dist/krill/classes/sequence.js +0 -400
- 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 -162
- 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 -32
- 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/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 -40
- 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/kill_me_softly.d.ts +0 -11
- package/dist/lib/kill_me_softly.js +0 -61
- package/dist/lib/utils.d.ts +0 -19
- package/dist/lib/utils.js +0 -65
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/produce.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
*/
|
|
8
|
-
// packages
|
|
9
|
-
import fs from 'node:fs';
|
|
10
|
-
import shx from 'shelljs';
|
|
11
|
-
import path from 'path';
|
|
12
|
-
// interfaces
|
|
13
|
-
// libraries
|
|
14
|
-
// classes
|
|
15
|
-
import Utils from './../utils.js';
|
|
16
|
-
// _dirname
|
|
17
|
-
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
18
|
-
/**
|
|
19
|
-
* makeDotDisk
|
|
20
|
-
*/
|
|
21
|
-
export function makeDotDisk(info = '', mksquashfs = '', mkisofs = '') {
|
|
22
|
-
const dotDisk = this.settings.iso_work + '.disk';
|
|
23
|
-
if (fs.existsSync(dotDisk)) {
|
|
24
|
-
shx.rm('-rf', dotDisk);
|
|
25
|
-
}
|
|
26
|
-
shx.mkdir('-p', dotDisk);
|
|
27
|
-
/**
|
|
28
|
-
* write volid .disk/info
|
|
29
|
-
* Required
|
|
30
|
-
*/
|
|
31
|
-
let volidContent = this.settings.isoFilename;
|
|
32
|
-
fs.writeFileSync(path.join(dotDisk, 'info'), volidContent, 'utf-8');
|
|
33
|
-
/**
|
|
34
|
-
* A readme now replace the old .disk/info
|
|
35
|
-
*/
|
|
36
|
-
let readme = ``;
|
|
37
|
-
readme += `# penguins_eggs\n`;
|
|
38
|
-
readme += `\n`;
|
|
39
|
-
readme += `Volinfo: ${this.volid}\n`;
|
|
40
|
-
readme += `Image created at: ${Utils.formatDate(new Date())} using penguins_eggs v. ${Utils.getPackageVersion()})\n`;
|
|
41
|
-
readme += `repo: [penguins-eggs](https://github.com/penguins-eggs)\n`;
|
|
42
|
-
readme += `blog: [penguins-eggs.net](https://penguins-eggs.net)\n`;
|
|
43
|
-
readme += `author: [Piero Proietti](mailto://piero.proietti@gmail.com)\n`;
|
|
44
|
-
fs.writeFileSync(path.join(dotDisk, 'README.md'), readme, 'utf-8');
|
|
45
|
-
/**
|
|
46
|
-
* write mksquashfs as .disk/mksquashfs
|
|
47
|
-
*/
|
|
48
|
-
fs.writeFileSync(path.join(dotDisk, 'mksquashfs'), mksquashfs, 'utf-8');
|
|
49
|
-
/**
|
|
50
|
-
* write mkisofs as .disk/mkisofs
|
|
51
|
-
*/
|
|
52
|
-
fs.writeFileSync(path.join(dotDisk, 'mkisofs'), mkisofs, 'utf-8');
|
|
53
|
-
/**
|
|
54
|
-
* touch uuid as file name on .disk/id
|
|
55
|
-
*
|
|
56
|
-
* This is a DEBIAN standard
|
|
57
|
-
*/
|
|
58
|
-
if (this.uuid && this.uuid.trim() !== '') {
|
|
59
|
-
shx.mkdir(path.join(dotDisk, 'id'));
|
|
60
|
-
shx.touch(path.join(dotDisk, 'id', this.uuid));
|
|
61
|
-
}
|
|
62
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/make-efi.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
*/
|
|
8
|
-
import Ovary from '../ovary.js';
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
* @param this
|
|
12
|
-
* @param theme
|
|
13
|
-
*/
|
|
14
|
-
export declare function makeEfi(this: Ovary, theme?: string): Promise<void>;
|
|
@@ -1,274 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/make-efi.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
*/
|
|
8
|
-
import 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
|
-
*
|
|
20
|
-
* @param this
|
|
21
|
-
* @param theme
|
|
22
|
-
*/
|
|
23
|
-
export async function makeEfi(theme = 'eggs') {
|
|
24
|
-
const bootloaders = Diversions.bootloaders(this.familyId);
|
|
25
|
-
/**
|
|
26
|
-
* except Debian/Devuan/Ubuntu all distros will use: not signed
|
|
27
|
-
* paths here for Ubuntu and Debian are the same, here checked!
|
|
28
|
-
*/
|
|
29
|
-
let signed = false;
|
|
30
|
-
let grubEfi = path.resolve(bootloaders, `grub/x86_64-efi/monolithic/grubx64.efi`);
|
|
31
|
-
let shimEfi = path.resolve(bootloaders, `shim/shimx64.efi`);
|
|
32
|
-
if (this.familyId === "debian") {
|
|
33
|
-
signed = true;
|
|
34
|
-
if (process.arch === 'x64') {
|
|
35
|
-
grubEfi = path.resolve(bootloaders, `grub/x86_64-efi-signed/grubx64.efi.signed`);
|
|
36
|
-
shimEfi = path.resolve(bootloaders, `shim/shimx64.efi.signed`);
|
|
37
|
-
}
|
|
38
|
-
else if (process.arch === 'ia32') {
|
|
39
|
-
grubEfi = path.resolve(bootloaders, `grub/i386-efi-signed/grubia32.efi.signed`);
|
|
40
|
-
shimEfi = path.resolve(bootloaders, `shim/shimia32.efi.signed`);
|
|
41
|
-
}
|
|
42
|
-
else if (process.arch === 'arm64') {
|
|
43
|
-
grubEfi = path.resolve(bootloaders, `grub/arm64-efi-signed/grubaa64.efi.signed`);
|
|
44
|
-
shimEfi = path.resolve(bootloaders, `shim/shimaa64.efi.signed`);
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
if (signed) {
|
|
48
|
-
Utils.warning(`Your live system ${this.distroId}/${process.arch} can boot with Secure Boot enabled`);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
Utils.warning(`You must disable Secure Boot to boot live system ${this.distroId}/${process.arch}`);
|
|
52
|
-
}
|
|
53
|
-
// 2 secondi per leggere...
|
|
54
|
-
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
55
|
-
const efiPath = path.join(this.settings.config.snapshot_mnt, '/efi/');
|
|
56
|
-
const efiWorkDir = path.join(efiPath, '/work/');
|
|
57
|
-
const efiMemdiskDir = path.join(efiPath, '/memdisk/');
|
|
58
|
-
const efiImgMnt = path.join(efiPath, 'mnt');
|
|
59
|
-
const isoDir = this.settings.iso_work;
|
|
60
|
-
// create (ISO)/boot/grub
|
|
61
|
-
await exec(`mkdir ${isoDir}/boot/grub/${Utils.uefiFormat()} -p`, this.echo);
|
|
62
|
-
// create (ISO)/EFI
|
|
63
|
-
await exec(`mkdir ${isoDir}/EFI/boot -p`, this.echo);
|
|
64
|
-
await exec(`cp ${shimEfi} ${isoDir}/EFI/boot/${bootEfiName()}`, this.echo);
|
|
65
|
-
await exec(`cp ${grubEfi} ${isoDir}/EFI/boot/${grubEfiName()}`, this.echo);
|
|
66
|
-
// clean/create all in efiPath
|
|
67
|
-
if (fs.existsSync(efiPath)) {
|
|
68
|
-
await exec(`rm -rf ${efiPath}`);
|
|
69
|
-
}
|
|
70
|
-
await exec(`mkdir ${efiPath}`, this.echo);
|
|
71
|
-
await exec(`mkdir ${efiMemdiskDir}`, this.echo);
|
|
72
|
-
await exec(`mkdir ${efiImgMnt}`, this.echo);
|
|
73
|
-
await exec(`mkdir ${efiWorkDir}`, this.echo);
|
|
74
|
-
/**
|
|
75
|
-
* create efi.img
|
|
76
|
-
*/
|
|
77
|
-
let seeker = '';
|
|
78
|
-
seeker += `search --file --set=root /.disk/id/${this.uuid}\n`;
|
|
79
|
-
seeker += "set prefix=($root)/boot/grub\n";
|
|
80
|
-
seeker += "source $prefix/${grub_cpu}-efi/grub.cfg\n";
|
|
81
|
-
/**
|
|
82
|
-
* creating grub.cfg (1) seeker for usb on (efi.img)/boot/grub/grub.cfg
|
|
83
|
-
*/
|
|
84
|
-
Utils.warning("creating grub.cfg seeker USB on (efi.img)/boot/grub");
|
|
85
|
-
await exec(`mkdir ${path.join(efiMemdiskDir, "/boot/grub -p")}`, this.echo);
|
|
86
|
-
const cfgSeekerUsb = `${efiMemdiskDir}/boot/grub/grub.cfg`;
|
|
87
|
-
let cfgSeekerUsbText = '';
|
|
88
|
-
cfgSeekerUsbText += `# grub.cfg seeker\n`;
|
|
89
|
-
cfgSeekerUsbText += `# created on ${efiMemdiskDir}, path ${cfgSeekerUsb}\n`;
|
|
90
|
-
cfgSeekerUsbText += `\n`;
|
|
91
|
-
cfgSeekerUsbText += seeker;
|
|
92
|
-
Utils.write(cfgSeekerUsb, cfgSeekerUsbText);
|
|
93
|
-
/**
|
|
94
|
-
* create grub.cfg (bridge) on (ISO)/boot/grub/x86_64-efi/grub.cfg
|
|
95
|
-
*/
|
|
96
|
-
Utils.warning(`creating grub.cfg bridge to main. (ISO)/boot/grub/${Utils.uefiFormat()}`);
|
|
97
|
-
let cfgBridge = `${isoDir}/boot/grub/${Utils.uefiFormat()}/grub.cfg`;
|
|
98
|
-
let cfgBridgeText = `# grub.cfg bridge\n`;
|
|
99
|
-
cfgBridgeText += `# created on ${cfgBridge}\n`;
|
|
100
|
-
cfgBridgeText += `\n`;
|
|
101
|
-
cfgBridgeText += `source /boot/grub/grub.cfg\n`;
|
|
102
|
-
fs.writeFileSync(cfgBridge, cfgBridgeText);
|
|
103
|
-
/**
|
|
104
|
-
* grub bait: si applica a tutte le distro:
|
|
105
|
-
* /EFI/debian per tutti, tranne ubuntu
|
|
106
|
-
*/
|
|
107
|
-
let pathBait = path.join(isoDir, '/EFI/debian');
|
|
108
|
-
if (this.distroLike === 'Ubuntu') {
|
|
109
|
-
pathBait = path.join(isoDir, '/EFI/ubuntu');
|
|
110
|
-
}
|
|
111
|
-
await exec(`mkdir ${pathBait} -p`, this.echo);
|
|
112
|
-
Utils.warning(`creating grub.cfg seeker ISO/DVD on (ISO)/EFI/${path.basename(pathBait)}`);
|
|
113
|
-
let cfgBait = path.join(pathBait, '/grub.cfg');
|
|
114
|
-
let cfgBaitText = '';
|
|
115
|
-
cfgBaitText += `\n`;
|
|
116
|
-
cfgBaitText += seeker;
|
|
117
|
-
Utils.write(cfgBait, cfgBaitText);
|
|
118
|
-
/**
|
|
119
|
-
* README.md, per tutti tranne distrolike Debian ed Ubuntu
|
|
120
|
-
*/
|
|
121
|
-
let baitReadme = path.join(pathBait, '/README.md');
|
|
122
|
-
let baitReadmeText = ``;
|
|
123
|
-
if (this.distroLike !== 'Debian' && this.distroLike !== 'Ubuntu') {
|
|
124
|
-
baitReadmeText += `# penguins-eggs\n`;
|
|
125
|
-
baitReadmeText += '\n';
|
|
126
|
-
baitReadmeText += `This is just an hack, to let ${this.distroId} boot using Debian trixie bootloaders\n`;
|
|
127
|
-
fs.writeFileSync(baitReadme, baitReadmeText);
|
|
128
|
-
}
|
|
129
|
-
/**
|
|
130
|
-
* creating structure efiWordDir
|
|
131
|
-
*/
|
|
132
|
-
await exec(`mkdir -p ${efiWorkDir}/boot/grub`, this.echo); // qua va grub.cfg 2
|
|
133
|
-
await exec(`mkdir -p ${efiWorkDir}/EFI/boot`);
|
|
134
|
-
/**
|
|
135
|
-
* create tarred efiMemdiskDir
|
|
136
|
-
*/
|
|
137
|
-
const currentDir = process.cwd();
|
|
138
|
-
process.chdir(efiMemdiskDir);
|
|
139
|
-
await exec('tar -cvf memdisk boot', this.echo);
|
|
140
|
-
process.chdir(currentDir);
|
|
141
|
-
/**
|
|
142
|
-
* Create boot image "boot/grub/efi.img"
|
|
143
|
-
*/
|
|
144
|
-
const efiImg = path.join(efiWorkDir, `boot/grub/efi.img`);
|
|
145
|
-
await exec(`dd if=/dev/zero of=${efiImg} bs=1M count=16`, this.echo);
|
|
146
|
-
await exec(`/sbin/mkdosfs -F 12 ${efiImg}`, this.echo);
|
|
147
|
-
await new Promise(resolve => setTimeout(resolve, 500));
|
|
148
|
-
// mount efi.img on mountpoint mnt-img
|
|
149
|
-
await exec(`mount --make-shared -o loop ${efiImg} ${efiImgMnt}`, this.echo);
|
|
150
|
-
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
151
|
-
// create structure inside (efi.img)
|
|
152
|
-
await exec(`mkdir -p ${efiImgMnt}/boot`, this.echo);
|
|
153
|
-
await exec(`mkdir -p ${efiImgMnt}/EFI/boot`, this.echo);
|
|
154
|
-
/**
|
|
155
|
-
* copy grubCfg1 (grub.cfg) to (efi.img)/boot/grub
|
|
156
|
-
*/
|
|
157
|
-
await exec(`cp ${cfgSeekerUsb} ${efiImgMnt}/boot/grub.cfg`, this.echo);
|
|
158
|
-
await exec(`cp ${shimEfi} ${efiImgMnt}/EFI/boot/${bootEfiName()}`, this.echo);
|
|
159
|
-
await exec(`cp ${grubEfi} ${efiImgMnt}/EFI/boot/${grubEfiName()}`, this.echo);
|
|
160
|
-
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
161
|
-
if (!fs.existsSync(`${efiImgMnt}/boot/grub.cfg`)) {
|
|
162
|
-
console.log(`error copyng ${cfgSeekerUsb} seeker for USB on (efi.img)/boot/grub.cfg`);
|
|
163
|
-
process.exit(1);
|
|
164
|
-
}
|
|
165
|
-
await new Promise(resolve => setTimeout(resolve, 500));
|
|
166
|
-
await exec(`umount ${efiImgMnt}`, this.echo);
|
|
167
|
-
await new Promise(resolve => setTimeout(resolve, 500));
|
|
168
|
-
// Copy isoImg in ${${isoDir}/boot/grub
|
|
169
|
-
Utils.warning("copyng (efi.img) on (ISO)/boot/grub");
|
|
170
|
-
await exec(`cp ${efiImg} ${isoDir}/boot/grub`, this.echo);
|
|
171
|
-
/**
|
|
172
|
-
* creating grub.cfg (4) on (ISO)/boot/grub
|
|
173
|
-
*/
|
|
174
|
-
Utils.warning("creating grub.cfg main on (ISO)/boot/grub");
|
|
175
|
-
// copy splash to efiWorkDir
|
|
176
|
-
const splashDest = `${efiWorkDir}/boot/grub/splash.png`;
|
|
177
|
-
let splashSrc = path.resolve(__dirname, `../../../addons/${theme}/theme/livecd/splash.png`);
|
|
178
|
-
if (this.theme.includes('/')) {
|
|
179
|
-
splashSrc = `${theme}/theme/livecd/splash.png`;
|
|
180
|
-
}
|
|
181
|
-
if (!fs.existsSync(splashSrc)) {
|
|
182
|
-
Utils.warning(`warning: ${splashSrc} does not exists`);
|
|
183
|
-
process.exit(1);
|
|
184
|
-
}
|
|
185
|
-
await exec(`cp ${splashSrc} ${splashDest}`, this.echo);
|
|
186
|
-
// select themeSrc
|
|
187
|
-
let themeSrc = path.resolve(__dirname, `../../../addons/${theme}/theme/livecd/grub.theme.cfg`);
|
|
188
|
-
if (this.theme.includes('/')) {
|
|
189
|
-
themeSrc = `${theme}/theme/livecd/grub.theme.cfg`;
|
|
190
|
-
}
|
|
191
|
-
// copy theme
|
|
192
|
-
const themeDest = `${isoDir}/boot/grub/theme.cfg`;
|
|
193
|
-
if (!fs.existsSync(themeSrc)) {
|
|
194
|
-
Utils.error(`error: ${themeSrc} does not exist`);
|
|
195
|
-
process.exit(1);
|
|
196
|
-
}
|
|
197
|
-
fs.copyFileSync(themeSrc, themeDest);
|
|
198
|
-
// selecting available fonts
|
|
199
|
-
if (fs.existsSync('/usr/share/grub/font.pf2')) {
|
|
200
|
-
await exec(`cp /usr/share/grub/font.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
|
|
201
|
-
}
|
|
202
|
-
else if (fs.existsSync('/usr/share/grub/unicode.pf2')) {
|
|
203
|
-
await exec(`cp /usr/share/grub/unicode.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
|
|
204
|
-
}
|
|
205
|
-
else if (fs.existsSync('/usr/share/grub/ascii.pf2')) {
|
|
206
|
-
await exec(`cp /usr/share/grub/ascii.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
|
|
207
|
-
}
|
|
208
|
-
// Copy workdir files to ISO/boot
|
|
209
|
-
await exec(`rsync -avx ${efiWorkDir}/boot ${isoDir}/`, this.echo);
|
|
210
|
-
/**
|
|
211
|
-
* prepare main grub.cfg from grub.main.cfg
|
|
212
|
-
*/
|
|
213
|
-
let grubTemplate = `${theme}/theme/livecd/grub.main.cfg`;
|
|
214
|
-
if (!fs.existsSync(grubTemplate)) {
|
|
215
|
-
grubTemplate = path.resolve(__dirname, '../../../addons/eggs/theme/livecd/grub.main.cfg');
|
|
216
|
-
}
|
|
217
|
-
if (!fs.existsSync(grubTemplate)) {
|
|
218
|
-
Utils.error(`error: ${grubTemplate} does not exist`);
|
|
219
|
-
process.exit(1);
|
|
220
|
-
}
|
|
221
|
-
const kernel_parameters = Diversions.kernelParameters(this.familyId, this.volid); // this.kernelParameters()
|
|
222
|
-
const cfgMain = path.join(isoDir, '/boot/grub/grub.cfg');
|
|
223
|
-
const template = fs.readFileSync(grubTemplate, 'utf8');
|
|
224
|
-
const view = {
|
|
225
|
-
fullname: this.settings.remix.fullname.toUpperCase(),
|
|
226
|
-
initrdImg: `/live/${path.basename(this.initrd)}`,
|
|
227
|
-
kernel: this.kernel,
|
|
228
|
-
kernel_parameters,
|
|
229
|
-
vmlinuz: `/live/${path.basename(this.vmlinuz)}`
|
|
230
|
-
};
|
|
231
|
-
let cfgMainText = '';
|
|
232
|
-
cfgMainText += `# grub.cfg (4) main\n`;
|
|
233
|
-
cfgMainText += `# created on ${cfgMain}`;
|
|
234
|
-
cfgMainText += `\n`;
|
|
235
|
-
cfgMainText += mustache.render(template, view);
|
|
236
|
-
fs.writeFileSync(cfgMain, cfgMainText);
|
|
237
|
-
}
|
|
238
|
-
/**
|
|
239
|
-
* FUNCTIONS
|
|
240
|
-
*/
|
|
241
|
-
/**
|
|
242
|
-
*
|
|
243
|
-
* @returns
|
|
244
|
-
*/
|
|
245
|
-
function bootEfiName() {
|
|
246
|
-
let ben = '';
|
|
247
|
-
if (process.arch === 'x64') {
|
|
248
|
-
ben = 'bootx64.efi';
|
|
249
|
-
}
|
|
250
|
-
else if (process.arch === 'ia32') {
|
|
251
|
-
ben = 'bootia32.efi';
|
|
252
|
-
}
|
|
253
|
-
else if (process.arch === 'arm64') {
|
|
254
|
-
ben = 'bootaa64.efi';
|
|
255
|
-
}
|
|
256
|
-
return ben;
|
|
257
|
-
}
|
|
258
|
-
/**
|
|
259
|
-
*
|
|
260
|
-
* @returns
|
|
261
|
-
*/
|
|
262
|
-
function grubEfiName() {
|
|
263
|
-
let gen = '';
|
|
264
|
-
if (process.arch === 'x64') {
|
|
265
|
-
gen = 'grubx64.efi';
|
|
266
|
-
}
|
|
267
|
-
else if (process.arch === 'ia32') {
|
|
268
|
-
gen = 'grub ia32.efi';
|
|
269
|
-
}
|
|
270
|
-
else if (process.arch === 'arm64') {
|
|
271
|
-
gen = 'grubaa64.efi';
|
|
272
|
-
}
|
|
273
|
-
return gen;
|
|
274
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/make-iso.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
*/
|
|
8
|
-
import 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.25.7.x / 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 ALLWAYS
|
|
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.25.7.x / 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 addExclusion(this: Ovary, exclusion: string): void;
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/make-squashfs.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
*/
|
|
8
|
-
// packages
|
|
9
|
-
import fs from 'fs';
|
|
10
|
-
import path from 'node:path';
|
|
11
|
-
// classes
|
|
12
|
-
import { exec } from '../../lib/utils.js';
|
|
13
|
-
import Utils from '../utils.js';
|
|
14
|
-
// _dirname
|
|
15
|
-
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
16
|
-
/**
|
|
17
|
-
* squashFs: crea in live filesystem.squashfs
|
|
18
|
-
*/
|
|
19
|
-
export async function makeSquashfs(scriptOnly = false, unsecure = false) {
|
|
20
|
-
if (this.verbose) {
|
|
21
|
-
console.log('Ovary: makeSquashfs');
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* exclude all the accurence of cryptdisks in rc0.d, etc
|
|
25
|
-
*/
|
|
26
|
-
const fexcludes = [
|
|
27
|
-
'/boot/efi/EFI',
|
|
28
|
-
'/boot/loader/entries/',
|
|
29
|
-
'/etc/fstab',
|
|
30
|
-
'/var/lib/containers/',
|
|
31
|
-
'/var/lib/docker/',
|
|
32
|
-
'/etc/mtab',
|
|
33
|
-
'/etc/udev/rules.d/70-persistent-cd.rules',
|
|
34
|
-
'/etc/udev/rules.d/70-persistent-net.rules',
|
|
35
|
-
];
|
|
36
|
-
for (const i in fexcludes) {
|
|
37
|
-
this.addExclusion(fexcludes[i]);
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Non sò che fa, ma sicuro non serve per archlinux
|
|
41
|
-
*/
|
|
42
|
-
if (this.familyId === 'debian') {
|
|
43
|
-
const rcd = ['rc0.d', 'rc1.d', 'rc2.d', 'rc3.d', 'rc4.d', 'rc5.d', 'rc6.d', 'rcS.d'];
|
|
44
|
-
let files;
|
|
45
|
-
// escludo per ci
|
|
46
|
-
for (const i in rcd) {
|
|
47
|
-
if (fs.existsSync(`${this.settings.work_dir.merged}/etc/${rcd[i]}`)) {
|
|
48
|
-
files = fs.readdirSync(`${this.settings.work_dir.merged}/etc/${rcd[i]}`);
|
|
49
|
-
for (const n in files) {
|
|
50
|
-
if (files[n].includes('cryptdisks')) {
|
|
51
|
-
this.addExclusion(`/etc/${rcd[i]}${files[n]}`);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* secure
|
|
59
|
-
*/
|
|
60
|
-
if (!unsecure) {
|
|
61
|
-
this.addExclusion(`root/*`);
|
|
62
|
-
this.addExclusion(`root/.*`);
|
|
63
|
-
}
|
|
64
|
-
this.addExclusion(this.settings.config.snapshot_dir /* .absolutePath() */);
|
|
65
|
-
if (fs.existsSync(`${this.settings.iso_work}/live/filesystem.squashfs`)) {
|
|
66
|
-
fs.unlinkSync(`${this.settings.iso_work}/live/filesystem.squashfs`);
|
|
67
|
-
}
|
|
68
|
-
const compression = `-comp ${this.settings.config.compression}`;
|
|
69
|
-
/**
|
|
70
|
-
* limit: patch per Raspberry
|
|
71
|
-
*/
|
|
72
|
-
const limit = '';
|
|
73
|
-
if (Utils.uefiArch() === 'arm64') {
|
|
74
|
-
// limit = ' -processors 2 -mem 1024M'
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* mksquashfs
|
|
78
|
-
*
|
|
79
|
-
* SYNTAX: mksquashfs source1 source2 ...
|
|
80
|
-
* FILESYSTEM [OPTIONS]
|
|
81
|
-
* [-ef exclude.list]
|
|
82
|
-
* [-e list of exclude dirs/files]
|
|
83
|
-
*/
|
|
84
|
-
let cmd = `mksquashfs ${this.settings.work_dir.merged} ${this.settings.iso_work}live/filesystem.squashfs ${compression} ${limit} -no-xattrs -wildcards -ef ${this.settings.config.snapshot_excludes} ${this.settings.session_excludes}`;
|
|
85
|
-
cmd = cmd.replaceAll(/\s\s+/g, ' ');
|
|
86
|
-
Utils.writeX(`${this.settings.work_dir.ovarium}mksquashfs`, cmd);
|
|
87
|
-
if (!scriptOnly) {
|
|
88
|
-
Utils.warning('creating filesystem.squashfs on (ISO)/live');
|
|
89
|
-
// Utils.warning(`compression: ` + compression)
|
|
90
|
-
const test = (await exec(cmd, Utils.setEcho(true))).code;
|
|
91
|
-
if (test !== 0) {
|
|
92
|
-
process.exit();
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return cmd;
|
|
96
|
-
}
|
|
97
|
-
/**
|
|
98
|
-
* Add or remove exclusion
|
|
99
|
-
* @param add {boolean} true = add, false remove
|
|
100
|
-
* @param exclusion {string} path to add/remove
|
|
101
|
-
*/
|
|
102
|
-
export function addExclusion(exclusion) {
|
|
103
|
-
if (this.verbose) {
|
|
104
|
-
console.log(`add exclusion: ${exclusion}`);
|
|
105
|
-
}
|
|
106
|
-
if (exclusion.startsWith('/')) {
|
|
107
|
-
exclusion = exclusion.slice(1); // remove / initial Non compatible with rsync
|
|
108
|
-
}
|
|
109
|
-
this.settings.session_excludes += this.settings.session_excludes === '' ? `-e '${exclusion}' ` : ` '${exclusion}' `;
|
|
110
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/merge.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
*/
|
|
8
|
-
import Ovary from '../ovary.js';
|
|
9
|
-
/**
|
|
10
|
-
* Ritorna true se c'è bisogno del mount --bind
|
|
11
|
-
*
|
|
12
|
-
* Ci sono quattro tipologie:
|
|
13
|
-
*
|
|
14
|
-
* - copied
|
|
15
|
-
* - mergedAndOverlay
|
|
16
|
-
* - merged
|
|
17
|
-
* - just create
|
|
18
|
-
*/
|
|
19
|
-
export declare function copied(this: Ovary, dir: string): boolean;
|
|
20
|
-
/**
|
|
21
|
-
*
|
|
22
|
-
*/
|
|
23
|
-
export declare function mergedAndOverlay(this: Ovary, dir: string): boolean;
|
|
24
|
-
/**
|
|
25
|
-
* merged
|
|
26
|
-
*/
|
|
27
|
-
export declare function merged(this: Ovary, dir: string): boolean;
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/merge.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
*/
|
|
8
|
-
// 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 quattro tipologie:
|
|
16
|
-
*
|
|
17
|
-
* - copied
|
|
18
|
-
* - mergedAndOverlay
|
|
19
|
-
* - merged
|
|
20
|
-
* - just create
|
|
21
|
-
*/
|
|
22
|
-
export function copied(dir) {
|
|
23
|
-
let copied = false;
|
|
24
|
-
let copiedDirs = [
|
|
25
|
-
'boot',
|
|
26
|
-
'etc'
|
|
27
|
-
];
|
|
28
|
-
for (const copiedDir of copiedDirs) {
|
|
29
|
-
if (dir === copiedDir) {
|
|
30
|
-
copied = true;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
return copied;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
*
|
|
37
|
-
*/
|
|
38
|
-
export function mergedAndOverlay(dir) {
|
|
39
|
-
// per Alpine ho agginto bin
|
|
40
|
-
const moDirs = ['bin', 'usr', 'var'];
|
|
41
|
-
let mergedOverlay = false;
|
|
42
|
-
for (const moDir of moDirs) {
|
|
43
|
-
if (moDir === dir) {
|
|
44
|
-
mergedOverlay = true;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
return mergedOverlay;
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* merged
|
|
51
|
-
*/
|
|
52
|
-
export function merged(dir) {
|
|
53
|
-
let merged = true;
|
|
54
|
-
if (dir === 'home') {
|
|
55
|
-
merged = this.clone;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
const onlyFolders = [
|
|
59
|
-
'cdrom',
|
|
60
|
-
'dev',
|
|
61
|
-
'media',
|
|
62
|
-
'mnt',
|
|
63
|
-
'proc',
|
|
64
|
-
'run',
|
|
65
|
-
'swapfile',
|
|
66
|
-
'sys',
|
|
67
|
-
'tmp'
|
|
68
|
-
];
|
|
69
|
-
// deepiin
|
|
70
|
-
onlyFolders.push('data', 'recovery');
|
|
71
|
-
for (const onlyFolder of onlyFolders) {
|
|
72
|
-
if (dir === onlyFolder) {
|
|
73
|
-
merged = false;
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
return merged;
|
|
78
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/ovary.d/produce.ts
|
|
3
|
-
* penguins-eggs v.25.7.x / ecmascript 2020
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* email: piero.proietti@gmail.com
|
|
6
|
-
* license: MIT
|
|
7
|
-
*/
|
|
8
|
-
import { 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, kernel: string | undefined, 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>;
|