penguins-eggs 9.2.5 → 9.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oclif.manifest.json +1 -0
- package/README.md +34 -30
- package/conf/distros/jessie/krill/settings.yml +48 -9
- package/conf/distros/kinetic/README.md +41 -0
- package/conf/tools.yaml +1 -1
- package/{lib → dist}/classes/bleach.js +0 -0
- package/{lib → dist}/classes/compressors.js +0 -0
- package/{lib → dist}/classes/daddy.js +0 -0
- package/{lib → dist}/classes/distro.js +16 -30
- package/{lib → dist}/classes/family/archlinux.js +0 -0
- package/{lib → dist}/classes/family/debian.js +0 -0
- package/{lib → dist}/classes/family/fedora.js +0 -0
- package/{lib → dist}/classes/family/suse.js +0 -0
- package/{lib → dist}/classes/incubation/branding.js +0 -0
- package/{lib → dist}/classes/incubation/distros/bionic.js +0 -0
- package/{lib → dist}/classes/incubation/distros/buster.js +0 -0
- package/{lib → dist}/classes/incubation/distros/focal.js +0 -0
- package/{lib → dist}/classes/incubation/distros/jessie.js +1 -1
- package/{lib → dist}/classes/incubation/distros/rolling.js +0 -0
- package/{lib → dist}/classes/incubation/fisherman-helper/displaymanager.js +0 -0
- package/{lib → dist}/classes/incubation/fisherman-helper/packages.js +0 -0
- package/{lib → dist}/classes/incubation/fisherman.js +1 -1
- package/{lib → dist}/classes/incubation/incubator.js +9 -19
- package/{lib → dist}/classes/incubation/installer.js +0 -0
- package/{lib → dist}/classes/initrd.js +0 -0
- package/{lib → dist}/classes/keyboards.js +0 -0
- package/{lib → dist}/classes/locales.js +0 -0
- package/{lib → dist}/classes/n8.js +0 -0
- package/dist/classes/network.js +99 -0
- package/{lib → dist}/classes/ovary.js +0 -0
- package/{lib → dist}/classes/pacman.js +16 -1
- package/{lib → dist}/classes/pve-live.js +0 -0
- package/dist/classes/pxe.js +337 -0
- package/{lib → dist}/classes/settings.js +0 -0
- package/{lib → dist}/classes/sources_list.js +0 -0
- package/{lib → dist}/classes/systemctl.js +0 -0
- package/{lib → dist}/classes/tailor.js +0 -0
- package/{lib → dist}/classes/tools.js +0 -0
- package/{lib → dist}/classes/users.js +0 -0
- package/{lib → dist}/classes/utils.js +82 -17
- package/{lib → dist}/classes/xdg.js +24 -26
- package/{lib → dist}/classes/yolk.js +0 -0
- package/{lib → dist}/commands/adapt.js +0 -0
- package/{lib → dist}/commands/analyze.js +0 -0
- package/{lib → dist}/commands/calamares.js +0 -0
- package/{lib → dist}/commands/config.js +0 -0
- package/dist/commands/cuckoo.js +63 -0
- package/{lib → dist}/commands/dad.js +0 -0
- package/{lib → dist}/commands/export/deb.js +0 -0
- package/{lib → dist}/commands/export/docs.js +0 -0
- package/{lib → dist}/commands/export/iso.js +0 -0
- package/{lib → dist}/commands/install.js +27 -4
- package/{lib → dist}/commands/kill.js +0 -0
- package/{lib → dist}/commands/mom.js +0 -0
- package/{lib → dist}/commands/produce.js +0 -0
- package/{lib → dist}/commands/status.js +0 -0
- package/{lib → dist}/commands/syncfrom.js +0 -0
- package/{lib → dist}/commands/syncto.js +0 -0
- package/{lib → dist}/commands/tools/clean.js +0 -0
- package/{lib → dist}/commands/tools/skel.js +0 -0
- package/{lib → dist}/commands/tools/stat.js +0 -0
- package/{lib → dist}/commands/tools/yolk.js +0 -0
- package/{lib → dist}/commands/update.js +0 -0
- package/{lib → dist}/commands/wardrobe/get.js +0 -0
- package/{lib → dist}/commands/wardrobe/ironing.js +0 -0
- package/{lib → dist}/commands/wardrobe/list.js +0 -0
- package/{lib → dist}/commands/wardrobe/show.js +0 -0
- package/{lib → dist}/commands/wardrobe/wear.js +0 -0
- package/{lib → dist}/components/elements/information.js +0 -0
- package/{lib → dist}/components/elements/steps.js +0 -0
- package/{lib → dist}/components/elements/title.js +0 -0
- package/{lib → dist}/components/finished.js +0 -0
- package/{lib → dist}/components/install.js +0 -0
- package/{lib → dist}/components/keyboard.js +0 -0
- package/{lib → dist}/components/location.js +0 -0
- package/{lib → dist}/components/network.js +0 -0
- package/{lib → dist}/components/partitions.js +0 -0
- package/{lib → dist}/components/summary.js +2 -2
- package/{lib → dist}/components/users.js +0 -0
- package/{lib → dist}/components/welcome.js +0 -0
- package/dist/dhcpd/dhcpd.js +222 -0
- package/dist/dhcpd/index.js +7 -0
- package/dist/dhcpd/packet/converters.js +377 -0
- package/dist/dhcpd/packet/options.js +2 -0
- package/dist/dhcpd/packet/types.js +2 -0
- package/dist/dhcpd/packet.js +251 -0
- package/dist/dhcpd/proxy.js +152 -0
- package/dist/dhcpd/server.js +152 -0
- package/dist/dhcpd/sprintf.js +170 -0
- package/dist/dhcpd/utils.js +190 -0
- package/{lib → dist}/index.js +0 -0
- package/{lib → dist}/interfaces/i-addons.js +0 -0
- package/{lib → dist}/interfaces/i-analyze.js +0 -0
- package/{lib → dist}/interfaces/i-app.js +0 -0
- package/{lib → dist}/interfaces/i-branding.js +0 -0
- package/{lib → dist}/interfaces/i-config-tools.js +0 -0
- package/{lib → dist}/interfaces/i-devices.js +0 -0
- package/{lib → dist}/interfaces/i-distro.js +0 -0
- package/{lib → dist}/interfaces/i-drive-list.js +0 -0
- package/{lib → dist}/interfaces/i-eggs-config.js +0 -0
- package/{lib → dist}/interfaces/i-exec.js +0 -0
- package/{lib → dist}/interfaces/i-initrd.js +0 -0
- package/{lib → dist}/interfaces/i-install.js +0 -0
- package/{lib → dist}/interfaces/i-installer.js +0 -0
- package/{lib → dist}/interfaces/i-krill-config.js +0 -0
- package/{lib → dist}/interfaces/i-krill.js +0 -0
- package/{lib → dist}/interfaces/i-materia.js +0 -0
- package/{lib → dist}/interfaces/i-net.js +0 -0
- package/{lib → dist}/interfaces/i-packages.js +0 -0
- package/{lib → dist}/interfaces/i-partitions.js +0 -0
- package/{lib/interfaces/i-remix.js → dist/interfaces/i-pxe-options.js} +0 -0
- package/{lib/interfaces/i-settings.js → dist/interfaces/i-remix.js} +0 -0
- package/{lib/interfaces/i-user.js → dist/interfaces/i-settings.js} +0 -0
- package/{lib/interfaces/i-workdir.js → dist/interfaces/i-user.js} +0 -0
- package/{lib/interfaces/i-xkb-model.js → dist/interfaces/i-workdir.js} +0 -0
- package/{lib/interfaces/index.js → dist/interfaces/i-xkb-model.js} +0 -0
- package/dist/interfaces/index.js +2 -0
- package/{lib → dist}/krill/krill-prepare.js +25 -6
- package/{lib → dist}/krill/krill-sequence.js +69 -77
- package/{lib → dist}/krill/modules/add-user.js +0 -0
- package/{lib → dist}/krill/modules/bootloader-config-ubuntu.js +0 -0
- package/{lib → dist}/krill/modules/bootloader-config.js +1 -1
- package/{lib → dist}/krill/modules/bootloader.js +0 -5
- package/{lib → dist}/krill/modules/change-password.js +0 -0
- package/{lib → dist}/krill/modules/del-live-user.js +0 -0
- package/{lib → dist}/krill/modules/fstab.js +0 -0
- package/{lib → dist}/krill/modules/grubcfg.js +0 -0
- package/dist/krill/modules/hostname.js +48 -0
- package/{lib → dist}/krill/modules/initramfs-cfg.js +0 -0
- package/{lib → dist}/krill/modules/initramfs.js +0 -0
- package/{lib → dist}/krill/modules/locale-cfg.js +0 -0
- package/{lib → dist}/krill/modules/locale.js +1 -1
- package/{lib/krill/modules/set-keyboard.js → dist/krill/modules/m-keyboard.js} +12 -4
- package/{lib/krill/modules/set-timezone.js → dist/krill/modules/m-timezone.js} +2 -2
- package/{lib → dist}/krill/modules/machine-id.js +0 -0
- package/{lib → dist}/krill/modules/mkfs.js +0 -0
- package/{lib → dist}/krill/modules/mount-fs.js +0 -0
- package/{lib → dist}/krill/modules/mount-vfs.js +0 -0
- package/{lib → dist}/krill/modules/network-cfg.js +0 -0
- package/{lib → dist}/krill/modules/packages.js +0 -0
- package/{lib → dist}/krill/modules/partition.js +25 -14
- package/{lib → dist}/krill/modules/remove-installer-link.js +0 -0
- package/{lib → dist}/krill/modules/umount.js +0 -0
- package/{lib → dist}/krill/modules/unpackfs.js +0 -0
- package/{lib → dist}/lib/cli-autologin.js +1 -1
- package/{lib → dist}/lib/dependencies.js +0 -0
- package/{lib → dist}/lib/get_address.js +0 -0
- package/{lib → dist}/lib/get_dns.js +0 -0
- package/{lib → dist}/lib/get_domain.js +0 -0
- package/{lib → dist}/lib/get_gateway.js +0 -0
- package/{lib → dist}/lib/get_hostname.js +0 -0
- package/{lib → dist}/lib/get_netmask.js +0 -0
- package/{lib → dist}/lib/get_password.js +0 -0
- package/{lib → dist}/lib/get_root_password.js +0 -0
- package/{lib → dist}/lib/get_userfullname.js +0 -0
- package/{lib → dist}/lib/get_username.js +0 -0
- package/{lib → dist}/lib/select_address_type.js +0 -0
- package/{lib → dist}/lib/select_filesystem_type.js +0 -0
- package/{lib → dist}/lib/select_installation_device.js +0 -0
- package/{lib → dist}/lib/select_installation_mode.js +0 -0
- package/{lib → dist}/lib/select_interface.js +0 -0
- package/{lib → dist}/lib/select_keyboard_layout.js +0 -0
- package/{lib → dist}/lib/select_keyboard_model.js +0 -0
- package/{lib → dist}/lib/select_keyboard_option.js +0 -0
- package/{lib → dist}/lib/select_keyboard_variant.js +0 -0
- package/{lib → dist}/lib/select_languages.js +0 -0
- package/{lib → dist}/lib/select_regions.js +0 -0
- package/{lib → dist}/lib/select_user_swap_choice.js +0 -0
- package/{lib → dist}/lib/select_zones.js +0 -0
- package/{lib → dist}/lib/utils.js +1 -2
- package/ipxe/ipxe.efi +0 -0
- package/package.json +20 -17
- package/scripts/_eggs +11 -7
- package/scripts/eggs.bash +2 -2
- package/lib/classes/bleach.d.ts +0 -40
- package/lib/classes/compressors.d.ts +0 -24
- package/lib/classes/daddy.d.ts +0 -11
- package/lib/classes/distro.d.ts +0 -31
- package/lib/classes/family/archlinux.d.ts +0 -69
- package/lib/classes/family/debian.d.ts +0 -68
- package/lib/classes/family/fedora.d.ts +0 -63
- package/lib/classes/family/suse.d.ts +0 -63
- package/lib/classes/incubation/branding.d.ts +0 -8
- package/lib/classes/incubation/distros/bionic.d.ts +0 -29
- package/lib/classes/incubation/distros/buster.d.ts +0 -31
- package/lib/classes/incubation/distros/focal.d.ts +0 -29
- package/lib/classes/incubation/distros/jessie.d.ts +0 -32
- package/lib/classes/incubation/distros/rolling.d.ts +0 -31
- package/lib/classes/incubation/fisherman-helper/displaymanager.d.ts +0 -7
- package/lib/classes/incubation/fisherman-helper/packages.d.ts +0 -19
- package/lib/classes/incubation/fisherman.d.ts +0 -77
- package/lib/classes/incubation/incubator.d.ts +0 -35
- package/lib/classes/incubation/installer.d.ts +0 -15
- package/lib/classes/initrd.d.ts +0 -42
- package/lib/classes/keyboards.d.ts +0 -43
- package/lib/classes/locales.d.ts +0 -14
- package/lib/classes/n8.d.ts +0 -16
- package/lib/classes/ovary.d.ts +0 -179
- package/lib/classes/pacman.d.ts +0 -164
- package/lib/classes/pve-live.d.ts +0 -42
- package/lib/classes/pxe.d.ts +0 -64
- package/lib/classes/pxe.js +0 -352
- package/lib/classes/settings.d.ts +0 -55
- package/lib/classes/sources_list.d.ts +0 -27
- package/lib/classes/systemctl.d.ts +0 -46
- package/lib/classes/tailor.d.ts +0 -43
- package/lib/classes/tools.d.ts +0 -29
- package/lib/classes/users.d.ts +0 -21
- package/lib/classes/utils.d.ts +0 -299
- package/lib/classes/xdg.d.ts +0 -44
- package/lib/classes/yolk.d.ts +0 -26
- package/lib/commands/adapt.d.ts +0 -9
- package/lib/commands/analyze.d.ts +0 -25
- package/lib/commands/calamares.d.ts +0 -26
- package/lib/commands/config.d.ts +0 -34
- package/lib/commands/cuckoo.d.ts +0 -24
- package/lib/commands/cuckoo.js +0 -70
- package/lib/commands/dad.d.ts +0 -17
- package/lib/commands/export/deb.d.ts +0 -14
- package/lib/commands/export/docs.d.ts +0 -8
- package/lib/commands/export/iso.d.ts +0 -13
- package/lib/commands/install.d.ts +0 -25
- package/lib/commands/kill.d.ts +0 -20
- package/lib/commands/mom.d.ts +0 -14
- package/lib/commands/produce.d.ts +0 -28
- package/lib/commands/status.d.ts +0 -18
- package/lib/commands/syncfrom.d.ts +0 -42
- package/lib/commands/syncto.d.ts +0 -67
- package/lib/commands/tools/clean.d.ts +0 -15
- package/lib/commands/tools/skel.d.ts +0 -17
- package/lib/commands/tools/stat.d.ts +0 -14
- package/lib/commands/tools/yolk.d.ts +0 -23
- package/lib/commands/update.d.ts +0 -46
- package/lib/commands/wardrobe/get.d.ts +0 -17
- package/lib/commands/wardrobe/ironing.d.ts +0 -18
- package/lib/commands/wardrobe/list.d.ts +0 -17
- package/lib/commands/wardrobe/show.d.ts +0 -19
- package/lib/commands/wardrobe/wear.d.ts +0 -21
- package/lib/components/elements/information.d.ts +0 -4
- package/lib/components/elements/steps.d.ts +0 -6
- package/lib/components/elements/title.d.ts +0 -4
- package/lib/components/finished.d.ts +0 -8
- package/lib/components/install.d.ts +0 -8
- package/lib/components/keyboard.d.ts +0 -12
- package/lib/components/location.d.ts +0 -12
- package/lib/components/network.d.ts +0 -12
- package/lib/components/partitions.d.ts +0 -9
- package/lib/components/summary.d.ts +0 -16
- package/lib/components/users.d.ts +0 -20
- package/lib/components/welcome.d.ts +0 -6
- package/lib/index.d.ts +0 -1
- package/lib/interfaces/i-addons.d.ts +0 -8
- package/lib/interfaces/i-analyze.d.ts +0 -13
- package/lib/interfaces/i-app.d.ts +0 -7
- package/lib/interfaces/i-branding.d.ts +0 -29
- package/lib/interfaces/i-config-tools.d.ts +0 -11
- package/lib/interfaces/i-devices.d.ts +0 -13
- package/lib/interfaces/i-distro.d.ts +0 -19
- package/lib/interfaces/i-drive-list.d.ts +0 -29
- package/lib/interfaces/i-eggs-config.d.ts +0 -24
- package/lib/interfaces/i-exec.d.ts +0 -4
- package/lib/interfaces/i-initrd.d.ts +0 -6
- package/lib/interfaces/i-install.d.ts +0 -9
- package/lib/interfaces/i-installer.d.ts +0 -20
- package/lib/interfaces/i-krill-config.d.ts +0 -26
- package/lib/interfaces/i-krill.d.ts +0 -35
- package/lib/interfaces/i-materia.d.ts +0 -36
- package/lib/interfaces/i-net.d.ts +0 -9
- package/lib/interfaces/i-packages.d.ts +0 -10
- package/lib/interfaces/i-partitions.d.ts +0 -9
- package/lib/interfaces/i-remix.d.ts +0 -14
- package/lib/interfaces/i-settings.d.ts +0 -10
- package/lib/interfaces/i-user.d.ts +0 -7
- package/lib/interfaces/i-workdir.d.ts +0 -8
- package/lib/interfaces/i-xkb-model.d.ts +0 -17
- package/lib/interfaces/index.d.ts +0 -17
- package/lib/krill/krill-prepare.d.ts +0 -60
- package/lib/krill/krill-sequence.d.ts +0 -151
- package/lib/krill/modules/add-user.d.ts +0 -15
- package/lib/krill/modules/bootloader-config-arch.d.ts +0 -9
- package/lib/krill/modules/bootloader-config-arch.js +0 -13
- package/lib/krill/modules/bootloader-config-ubuntu.d.ts +0 -9
- package/lib/krill/modules/bootloader-config.d.ts +0 -9
- package/lib/krill/modules/bootloader.d.ts +0 -10
- package/lib/krill/modules/change-password.d.ts +0 -10
- package/lib/krill/modules/del-live-user.d.ts +0 -9
- package/lib/krill/modules/fstab.d.ts +0 -14
- package/lib/krill/modules/grubcfg.d.ts +0 -17
- package/lib/krill/modules/hostname.d.ts +0 -13
- package/lib/krill/modules/hostname.js +0 -18
- package/lib/krill/modules/hosts.d.ts +0 -14
- package/lib/krill/modules/hosts.js +0 -35
- package/lib/krill/modules/initramfs-cfg.d.ts +0 -14
- package/lib/krill/modules/initramfs.d.ts +0 -13
- package/lib/krill/modules/locale-cfg.d.ts +0 -10
- package/lib/krill/modules/locale.d.ts +0 -13
- package/lib/krill/modules/machine-id.d.ts +0 -15
- package/lib/krill/modules/mkfs.d.ts +0 -13
- package/lib/krill/modules/mount-fs.d.ts +0 -17
- package/lib/krill/modules/mount-vfs.d.ts +0 -17
- package/lib/krill/modules/network-cfg.d.ts +0 -19
- package/lib/krill/modules/packages.d.ts +0 -14
- package/lib/krill/modules/partition.d.ts +0 -20
- package/lib/krill/modules/remove-installer-link.d.ts +0 -13
- package/lib/krill/modules/set-keyboard.d.ts +0 -10
- package/lib/krill/modules/set-timezone.d.ts +0 -14
- package/lib/krill/modules/umount.d.ts +0 -14
- package/lib/krill/modules/unpackfs.d.ts +0 -13
- package/lib/lib/cli-autologin.d.ts +0 -27
- package/lib/lib/dependencies.d.ts +0 -49
- package/lib/lib/get_address.d.ts +0 -1
- package/lib/lib/get_dns.d.ts +0 -1
- package/lib/lib/get_domain.d.ts +0 -1
- package/lib/lib/get_gateway.d.ts +0 -1
- package/lib/lib/get_hostname.d.ts +0 -1
- package/lib/lib/get_netmask.d.ts +0 -1
- package/lib/lib/get_password.d.ts +0 -1
- package/lib/lib/get_root_password.d.ts +0 -1
- package/lib/lib/get_userfullname.d.ts +0 -1
- package/lib/lib/get_username.d.ts +0 -1
- package/lib/lib/select_address_type.d.ts +0 -1
- package/lib/lib/select_filesystem_type.d.ts +0 -1
- package/lib/lib/select_installation_device.d.ts +0 -1
- package/lib/lib/select_installation_mode.d.ts +0 -1
- package/lib/lib/select_interface.d.ts +0 -1
- package/lib/lib/select_keyboard_layout.d.ts +0 -4
- package/lib/lib/select_keyboard_model.d.ts +0 -4
- package/lib/lib/select_keyboard_option.d.ts +0 -4
- package/lib/lib/select_keyboard_variant.d.ts +0 -4
- package/lib/lib/select_languages.d.ts +0 -1
- package/lib/lib/select_regions.d.ts +0 -1
- package/lib/lib/select_user_swap_choice.d.ts +0 -1
- package/lib/lib/select_zones.d.ts +0 -1
- package/lib/lib/utils.d.ts +0 -43
package/lib/classes/pacman.d.ts
DELETED
|
@@ -1,164 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* penguins-eggs-v8
|
|
3
|
-
* author: Piero Proietti
|
|
4
|
-
* email: piero.proietti@gmail.com
|
|
5
|
-
* license: MIT
|
|
6
|
-
*/
|
|
7
|
-
import { IRemix, IDistro } from '../interfaces';
|
|
8
|
-
/**
|
|
9
|
-
* Utils: general porpouse utils
|
|
10
|
-
* @remarks all the utilities
|
|
11
|
-
*/
|
|
12
|
-
export default class Pacman {
|
|
13
|
-
static debs4calamares: string[];
|
|
14
|
-
distro: IDistro;
|
|
15
|
-
remix: IRemix;
|
|
16
|
-
/**
|
|
17
|
-
*
|
|
18
|
-
* @returns
|
|
19
|
-
*/
|
|
20
|
-
static distro(): IDistro;
|
|
21
|
-
static whichGrubIsInstalled(): string;
|
|
22
|
-
/**
|
|
23
|
-
* check if it's installed xorg
|
|
24
|
-
* @returns true if xorg is installed
|
|
25
|
-
*/
|
|
26
|
-
static isInstalledXorg(): boolean;
|
|
27
|
-
/**
|
|
28
|
-
* check if it's installed wayland
|
|
29
|
-
* @returns true if wayland
|
|
30
|
-
*/
|
|
31
|
-
static isInstalledWayland(): boolean;
|
|
32
|
-
/**
|
|
33
|
-
* Check se la macchina ha grub adatto ad efi
|
|
34
|
-
* Forse conviene spostarlo in pacman
|
|
35
|
-
*/
|
|
36
|
-
static isUefi(): boolean;
|
|
37
|
-
/**
|
|
38
|
-
*
|
|
39
|
-
* @returns true se GUI
|
|
40
|
-
*/
|
|
41
|
-
static isInstalledGui(): boolean;
|
|
42
|
-
/**
|
|
43
|
-
* controlla se è operante xserver-xorg-core
|
|
44
|
-
*/
|
|
45
|
-
static isRunningXorg(): boolean;
|
|
46
|
-
/**
|
|
47
|
-
* Constrolla se è operante wayland
|
|
48
|
-
*/
|
|
49
|
-
static isRunningWayland(): boolean;
|
|
50
|
-
/**
|
|
51
|
-
* Check if the system is GUI able
|
|
52
|
-
*/
|
|
53
|
-
static isRunningGui(): boolean;
|
|
54
|
-
/**
|
|
55
|
-
* Check if the system is just CLI
|
|
56
|
-
*/
|
|
57
|
-
static isRunningCli(): boolean;
|
|
58
|
-
/**
|
|
59
|
-
* Crea array packages dei pacchetti da installare
|
|
60
|
-
*/
|
|
61
|
-
static packages(remove?: boolean, verbose?: boolean): string[];
|
|
62
|
-
/**
|
|
63
|
-
* Restituisce VERO se i prerequisiti sono installati
|
|
64
|
-
*/
|
|
65
|
-
static prerequisitesCheck(verbose?: boolean): Promise<boolean>;
|
|
66
|
-
/**
|
|
67
|
-
*
|
|
68
|
-
*/
|
|
69
|
-
static prerequisitesInstall(verbose?: boolean): Promise<boolean>;
|
|
70
|
-
/**
|
|
71
|
-
* Torna verso se calamares è installato
|
|
72
|
-
*/
|
|
73
|
-
static calamaresCheck(): Promise<boolean>;
|
|
74
|
-
/**
|
|
75
|
-
* Controlla se calamares è installabile
|
|
76
|
-
* @returns
|
|
77
|
-
*/
|
|
78
|
-
static isCalamaresAvailable(): boolean;
|
|
79
|
-
/**
|
|
80
|
-
*
|
|
81
|
-
*/
|
|
82
|
-
static calamaresInstall(verbose?: boolean): Promise<void>;
|
|
83
|
-
/**
|
|
84
|
-
* calamaresPolicies
|
|
85
|
-
*/
|
|
86
|
-
static calamaresPolicies(): Promise<void>;
|
|
87
|
-
/**
|
|
88
|
-
*
|
|
89
|
-
*/
|
|
90
|
-
static calamaresRemove(verbose?: boolean): Promise<boolean>;
|
|
91
|
-
/**
|
|
92
|
-
* Restituisce VERO se i file di configurazione SONO presenti
|
|
93
|
-
*/
|
|
94
|
-
static configurationCheck(): boolean;
|
|
95
|
-
/**
|
|
96
|
-
* Ritorna vero se machine-id è uguale
|
|
97
|
-
*/
|
|
98
|
-
static configurationMachineNew(verbose?: boolean): Promise<boolean>;
|
|
99
|
-
/**
|
|
100
|
-
*
|
|
101
|
-
*/
|
|
102
|
-
static configurationFresh(): Promise<void>;
|
|
103
|
-
/**
|
|
104
|
-
* Creazione del file di configurazione /etc/penguins-eggs
|
|
105
|
-
*/
|
|
106
|
-
static configurationInstall(links?: boolean, verbose?: boolean): Promise<void>;
|
|
107
|
-
/**
|
|
108
|
-
* Rimozione dei file di configurazione
|
|
109
|
-
*/
|
|
110
|
-
static configurationRemove(verbose?: boolean): Promise<void>;
|
|
111
|
-
/**
|
|
112
|
-
*
|
|
113
|
-
* @param verbose
|
|
114
|
-
*/
|
|
115
|
-
static autocompleteInstall(verbose?: boolean): Promise<void>;
|
|
116
|
-
/**
|
|
117
|
-
* Installa manPage
|
|
118
|
-
*/
|
|
119
|
-
static manPageInstall(verbose?: boolean): Promise<void>;
|
|
120
|
-
/**
|
|
121
|
-
* distroTemplateCheck
|
|
122
|
-
*/
|
|
123
|
-
static distroTemplateCheck(): boolean;
|
|
124
|
-
/**
|
|
125
|
-
*
|
|
126
|
-
*/
|
|
127
|
-
static distroTemplateInstall(verbose?: boolean): Promise<void>;
|
|
128
|
-
/**
|
|
129
|
-
* restuisce VERO se il pacchetto è installato
|
|
130
|
-
* @param debPackage
|
|
131
|
-
*/
|
|
132
|
-
static packageIsInstalled(packageName: string): boolean;
|
|
133
|
-
/**
|
|
134
|
-
* restuisce VERO se il pacchetto è installato
|
|
135
|
-
* @param debPackage
|
|
136
|
-
*/
|
|
137
|
-
static packageAptAvailable(packageName: string): Promise<boolean>;
|
|
138
|
-
/**
|
|
139
|
-
*
|
|
140
|
-
* @param debPackage
|
|
141
|
-
* @returns
|
|
142
|
-
*/
|
|
143
|
-
static packageAptLast(debPackage: string): Promise<string>;
|
|
144
|
-
static packageNpmLast(packageNpm?: string): Promise<string>;
|
|
145
|
-
/**
|
|
146
|
-
*
|
|
147
|
-
* @param cmd
|
|
148
|
-
*/
|
|
149
|
-
static commandIsInstalled(cmd: string): Promise<boolean>;
|
|
150
|
-
/**
|
|
151
|
-
* Install the package packageName
|
|
152
|
-
* @param packageName {string} Pacchetto Debian da installare
|
|
153
|
-
* @returns {boolean} True if success
|
|
154
|
-
*/
|
|
155
|
-
static packageInstall(packageName: string): Promise<boolean>;
|
|
156
|
-
/**
|
|
157
|
-
*
|
|
158
|
-
* @param packages array packages
|
|
159
|
-
*
|
|
160
|
-
* Probabilmente da rimuovere, viene usata solo da prerequisitesRemove
|
|
161
|
-
*
|
|
162
|
-
*/
|
|
163
|
-
static filterInstalled(packages: string[]): string[];
|
|
164
|
-
}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* penguins-eggss
|
|
3
|
-
* author: Piero Proietti
|
|
4
|
-
* email: piero.proietti@gmail.com
|
|
5
|
-
* license: MIT
|
|
6
|
-
* pve-live
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* This will create a symbolic link from the system’s copy of the service file (usually in /lib/systemd/system or /etc/systemd/system)
|
|
10
|
-
* into the location on disk where systemd looks for autostart files (usually /etc/systemd/system/some_target.target.wants.
|
|
11
|
-
* We will go over what a target is later in this guide).
|
|
12
|
-
* To disable the service from starting automatically, you can type:
|
|
13
|
-
* sudo systemctl disable application.service
|
|
14
|
-
* This will remove the symbolic link that indicated that the service should be started automatically.
|
|
15
|
-
*/
|
|
16
|
-
import Systemctl from './systemctl';
|
|
17
|
-
export default class PveLive {
|
|
18
|
-
systemctl: Systemctl;
|
|
19
|
-
constructor();
|
|
20
|
-
/**
|
|
21
|
-
* enable PveLIve
|
|
22
|
-
*/
|
|
23
|
-
enable(): void;
|
|
24
|
-
/**
|
|
25
|
-
* disable
|
|
26
|
-
*/
|
|
27
|
-
disable(): void;
|
|
28
|
-
create(root?: string): void;
|
|
29
|
-
/**
|
|
30
|
-
*
|
|
31
|
-
*/
|
|
32
|
-
createScript(root?: string): void;
|
|
33
|
-
/**
|
|
34
|
-
*
|
|
35
|
-
*/
|
|
36
|
-
createService(root?: string): void;
|
|
37
|
-
/**
|
|
38
|
-
*
|
|
39
|
-
*/
|
|
40
|
-
start(): void;
|
|
41
|
-
stop(): void;
|
|
42
|
-
}
|
package/lib/classes/pxe.d.ts
DELETED
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* penguins-eggs: pxe.ts
|
|
3
|
-
* author: Piero Proietti
|
|
4
|
-
* mail: piero.proietti@gmail.com
|
|
5
|
-
*/
|
|
6
|
-
import Settings from '../classes/settings';
|
|
7
|
-
/**
|
|
8
|
-
* Pxe:
|
|
9
|
-
*/
|
|
10
|
-
export default class Pxe {
|
|
11
|
-
verbose: boolean;
|
|
12
|
-
echo: {};
|
|
13
|
-
settings: Settings;
|
|
14
|
-
bootLabel: string;
|
|
15
|
-
pxeRoot: string;
|
|
16
|
-
isoRoot: string;
|
|
17
|
-
vmlinuz: string;
|
|
18
|
-
initrd: string;
|
|
19
|
-
isos: string[];
|
|
20
|
-
/**
|
|
21
|
-
* fertilization()
|
|
22
|
-
*/
|
|
23
|
-
fertilization(): Promise<void>;
|
|
24
|
-
/**
|
|
25
|
-
* build
|
|
26
|
-
*/
|
|
27
|
-
build(): Promise<void>;
|
|
28
|
-
/**
|
|
29
|
-
* configure PXE bios
|
|
30
|
-
*/
|
|
31
|
-
bios(): Promise<void>;
|
|
32
|
-
/**
|
|
33
|
-
* configure PXE UEFI
|
|
34
|
-
*/
|
|
35
|
-
uefi(): Promise<void>;
|
|
36
|
-
/**
|
|
37
|
-
* configure PXE html
|
|
38
|
-
*/
|
|
39
|
-
html(): Promise<void>;
|
|
40
|
-
/**
|
|
41
|
-
*
|
|
42
|
-
* @param real
|
|
43
|
-
*/
|
|
44
|
-
dhcp(real?: boolean, dnsmasq?: boolean): Promise<void>;
|
|
45
|
-
/**
|
|
46
|
-
*
|
|
47
|
-
*/
|
|
48
|
-
private nodeDhcp;
|
|
49
|
-
/**
|
|
50
|
-
*
|
|
51
|
-
* @param real
|
|
52
|
-
*/
|
|
53
|
-
private dnsmasq;
|
|
54
|
-
/**
|
|
55
|
-
* start http server for images
|
|
56
|
-
*
|
|
57
|
-
*/
|
|
58
|
-
httpStart(): Promise<void>;
|
|
59
|
-
/**
|
|
60
|
-
*
|
|
61
|
-
* @param cmd
|
|
62
|
-
*/
|
|
63
|
-
tryCatch(cmd?: string): Promise<void>;
|
|
64
|
-
}
|
package/lib/classes/pxe.js
DELETED
|
@@ -1,352 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* penguins-eggs: pxe.ts
|
|
4
|
-
* author: Piero Proietti
|
|
5
|
-
* mail: piero.proietti@gmail.com
|
|
6
|
-
*/
|
|
7
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
const tslib_1 = require("tslib");
|
|
9
|
-
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
10
|
-
const netmask_1 = require("netmask");
|
|
11
|
-
const node_static_1 = tslib_1.__importDefault(require("node-static"));
|
|
12
|
-
const http_1 = tslib_1.__importDefault(require("http"));
|
|
13
|
-
const node_path_1 = tslib_1.__importDefault(require("node:path"));
|
|
14
|
-
const utils_1 = tslib_1.__importDefault(require("../classes/utils"));
|
|
15
|
-
const settings_1 = tslib_1.__importDefault(require("../classes/settings"));
|
|
16
|
-
const utils_2 = require("../lib/utils");
|
|
17
|
-
/**
|
|
18
|
-
* Pxe:
|
|
19
|
-
*/
|
|
20
|
-
class Pxe {
|
|
21
|
-
constructor() {
|
|
22
|
-
this.verbose = false;
|
|
23
|
-
this.echo = {};
|
|
24
|
-
this.settings = {};
|
|
25
|
-
this.bootLabel = '';
|
|
26
|
-
this.pxeRoot = '';
|
|
27
|
-
this.isoRoot = '';
|
|
28
|
-
this.vmlinuz = '';
|
|
29
|
-
this.initrd = '';
|
|
30
|
-
this.isos = [];
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* fertilization()
|
|
34
|
-
*/
|
|
35
|
-
async fertilization() {
|
|
36
|
-
this.settings = new settings_1.default();
|
|
37
|
-
await this.settings.load();
|
|
38
|
-
if (utils_1.default.isLive()) {
|
|
39
|
-
this.isoRoot = this.settings.distro.liveMediumPath;
|
|
40
|
-
}
|
|
41
|
-
else {
|
|
42
|
-
this.isoRoot = node_path_1.default.dirname(this.settings.work_dir.path) + '/ovarium/iso/';
|
|
43
|
-
}
|
|
44
|
-
if (!utils_1.default.isLive() && !fs_1.default.existsSync(this.settings.work_dir.path)) {
|
|
45
|
-
console.log('no image available, build an image with: sudo eggs produce');
|
|
46
|
-
process.exit();
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* se pxeRoot non esiste viene creato
|
|
50
|
-
*/
|
|
51
|
-
this.pxeRoot = node_path_1.default.dirname(this.settings.work_dir.path) + '/pxe/';
|
|
52
|
-
if (!fs_1.default.existsSync(this.pxeRoot)) {
|
|
53
|
-
await (0, utils_2.exec)(`mkdir ${this.pxeRoot} -p`);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* Ricerca delle immagini ISO
|
|
57
|
-
*/
|
|
58
|
-
let isos = [];
|
|
59
|
-
if (!utils_1.default.isLive()) {
|
|
60
|
-
let isos = fs_1.default.readdirSync(node_path_1.default.dirname(this.settings.work_dir.path));
|
|
61
|
-
for (const iso of isos) {
|
|
62
|
-
if (node_path_1.default.extname(iso) === ".iso") {
|
|
63
|
-
this.isos.push(iso);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
/**
|
|
68
|
-
* installed: /home/eggs/ovarium/iso/live
|
|
69
|
-
* live: this.iso/live
|
|
70
|
-
*/
|
|
71
|
-
let pathFiles = this.isoRoot + '/live';
|
|
72
|
-
let files = fs_1.default.readdirSync(pathFiles);
|
|
73
|
-
for (const file of files) {
|
|
74
|
-
if (node_path_1.default.basename(file).substring(0, 7) === 'vmlinuz') {
|
|
75
|
-
this.vmlinuz = node_path_1.default.basename(file);
|
|
76
|
-
}
|
|
77
|
-
if (node_path_1.default.basename(file).substring(0, 6) === 'initrd') {
|
|
78
|
-
this.initrd = node_path_1.default.basename(file);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* bootLabel
|
|
83
|
-
*/
|
|
84
|
-
const a = fs_1.default.readFileSync(this.isoRoot + '/.disk/mkisofs', "utf-8");
|
|
85
|
-
const b = a.substring(a.indexOf('-o ') + 3);
|
|
86
|
-
const c = b.substring(0, b.indexOf(' '));
|
|
87
|
-
this.bootLabel = c.substring(c.lastIndexOf('/') + 1);
|
|
88
|
-
}
|
|
89
|
-
/**
|
|
90
|
-
* build
|
|
91
|
-
*/
|
|
92
|
-
async build() {
|
|
93
|
-
if (fs_1.default.existsSync(this.pxeRoot)) {
|
|
94
|
-
await this.tryCatch(`rm ${this.pxeRoot} -rf`);
|
|
95
|
-
}
|
|
96
|
-
let cmd = `mkdir -p ${this.pxeRoot}`;
|
|
97
|
-
await this.tryCatch(cmd);
|
|
98
|
-
await this.tryCatch(`mkdir ${this.pxeRoot} -p`);
|
|
99
|
-
await this.tryCatch(`ln -s ${this.isoRoot}live ${this.pxeRoot}/live`);
|
|
100
|
-
await this.tryCatch(`ln -s ${this.isoRoot}.disk ${this.pxeRoot}/.disk`);
|
|
101
|
-
await this.tryCatch(`ln -s ${this.isoRoot}live/${this.vmlinuz} ${this.pxeRoot}/vmlinuz`);
|
|
102
|
-
await this.tryCatch(`chmod 777 ${this.pxeRoot}/vmlinuz`);
|
|
103
|
-
await this.tryCatch(`ln -s ${this.isoRoot}live/${this.initrd} ${this.pxeRoot}/initrd`);
|
|
104
|
-
await this.tryCatch(`chmod 777 ${this.pxeRoot}/initrd`);
|
|
105
|
-
// link iso images in pxe
|
|
106
|
-
for (const iso of this.isos) {
|
|
107
|
-
await this.tryCatch(`ln /home/eggs/${iso} ${this.pxeRoot}/${iso}`);
|
|
108
|
-
}
|
|
109
|
-
await this.bios();
|
|
110
|
-
await this.uefi();
|
|
111
|
-
await this.html();
|
|
112
|
-
}
|
|
113
|
-
/**
|
|
114
|
-
* configure PXE bios
|
|
115
|
-
*/
|
|
116
|
-
async bios() {
|
|
117
|
-
// isolinux.theme.cfg, splash.png MUST to be on root
|
|
118
|
-
await this.tryCatch(`ln -s ${this.isoRoot}isolinux/isolinux.theme.cfg ${this.pxeRoot}/isolinux.theme.cfg`);
|
|
119
|
-
await this.tryCatch(`ln -s ${this.isoRoot}isolinux/splash.png ${this.pxeRoot}/splash.png`);
|
|
120
|
-
// pxe
|
|
121
|
-
const distro = this.settings.distro;
|
|
122
|
-
await this.tryCatch(`ln ${distro.pxelinuxPath}pxelinux.0 ${this.pxeRoot}/pxelinux.0`);
|
|
123
|
-
await this.tryCatch(`ln ${distro.pxelinuxPath}lpxelinux.0 ${this.pxeRoot}/lpxelinux.0`);
|
|
124
|
-
// syslinux
|
|
125
|
-
await this.tryCatch(`ln ${distro.syslinuxPath}ldlinux.c32 ${this.pxeRoot}/ldlinux.c32`);
|
|
126
|
-
await this.tryCatch(`ln ${distro.syslinuxPath}vesamenu.c32 ${this.pxeRoot}/vesamenu.c32`);
|
|
127
|
-
await this.tryCatch(`ln ${distro.syslinuxPath}libcom32.c32 ${this.pxeRoot}/libcom32.c32`);
|
|
128
|
-
await this.tryCatch(`ln ${distro.syslinuxPath}libutil.c32 ${this.pxeRoot}/libutil.c32`);
|
|
129
|
-
await this.tryCatch(`ln /usr/lib/syslinux/memdisk ${this.pxeRoot}/memdisk`);
|
|
130
|
-
await this.tryCatch(`mkdir ${this.pxeRoot}/pxelinux.cfg`);
|
|
131
|
-
let content = ``;
|
|
132
|
-
content += `# eggs: pxelinux.cfg/default\n`;
|
|
133
|
-
content += `# search path for the c32 support libraries (libcom32, libutil etc.)\n`;
|
|
134
|
-
content += `path\n`;
|
|
135
|
-
content += `include isolinux.theme.cfg\n`;
|
|
136
|
-
content += `UI vesamenu.c32\n`;
|
|
137
|
-
content += `\n`;
|
|
138
|
-
content += `menu title Penguin's eggs - Perri's brewery edition - ${utils_1.default.address()}\n`;
|
|
139
|
-
content += `PROMPT 0\n`;
|
|
140
|
-
content += `TIMEOUT 0\n`;
|
|
141
|
-
content += `\n`;
|
|
142
|
-
content += `LABEL http\n`;
|
|
143
|
-
content += `MENU LABEL ${this.bootLabel}\n`;
|
|
144
|
-
content += `MENU DEFAULT\n`;
|
|
145
|
-
content += `KERNEL http://${utils_1.default.address()}/live/${this.vmlinuz}\n`;
|
|
146
|
-
content += `APPEND initrd=http://${utils_1.default.address()}/live/${this.initrd} boot=live config noswap noprompt fetch=http://${utils_1.default.address()}/live/filesystem.squashfs\n`;
|
|
147
|
-
content += `SYSAPPEND 3\n`;
|
|
148
|
-
content += `\n`;
|
|
149
|
-
if (this.isos.length > 0) {
|
|
150
|
-
content += `MENU SEPARATOR\n`;
|
|
151
|
-
for (const iso of this.isos) {
|
|
152
|
-
content += `\n`;
|
|
153
|
-
content += `LABEL isos\n`;
|
|
154
|
-
content += `MENU LABEL memdisk ${iso}\n`;
|
|
155
|
-
content += `KERNEL memdisk\n`;
|
|
156
|
-
content += `APPEND iso initrd=http://${utils_1.default.address()}/${iso}\n`;
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
let file = `${this.pxeRoot}/pxelinux.cfg/default`;
|
|
160
|
-
fs_1.default.writeFileSync(file, content);
|
|
161
|
-
}
|
|
162
|
-
/**
|
|
163
|
-
* configure PXE UEFI
|
|
164
|
-
*/
|
|
165
|
-
async uefi() {
|
|
166
|
-
await this.tryCatch(`mkdir ${this.pxeRoot}/grub`);
|
|
167
|
-
if (fs_1.default.existsSync('/usr/share/grub/unicode.pf2')) {
|
|
168
|
-
await this.tryCatch(`ln -s /usr/share/grub/unicode.pf2 ${this.pxeRoot}grub/font.pf2`);
|
|
169
|
-
}
|
|
170
|
-
// Copia spash.png, theme.cfg in /grub
|
|
171
|
-
await this.tryCatch(`ln -s ${this.isoRoot}boot/grub/splash.png ${this.pxeRoot}/grub/splash.png`);
|
|
172
|
-
await this.tryCatch(`ln -s ${this.isoRoot}boot/grub/theme.cfg ${this.pxeRoot}/grub/theme.cfg`);
|
|
173
|
-
// UEFI: /usr/lib/shim/shimx64.efi.signed
|
|
174
|
-
await this.tryCatch(`ln -s /usr/lib/shim/shimx64.efi.signed ${this.pxeRoot}/bootx64.efi`);
|
|
175
|
-
// UEFI: /usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed
|
|
176
|
-
await this.tryCatch(`ln -s /usr/lib/grub/x86_64-efi-signed/grubnetx64.efi.signed ${this.pxeRoot}/grubx64.efi`);
|
|
177
|
-
/**
|
|
178
|
-
* creating /grub/grub.cfg
|
|
179
|
-
*/
|
|
180
|
-
let grubContent = '';
|
|
181
|
-
grubContent += `set default="0"\n`;
|
|
182
|
-
grubContent += `set timeout=-1\n`;
|
|
183
|
-
grubContent += `\n`;
|
|
184
|
-
grubContent += `if loadfont unicode ; then\n`;
|
|
185
|
-
grubContent += ` set gfxmode=auto\n`;
|
|
186
|
-
grubContent += ` set locale_dir=$prefix/locale\n`;
|
|
187
|
-
grubContent += ` set lang=en_US\n`;
|
|
188
|
-
grubContent += `fi\n`;
|
|
189
|
-
grubContent += `terminal_output gfxterm\n`;
|
|
190
|
-
grubContent += `\n`;
|
|
191
|
-
grubContent += `set menu_color_normal=white/black\n`;
|
|
192
|
-
grubContent += `set menu_color_highlight=black/light-gray\n`;
|
|
193
|
-
grubContent += `if background_color 44,0,30; then\n`;
|
|
194
|
-
grubContent += ` clear\n`;
|
|
195
|
-
grubContent += `fi\n`;
|
|
196
|
-
grubContent += `\n`;
|
|
197
|
-
grubContent += `function gfxmode {\n`;
|
|
198
|
-
grubContent += `\n`;
|
|
199
|
-
grubContent += ` set gfxpayload="${1}"\n`;
|
|
200
|
-
grubContent += ` if [ "${1}" = "keep" ]; then\n`;
|
|
201
|
-
grubContent += ` set vt_handoff=vt.handoff=7\n`;
|
|
202
|
-
grubContent += ` else\n`;
|
|
203
|
-
grubContent += ` set vt_handoff=\n`;
|
|
204
|
-
grubContent += ` fi\n`;
|
|
205
|
-
grubContent += `}\n`;
|
|
206
|
-
grubContent += `set linux_gfx_mode=keep\n`;
|
|
207
|
-
grubContent += `\n`;
|
|
208
|
-
grubContent += `export linux_gfx_mode\n`;
|
|
209
|
-
grubContent += `\n`;
|
|
210
|
-
grubContent += `if loadfont $prefix/font.pf2 ; then\n`;
|
|
211
|
-
grubContent += ` set gfxmode=640x480\n`;
|
|
212
|
-
grubContent += ` insmod efi_gop\n`;
|
|
213
|
-
grubContent += ` insmod efi_uga\n`;
|
|
214
|
-
grubContent += ` insmod video_bochs\n`;
|
|
215
|
-
grubContent += ` insmod video_cirrus\n`;
|
|
216
|
-
grubContent += ` insmod gfxterm\n`;
|
|
217
|
-
grubContent += ` insmod jpeg\n`;
|
|
218
|
-
grubContent += ` insmod png\n`;
|
|
219
|
-
grubContent += ` terminal_output gfxterm\n`;
|
|
220
|
-
grubContent += `fi\n`;
|
|
221
|
-
grubContent += `set theme=/grub/theme.cfg\n`;
|
|
222
|
-
grubContent += `menuentry '${this.bootLabel}' {\n`;
|
|
223
|
-
grubContent += ` gfxmode $linux_gfx_mode\n`;
|
|
224
|
-
grubContent += ` linuxefi vmlinuz boot=live config noswap noprompt fetch=http://${utils_1.default.address()}/live/filesystem.squashfs quiet splash sysappend 0x40000\n`;
|
|
225
|
-
grubContent += ` initrdefi initrd\n`;
|
|
226
|
-
grubContent += `}\n`;
|
|
227
|
-
let grubFile = `${this.pxeRoot}grub/grub.cfg`;
|
|
228
|
-
fs_1.default.writeFileSync(grubFile, grubContent);
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* configure PXE html
|
|
232
|
-
*/
|
|
233
|
-
async html() {
|
|
234
|
-
let file = `${this.pxeRoot}/index.html`;
|
|
235
|
-
let content = ``;
|
|
236
|
-
content += `<html><title>Penguin's eggs PXE server</title>`;
|
|
237
|
-
content += `<div style="background-image:url('/splash.png');background-repeat:no-repeat;width: 640;height:480;padding:5px;border:1px solid black;">`;
|
|
238
|
-
content += `<h1>Penguin's eggs PXE server</h1>`;
|
|
239
|
-
content += `<body>address: <a href=http://${utils_1.default.address()}>${utils_1.default.address()}</a><br/>`;
|
|
240
|
-
if (!utils_1.default.isLive()) {
|
|
241
|
-
content += `download: <a href='http://${utils_1.default.address()}/${this.isos[0]}'>${this.isos[0]}</a><br/>`;
|
|
242
|
-
}
|
|
243
|
-
else {
|
|
244
|
-
content += `started from live iso image<br/>`;
|
|
245
|
-
}
|
|
246
|
-
content += `<br/>`;
|
|
247
|
-
content += `source: <a href='https://github.com/pieroproietti/penguins-eggs'>https://github.com/pieroproietti/penguins-eggs</a><br/>`;
|
|
248
|
-
content += `manual: <a href='https://penguins-eggs.net/book/italiano9.2.html'>italiano</a>, <a href='https://penguins--eggs-net.translate.goog/book/italiano9.2?_x_tr_sl=auto&_x_tr_tl=en&_x_tr_hl=en'>translated</a><br/>`;
|
|
249
|
-
content += `discuss: <a href='https://t.me/penguins_eggs'>Telegram group<br/></body</html>`;
|
|
250
|
-
fs_1.default.writeFileSync(file, content);
|
|
251
|
-
}
|
|
252
|
-
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
253
|
-
//
|
|
254
|
-
// dncp: actually install and configure dnsmaq
|
|
255
|
-
//
|
|
256
|
-
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
257
|
-
/**
|
|
258
|
-
*
|
|
259
|
-
* @param real
|
|
260
|
-
*/
|
|
261
|
-
async dhcp(real = false, dnsmasq = true) {
|
|
262
|
-
if (dnsmasq) {
|
|
263
|
-
await this.dnsmasq(real);
|
|
264
|
-
}
|
|
265
|
-
else {
|
|
266
|
-
await this.nodeDhcp(real);
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
/**
|
|
270
|
-
*
|
|
271
|
-
*/
|
|
272
|
-
async nodeDhcp(real = false) {
|
|
273
|
-
console.log('to do!');
|
|
274
|
-
process.exit();
|
|
275
|
-
}
|
|
276
|
-
/**
|
|
277
|
-
*
|
|
278
|
-
* @param real
|
|
279
|
-
*/
|
|
280
|
-
async dnsmasq(real = false) {
|
|
281
|
-
await (0, utils_2.exec)(`systemctl stop dnsmasq.service`);
|
|
282
|
-
let domain = `penguins-eggs.lan`;
|
|
283
|
-
let n = new netmask_1.Netmask(`${utils_1.default.address()}/${utils_1.default.netmask()}`);
|
|
284
|
-
let content = ``;
|
|
285
|
-
content += `# cuckoo.conf\n`;
|
|
286
|
-
content += `port=0\n`;
|
|
287
|
-
content += `interface=${await utils_1.default.iface()}\n`;
|
|
288
|
-
content += `bind-interfaces\n`;
|
|
289
|
-
content += `domain=${domain}\n`;
|
|
290
|
-
content += `dhcp-no-override\n`;
|
|
291
|
-
content += `dhcp-option=option:router,${n.first}\n`;
|
|
292
|
-
content += `dhcp-option=option:dns-server,${n.first}\n`;
|
|
293
|
-
content += `dhcp-option=option:dns-server,8.8.8.8\n`;
|
|
294
|
-
content += `dhcp-option=option:dns-server,8.8.4.4\n`;
|
|
295
|
-
content += `enable-tftp\n`;
|
|
296
|
-
content += `tftp-root=${this.pxeRoot}\n`;
|
|
297
|
-
content += `# boot config for BIOS\n`;
|
|
298
|
-
content += `dhcp-match=set:bios-x86,option:client-arch,0\n`;
|
|
299
|
-
content += `dhcp-boot=tag:bios-x86,lpxelinux.0\n`;
|
|
300
|
-
content += `# boot config for UEFI\n`;
|
|
301
|
-
content += `dhcp-match=set:efi-x86_64,option:client-arch,7\n`;
|
|
302
|
-
content += `dhcp-match=set:efi-x86_64,option:client-arch,9\n`;
|
|
303
|
-
content += `dhcp-boot=tag:efi-x86_64,/bootx64.efi\n`;
|
|
304
|
-
// Here we are OK Starting grub
|
|
305
|
-
/**
|
|
306
|
-
* https://thekelleys.org.uk/dnsmasq/CHANGELOG
|
|
307
|
-
*
|
|
308
|
-
* Don't do any PXE processing, even for clients with the
|
|
309
|
-
* correct vendorclass, unless at least one pxe-prompt or
|
|
310
|
-
* pxe-service option is given. This stops dnsmasq
|
|
311
|
-
* interfering with proxy PXE subsystems when it is just
|
|
312
|
-
* the DHCP server. Thanks to Spencer Clark for spotting this.
|
|
313
|
-
*/
|
|
314
|
-
content += `pxe-service=X86PC,"penguin's eggs cuckoo",pxelinux.0\n`;
|
|
315
|
-
if (real) {
|
|
316
|
-
content += `dhcp-range=${await utils_1.default.iface()},${n.first},${n.last},${n.mask},8h\n`;
|
|
317
|
-
}
|
|
318
|
-
else {
|
|
319
|
-
content += `dhcp-range=${await utils_1.default.iface()},${n.base},proxy,${n.mask},${n.broadcast} # dhcp proxy\n`;
|
|
320
|
-
}
|
|
321
|
-
let file = '/etc/dnsmasq.d/cuckoo.conf';
|
|
322
|
-
fs_1.default.writeFileSync(file, content);
|
|
323
|
-
// console.log(content)
|
|
324
|
-
await (0, utils_2.exec)(`systemctl start dnsmasq.service`);
|
|
325
|
-
}
|
|
326
|
-
/**
|
|
327
|
-
* start http server for images
|
|
328
|
-
*
|
|
329
|
-
*/
|
|
330
|
-
async httpStart() {
|
|
331
|
-
const port = 80;
|
|
332
|
-
const httpRoot = this.pxeRoot + "/";
|
|
333
|
-
var file = new (node_static_1.default.Server)(httpRoot);
|
|
334
|
-
http_1.default.createServer(function (req, res) {
|
|
335
|
-
file.serve(req, res);
|
|
336
|
-
}).listen(port);
|
|
337
|
-
}
|
|
338
|
-
/**
|
|
339
|
-
*
|
|
340
|
-
* @param cmd
|
|
341
|
-
*/
|
|
342
|
-
async tryCatch(cmd = '') {
|
|
343
|
-
try {
|
|
344
|
-
await (0, utils_2.exec)(cmd, this.echo);
|
|
345
|
-
}
|
|
346
|
-
catch (error) {
|
|
347
|
-
console.log(`Error: ${error}`);
|
|
348
|
-
await utils_1.default.pressKeyToExit(cmd);
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
|
-
exports.default = Pxe;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* penguins-eggs: ovary.ts VERSIONE DEBIAN-LIVE
|
|
3
|
-
* author: Piero Proietti
|
|
4
|
-
* mail: piero.proietti@gmail.com
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
import { IRemix, IDistro, IApp, IWorkDir } from '../interfaces';
|
|
8
|
-
import Incubator from './incubation/incubator';
|
|
9
|
-
import { IEggsConfig } from '../interfaces';
|
|
10
|
-
/**
|
|
11
|
-
* Setting
|
|
12
|
-
*/
|
|
13
|
-
export default class Settings {
|
|
14
|
-
app: IApp;
|
|
15
|
-
config: IEggsConfig;
|
|
16
|
-
remix: IRemix;
|
|
17
|
-
work_dir: IWorkDir;
|
|
18
|
-
distro: IDistro;
|
|
19
|
-
incubator: Incubator;
|
|
20
|
-
i686: boolean;
|
|
21
|
-
isLive: boolean;
|
|
22
|
-
efi_work: string;
|
|
23
|
-
kernel_image: string;
|
|
24
|
-
initrd_image: string;
|
|
25
|
-
vmlinuz: string;
|
|
26
|
-
initrdImg: string;
|
|
27
|
-
session_excludes: string;
|
|
28
|
-
isoFilename: string;
|
|
29
|
-
constructor(compression?: string);
|
|
30
|
-
/**
|
|
31
|
-
*
|
|
32
|
-
* @param config
|
|
33
|
-
*/
|
|
34
|
-
save(config: IEggsConfig): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Load configuration from config_file
|
|
37
|
-
* @returns {boolean} Success
|
|
38
|
-
*/
|
|
39
|
-
load(): Promise<boolean>;
|
|
40
|
-
/**
|
|
41
|
-
* showSettings
|
|
42
|
-
*/
|
|
43
|
-
show(): Promise<void>;
|
|
44
|
-
/**
|
|
45
|
-
* Calculate and show free space on the disk
|
|
46
|
-
* @returns {void}
|
|
47
|
-
*/
|
|
48
|
-
listFreeSpace(): Promise<void>;
|
|
49
|
-
/**
|
|
50
|
-
*
|
|
51
|
-
* @param basename
|
|
52
|
-
* @param theme
|
|
53
|
-
*/
|
|
54
|
-
loadRemix(basename?: string, theme?: string): Promise<void>;
|
|
55
|
-
}
|