penguins-eggs 9.6.34 → 10.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oclif.manifest.json +1458 -1
- package/README.md +823 -8
- package/addons/eggs/theme/livecd/grub.main.cfg +4 -4
- package/addons/eggs/theme/livecd/isolinux.main.cfg +5 -5
- package/bin/dev.cmd +1 -1
- package/bin/dev.js +6 -0
- package/bin/run.js +5 -0
- package/conf/derivatives.yaml +2 -0
- package/conf/distros/buster/calamares/calamares-modules/bootloader-config/bootloader-config.sh +3 -3
- package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.sh +1 -1
- package/conf/distros/buster/calamares/modules/fstab.yml +1 -1
- package/conf/distros/focal/calamares/modules/fstab.yml +1 -1
- package/conf/{exclude.list.homes → exclude.list.d/home.list} +6 -1
- package/conf/{exclude.list.template → exclude.list.d/master.list} +15 -24
- package/conf/exclude.list.d/var.list +21 -0
- package/conf/tools.yaml +1 -3
- 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 +51 -58
- package/dist/classes/daddy.d.ts +18 -0
- package/dist/classes/daddy.js +93 -101
- package/dist/classes/distro.d.ts +26 -0
- package/dist/classes/distro.js +45 -27
- package/dist/classes/families/archlinux.d.ts +61 -0
- package/dist/classes/families/archlinux.js +56 -113
- package/dist/classes/families/debian.d.ts +65 -0
- package/dist/classes/families/debian.js +68 -143
- package/dist/classes/families/fedora.d.ts +52 -0
- package/dist/classes/families/fedora.js +43 -99
- 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 +45 -97
- package/dist/classes/incubation/branding.d.ts +17 -0
- package/dist/classes/incubation/branding.js +33 -32
- package/dist/classes/incubation/distros/bionic.d.ts +32 -0
- package/dist/classes/incubation/distros/bionic.js +15 -15
- package/dist/classes/incubation/distros/buster.d.ts +32 -0
- package/dist/classes/incubation/distros/buster.js +15 -15
- package/dist/classes/incubation/distros/focal.d.ts +32 -0
- package/dist/classes/incubation/distros/focal.js +15 -15
- package/dist/classes/incubation/distros/jessie.d.ts +31 -0
- package/dist/classes/incubation/distros/jessie.js +11 -13
- package/dist/classes/incubation/distros/rolling.d.ts +32 -0
- package/dist/classes/incubation/distros/rolling.js +15 -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 -17
- 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 +137 -132
- package/dist/classes/incubation/incubator.d.ts +40 -0
- package/dist/classes/incubation/incubator.js +93 -87
- 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 +42 -44
- package/dist/classes/keyboards.d.ts +50 -0
- package/dist/classes/keyboards.js +110 -107
- 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 +21 -25
- package/dist/classes/ovary.d.ts +205 -0
- package/dist/classes/ovary.js +1262 -1334
- package/dist/classes/pacman.d.ts +149 -0
- package/dist/classes/pacman.js +347 -426
- package/dist/classes/pve-live.d.ts +17 -0
- package/dist/classes/pve-live.js +23 -25
- package/dist/classes/pxe.d.ts +65 -0
- package/dist/classes/pxe.js +206 -210
- package/dist/classes/settings.d.ts +53 -0
- package/dist/classes/settings.js +99 -102
- 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 +35 -39
- package/dist/classes/tailor.d.ts +46 -0
- package/dist/classes/tailor.js +225 -241
- package/dist/classes/tools.d.ts +30 -0
- package/dist/classes/tools.js +20 -26
- package/dist/classes/users.d.ts +28 -0
- package/dist/classes/users.js +22 -16
- package/dist/classes/utils.d.ts +318 -0
- package/dist/classes/utils.js +91 -76
- 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 +54 -60
- package/dist/commands/adapt.d.ts +17 -0
- package/dist/commands/adapt.js +21 -25
- package/dist/commands/analyze.d.ts +26 -0
- package/dist/commands/analyze.js +60 -74
- package/dist/commands/calamares.d.ts +29 -0
- package/dist/commands/calamares.js +53 -60
- package/dist/commands/config.d.ts +36 -0
- package/dist/commands/config.js +120 -142
- package/dist/commands/cuckoo.d.ts +16 -0
- package/dist/commands/cuckoo.js +24 -28
- package/dist/commands/dad.d.ts +19 -0
- package/dist/commands/dad.js +26 -30
- package/dist/commands/export/deb.d.ts +19 -0
- package/dist/commands/export/deb.js +33 -42
- package/dist/commands/export/iso.d.ts +19 -0
- package/dist/commands/export/iso.js +24 -28
- package/dist/commands/install.d.ts +37 -0
- package/dist/commands/install.js +68 -68
- package/dist/commands/kill.d.ts +24 -0
- package/dist/commands/kill.js +31 -38
- package/dist/commands/mom.d.ts +16 -0
- package/dist/commands/mom.js +20 -22
- package/dist/commands/produce.d.ts +33 -0
- package/dist/commands/produce.js +100 -92
- package/dist/commands/status.d.ts +23 -0
- package/dist/commands/status.js +14 -20
- package/dist/commands/syncfrom.d.ts +45 -0
- package/dist/commands/syncfrom.js +99 -109
- package/dist/commands/syncto.d.ts +40 -0
- package/dist/commands/syncto.js +152 -216
- package/dist/commands/tools/clean.d.ts +18 -0
- package/dist/commands/tools/clean.js +21 -25
- package/dist/commands/tools/ppa.d.ts +26 -0
- package/dist/commands/tools/ppa.js +46 -50
- package/dist/commands/tools/skel.d.ts +18 -0
- package/dist/commands/tools/skel.js +27 -31
- package/dist/commands/tools/stat.d.ts +31 -0
- package/dist/commands/tools/stat.js +21 -25
- package/dist/commands/tools/yolk.d.ts +24 -0
- package/dist/commands/tools/yolk.js +23 -27
- package/dist/commands/update.d.ts +47 -0
- package/dist/commands/update.js +66 -70
- package/dist/commands/wardrobe/get.d.ts +23 -0
- package/dist/commands/wardrobe/get.js +26 -28
- package/dist/commands/wardrobe/list.d.ts +24 -0
- package/dist/commands/wardrobe/list.js +69 -67
- package/dist/commands/wardrobe/show.d.ts +25 -0
- package/dist/commands/wardrobe/show.js +57 -52
- package/dist/commands/wardrobe/wear.d.ts +26 -0
- package/dist/commands/wardrobe/wear.js +39 -41
- 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 +53 -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 +11 -16
- 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 -0
- 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 +69 -46
- 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 +33 -23
- 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 +28 -31
- 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 +80 -86
- 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} +136 -130
- package/dist/krill/sequence.d.ts +156 -0
- package/dist/krill/sequence.js +640 -0
- 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 +19 -17
- 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 +130 -76
- package/package.json +55 -74
- package/scripts/_eggs +9 -7
- package/scripts/eggs.bash +4 -4
- package/LICENSE +0 -339
- package/bin/dev +0 -17
- package/bin/run +0 -5
- package/conf/exclude.list.custom +0 -3
- 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/interfaces/i-filters.js +0 -3
- package/dist/krill/krill-sequence.js +0 -645
- package/dist/lib/dependencies.js +0 -120
- package/manpages/doc/man/README.md +0 -0
- /package/conf/{exclude.list.usr → exclude.list.d/usr.list} +0 -0
|
@@ -1,64 +1,55 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* ./src/commands/export/deb.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
7
4
|
* author: Piero Proietti
|
|
8
5
|
* email: piero.proietti@gmail.com
|
|
9
6
|
* license: MIT
|
|
10
7
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class ExportDeb extends
|
|
8
|
+
import { Command, Flags } from '@oclif/core';
|
|
9
|
+
import Tools from '../../classes/tools.js';
|
|
10
|
+
import Utils from '../../classes/utils.js';
|
|
11
|
+
import { exec } from '../../lib/utils.js';
|
|
12
|
+
export default class ExportDeb extends Command {
|
|
13
|
+
static description = 'export deb/docs/iso to the destination host';
|
|
14
|
+
static examples = [
|
|
15
|
+
'eggs export deb',
|
|
16
|
+
'eggs export deb --clean',
|
|
17
|
+
'eggs export deb --all',
|
|
18
|
+
];
|
|
19
|
+
static flags = {
|
|
20
|
+
all: Flags.boolean({ char: 'a', description: 'export all archs' }),
|
|
21
|
+
clean: Flags.boolean({ char: 'c', description: 'remove old .deb before to copy' }),
|
|
22
|
+
help: Flags.help({ char: 'h' }),
|
|
23
|
+
verbose: Flags.boolean({ char: 'v', description: 'verbose' }),
|
|
24
|
+
};
|
|
16
25
|
async run() {
|
|
17
26
|
const { args, flags } = await this.parse(ExportDeb);
|
|
18
|
-
|
|
19
|
-
const Tu = new
|
|
20
|
-
|
|
27
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
28
|
+
const Tu = new Tools();
|
|
29
|
+
Utils.warning(ExportDeb.description);
|
|
21
30
|
await Tu.loadSettings();
|
|
22
|
-
const echo =
|
|
23
|
-
let
|
|
24
|
-
let arch = utils_1.default.uefiArch();
|
|
31
|
+
const echo = Utils.setEcho(flags.verbose);
|
|
32
|
+
let arch = Utils.uefiArch();
|
|
25
33
|
if (flags.all) {
|
|
26
34
|
arch = '*';
|
|
27
35
|
}
|
|
36
|
+
arch += '.deb';
|
|
37
|
+
const remoteMountpoint = `/tmp/eggs-${(Math.random() + 1).toString(36).slice(7)}`;
|
|
38
|
+
let cmd = `mkdir ${remoteMountpoint}\n`;
|
|
39
|
+
cmd += `sshfs ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathDeb} ${remoteMountpoint}\n`;
|
|
28
40
|
if (flags.clean) {
|
|
29
|
-
|
|
30
|
-
script = String(script);
|
|
41
|
+
cmd += `rm -f ${remoteMountpoint}/${Tu.config.filterDeb}${arch}\n`;
|
|
31
42
|
}
|
|
32
|
-
|
|
33
|
-
let cmd = `rm -f ${rmount}\n`;
|
|
34
|
-
cmd += `mkdir ${rmount}\n`;
|
|
35
|
-
cmd += `sshfs ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathDeb} ${rmount}\n`;
|
|
36
|
-
if (flags.clean) {
|
|
37
|
-
cmd += `rm -f ${rmount}/${Tu.config.filterDeb}${arch}\n`;
|
|
38
|
-
}
|
|
39
|
-
cmd += `cp ${Tu.config.localPathDeb}${Tu.config.filterDeb}${arch} ${rmount}\n`;
|
|
43
|
+
cmd += `cp ${Tu.config.localPathDeb}${Tu.config.filterDeb}${arch} ${remoteMountpoint}\n`;
|
|
40
44
|
cmd += 'sync\n';
|
|
41
|
-
cmd += `umount ${
|
|
42
|
-
cmd += `rm -
|
|
45
|
+
cmd += `umount ${remoteMountpoint}\n`;
|
|
46
|
+
cmd += `rm -rf ${remoteMountpoint}\n`;
|
|
43
47
|
if (!flags.verbose) {
|
|
44
48
|
if (flags.clean) {
|
|
45
49
|
console.log(`remove: ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.filterDeb}${arch}`);
|
|
46
50
|
}
|
|
47
51
|
console.log(`copy: ${Tu.config.localPathDeb}${Tu.config.filterDeb}${arch} to ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathDeb}`);
|
|
48
52
|
}
|
|
49
|
-
await
|
|
53
|
+
await exec(cmd, echo);
|
|
50
54
|
}
|
|
51
55
|
}
|
|
52
|
-
ExportDeb.flags = {
|
|
53
|
-
all: core_1.Flags.boolean({ char: 'a', description: 'export all archs' }),
|
|
54
|
-
clean: core_1.Flags.boolean({ char: 'c', description: 'remove old .deb before to copy' }),
|
|
55
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
56
|
-
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' }),
|
|
57
|
-
};
|
|
58
|
-
ExportDeb.description = 'export deb/docs/iso to the destination host';
|
|
59
|
-
ExportDeb.examples = [
|
|
60
|
-
'eggs export deb',
|
|
61
|
-
'eggs export deb --clean',
|
|
62
|
-
'eggs export deb --all',
|
|
63
|
-
];
|
|
64
|
-
exports.default = ExportDeb;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/export/iso.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from '@oclif/core';
|
|
9
|
+
export default class ExportIso extends Command {
|
|
10
|
+
static description: string;
|
|
11
|
+
static examples: string[];
|
|
12
|
+
static flags: {
|
|
13
|
+
checksum: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
14
|
+
clean: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
15
|
+
help: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<void>;
|
|
16
|
+
verbose: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
17
|
+
};
|
|
18
|
+
run(): Promise<void>;
|
|
19
|
+
}
|
|
@@ -1,28 +1,36 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* ./src/commands/export/iso.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
7
4
|
* author: Piero Proietti
|
|
8
5
|
* email: piero.proietti@gmail.com
|
|
9
6
|
* license: MIT
|
|
10
7
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class ExportIso extends
|
|
8
|
+
import { Command, Flags } from '@oclif/core';
|
|
9
|
+
import Tools from '../../classes/tools.js';
|
|
10
|
+
import Utils from '../../classes/utils.js';
|
|
11
|
+
import { exec } from '../../lib/utils.js';
|
|
12
|
+
export default class ExportIso extends Command {
|
|
13
|
+
static description = 'export iso in the destination host';
|
|
14
|
+
static examples = [
|
|
15
|
+
'eggs export iso',
|
|
16
|
+
'eggs export iso --clean',
|
|
17
|
+
];
|
|
18
|
+
static flags = {
|
|
19
|
+
checksum: Flags.boolean({ char: 'C', description: 'export checksums md5 and sha256' }),
|
|
20
|
+
clean: Flags.boolean({ char: 'c', description: 'delete old ISOs before to copy' }),
|
|
21
|
+
help: Flags.help({ char: 'h' }),
|
|
22
|
+
verbose: Flags.boolean({ char: 'v', description: 'verbose' }),
|
|
23
|
+
};
|
|
16
24
|
async run() {
|
|
17
25
|
const { flags } = await this.parse(ExportIso);
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const Tu = new
|
|
26
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
27
|
+
Utils.warning(ExportIso.description);
|
|
28
|
+
const Tu = new Tools();
|
|
21
29
|
await Tu.loadSettings();
|
|
22
|
-
const echo =
|
|
30
|
+
const echo = Utils.setEcho(flags.verbose);
|
|
23
31
|
const rmount = `/tmp/eggs-${(Math.random() + 1).toString(36).slice(7)}`;
|
|
24
32
|
let cmd = `rm -f ${rmount}\n`;
|
|
25
|
-
|
|
33
|
+
const filters = ['*.iso', '*.md5', '*.sha256'];
|
|
26
34
|
cmd += `mkdir ${rmount}\n`;
|
|
27
35
|
cmd += `sshfs ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathIso} ${rmount}\n`;
|
|
28
36
|
if (flags.clean) {
|
|
@@ -45,18 +53,6 @@ class ExportIso extends core_1.Command {
|
|
|
45
53
|
}
|
|
46
54
|
console.log(`scp ${Tu.config.localPathIso}/${Tu.snapshot_name}${filters[0]} ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathIso}`);
|
|
47
55
|
}
|
|
48
|
-
await
|
|
56
|
+
await exec(cmd, echo);
|
|
49
57
|
}
|
|
50
58
|
}
|
|
51
|
-
ExportIso.flags = {
|
|
52
|
-
clean: core_1.Flags.boolean({ char: 'c', description: 'delete old ISOs before to copy' }),
|
|
53
|
-
checksum: core_1.Flags.boolean({ char: 'C', description: 'export checksums md5 and sha256' }),
|
|
54
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
55
|
-
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' }),
|
|
56
|
-
};
|
|
57
|
-
ExportIso.description = 'export iso in the destination host';
|
|
58
|
-
ExportIso.examples = [
|
|
59
|
-
'eggs export iso',
|
|
60
|
-
'eggs export iso --clean',
|
|
61
|
-
];
|
|
62
|
-
exports.default = ExportIso;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/install.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from '@oclif/core';
|
|
9
|
+
/**
|
|
10
|
+
* Class Krill
|
|
11
|
+
*/
|
|
12
|
+
export default class Install extends Command {
|
|
13
|
+
static aliases: string[];
|
|
14
|
+
static description: string;
|
|
15
|
+
static examples: string[];
|
|
16
|
+
static flags: {
|
|
17
|
+
btrfs: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
18
|
+
crypted: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
19
|
+
custom: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
20
|
+
domain: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
21
|
+
halt: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
22
|
+
help: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<void>;
|
|
23
|
+
ip: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
24
|
+
nointeractive: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
25
|
+
none: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
26
|
+
pve: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
27
|
+
random: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
28
|
+
small: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
29
|
+
suspend: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
30
|
+
unattended: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
31
|
+
verbose: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Execute
|
|
35
|
+
*/
|
|
36
|
+
run(): Promise<void>;
|
|
37
|
+
}
|
package/dist/commands/install.js
CHANGED
|
@@ -1,110 +1,110 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* ./src/commands/install.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
7
4
|
* author: Piero Proietti
|
|
8
5
|
* email: piero.proietti@gmail.com
|
|
9
6
|
* license: MIT
|
|
10
7
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
const node_https_1 = tslib_1.__importDefault(require("node:https"));
|
|
19
|
-
const agent = new node_https_1.default.Agent({
|
|
8
|
+
import { Command, Flags } from '@oclif/core';
|
|
9
|
+
import yaml from 'js-yaml';
|
|
10
|
+
import fs from 'node:fs';
|
|
11
|
+
import https from 'node:https';
|
|
12
|
+
import Utils from '../classes/utils.js';
|
|
13
|
+
import Krill from '../krill/prepare.js';
|
|
14
|
+
const agent = new https.Agent({
|
|
20
15
|
rejectUnauthorized: false,
|
|
21
16
|
});
|
|
22
17
|
/**
|
|
23
18
|
* Class Krill
|
|
24
19
|
*/
|
|
25
|
-
class Install extends
|
|
20
|
+
export default class Install extends Command {
|
|
21
|
+
static aliases = ['krill'];
|
|
22
|
+
static description = 'krill: the CLI system installer - the egg became a penguin!';
|
|
23
|
+
static examples = [
|
|
24
|
+
'sudo eggs install',
|
|
25
|
+
'sudo eggs install --unattended --halt',
|
|
26
|
+
'sudo eggs install --custom it',
|
|
27
|
+
];
|
|
28
|
+
static flags = {
|
|
29
|
+
btrfs: Flags.boolean({ char: 'b', description: 'Format btrfs' }),
|
|
30
|
+
crypted: Flags.boolean({ char: 'k', description: 'Crypted CLI installation' }),
|
|
31
|
+
custom: Flags.string({ char: 'c', description: 'custom unattended configuration' }),
|
|
32
|
+
domain: Flags.string({ char: 'd', description: 'Domain name, defult: .local' }),
|
|
33
|
+
halt: Flags.boolean({ char: 'H', description: 'Halt the system after installation' }),
|
|
34
|
+
help: Flags.help({ char: 'h' }),
|
|
35
|
+
ip: Flags.boolean({ char: 'i', description: 'hostname as ip, eg: ip-192-168-1-33' }),
|
|
36
|
+
nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
37
|
+
none: Flags.boolean({ char: 'N', description: 'Swap none: 256M' }),
|
|
38
|
+
pve: Flags.boolean({ char: 'p', description: 'Proxmox VE install' }),
|
|
39
|
+
random: Flags.boolean({ char: 'r', description: 'Add random to hostname, eg: colibri-ay412dt' }),
|
|
40
|
+
small: Flags.boolean({ char: 's', description: 'Swap small: RAM' }),
|
|
41
|
+
suspend: Flags.boolean({ char: 'S', description: 'Swap suspend: RAM x 2' }),
|
|
42
|
+
unattended: Flags.boolean({ char: 'u', description: 'Unattended installation' }),
|
|
43
|
+
verbose: Flags.boolean({ char: 'v', description: 'Verbose' }),
|
|
44
|
+
};
|
|
26
45
|
/**
|
|
27
46
|
* Execute
|
|
28
47
|
*/
|
|
29
48
|
async run() {
|
|
30
|
-
|
|
49
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
31
50
|
const { flags } = await this.parse(Install);
|
|
32
51
|
let custom = flags.custom;
|
|
33
|
-
|
|
52
|
+
const { unattended } = flags;
|
|
34
53
|
if (unattended) {
|
|
35
54
|
custom = 'us';
|
|
36
55
|
}
|
|
37
56
|
// krillConfig
|
|
38
57
|
let krillConfig = {};
|
|
58
|
+
const content = fs.readFileSync('/etc/penguins-eggs.d/krill.yaml', 'utf8');
|
|
59
|
+
krillConfig = yaml.load(content);
|
|
60
|
+
/* removed
|
|
39
61
|
if (custom !== undefined) {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
62
|
+
const fname = path.basename(custom)
|
|
63
|
+
const url = `https://raw.githubusercontent.com/pieroproietti/penguins-wardrobe/main/config/${fname}.yaml`
|
|
64
|
+
let res: AxiosResponse
|
|
65
|
+
await axios.get(url, {httpsAgent: agent})
|
|
66
|
+
.then(function (response) {
|
|
67
|
+
krillConfig = yaml.load(response.data) as IKrillConfig
|
|
68
|
+
})
|
|
69
|
+
.catch(function (error) {
|
|
70
|
+
const content = fs.readFileSync('/etc/penguins-eggs.d/krill.yaml', 'utf8')
|
|
71
|
+
krillConfig = yaml.load(content) as IKrillConfig
|
|
72
|
+
})
|
|
51
73
|
}
|
|
74
|
+
}
|
|
75
|
+
end removed */
|
|
52
76
|
// nointeractive
|
|
53
|
-
const nointeractive = flags
|
|
77
|
+
const { nointeractive } = flags;
|
|
54
78
|
// halt
|
|
55
|
-
|
|
79
|
+
const { halt } = flags;
|
|
56
80
|
// hostname
|
|
57
|
-
const ip = flags
|
|
58
|
-
const random = flags
|
|
81
|
+
const { ip } = flags;
|
|
82
|
+
const { random } = flags;
|
|
59
83
|
let domain = '';
|
|
60
84
|
if (flags.domain) {
|
|
61
85
|
domain = flags.domain;
|
|
62
86
|
}
|
|
63
87
|
// swap
|
|
64
|
-
const suspend = flags
|
|
65
|
-
const small = flags
|
|
66
|
-
const none = flags
|
|
67
|
-
let crypted = flags
|
|
68
|
-
const pve = flags
|
|
88
|
+
const { suspend } = flags;
|
|
89
|
+
const { small } = flags;
|
|
90
|
+
const { none } = flags;
|
|
91
|
+
let { crypted } = flags;
|
|
92
|
+
const { pve } = flags;
|
|
69
93
|
if (pve) {
|
|
70
94
|
crypted = false;
|
|
71
95
|
}
|
|
72
|
-
const verbose = flags
|
|
73
|
-
if (
|
|
74
|
-
if (
|
|
75
|
-
const krill = new
|
|
76
|
-
await krill.prepare(krillConfig, ip, random, domain, suspend, small, none, crypted, pve, verbose);
|
|
96
|
+
const { verbose } = flags;
|
|
97
|
+
if (Utils.isRoot()) {
|
|
98
|
+
if (Utils.isLive()) {
|
|
99
|
+
const krill = new Krill(unattended, nointeractive, halt);
|
|
100
|
+
await krill.prepare(krillConfig, ip, random, domain, suspend, small, none, crypted, pve, flags.btrfs, verbose);
|
|
77
101
|
}
|
|
78
102
|
else {
|
|
79
|
-
|
|
103
|
+
Utils.warning('You are in an installed system!');
|
|
80
104
|
}
|
|
81
105
|
}
|
|
82
106
|
else {
|
|
83
|
-
|
|
107
|
+
Utils.useRoot(this.id);
|
|
84
108
|
}
|
|
85
109
|
}
|
|
86
110
|
}
|
|
87
|
-
Install.flags = {
|
|
88
|
-
crypted: core_1.Flags.boolean({ char: 'k', description: 'Crypted CLI installation' }),
|
|
89
|
-
custom: core_1.Flags.string({ char: 'c', description: 'custom unattended configuration' }),
|
|
90
|
-
domain: core_1.Flags.string({ char: 'd', description: 'Domain name, defult: .local' }),
|
|
91
|
-
halt: core_1.Flags.boolean({ char: 'H', description: 'Halt the system after installation' }),
|
|
92
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
93
|
-
ip: core_1.Flags.boolean({ char: 'i', description: 'hostname as ip, eg: ip-192-168-1-33' }),
|
|
94
|
-
nointeractive: core_1.Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
95
|
-
none: core_1.Flags.boolean({ char: 'N', description: 'Swap none: 256M' }),
|
|
96
|
-
pve: core_1.Flags.boolean({ char: 'p', description: 'Proxmox VE install' }),
|
|
97
|
-
random: core_1.Flags.boolean({ char: 'r', description: 'Add random to hostname, eg: colibri-ay412dt' }),
|
|
98
|
-
small: core_1.Flags.boolean({ char: 's', description: 'Swap small: RAM' }),
|
|
99
|
-
suspend: core_1.Flags.boolean({ char: 'S', description: 'Swap suspend: RAM x 2' }),
|
|
100
|
-
unattended: core_1.Flags.boolean({ char: 'u', description: 'Unattended installation' }),
|
|
101
|
-
verbose: core_1.Flags.boolean({ char: 'v', description: 'Verbose' }),
|
|
102
|
-
};
|
|
103
|
-
Install.aliases = ['krill'];
|
|
104
|
-
Install.description = 'krill: the CLI system installer - the egg became a penguin!';
|
|
105
|
-
Install.examples = [
|
|
106
|
-
'sudo eggs install',
|
|
107
|
-
'sudo eggs install --unattended --halt',
|
|
108
|
-
'sudo eggs install --custom it',
|
|
109
|
-
];
|
|
110
|
-
exports.default = Install;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/kill.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from '@oclif/core';
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
export default class Kill extends Command {
|
|
13
|
+
static description: string;
|
|
14
|
+
static examples: string[];
|
|
15
|
+
static flags: {
|
|
16
|
+
help: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<void>;
|
|
17
|
+
isos: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
18
|
+
nointeractive: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
19
|
+
verbose: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
20
|
+
};
|
|
21
|
+
config_file: string;
|
|
22
|
+
snapshot_dir: string;
|
|
23
|
+
run(): Promise<void>;
|
|
24
|
+
}
|
package/dist/commands/kill.js
CHANGED
|
@@ -1,59 +1,52 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* ./src/commands/kill.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
7
4
|
* author: Piero Proietti
|
|
8
5
|
* email: piero.proietti@gmail.com
|
|
9
6
|
* license: MIT
|
|
10
7
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
8
|
+
import { Command, Flags } from '@oclif/core';
|
|
9
|
+
import Settings from '../classes/settings.js';
|
|
10
|
+
import Utils from '../classes/utils.js';
|
|
11
|
+
import killMeSoftly from '../lib/kill_me_softly.js';
|
|
15
12
|
/**
|
|
16
13
|
*
|
|
17
14
|
*/
|
|
18
|
-
class Kill extends
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
15
|
+
export default class Kill extends Command {
|
|
16
|
+
static description = 'kill the eggs/free the nest';
|
|
17
|
+
static examples = [
|
|
18
|
+
'sudo eggs kill',
|
|
19
|
+
];
|
|
20
|
+
static flags = {
|
|
21
|
+
help: Flags.help({ char: 'h' }),
|
|
22
|
+
isos: Flags.boolean({ char: 'i', description: 'erase all ISOs on remote mount' }),
|
|
23
|
+
nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
24
|
+
verbose: Flags.boolean({ char: 'v', description: 'verbose' }),
|
|
25
|
+
};
|
|
26
|
+
config_file = '/etc/penguins-eggs.d/eggs.yaml';
|
|
27
|
+
snapshot_dir = '';
|
|
24
28
|
async run() {
|
|
25
|
-
|
|
29
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
26
30
|
const { flags } = await this.parse(Kill);
|
|
27
|
-
const verbose = flags
|
|
28
|
-
const isos = flags
|
|
29
|
-
const nointeractive = flags
|
|
30
|
-
const echo =
|
|
31
|
-
if (
|
|
32
|
-
const settings = new
|
|
31
|
+
const { verbose } = flags;
|
|
32
|
+
const { isos } = flags;
|
|
33
|
+
const { nointeractive } = flags;
|
|
34
|
+
const echo = Utils.setEcho(verbose);
|
|
35
|
+
if (Utils.isRoot()) {
|
|
36
|
+
const settings = new Settings();
|
|
33
37
|
await settings.load();
|
|
34
38
|
await settings.listFreeSpace();
|
|
35
|
-
if (
|
|
39
|
+
if (Utils.isMountpoint(settings.config.snapshot_mnt)) {
|
|
36
40
|
console.log('==========================================');
|
|
37
|
-
|
|
41
|
+
Utils.warning('You are working on a mountpoint');
|
|
38
42
|
console.log('==========================================');
|
|
39
43
|
}
|
|
40
|
-
if (nointeractive || await
|
|
41
|
-
await (
|
|
44
|
+
if (nointeractive || await Utils.customConfirm()) {
|
|
45
|
+
await killMeSoftly(settings.config.snapshot_dir, settings.config.snapshot_mnt, isos);
|
|
42
46
|
}
|
|
43
47
|
}
|
|
44
48
|
else {
|
|
45
|
-
|
|
49
|
+
Utils.useRoot(this.id);
|
|
46
50
|
}
|
|
47
51
|
}
|
|
48
52
|
}
|
|
49
|
-
Kill.flags = {
|
|
50
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
51
|
-
nointeractive: core_1.Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
52
|
-
isos: core_1.Flags.boolean({ char: 'i', description: 'erase all ISOs on remote mount' }),
|
|
53
|
-
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' }),
|
|
54
|
-
};
|
|
55
|
-
Kill.description = 'kill the eggs/free the nest';
|
|
56
|
-
Kill.examples = [
|
|
57
|
-
'sudo eggs kill',
|
|
58
|
-
];
|
|
59
|
-
exports.default = Kill;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/mom.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from '@oclif/core';
|
|
9
|
+
export default class Mom extends Command {
|
|
10
|
+
static description: string;
|
|
11
|
+
static examples: string[];
|
|
12
|
+
static flags: {
|
|
13
|
+
help: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<void>;
|
|
14
|
+
};
|
|
15
|
+
run(): Promise<void>;
|
|
16
|
+
}
|
package/dist/commands/mom.js
CHANGED
|
@@ -1,34 +1,32 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
1
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
2
|
+
* ./src/commands/mom.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
7
4
|
* author: Piero Proietti
|
|
8
5
|
* email: piero.proietti@gmail.com
|
|
9
6
|
* license: MIT
|
|
10
7
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
import { Command, Flags } from '@oclif/core';
|
|
9
|
+
import path from 'node:path';
|
|
10
|
+
import Utils from '../classes/utils.js';
|
|
11
|
+
import { exec } from '../lib/utils.js';
|
|
12
|
+
// _dirname
|
|
13
|
+
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
14
|
+
export default class Mom extends Command {
|
|
15
|
+
static description = 'ask help from mommy - TUI helper';
|
|
16
|
+
static examples = [
|
|
17
|
+
'eggs mom',
|
|
18
|
+
];
|
|
19
|
+
static flags = {
|
|
20
|
+
help: Flags.help({ char: 'h' }),
|
|
21
|
+
};
|
|
16
22
|
async run() {
|
|
17
|
-
|
|
23
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
18
24
|
// No sudo!
|
|
19
25
|
if (process.getuid && process.getuid() === 0) {
|
|
20
|
-
|
|
26
|
+
Utils.warning('You must to be kind with your mom! Call her without sudo');
|
|
21
27
|
process.exit(0);
|
|
22
28
|
}
|
|
23
|
-
const cmd =
|
|
24
|
-
await
|
|
29
|
+
const cmd = path.resolve(__dirname, '../../scripts/mom.sh');
|
|
30
|
+
await exec(cmd);
|
|
25
31
|
}
|
|
26
32
|
}
|
|
27
|
-
Mom.flags = {
|
|
28
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
29
|
-
};
|
|
30
|
-
Mom.description = 'ask help from mommy - TUI helper';
|
|
31
|
-
Mom.examples = [
|
|
32
|
-
'eggs mom',
|
|
33
|
-
];
|
|
34
|
-
exports.default = Mom;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/produce.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from '@oclif/core';
|
|
9
|
+
export default class Produce extends Command {
|
|
10
|
+
static description: string;
|
|
11
|
+
static examples: string[];
|
|
12
|
+
static flags: {
|
|
13
|
+
addons: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
14
|
+
basename: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
15
|
+
clone: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
16
|
+
cryptedclone: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
17
|
+
excludes: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
18
|
+
help: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<void>;
|
|
19
|
+
links: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string[] | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
20
|
+
max: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
21
|
+
noicons: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
22
|
+
nointeractive: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
23
|
+
prefix: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
24
|
+
release: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
25
|
+
script: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
26
|
+
standard: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
27
|
+
theme: import("@oclif/core/lib/interfaces/parser.js").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces/parser.js").CustomOptions>;
|
|
28
|
+
unsecure: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
29
|
+
verbose: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
30
|
+
yolk: import("@oclif/core/lib/interfaces/parser.js").BooleanFlag<boolean>;
|
|
31
|
+
};
|
|
32
|
+
run(): Promise<void>;
|
|
33
|
+
}
|