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
|
@@ -89,13 +89,15 @@ class Xdg {
|
|
|
89
89
|
* LIGHTDM
|
|
90
90
|
*/
|
|
91
91
|
if (pacman_1.default.packageIsInstalled('lightdm')) {
|
|
92
|
-
let
|
|
93
|
-
let
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
92
|
+
let dc = `${chroot}/etc/lightdm/`;
|
|
93
|
+
let files = node_fs_1.default.readdirSync(dc);
|
|
94
|
+
for (const elem of files) {
|
|
95
|
+
const curFile = dc + elem;
|
|
96
|
+
let content = node_fs_1.default.readFileSync(curFile, 'utf8');
|
|
97
|
+
let find = `[Seat:*]`;
|
|
98
|
+
if (content.includes(find)) {
|
|
99
|
+
shelljs_1.default.sed('-i', `autologin-user=${olduser}`, `autologin-user=${newuser}`, curFile);
|
|
100
|
+
}
|
|
99
101
|
}
|
|
100
102
|
}
|
|
101
103
|
/**
|
|
@@ -103,25 +105,23 @@ class Xdg {
|
|
|
103
105
|
*/
|
|
104
106
|
if (pacman_1.default.packageIsInstalled('sddm')) {
|
|
105
107
|
let sddmChanged = false;
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
sddmChanged = true;
|
|
113
|
-
}
|
|
108
|
+
let curFile = `${chroot}/etc/sddm.conf`;
|
|
109
|
+
let content = node_fs_1.default.readFileSync(curFile, 'utf8');
|
|
110
|
+
let find = `[Autologin]`;
|
|
111
|
+
if (content.includes(find)) {
|
|
112
|
+
shelljs_1.default.sed('-i', `User=${olduser}`, `User=${newuser}`, curFile);
|
|
113
|
+
sddmChanged = true;
|
|
114
114
|
}
|
|
115
|
-
// Se non l'ho trovato, modifico /etc/sddm.conf.d/autologin.conf
|
|
116
115
|
if (!sddmChanged) {
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
116
|
+
let dc = `${chroot}/etc/sddm.conf.d/`;
|
|
117
|
+
let files = node_fs_1.default.readdirSync(dc);
|
|
118
|
+
for (const elem of files) {
|
|
119
|
+
const curFile = dc + elem;
|
|
120
|
+
let content = node_fs_1.default.readFileSync(curFile, 'utf8');
|
|
121
|
+
if (content.includes(find)) {
|
|
122
|
+
shelljs_1.default.sed('-i', `User=${olduser}`, `User=${newuser}`, curFile);
|
|
123
|
+
sddmChanged = true;
|
|
124
|
+
}
|
|
125
125
|
}
|
|
126
126
|
}
|
|
127
127
|
}
|
|
@@ -148,8 +148,6 @@ class Xdg {
|
|
|
148
148
|
}
|
|
149
149
|
const content = `[daemon]\nAutomaticLoginEnable=true\nAutomaticLogin=${newuser}\n`;
|
|
150
150
|
utils_1.default.write(gdmConf, content);
|
|
151
|
-
// shx.sed('-i', 'AutomaticLoginEnable=False', 'AutomaticLoginEnable=True', gdmConf)
|
|
152
|
-
// shx.sed('-i', `AutomaticLogin=${olduser}`, `AutomaticLogin=${newuser}`, gdmConf)
|
|
153
151
|
}
|
|
154
152
|
}
|
|
155
153
|
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* cuckoo: proxy
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
const core_1 = require("@oclif/core");
|
|
8
|
+
const network_1 = tslib_1.__importDefault(require("../classes/network"));
|
|
9
|
+
const utils_1 = tslib_1.__importDefault(require("../classes/utils"));
|
|
10
|
+
const pxe_1 = tslib_1.__importDefault(require("../classes/pxe"));
|
|
11
|
+
const tftp = require('tftp');
|
|
12
|
+
class Cuckoo extends core_1.Command {
|
|
13
|
+
async run(nest = '/home/eggs') {
|
|
14
|
+
const { args, flags } = await this.parse(Cuckoo);
|
|
15
|
+
utils_1.default.titles(this.id + ' ' + this.argv);
|
|
16
|
+
if (utils_1.default.isRoot()) {
|
|
17
|
+
const pxeRoot = nest + '/pxe';
|
|
18
|
+
const pxe = new pxe_1.default();
|
|
19
|
+
await pxe.fertilization();
|
|
20
|
+
await pxe.build();
|
|
21
|
+
const n = new network_1.default();
|
|
22
|
+
/**
|
|
23
|
+
* service proxy-dhcp
|
|
24
|
+
*/
|
|
25
|
+
let dhcpOptions = {
|
|
26
|
+
subnet: n.cidr,
|
|
27
|
+
host: n.address,
|
|
28
|
+
tftpserver: n.address,
|
|
29
|
+
bios_filename: 'lpxelinux.0',
|
|
30
|
+
efi32_filename: 'ipxe32.efi',
|
|
31
|
+
efi64_filename: 'ipxe.efi'
|
|
32
|
+
};
|
|
33
|
+
pxe.dhcpStart(dhcpOptions);
|
|
34
|
+
/**
|
|
35
|
+
* service tftp
|
|
36
|
+
*/
|
|
37
|
+
let tftpOptions = {
|
|
38
|
+
"host": n.address,
|
|
39
|
+
"port": 69,
|
|
40
|
+
"root": pxeRoot,
|
|
41
|
+
"denyPUT": true
|
|
42
|
+
};
|
|
43
|
+
await pxe.tftpStart(tftpOptions);
|
|
44
|
+
/**
|
|
45
|
+
* service http
|
|
46
|
+
*/
|
|
47
|
+
await pxe.httpStart();
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
utils_1.default.useRoot(this.id);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.default = Cuckoo;
|
|
55
|
+
Cuckoo.description = 'PXE start with proxy-dhcp';
|
|
56
|
+
Cuckoo.examples = [
|
|
57
|
+
`$ sudo eggs cuckoo
|
|
58
|
+
start a PXE server with dhcp-proxy (can coexists with a real dhcp server)
|
|
59
|
+
`,
|
|
60
|
+
];
|
|
61
|
+
Cuckoo.flags = {
|
|
62
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
63
|
+
};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -21,6 +21,17 @@ class Install extends core_1.Command {
|
|
|
21
21
|
utils_1.default.titles(this.id + ' ' + this.argv);
|
|
22
22
|
const { flags } = await this.parse(Install);
|
|
23
23
|
let unattended = flags.unattended;
|
|
24
|
+
// hostname
|
|
25
|
+
let ip = flags.ip;
|
|
26
|
+
let random = flags.random;
|
|
27
|
+
let domain = '.local';
|
|
28
|
+
if (flags.domain) {
|
|
29
|
+
domain = flags.domain;
|
|
30
|
+
}
|
|
31
|
+
// swap
|
|
32
|
+
let suspend = flags.suspend;
|
|
33
|
+
let small = flags.small;
|
|
34
|
+
let none = flags.none;
|
|
24
35
|
let crypted = flags.crypted;
|
|
25
36
|
let pve = flags.pve;
|
|
26
37
|
if (pve) {
|
|
@@ -30,7 +41,7 @@ class Install extends core_1.Command {
|
|
|
30
41
|
if (utils_1.default.isRoot()) {
|
|
31
42
|
if (utils_1.default.isLive()) {
|
|
32
43
|
const krill = new krill_prepare_1.default();
|
|
33
|
-
await krill.prepare(unattended, crypted, pve, verbose);
|
|
44
|
+
await krill.prepare(unattended, ip, random, domain, suspend, small, none, crypted, pve, verbose);
|
|
34
45
|
}
|
|
35
46
|
else {
|
|
36
47
|
utils_1.default.warning('You are in an installed system!');
|
|
@@ -43,11 +54,23 @@ class Install extends core_1.Command {
|
|
|
43
54
|
}
|
|
44
55
|
exports.default = Install;
|
|
45
56
|
Install.flags = {
|
|
46
|
-
unattended: core_1.Flags.boolean({ char: 'u', description: '
|
|
47
|
-
|
|
57
|
+
unattended: core_1.Flags.boolean({ char: 'u', description: 'Unattended installation' }),
|
|
58
|
+
// hostname
|
|
59
|
+
ip: core_1.Flags.boolean({ char: 'i', description: 'hostname as ip, eg: ip-192-168-1-33' }),
|
|
60
|
+
random: core_1.Flags.boolean({ char: 'r', description: 'Add random to hostname, eg: colibri-ay412dt' }),
|
|
61
|
+
// append: Flags.string({char: 'a', description: 'append to hostname: ip, random'}),
|
|
62
|
+
domain: core_1.Flags.string({ char: 'd', description: 'Domain name, defult: .local' }),
|
|
63
|
+
// swap
|
|
64
|
+
// swap: Flags.string({char: 's', description: 'swap: none, small, suspend'}),
|
|
65
|
+
suspend: core_1.Flags.boolean({ char: 'S', description: 'Swap suspend: RAM x 2' }),
|
|
66
|
+
small: core_1.Flags.boolean({ char: 's', description: 'Swap small: RAM' }),
|
|
67
|
+
none: core_1.Flags.boolean({ char: 'n', description: 'Swap none: 256M' }),
|
|
68
|
+
//
|
|
69
|
+
crypted: core_1.Flags.boolean({ char: 'k', description: 'Crypted CLI installation' }),
|
|
48
70
|
pve: core_1.Flags.boolean({ char: 'p', description: 'Proxmox VE install' }),
|
|
71
|
+
// generic
|
|
49
72
|
help: core_1.Flags.help({ char: 'h' }),
|
|
50
|
-
verbose: core_1.Flags.boolean({ char: 'v', description: '
|
|
73
|
+
verbose: core_1.Flags.boolean({ char: 'v', description: 'Verbose' })
|
|
51
74
|
};
|
|
52
75
|
Install.description = 'command-line system installer - the egg became a penguin!';
|
|
53
76
|
Install.examples = ['$ eggs install\nInstall the system using krill installer\n'];
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -38,13 +38,13 @@ function Summary({ name, password, rootPassword, hostname, region, zone, languag
|
|
|
38
38
|
react_1.default.createElement(ink_1.Text, null, "Installing "),
|
|
39
39
|
react_1.default.createElement(ink_1.Text, { color: "green" }, productName)),
|
|
40
40
|
react_1.default.createElement(ink_1.Box, null,
|
|
41
|
-
react_1.default.createElement(ink_1.Text, null
|
|
41
|
+
react_1.default.createElement(ink_1.Text, null),
|
|
42
42
|
react_1.default.createElement(ink_1.Text, { color: "green" }, name),
|
|
43
43
|
react_1.default.createElement(ink_1.Text, null, "/"),
|
|
44
44
|
react_1.default.createElement(ink_1.Text, { color: "green" },
|
|
45
45
|
password,
|
|
46
46
|
" "),
|
|
47
|
-
react_1.default.createElement(ink_1.Text, null, "root
|
|
47
|
+
react_1.default.createElement(ink_1.Text, null, "pwd root "),
|
|
48
48
|
react_1.default.createElement(ink_1.Text, { color: "green" },
|
|
49
49
|
rootPassword,
|
|
50
50
|
" "),
|
|
File without changes
|
|
File without changes
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var dhcp_server = require('./server');
|
|
3
|
+
var dhcp_proxy = require('./proxy');
|
|
4
|
+
var netmask = require('netmask').Netmask;
|
|
5
|
+
var ee = require('events').EventEmitter;
|
|
6
|
+
var util = require('util');
|
|
7
|
+
const { file } = require('@oclif/core/lib/parser');
|
|
8
|
+
const { createNoSubstitutionTemplateLiteral } = require('typescript');
|
|
9
|
+
const { json } = require('stream/consumers');
|
|
10
|
+
const BOOTREQUEST = 1, DHCP_MESSAGE_TYPE = 0x35, DHCP_SERVER_ID = 0x36, DHCP_DISCOVER = 1, DHCP_INFORM = 8, DHCP_MINTYPE = DHCP_DISCOVER, DHCP_MAXTYPE = DHCP_INFORM, DHCP_REQUESTED_IP = 0x32, DHCP_HOST_NAME = 0x0c;
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @param opts
|
|
14
|
+
* @returns
|
|
15
|
+
*/
|
|
16
|
+
class dhcpd {
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
* @param opts
|
|
20
|
+
* @returns
|
|
21
|
+
*/
|
|
22
|
+
constructor(opts) {
|
|
23
|
+
let self = this;
|
|
24
|
+
if (!(self instanceof dhcpd)) {
|
|
25
|
+
return new dhcpd(opts);
|
|
26
|
+
}
|
|
27
|
+
ee.call(self);
|
|
28
|
+
if (opts.subnet) {
|
|
29
|
+
var block = new netmask(opts.subnet);
|
|
30
|
+
if (block) {
|
|
31
|
+
self.network = block.base;
|
|
32
|
+
self.netmask = block.mask;
|
|
33
|
+
self.broadcast = block.broadcast;
|
|
34
|
+
self.host = opts.host;
|
|
35
|
+
self.tftpserver = opts.tftpserver;
|
|
36
|
+
self.bios_filename = opts.bios_filename;
|
|
37
|
+
self.efi32_filename = opts.efi32_filename;
|
|
38
|
+
self.efi64_filename = opts.efi64_filename;
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
throw new Error("Unable to read subnet details from '" + opts.subnet + "'");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
// Listen on port 67 for all the DHCP messages from clients
|
|
45
|
+
self.s = new dhcp_server('udp4', { broadcast: self.broadcast });
|
|
46
|
+
self.s.on('listening', function () {
|
|
47
|
+
var address = self.s.address();
|
|
48
|
+
console.log('server listening: ' + address.address + ':' + address.port);
|
|
49
|
+
});
|
|
50
|
+
self.s.on('discover', self.discover.bind(self));
|
|
51
|
+
self.s.on('request', self.request.bind(self));
|
|
52
|
+
self.s.on('inform', self.inform.bind(self));
|
|
53
|
+
self.s.bind(67, '0.0.0.0');
|
|
54
|
+
// Listen on port 4011 for clients asking for proxy DHCP
|
|
55
|
+
self.p = new dhcp_proxy('udp4', { broadcast: self.broadcast });
|
|
56
|
+
self.p.on('listening', function () {
|
|
57
|
+
var address = self.p.address();
|
|
58
|
+
console.log('proxy listening: ' + address.address + ':' + address.port);
|
|
59
|
+
});
|
|
60
|
+
self.p.on('request', self.proxy_request.bind(self));
|
|
61
|
+
self.p.bind(4011, '0.0.0.0');
|
|
62
|
+
return self;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
*
|
|
66
|
+
* @param {*} pkt
|
|
67
|
+
* @returns
|
|
68
|
+
*/
|
|
69
|
+
pre_init(pkt) {
|
|
70
|
+
var self = this;
|
|
71
|
+
// Ignore malformed packets
|
|
72
|
+
if (pkt.hlen != 6)
|
|
73
|
+
return;
|
|
74
|
+
// Ignore if not a BOOTREQUEST
|
|
75
|
+
if (pkt.op != BOOTREQUEST)
|
|
76
|
+
return;
|
|
77
|
+
// Ignore if unknown message type
|
|
78
|
+
var state = _get_option(pkt, DHCP_MESSAGE_TYPE);
|
|
79
|
+
if (state == undefined || state['0'] < DHCP_MINTYPE || state['0'] > DHCP_MAXTYPE)
|
|
80
|
+
return;
|
|
81
|
+
// Ignore if DHCP message is not for us
|
|
82
|
+
var server_id_opt = _get_option(pkt, DHCP_SERVER_ID);
|
|
83
|
+
if (server_id_opt !== undefined && server_id_opt != self.host)
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
*
|
|
88
|
+
* @param {*} pkt
|
|
89
|
+
* @returns
|
|
90
|
+
*/
|
|
91
|
+
discover(pkt) {
|
|
92
|
+
var self = this;
|
|
93
|
+
console.log("Received DHCP DISCOVER");
|
|
94
|
+
if (pkt.options['60'] !== undefined && pkt.options['60'].indexOf('PXEClient') === 0) {
|
|
95
|
+
// Check if we are really being asked for PXE boot information
|
|
96
|
+
// Signal the client that we are a proxy dhcp by sending an OFFER
|
|
97
|
+
var offer = {};
|
|
98
|
+
offer.siaddr = self.host;
|
|
99
|
+
offer.options = {};
|
|
100
|
+
offer.options['60'] = 'PXEClient';
|
|
101
|
+
offer.options['54'] = self.host;
|
|
102
|
+
offer.options['255'] = null;
|
|
103
|
+
self.pre_init(pkt);
|
|
104
|
+
return self.s.offer(pkt, offer);
|
|
105
|
+
}
|
|
106
|
+
else if (pkt.options['60'] !== undefined && pkt.options['60'].indexOf('AAPLBSDPC/i386') === 0) {
|
|
107
|
+
console.log('Mac OS X discovery, ignoring');
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
console.log('Ignoring discovery as it does not seam to be a boot request');
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
*
|
|
117
|
+
* @param {*} pkt
|
|
118
|
+
* @returns
|
|
119
|
+
*/
|
|
120
|
+
request(pkt) {
|
|
121
|
+
var self = this;
|
|
122
|
+
console.log('Ignoring received REQUEST from ' + pkt.chaddr + ' as we are only a proxy');
|
|
123
|
+
return;
|
|
124
|
+
var offer = {};
|
|
125
|
+
offer.siaddr = self.host;
|
|
126
|
+
offer.options = {};
|
|
127
|
+
offer.options['54'] = self.host;
|
|
128
|
+
offer.options['255'] = null;
|
|
129
|
+
self.pre_init(pkt);
|
|
130
|
+
return self.s.ack(pkt, offer);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
*
|
|
134
|
+
* @param {*} pkt
|
|
135
|
+
* @returns
|
|
136
|
+
*/
|
|
137
|
+
inform(pkt) {
|
|
138
|
+
var self = this;
|
|
139
|
+
if (pkt.options['60'] !== undefined && pkt.options['60'].indexOf('AAPLBSDPC/i386') === 0) {
|
|
140
|
+
var offer = {};
|
|
141
|
+
offer.siaddr = self.tftpserver;
|
|
142
|
+
offer.ciaddr = pkt.remote.address;
|
|
143
|
+
offer.options = {};
|
|
144
|
+
offer.options['54'] = self.host;
|
|
145
|
+
offer.options['60'] = 'AAPLBSDPC';
|
|
146
|
+
offer.options['255'] = null;
|
|
147
|
+
if (pkt.options['43'] !== undefined && pkt.options['43'].indexOf('01:01:01') === 0) {
|
|
148
|
+
// Mac OS X client: BSDP list
|
|
149
|
+
offer.options['43'] = '01:01:01:04:02:80:00:07:04:81:00:05:2a:08:04:81:00:05:2a:09:0d:81:00:05:2a:08:69:50:58:45:2d:46:4f:47';
|
|
150
|
+
}
|
|
151
|
+
else if (pkt.options['43'] !== undefined && pkt.options['43'].indexOf('01:01:02') === 0) {
|
|
152
|
+
// Mac OS X client: BSDP select
|
|
153
|
+
offer.options['43'] = '01:01:02:08:04:81:00:05:2a:82:0a:4e:65:74:42:6f:6f:74:30:30:31';
|
|
154
|
+
pkt.fname = self.efi64_filename;
|
|
155
|
+
pkt.sname = '141.62.66.114';
|
|
156
|
+
}
|
|
157
|
+
else {
|
|
158
|
+
console.log('Unknown BSDP request, not answering');
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
return self.p.ack(pkt, offer);
|
|
162
|
+
}
|
|
163
|
+
else {
|
|
164
|
+
console.log('INFORM not by a Mac OS client, maybe Windows, ignoring');
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
*
|
|
170
|
+
* @param {*} pkt
|
|
171
|
+
* @returns
|
|
172
|
+
*/
|
|
173
|
+
proxy_request(pkt) {
|
|
174
|
+
var self = this;
|
|
175
|
+
console.log("Received Proxy DHCP REQUEST");
|
|
176
|
+
var offer = {};
|
|
177
|
+
offer.siaddr = self.tftpserver;
|
|
178
|
+
offer.options = {};
|
|
179
|
+
offer.options['54'] = self.host;
|
|
180
|
+
offer.options['255'] = null;
|
|
181
|
+
if (pkt.options['60'] !== undefined) {
|
|
182
|
+
var arch = pkt.options['60'];
|
|
183
|
+
if (arch.indexOf('00009') === 15 || arch.indexOf('00007') === 15) {
|
|
184
|
+
// var next = '192.168.1.17'
|
|
185
|
+
var fname = self.efi64_filename;
|
|
186
|
+
if (pkt.options["77"] === "iPXE") {
|
|
187
|
+
fname = `autoexec.ipxe`;
|
|
188
|
+
}
|
|
189
|
+
pkt.fname = fname;
|
|
190
|
+
// pkt.fname = self.efi_filename // vecchio
|
|
191
|
+
/*
|
|
192
|
+
console.log('====================================')
|
|
193
|
+
console.log('pkt: ' + JSON.stringify(pkt, '', 3))
|
|
194
|
+
console.log('====================================')
|
|
195
|
+
console.log('offer: ' + JSON.stringify(offer, '', 3))
|
|
196
|
+
console.log('====================================')
|
|
197
|
+
*/
|
|
198
|
+
}
|
|
199
|
+
else if (arch.indexOf('00006') === 15) {
|
|
200
|
+
pkt.fname = self.efi32_filename;
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
pkt.fname = self.bios_filename;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return self.p.ack(pkt, offer);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
*
|
|
211
|
+
*/
|
|
212
|
+
util.inherits(dhcpd, ee);
|
|
213
|
+
/**
|
|
214
|
+
*
|
|
215
|
+
* @param {*} pkt
|
|
216
|
+
* @param {*} opt
|
|
217
|
+
* @returns
|
|
218
|
+
*/
|
|
219
|
+
function _get_option(pkt, opt) {
|
|
220
|
+
return (opt in pkt.options) ? pkt.options[opt] : undefined;
|
|
221
|
+
}
|
|
222
|
+
module.exports = dhcpd;
|