penguins-eggs 9.8.1 → 10.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oclif.manifest.json +62 -62
- package/README.md +43 -40
- package/bin/dev.cmd +1 -1
- package/bin/dev.js +6 -6
- package/bin/run.js +3 -5
- package/conf/tools.yaml +1 -1
- package/dist/classes/bleach.d.ts +37 -0
- package/dist/classes/bleach.js +43 -91
- package/dist/classes/cfs.d.ts +17 -0
- package/dist/classes/cfs.js +15 -12
- package/dist/classes/compressors.d.ts +53 -0
- package/dist/classes/compressors.js +42 -47
- package/dist/classes/daddy.d.ts +18 -0
- package/dist/classes/daddy.js +92 -98
- package/dist/classes/distro.d.ts +26 -0
- package/dist/classes/distro.js +36 -37
- package/dist/classes/families/archlinux.d.ts +61 -0
- package/dist/classes/families/archlinux.js +52 -107
- package/dist/classes/families/debian.d.ts +65 -0
- package/dist/classes/families/debian.js +67 -142
- package/dist/classes/families/fedora.d.ts +52 -0
- package/dist/classes/families/fedora.js +42 -98
- package/dist/classes/families/mockup.d.ts +60 -0
- package/dist/classes/families/mockup.js +27 -46
- package/dist/classes/families/suse.d.ts +52 -0
- package/dist/classes/families/suse.js +44 -96
- package/dist/classes/incubation/branding.d.ts +17 -0
- package/dist/classes/incubation/branding.js +32 -36
- package/dist/classes/incubation/distros/bionic.d.ts +32 -0
- package/dist/classes/incubation/distros/bionic.js +11 -16
- package/dist/classes/incubation/distros/buster.d.ts +32 -0
- package/dist/classes/incubation/distros/buster.js +13 -18
- package/dist/classes/incubation/distros/focal.d.ts +32 -0
- package/dist/classes/incubation/distros/focal.js +11 -16
- package/dist/classes/incubation/distros/jessie.d.ts +31 -0
- package/dist/classes/incubation/distros/jessie.js +8 -13
- package/dist/classes/incubation/distros/rolling.d.ts +32 -0
- package/dist/classes/incubation/distros/rolling.js +11 -16
- package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +11 -0
- package/dist/classes/incubation/fisherman-helper/displaymanager.js +8 -9
- package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
- package/dist/classes/incubation/fisherman-helper/packages.js +17 -20
- package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
- package/dist/classes/incubation/fisherman-helper/settings.js +30 -28
- package/dist/classes/incubation/fisherman.d.ts +77 -0
- package/dist/classes/incubation/fisherman.js +135 -131
- package/dist/classes/incubation/incubator.d.ts +40 -0
- package/dist/classes/incubation/incubator.js +90 -89
- package/dist/classes/incubation/installer.d.ts +13 -0
- package/dist/classes/incubation/installer.js +27 -12
- package/dist/classes/initrd.d.ts +41 -0
- package/dist/classes/initrd.js +40 -42
- package/dist/classes/keyboards.d.ts +50 -0
- package/dist/classes/keyboards.js +108 -105
- package/dist/classes/locales.d.ts +21 -0
- package/dist/classes/locales.js +30 -34
- package/dist/classes/n8.d.ts +17 -0
- package/dist/classes/n8.js +16 -22
- package/dist/classes/network.d.ts +37 -0
- package/dist/classes/network.js +14 -18
- package/dist/classes/ovary.d.ts +205 -0
- package/dist/classes/ovary.js +1281 -1294
- package/dist/classes/pacman.d.ts +149 -0
- package/dist/classes/pacman.js +344 -418
- package/dist/classes/pve-live.d.ts +17 -0
- package/dist/classes/pve-live.js +22 -24
- package/dist/classes/pxe.d.ts +65 -0
- package/dist/classes/pxe.js +204 -206
- package/dist/classes/settings.d.ts +53 -0
- package/dist/classes/settings.js +91 -94
- package/dist/classes/sources_list.d.ts +28 -0
- package/dist/classes/sources_list.js +35 -39
- package/dist/classes/systemctl.d.ts +47 -0
- package/dist/classes/systemctl.js +34 -38
- package/dist/classes/tailor.d.ts +46 -0
- package/dist/classes/tailor.js +223 -239
- package/dist/classes/tools.d.ts +30 -0
- package/dist/classes/tools.js +18 -22
- package/dist/classes/users.d.ts +28 -0
- package/dist/classes/users.js +18 -22
- package/dist/classes/utils.d.ts +318 -0
- package/dist/classes/utils.js +78 -78
- package/dist/classes/xdg.d.ts +45 -0
- package/dist/classes/xdg.js +129 -133
- package/dist/classes/yolk.d.ts +33 -0
- package/dist/classes/yolk.js +53 -57
- package/dist/commands/adapt.d.ts +17 -0
- package/dist/commands/adapt.js +17 -21
- package/dist/commands/analyze.d.ts +26 -0
- package/dist/commands/analyze.js +56 -67
- package/dist/commands/calamares.d.ts +29 -0
- package/dist/commands/calamares.js +44 -48
- package/dist/commands/config.d.ts +36 -0
- package/dist/commands/config.js +115 -137
- package/dist/commands/cuckoo.d.ts +16 -0
- package/dist/commands/cuckoo.js +20 -24
- package/dist/commands/dad.d.ts +19 -0
- package/dist/commands/dad.js +20 -24
- package/dist/commands/export/deb.d.ts +19 -0
- package/dist/commands/export/deb.js +19 -23
- package/dist/commands/export/iso.d.ts +19 -0
- package/dist/commands/export/iso.js +19 -23
- package/dist/commands/install.d.ts +37 -0
- package/dist/commands/install.js +46 -50
- package/dist/commands/kill.d.ts +24 -0
- package/dist/commands/kill.js +25 -29
- package/dist/commands/mom.d.ts +16 -0
- package/dist/commands/mom.js +16 -18
- package/dist/commands/produce.d.ts +33 -0
- package/dist/commands/produce.js +64 -66
- package/dist/commands/status.d.ts +23 -0
- package/dist/commands/status.js +10 -14
- package/dist/commands/syncfrom.d.ts +45 -0
- package/dist/commands/syncfrom.js +85 -89
- package/dist/commands/syncto.d.ts +40 -0
- package/dist/commands/syncto.js +91 -95
- package/dist/commands/tools/clean.d.ts +18 -0
- package/dist/commands/tools/clean.js +17 -21
- package/dist/commands/tools/ppa.d.ts +26 -0
- package/dist/commands/tools/ppa.js +41 -45
- package/dist/commands/tools/skel.d.ts +18 -0
- package/dist/commands/tools/skel.js +22 -26
- package/dist/commands/tools/stat.d.ts +31 -0
- package/dist/commands/tools/stat.js +15 -19
- package/dist/commands/tools/yolk.d.ts +24 -0
- package/dist/commands/tools/yolk.js +19 -23
- package/dist/commands/update.d.ts +47 -0
- package/dist/commands/update.js +62 -66
- package/dist/commands/wardrobe/get.d.ts +23 -0
- package/dist/commands/wardrobe/get.js +19 -23
- package/dist/commands/wardrobe/list.d.ts +24 -0
- package/dist/commands/wardrobe/list.js +61 -60
- package/dist/commands/wardrobe/show.d.ts +25 -0
- package/dist/commands/wardrobe/show.js +50 -47
- package/dist/commands/wardrobe/wear.d.ts +26 -0
- package/dist/commands/wardrobe/wear.js +32 -36
- package/dist/components/finished.d.ts +15 -0
- package/dist/components/finished.js +37 -42
- package/dist/components/information.d.ts +8 -0
- package/dist/components/information.js +155 -0
- package/dist/components/install.d.ts +15 -0
- package/dist/components/install.js +31 -35
- package/dist/components/keyboard.d.ts +16 -0
- package/dist/components/keyboard.js +37 -40
- package/dist/components/location.d.ts +16 -0
- package/dist/components/location.js +38 -38
- package/dist/components/network.d.ts +19 -0
- package/dist/components/network.js +47 -48
- package/dist/components/partitions.d.ts +16 -0
- package/dist/components/partitions.js +47 -51
- package/dist/components/steps.d.ts +13 -0
- package/dist/components/steps.js +148 -0
- package/dist/components/summary.d.ts +24 -0
- package/dist/components/summary.js +50 -54
- package/dist/components/title.d.ts +12 -0
- package/dist/components/title.js +35 -0
- package/dist/components/users.d.ts +24 -0
- package/dist/components/users.js +43 -43
- package/dist/components/welcome.d.ts +13 -0
- package/dist/components/welcome.js +37 -38
- package/dist/index.d.ts +8 -0
- package/dist/index.js +8 -5
- package/dist/interfaces/i-addons.d.ts +13 -0
- package/dist/interfaces/i-addons.js +8 -3
- package/dist/interfaces/i-analyze.d.ts +17 -0
- package/dist/interfaces/i-analyze.js +7 -10
- package/dist/interfaces/i-app.d.ts +14 -0
- package/dist/interfaces/i-app.js +8 -2
- package/dist/interfaces/i-branding.d.ts +36 -0
- package/dist/interfaces/i-branding.js +8 -2
- package/dist/interfaces/i-calamares-partition.d.ts +18 -0
- package/dist/interfaces/i-calamares-partition.js +3 -4
- package/dist/interfaces/i-config-tools.d.ts +18 -0
- package/dist/interfaces/i-config-tools.js +8 -2
- package/dist/interfaces/i-devices.d.ts +20 -0
- package/dist/interfaces/i-devices.js +8 -2
- package/dist/interfaces/i-distro.d.ts +27 -0
- package/dist/interfaces/i-distro.js +3 -4
- package/dist/interfaces/i-drive-list.d.ts +33 -0
- package/dist/interfaces/i-drive-list.js +3 -4
- package/dist/interfaces/i-eggs-config.d.ts +32 -0
- package/dist/interfaces/i-eggs-config.js +3 -4
- package/dist/interfaces/i-excludes.d.ts +14 -0
- package/dist/interfaces/i-excludes.js +8 -2
- package/dist/interfaces/i-exec.d.ts +11 -0
- package/dist/interfaces/i-exec.js +3 -4
- package/dist/interfaces/i-initrd.d.ts +13 -0
- package/dist/interfaces/i-initrd.js +8 -2
- package/dist/interfaces/i-install.d.ts +16 -0
- package/dist/interfaces/i-install.js +8 -2
- package/dist/interfaces/i-installer.d.ts +17 -0
- package/dist/interfaces/i-installer.js +8 -2
- package/dist/interfaces/i-krill-config.d.ts +33 -0
- package/dist/interfaces/i-krill-config.js +3 -4
- package/dist/interfaces/i-krill.d.ts +42 -0
- package/dist/interfaces/i-krill.js +8 -2
- package/dist/interfaces/i-materia.d.ts +41 -0
- package/dist/interfaces/i-materia.js +8 -2
- package/dist/interfaces/i-net.d.ts +16 -0
- package/dist/interfaces/i-net.js +8 -2
- package/dist/interfaces/i-packages.d.ts +29 -0
- package/dist/interfaces/i-packages.js +3 -4
- package/dist/interfaces/i-partitions.d.ts +16 -0
- package/dist/interfaces/i-partitions.js +8 -2
- package/dist/interfaces/i-pxe.d.ts +21 -0
- package/dist/interfaces/i-pxe.js +8 -39
- package/dist/interfaces/i-remix.d.ts +21 -0
- package/dist/interfaces/i-remix.js +3 -4
- package/dist/interfaces/i-settings.d.ts +39 -0
- package/dist/interfaces/i-settings.js +8 -2
- package/dist/interfaces/i-user.d.ts +14 -0
- package/dist/interfaces/i-user.js +8 -2
- package/dist/interfaces/i-workdir.d.ts +14 -0
- package/dist/interfaces/i-workdir.js +8 -2
- package/dist/interfaces/i-xkb-model.d.ts +24 -0
- package/dist/interfaces/i-xkb-model.js +8 -2
- package/dist/interfaces/index.d.ts +25 -0
- package/dist/interfaces/index.js +3 -4
- package/dist/krill/modules/add-user.d.ts +20 -0
- package/dist/krill/modules/add-user.js +11 -15
- package/dist/krill/modules/bootloader-config-arch.d.ts +14 -0
- package/dist/krill/modules/bootloader-config-arch.js +15 -11
- package/dist/krill/modules/bootloader-config-debian.d.ts +10 -0
- package/dist/krill/modules/bootloader-config-debian.js +20 -16
- package/dist/krill/modules/bootloader-config.d.ts +10 -0
- package/dist/krill/modules/bootloader-config.js +3 -6
- package/dist/krill/modules/bootloader.d.ts +14 -0
- package/dist/krill/modules/bootloader.js +9 -13
- package/dist/krill/modules/change-password.d.ts +15 -0
- package/dist/krill/modules/change-password.js +5 -8
- package/dist/krill/modules/del-live-user.d.ts +14 -0
- package/dist/krill/modules/del-live-user.js +8 -12
- package/dist/krill/modules/fstab.d.ts +14 -0
- package/dist/krill/modules/fstab.js +33 -37
- package/dist/krill/modules/grubcfg.d.ts +17 -0
- package/dist/krill/modules/grubcfg.js +8 -17
- package/dist/krill/modules/hostname.d.ts +13 -0
- package/dist/krill/modules/hostname.js +11 -17
- package/dist/krill/modules/initramfs-cfg.d.ts +14 -0
- package/dist/krill/modules/initramfs-cfg.js +6 -15
- package/dist/krill/modules/initramfs.d.ts +13 -0
- package/dist/krill/modules/initramfs.js +17 -19
- package/dist/krill/modules/locale-cfg.d.ts +10 -0
- package/dist/krill/modules/locale-cfg.js +8 -12
- package/dist/krill/modules/locale.d.ts +13 -0
- package/dist/krill/modules/locale.js +7 -11
- package/dist/krill/modules/m-keyboard.d.ts +14 -0
- package/dist/krill/modules/m-keyboard.js +14 -18
- package/dist/krill/modules/m-timezone.d.ts +14 -0
- package/dist/krill/modules/m-timezone.js +8 -12
- package/dist/krill/modules/machine-id.d.ts +15 -0
- package/dist/krill/modules/machine-id.js +6 -10
- package/dist/krill/modules/mkfs.d.ts +13 -0
- package/dist/krill/modules/mkfs.js +10 -13
- package/dist/krill/modules/mount-fs.d.ts +17 -0
- package/dist/krill/modules/mount-fs.js +20 -26
- package/dist/krill/modules/mount-vfs.d.ts +17 -0
- package/dist/krill/modules/mount-vfs.js +16 -21
- package/dist/krill/modules/network-cfg.d.ts +19 -0
- package/dist/krill/modules/network-cfg.js +16 -20
- package/dist/krill/modules/packages.d.ts +14 -0
- package/dist/krill/modules/packages.js +17 -21
- package/dist/krill/modules/partition.d.ts +20 -0
- package/dist/krill/modules/partition.js +78 -84
- package/dist/krill/modules/remove-installer-link.d.ts +13 -0
- package/dist/krill/modules/remove-installer-link.js +7 -11
- package/dist/krill/modules/umount.d.ts +14 -0
- package/dist/krill/modules/umount.js +9 -13
- package/dist/krill/modules/unpackfs.d.ts +13 -0
- package/dist/krill/modules/unpackfs.js +7 -11
- package/dist/krill/prepare.d.ts +77 -0
- package/dist/krill/{krill-prepare.js → prepare.js} +118 -124
- package/dist/krill/sequence.d.ts +156 -0
- package/dist/krill/{krill-sequence.js → sequence.js} +166 -170
- package/dist/lib/cli-autologin.d.ts +43 -0
- package/dist/lib/cli-autologin.js +88 -92
- package/dist/lib/get_address.d.ts +8 -0
- package/dist/lib/get_address.js +9 -11
- package/dist/lib/get_dns.d.ts +8 -0
- package/dist/lib/get_dns.js +9 -11
- package/dist/lib/get_domain.d.ts +8 -0
- package/dist/lib/get_domain.js +9 -11
- package/dist/lib/get_gateway.d.ts +8 -0
- package/dist/lib/get_gateway.js +9 -11
- package/dist/lib/get_hostname.d.ts +8 -0
- package/dist/lib/get_hostname.js +9 -11
- package/dist/lib/get_netmask.d.ts +8 -0
- package/dist/lib/get_netmask.js +9 -11
- package/dist/lib/get_password.d.ts +8 -0
- package/dist/lib/get_password.js +10 -13
- package/dist/lib/get_userfullname.d.ts +8 -0
- package/dist/lib/get_userfullname.js +9 -11
- package/dist/lib/get_username.d.ts +8 -0
- package/dist/lib/get_username.js +9 -12
- package/dist/lib/kill_me_softly.d.ts +11 -0
- package/dist/lib/kill_me_softly.js +19 -24
- package/dist/lib/select_address_type.d.ts +8 -0
- package/dist/lib/select_address_type.js +9 -12
- package/dist/lib/select_filesystem_type.d.ts +8 -0
- package/dist/lib/select_filesystem_type.js +15 -18
- package/dist/lib/select_installation_device.d.ts +8 -0
- package/dist/lib/select_installation_device.js +11 -15
- package/dist/lib/select_installation_mode.d.ts +8 -0
- package/dist/lib/select_installation_mode.js +9 -11
- package/dist/lib/select_interface.d.ts +8 -0
- package/dist/lib/select_interface.js +9 -12
- package/dist/lib/select_keyboard_layout.d.ts +11 -0
- package/dist/lib/select_keyboard_layout.js +11 -15
- package/dist/lib/select_keyboard_model.d.ts +11 -0
- package/dist/lib/select_keyboard_model.js +11 -15
- package/dist/lib/select_keyboard_option.d.ts +11 -0
- package/dist/lib/select_keyboard_option.js +11 -15
- package/dist/lib/select_keyboard_variant.d.ts +11 -0
- package/dist/lib/select_keyboard_variant.js +11 -15
- package/dist/lib/select_languages.d.ts +8 -0
- package/dist/lib/select_languages.js +11 -15
- package/dist/lib/select_regions.d.ts +8 -0
- package/dist/lib/select_regions.js +9 -11
- package/dist/lib/select_user_swap_choice.d.ts +8 -0
- package/dist/lib/select_user_swap_choice.js +13 -17
- package/dist/lib/select_zones.d.ts +8 -0
- package/dist/lib/select_zones.js +9 -11
- package/dist/lib/utils.d.ts +34 -0
- package/dist/lib/utils.js +24 -14
- package/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +10 -10
- package/package.json +48 -69
- package/LICENSE +0 -339
- package/bin/dev +0 -17
- package/bin/run +0 -5
- package/dist/components/elements/information.js +0 -194
- package/dist/components/elements/steps.js +0 -152
- package/dist/components/elements/title.js +0 -36
- package/dist/lib/dependencies.js +0 -121
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/lib/cli-autologin.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* CliAutologin
|
|
10
|
+
*/
|
|
11
|
+
export default class CliAutologin {
|
|
12
|
+
addAutologin(distro: string, version: string, user: string, userPasswd: string, rootPasswd: string, chroot?: string): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
* @param distro
|
|
16
|
+
* @param version
|
|
17
|
+
* @param user
|
|
18
|
+
* @param userPasswd
|
|
19
|
+
* @param rootPasswd
|
|
20
|
+
* @param chroot
|
|
21
|
+
*/
|
|
22
|
+
addIssue(distro: string, version: string, user: string, userPasswd: string, rootPasswd: string, chroot?: string): Promise<void>;
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
* @param distro
|
|
26
|
+
* @param version
|
|
27
|
+
* @param user
|
|
28
|
+
* @param userPasswd
|
|
29
|
+
* @param rootPasswd
|
|
30
|
+
* @param chroot
|
|
31
|
+
*/
|
|
32
|
+
addMotd(distro: string, version: string, user: string, userPasswd: string, rootPasswd: string, chroot?: string): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
*
|
|
35
|
+
* @param path
|
|
36
|
+
*/
|
|
37
|
+
msgRemove(path: string): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
*
|
|
40
|
+
* @param chroot
|
|
41
|
+
*/
|
|
42
|
+
remove(chroot?: string): Promise<void>;
|
|
43
|
+
}
|
|
@@ -1,21 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* ./src/lib/cli-autologin.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
5
4
|
* author: Piero Proietti
|
|
6
5
|
* email: piero.proietti@gmail.com
|
|
7
6
|
* license: MIT
|
|
8
7
|
*/
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const pacman_1 = tslib_1.__importDefault(require("../classes/pacman"));
|
|
16
|
-
const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
8
|
+
import chalk from 'chalk';
|
|
9
|
+
import fs from 'node:fs';
|
|
10
|
+
import path from 'node:path';
|
|
11
|
+
import shx from 'shelljs';
|
|
12
|
+
import Pacman from '../classes/pacman.js';
|
|
13
|
+
import Utils from '../classes/utils.js';
|
|
17
14
|
// libraries
|
|
18
|
-
|
|
15
|
+
import { exec } from '../lib/utils.js';
|
|
19
16
|
const startMessage = 'eggs-start-message';
|
|
20
17
|
const stopMessage = 'eggs-stop-message';
|
|
21
18
|
/*
|
|
@@ -25,28 +22,28 @@ const stopMessage = 'eggs-stop-message';
|
|
|
25
22
|
/**
|
|
26
23
|
* CliAutologin
|
|
27
24
|
*/
|
|
28
|
-
class CliAutologin {
|
|
25
|
+
export default class CliAutologin {
|
|
29
26
|
async addAutologin(distro, version, user, userPasswd, rootPasswd, chroot = '/') {
|
|
30
|
-
if (
|
|
27
|
+
if (Utils.isSystemd()) {
|
|
31
28
|
/**
|
|
32
29
|
* Systemd
|
|
33
30
|
*/
|
|
34
31
|
const fileOverride = `${chroot}/etc/systemd/system/getty@.service.d/override.conf`;
|
|
35
|
-
const dirOverride =
|
|
36
|
-
if (
|
|
37
|
-
|
|
32
|
+
const dirOverride = path.dirname(fileOverride);
|
|
33
|
+
if (fs.existsSync(dirOverride)) {
|
|
34
|
+
shx.exec(`rm ${dirOverride} -rf`);
|
|
38
35
|
}
|
|
39
|
-
|
|
36
|
+
shx.exec(`mkdir ${dirOverride}`);
|
|
40
37
|
let content = '';
|
|
41
38
|
content += '[Service]' + '\n';
|
|
42
39
|
content += 'ExecStart=' + '\n';
|
|
43
40
|
content += 'ExecStart=-/sbin/agetty --noclear --autologin ' + user + ' %I $TERM' + '\n';
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
fs.writeFileSync(fileOverride, content);
|
|
42
|
+
shx.exec(`chmod +x ${fileOverride}`);
|
|
46
43
|
await this.addIssue(distro, version, user, userPasswd, rootPasswd, chroot);
|
|
47
44
|
await this.addMotd(distro, version, user, userPasswd, rootPasswd, chroot);
|
|
48
45
|
}
|
|
49
|
-
else if (
|
|
46
|
+
else if (Utils.isSysvinit()) {
|
|
50
47
|
/**
|
|
51
48
|
* sysvinit
|
|
52
49
|
*/
|
|
@@ -55,55 +52,36 @@ class CliAutologin {
|
|
|
55
52
|
// const replace = `1:2345:respawn:/sbin/getty --noclear --autologin ${user} 38400 tty1`
|
|
56
53
|
const replace = `1:2345:respawn:/sbin/getty --autologin ${user} 38400 tty1`;
|
|
57
54
|
let content = '';
|
|
58
|
-
const lines =
|
|
55
|
+
const lines = fs.readFileSync(inittab, 'utf8').split('\n');
|
|
59
56
|
for (let i = 0; i < lines.length; i++) {
|
|
60
57
|
if (lines[i].includes(search)) {
|
|
61
58
|
lines[i] = replace;
|
|
62
59
|
}
|
|
63
60
|
content += lines[i] + '\n';
|
|
64
61
|
}
|
|
65
|
-
|
|
62
|
+
fs.writeFileSync(inittab, content, 'utf-8');
|
|
66
63
|
await this.addIssue(distro, version, user, userPasswd, rootPasswd, chroot);
|
|
67
64
|
await this.addMotd(distro, version, user, userPasswd, rootPasswd, chroot);
|
|
68
65
|
}
|
|
69
66
|
}
|
|
70
67
|
/**
|
|
71
68
|
*
|
|
69
|
+
* @param distro
|
|
70
|
+
* @param version
|
|
71
|
+
* @param user
|
|
72
|
+
* @param userPasswd
|
|
73
|
+
* @param rootPasswd
|
|
72
74
|
* @param chroot
|
|
73
75
|
*/
|
|
74
|
-
async
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
}
|
|
84
|
-
this.msgRemove(`${chroot}/etc/motd`);
|
|
85
|
-
this.msgRemove(`${chroot}/etc/issue`);
|
|
86
|
-
}
|
|
87
|
-
else if (utils_1.default.isSysvinit()) {
|
|
88
|
-
/**
|
|
89
|
-
* sysvinit
|
|
90
|
-
*/
|
|
91
|
-
const inittab = chroot + '/etc/inittab';
|
|
92
|
-
const search = '1:2345:respawn:/sbin/getty';
|
|
93
|
-
// const replace = `1:2345:respawn:/sbin/getty --noclear 38400 tty1 `
|
|
94
|
-
const replace = '1:2345:respawn:/sbin/getty 38400 tty1 ';
|
|
95
|
-
let content = '';
|
|
96
|
-
const lines = fs_1.default.readFileSync(inittab, 'utf-8').split('\n');
|
|
97
|
-
for (let i = 0; i < lines.length; i++) {
|
|
98
|
-
if (lines[i].includes(search)) {
|
|
99
|
-
lines[i] = replace;
|
|
100
|
-
}
|
|
101
|
-
content += lines[i] + '\n';
|
|
102
|
-
}
|
|
103
|
-
fs_1.default.writeFileSync(inittab, content, 'utf-8');
|
|
104
|
-
this.msgRemove(`${chroot}/etc/motd`);
|
|
105
|
-
this.msgRemove(`${chroot}/etc/issue`);
|
|
106
|
-
} // to add: openrc and runit for Devuan
|
|
76
|
+
async addIssue(distro, version, user, userPasswd, rootPasswd, chroot = '/') {
|
|
77
|
+
const fileIssue = `${chroot}/etc/issue`;
|
|
78
|
+
this.msgRemove(fileIssue);
|
|
79
|
+
const eggsIssue = fs.readFileSync(fileIssue, 'utf8');
|
|
80
|
+
// eggsIssue += startMessage + '\n'
|
|
81
|
+
// eggsIssue += `This is a ${distro}/${version} system created by Penguins' eggs.\n`
|
|
82
|
+
// eggsIssue += 'You can login with user: ' + chalk.bold(user) + ' and password: ' + chalk.bold(userPasswd) + ', root password: ' + chalk.bold(rootPasswd) + '\n'
|
|
83
|
+
// eggsIssue += stopMessage + '\n'
|
|
84
|
+
fs.writeFileSync(fileIssue, eggsIssue);
|
|
107
85
|
}
|
|
108
86
|
/**
|
|
109
87
|
*
|
|
@@ -117,57 +95,38 @@ class CliAutologin {
|
|
|
117
95
|
async addMotd(distro, version, user, userPasswd, rootPasswd, chroot = '/') {
|
|
118
96
|
const fileMotd = `${chroot}/etc/motd`;
|
|
119
97
|
let installer = 'sudo eggs install';
|
|
120
|
-
if (
|
|
121
|
-
if (
|
|
98
|
+
if (Pacman.calamaresExists()) {
|
|
99
|
+
if (Pacman.packageIsInstalled('plasma-desktop')) {
|
|
122
100
|
installer = 'startplasma-wayland to run GUI and launch calamares';
|
|
123
101
|
}
|
|
124
|
-
else if (
|
|
102
|
+
else if (Pacman.packageIsInstalled('xfce4')) {
|
|
125
103
|
installer = 'startxfce4 to run GUI and launch calamares installer';
|
|
126
104
|
}
|
|
127
105
|
}
|
|
128
|
-
if (!
|
|
129
|
-
await
|
|
106
|
+
if (!fs.existsSync(fileMotd)) {
|
|
107
|
+
await exec(`touch ${fileMotd}`);
|
|
130
108
|
}
|
|
131
109
|
this.msgRemove(fileMotd);
|
|
132
|
-
let eggsMotd =
|
|
110
|
+
let eggsMotd = fs.readFileSync(fileMotd, 'utf8');
|
|
133
111
|
eggsMotd += startMessage + '\n';
|
|
134
|
-
eggsMotd +=
|
|
135
|
-
eggsMotd += 'You are logged as: ' +
|
|
136
|
-
eggsMotd += 'install : ' +
|
|
137
|
-
eggsMotd += ' unattended : ' +
|
|
138
|
-
eggsMotd += ' unattended custom : ' +
|
|
139
|
-
eggsMotd += 'PXE server : ' +
|
|
112
|
+
eggsMotd += Utils.flag() + '\n';
|
|
113
|
+
eggsMotd += 'You are logged as: ' + chalk.bold(user) + ' your password is: ' + chalk.bold(userPasswd) + ', root password: ' + chalk.bold(rootPasswd) + '\n\n';
|
|
114
|
+
eggsMotd += 'install : ' + chalk.bold(installer) + '\n';
|
|
115
|
+
eggsMotd += ' unattended : ' + chalk.bold('sudo eggs install --unattended # us configuration') + '\n';
|
|
116
|
+
eggsMotd += ' unattended custom : ' + chalk.bold('sudo eggs install --custom [ br | it | yours ]') + '\n';
|
|
117
|
+
eggsMotd += 'PXE server : ' + chalk.bold('sudo eggs cuckoo') + '\n';
|
|
140
118
|
eggsMotd += '(*) to get your custom unattended configuration: fork https://github.com/pieroproietti/penguins-wardrobe' + '\n';
|
|
141
119
|
eggsMotd += ' create your configuration in /config and ask for a Pull Request' + '\n';
|
|
142
120
|
eggsMotd += stopMessage + '\n';
|
|
143
|
-
|
|
144
|
-
}
|
|
145
|
-
/**
|
|
146
|
-
*
|
|
147
|
-
* @param distro
|
|
148
|
-
* @param version
|
|
149
|
-
* @param user
|
|
150
|
-
* @param userPasswd
|
|
151
|
-
* @param rootPasswd
|
|
152
|
-
* @param chroot
|
|
153
|
-
*/
|
|
154
|
-
async addIssue(distro, version, user, userPasswd, rootPasswd, chroot = '/') {
|
|
155
|
-
const fileIssue = `${chroot}/etc/issue`;
|
|
156
|
-
this.msgRemove(fileIssue);
|
|
157
|
-
const eggsIssue = fs_1.default.readFileSync(fileIssue, 'utf-8');
|
|
158
|
-
// eggsIssue += startMessage + '\n'
|
|
159
|
-
// eggsIssue += `This is a ${distro}/${version} system created by Penguins' eggs.\n`
|
|
160
|
-
// eggsIssue += 'You can login with user: ' + chalk.bold(user) + ' and password: ' + chalk.bold(userPasswd) + ', root password: ' + chalk.bold(rootPasswd) + '\n'
|
|
161
|
-
// eggsIssue += stopMessage + '\n'
|
|
162
|
-
fs_1.default.writeFileSync(fileIssue, eggsIssue);
|
|
121
|
+
fs.writeFileSync(fileMotd, eggsMotd);
|
|
163
122
|
}
|
|
164
123
|
/**
|
|
165
124
|
*
|
|
166
125
|
* @param path
|
|
167
126
|
*/
|
|
168
127
|
async msgRemove(path) {
|
|
169
|
-
if (
|
|
170
|
-
const rows =
|
|
128
|
+
if (fs.existsSync(path)) {
|
|
129
|
+
const rows = fs.readFileSync(path, 'utf8').split('\n');
|
|
171
130
|
let cleaned = '';
|
|
172
131
|
let remove = false;
|
|
173
132
|
for (const row of rows) {
|
|
@@ -181,8 +140,45 @@ class CliAutologin {
|
|
|
181
140
|
remove = false;
|
|
182
141
|
}
|
|
183
142
|
}
|
|
184
|
-
|
|
143
|
+
fs.writeFileSync(path, cleaned, 'utf-8');
|
|
185
144
|
}
|
|
186
145
|
}
|
|
146
|
+
/**
|
|
147
|
+
*
|
|
148
|
+
* @param chroot
|
|
149
|
+
*/
|
|
150
|
+
async remove(chroot = '/') {
|
|
151
|
+
if (Utils.isSystemd()) {
|
|
152
|
+
/**
|
|
153
|
+
* Systemd
|
|
154
|
+
*/
|
|
155
|
+
const fileOverride = `${chroot}/etc/systemd/system/getty@.service.d/override.conf`;
|
|
156
|
+
const dirOverride = path.dirname(fileOverride);
|
|
157
|
+
if (fs.existsSync(dirOverride)) {
|
|
158
|
+
shx.exec(`rm ${dirOverride} -rf`);
|
|
159
|
+
}
|
|
160
|
+
this.msgRemove(`${chroot}/etc/motd`);
|
|
161
|
+
this.msgRemove(`${chroot}/etc/issue`);
|
|
162
|
+
}
|
|
163
|
+
else if (Utils.isSysvinit()) {
|
|
164
|
+
/**
|
|
165
|
+
* sysvinit
|
|
166
|
+
*/
|
|
167
|
+
const inittab = chroot + '/etc/inittab';
|
|
168
|
+
const search = '1:2345:respawn:/sbin/getty';
|
|
169
|
+
// const replace = `1:2345:respawn:/sbin/getty --noclear 38400 tty1 `
|
|
170
|
+
const replace = '1:2345:respawn:/sbin/getty 38400 tty1 ';
|
|
171
|
+
let content = '';
|
|
172
|
+
const lines = fs.readFileSync(inittab, 'utf8').split('\n');
|
|
173
|
+
for (let i = 0; i < lines.length; i++) {
|
|
174
|
+
if (lines[i].includes(search)) {
|
|
175
|
+
lines[i] = replace;
|
|
176
|
+
}
|
|
177
|
+
content += lines[i] + '\n';
|
|
178
|
+
}
|
|
179
|
+
fs.writeFileSync(inittab, content, 'utf-8');
|
|
180
|
+
this.msgRemove(`${chroot}/etc/motd`);
|
|
181
|
+
this.msgRemove(`${chroot}/etc/issue`);
|
|
182
|
+
} // to add: openrc and runit for Devuan
|
|
183
|
+
}
|
|
187
184
|
}
|
|
188
|
-
exports.default = CliAutologin;
|
package/dist/lib/get_address.js
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* ./src/lib/get_address.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
4
|
* author: Piero Proietti
|
|
5
5
|
* email: piero.proietti@gmail.com
|
|
6
6
|
* license: MIT
|
|
7
7
|
*/
|
|
8
8
|
'use strict';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return new Promise(function (resolve) {
|
|
9
|
+
import inquirer from 'inquirer';
|
|
10
|
+
export default async function getAddress(initial) {
|
|
11
|
+
return new Promise((resolve) => {
|
|
13
12
|
const questions = [
|
|
14
13
|
{
|
|
15
|
-
type: 'input',
|
|
16
|
-
name: 'address',
|
|
17
|
-
message: 'What is ip address of this computer? ',
|
|
18
14
|
default: initial,
|
|
15
|
+
message: 'What is ip address of this computer? ',
|
|
16
|
+
name: 'address',
|
|
17
|
+
type: 'input',
|
|
19
18
|
},
|
|
20
19
|
];
|
|
21
|
-
inquirer.prompt(questions).then(
|
|
20
|
+
inquirer.prompt(questions).then((options) => {
|
|
22
21
|
resolve(options.address);
|
|
23
22
|
});
|
|
24
23
|
});
|
|
25
24
|
}
|
|
26
|
-
exports.default = getAddress;
|
package/dist/lib/get_dns.js
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* ./src/lib/get_dns.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
4
|
* author: Piero Proietti
|
|
5
5
|
* email: piero.proietti@gmail.com
|
|
6
6
|
* license: MIT
|
|
7
7
|
*/
|
|
8
8
|
'use strict';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return new Promise(function (resolve) {
|
|
9
|
+
import inquirer from 'inquirer';
|
|
10
|
+
export default async function getDns(initial) {
|
|
11
|
+
return new Promise((resolve) => {
|
|
13
12
|
const questions = [
|
|
14
13
|
{
|
|
15
|
-
type: 'input',
|
|
16
|
-
name: 'dns',
|
|
17
|
-
message: 'use ; to separe: ',
|
|
18
14
|
default: initial,
|
|
15
|
+
message: 'use ; to separe: ',
|
|
16
|
+
name: 'dns',
|
|
17
|
+
type: 'input',
|
|
19
18
|
},
|
|
20
19
|
];
|
|
21
|
-
inquirer.prompt(questions).then(
|
|
20
|
+
inquirer.prompt(questions).then((options) => {
|
|
22
21
|
resolve(options.dns);
|
|
23
22
|
});
|
|
24
23
|
});
|
|
25
24
|
}
|
|
26
|
-
exports.default = getDns;
|
package/dist/lib/get_domain.js
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* ./src/lib/get_domain.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
4
|
* author: Piero Proietti
|
|
5
5
|
* email: piero.proietti@gmail.com
|
|
6
6
|
* license: MIT
|
|
7
7
|
*/
|
|
8
8
|
'use strict';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return new Promise(function (resolve) {
|
|
9
|
+
import inquirer from 'inquirer';
|
|
10
|
+
export default async function getDomain(initial = '') {
|
|
11
|
+
return new Promise((resolve) => {
|
|
13
12
|
const questions = [
|
|
14
13
|
{
|
|
15
|
-
type: 'input',
|
|
16
|
-
name: 'domain',
|
|
17
|
-
message: 'What is domain of this network? ',
|
|
18
14
|
default: initial,
|
|
15
|
+
message: 'What is domain of this network? ',
|
|
16
|
+
name: 'domain',
|
|
17
|
+
type: 'input',
|
|
19
18
|
},
|
|
20
19
|
];
|
|
21
|
-
inquirer.prompt(questions).then(
|
|
20
|
+
inquirer.prompt(questions).then((options) => {
|
|
22
21
|
resolve(options.domain);
|
|
23
22
|
});
|
|
24
23
|
});
|
|
25
24
|
}
|
|
26
|
-
exports.default = getDomain;
|
package/dist/lib/get_gateway.js
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* ./src/lib/get_gateway.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
4
|
* author: Piero Proietti
|
|
5
5
|
* email: piero.proietti@gmail.com
|
|
6
6
|
* license: MIT
|
|
7
7
|
*/
|
|
8
8
|
'use strict';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return new Promise(function (resolve) {
|
|
9
|
+
import inquirer from 'inquirer';
|
|
10
|
+
export default async function getGateway(initial) {
|
|
11
|
+
return new Promise((resolve) => {
|
|
13
12
|
const questions = [
|
|
14
13
|
{
|
|
15
|
-
type: 'input',
|
|
16
|
-
name: 'gateway',
|
|
17
|
-
message: 'What is gateway of this network? ',
|
|
18
14
|
default: initial,
|
|
15
|
+
message: 'What is gateway of this network? ',
|
|
16
|
+
name: 'gateway',
|
|
17
|
+
type: 'input',
|
|
19
18
|
},
|
|
20
19
|
];
|
|
21
|
-
inquirer.prompt(questions).then(
|
|
20
|
+
inquirer.prompt(questions).then((options) => {
|
|
22
21
|
resolve(options.gateway);
|
|
23
22
|
});
|
|
24
23
|
});
|
|
25
24
|
}
|
|
26
|
-
exports.default = getGateway;
|
package/dist/lib/get_hostname.js
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* ./src/lib/get_hostname.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
4
|
* author: Piero Proietti
|
|
5
5
|
* email: piero.proietti@gmail.com
|
|
6
6
|
* license: MIT
|
|
7
7
|
*/
|
|
8
8
|
'use strict';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return new Promise(function (resolve) {
|
|
9
|
+
import inquirer from 'inquirer';
|
|
10
|
+
export default async function getHostname(initial) {
|
|
11
|
+
return new Promise((resolve) => {
|
|
13
12
|
const questions = [
|
|
14
13
|
{
|
|
15
|
-
type: 'input',
|
|
16
|
-
name: 'hostname',
|
|
17
|
-
message: 'Choose a name for this computer? ',
|
|
18
14
|
default: initial,
|
|
15
|
+
message: 'Choose a name for this computer? ',
|
|
16
|
+
name: 'hostname',
|
|
17
|
+
type: 'input',
|
|
19
18
|
},
|
|
20
19
|
];
|
|
21
|
-
inquirer.prompt(questions).then(
|
|
20
|
+
inquirer.prompt(questions).then((options) => {
|
|
22
21
|
resolve(options.hostname);
|
|
23
22
|
});
|
|
24
23
|
});
|
|
25
24
|
}
|
|
26
|
-
exports.default = getHostname;
|
package/dist/lib/get_netmask.js
CHANGED
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* ./src/lib/get_netmask.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
4
|
* author: Piero Proietti
|
|
5
5
|
* email: piero.proietti@gmail.com
|
|
6
6
|
* license: MIT
|
|
7
7
|
*/
|
|
8
8
|
'use strict';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
return new Promise(function (resolve) {
|
|
9
|
+
import inquirer from 'inquirer';
|
|
10
|
+
export default async function getNetmask(initial) {
|
|
11
|
+
return new Promise((resolve) => {
|
|
13
12
|
const questions = [
|
|
14
13
|
{
|
|
15
|
-
type: 'input',
|
|
16
|
-
name: 'netmask',
|
|
17
|
-
message: 'What is netmask of this computer? ',
|
|
18
14
|
default: initial,
|
|
15
|
+
message: 'What is netmask of this computer? ',
|
|
16
|
+
name: 'netmask',
|
|
17
|
+
type: 'input',
|
|
19
18
|
},
|
|
20
19
|
];
|
|
21
|
-
inquirer.prompt(questions).then(
|
|
20
|
+
inquirer.prompt(questions).then((options) => {
|
|
22
21
|
resolve(options.netmask);
|
|
23
22
|
});
|
|
24
23
|
});
|
|
25
24
|
}
|
|
26
|
-
exports.default = getNetmask;
|
package/dist/lib/get_password.js
CHANGED
|
@@ -1,40 +1,37 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
2
|
+
* ./src/lib/get_password.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
4
|
* author: Piero Proietti
|
|
5
5
|
* email: piero.proietti@gmail.com
|
|
6
6
|
* license: MIT
|
|
7
7
|
*/
|
|
8
8
|
'use strict';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const inquirer = require('inquirer');
|
|
12
|
-
async function getPassword(user = 'root', initial) {
|
|
9
|
+
import inquirer from 'inquirer';
|
|
10
|
+
export default async function getPassword(user = 'root', initial) {
|
|
13
11
|
const requireLetterAndNumber = (value) => {
|
|
14
12
|
if (/\w/.test(value) && /\d/.test(value)) {
|
|
15
13
|
return true;
|
|
16
14
|
}
|
|
17
15
|
};
|
|
18
|
-
return new Promise(
|
|
16
|
+
return new Promise((resolve) => {
|
|
19
17
|
const questions = [
|
|
20
18
|
{
|
|
21
|
-
|
|
19
|
+
default: initial,
|
|
22
20
|
message: `Choose a password for ${user}: `,
|
|
23
21
|
name: 'password',
|
|
24
|
-
|
|
22
|
+
type: 'password',
|
|
25
23
|
// validate: requireLetterAndNumber,
|
|
26
24
|
},
|
|
27
25
|
{
|
|
28
|
-
|
|
26
|
+
default: initial,
|
|
29
27
|
message: `Confirm your ${user} password: `,
|
|
30
28
|
name: 'confirmPassword',
|
|
31
|
-
|
|
29
|
+
type: 'password',
|
|
32
30
|
// validate: requireLetterAndNumber,
|
|
33
31
|
},
|
|
34
32
|
];
|
|
35
|
-
inquirer.prompt(questions).then(
|
|
33
|
+
inquirer.prompt(questions).then((options) => {
|
|
36
34
|
resolve(options.password);
|
|
37
35
|
});
|
|
38
36
|
});
|
|
39
37
|
}
|
|
40
|
-
exports.default = getPassword;
|