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
package/dist/classes/settings.js
CHANGED
|
@@ -1,63 +1,99 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
2
|
+
* ./src/classes/settings.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 chalk from 'chalk';
|
|
9
|
+
import yaml from 'js-yaml';
|
|
11
10
|
// packages
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
11
|
+
import fs from 'node:fs';
|
|
12
|
+
// pjson
|
|
13
|
+
import { createRequire } from 'node:module';
|
|
14
|
+
import os from 'node:os';
|
|
15
|
+
import shx from 'shelljs';
|
|
16
|
+
const require = createRequire(import.meta.url);
|
|
17
17
|
const pjson = require('../../package.json');
|
|
18
|
+
import Distro from './distro.js';
|
|
19
|
+
import Pacman from './pacman.js';
|
|
18
20
|
// classes
|
|
19
|
-
|
|
20
|
-
const distro_1 = tslib_1.__importDefault(require("./distro"));
|
|
21
|
-
const pacman_1 = tslib_1.__importDefault(require("./pacman"));
|
|
21
|
+
import Utils from './utils.js';
|
|
22
22
|
const config_file = '/etc/penguins-eggs.d/eggs.yaml';
|
|
23
23
|
/**
|
|
24
24
|
* Setting
|
|
25
25
|
*/
|
|
26
|
-
class Settings {
|
|
26
|
+
export default class Settings {
|
|
27
|
+
app = {};
|
|
28
|
+
config = {};
|
|
29
|
+
distro = {};
|
|
30
|
+
efi_work = '';
|
|
31
|
+
i686 = false;
|
|
32
|
+
incubator = {};
|
|
33
|
+
initrd_image = '';
|
|
34
|
+
initrdImg = '';
|
|
35
|
+
isLive = false;
|
|
36
|
+
iso_work = '';
|
|
37
|
+
isoFilename = '';
|
|
38
|
+
kernel_image = '';
|
|
39
|
+
remix = {};
|
|
40
|
+
session_excludes = '';
|
|
41
|
+
vmlinuz = '';
|
|
42
|
+
work_dir = {}; // resulting name of the iso
|
|
27
43
|
constructor(compression = '') {
|
|
28
|
-
this.app = {};
|
|
29
|
-
this.config = {};
|
|
30
|
-
this.remix = {};
|
|
31
|
-
this.work_dir = {};
|
|
32
|
-
this.distro = {};
|
|
33
|
-
this.incubator = {};
|
|
34
|
-
this.i686 = false;
|
|
35
|
-
this.isLive = false;
|
|
36
|
-
this.efi_work = '';
|
|
37
|
-
this.iso_work = '';
|
|
38
|
-
this.kernel_image = '';
|
|
39
|
-
this.initrd_image = '';
|
|
40
|
-
this.vmlinuz = '';
|
|
41
|
-
this.initrdImg = '';
|
|
42
|
-
this.session_excludes = '';
|
|
43
|
-
this.isoFilename = ''; // resulting name of the iso
|
|
44
44
|
this.config.compression = compression;
|
|
45
45
|
this.app.author = 'Piero Proietti';
|
|
46
46
|
this.app.homepage = 'https://github.com/pieroproietti/penguins-eggs';
|
|
47
47
|
this.app.mail = 'piero.proietti@gmail.com';
|
|
48
48
|
this.app.name = pjson.name;
|
|
49
49
|
this.app.version = pjson.version;
|
|
50
|
-
this.isLive =
|
|
51
|
-
this.i686 =
|
|
52
|
-
this.distro = new
|
|
50
|
+
this.isLive = Utils.isLive();
|
|
51
|
+
this.i686 = Utils.isi686();
|
|
52
|
+
this.distro = new Distro(this.remix);
|
|
53
53
|
}
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
56
|
-
* @
|
|
55
|
+
* Calculate and show free space on the disk
|
|
56
|
+
* @returns {void}
|
|
57
57
|
*/
|
|
58
|
-
async
|
|
59
|
-
|
|
60
|
-
|
|
58
|
+
async listFreeSpace() {
|
|
59
|
+
if (!fs.existsSync(this.config.snapshot_dir)) {
|
|
60
|
+
fs.mkdirSync(this.config.snapshot_dir);
|
|
61
|
+
if (!fs.existsSync(this.config.snapshot_mnt)) {
|
|
62
|
+
fs.mkdirSync(this.config.snapshot_mnt);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/** Lo spazio usato da SquashFS non è stimabile da live
|
|
66
|
+
* errore buffer troppo piccolo
|
|
67
|
+
*/
|
|
68
|
+
const gb = 1_048_576;
|
|
69
|
+
let spaceAvailable = 0;
|
|
70
|
+
if (!Utils.isLive()) {
|
|
71
|
+
console.log(`Disk space used: ${Math.round((Utils.getUsedSpace() / gb) * 10) / 10} GB`);
|
|
72
|
+
}
|
|
73
|
+
spaceAvailable = Number(shx
|
|
74
|
+
.exec(`df "${this.config.snapshot_mnt}" | /usr/bin/awk 'NR==2 {print $4}'`, {
|
|
75
|
+
silent: true,
|
|
76
|
+
})
|
|
77
|
+
.stdout.trim());
|
|
78
|
+
console.log(`Space available: ${Math.round((spaceAvailable / gb) * 10) / 10} GB`);
|
|
79
|
+
console.log(`There are ${Utils.getSnapshotCount(this.config.snapshot_mnt)} snapshots taking ${Math.round((Utils.getSnapshotSize(this.config.snapshot_mnt) / gb) * 10) / 10} GB of disk space.`);
|
|
80
|
+
console.log();
|
|
81
|
+
if (spaceAvailable > gb * 3) {
|
|
82
|
+
console.log(chalk.cyanBright('The free space should be sufficient to hold the'));
|
|
83
|
+
console.log(chalk.cyanBright('compressed data from the system'));
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
console.log(chalk.redBright('The free space should be insufficient') + '.');
|
|
87
|
+
console.log();
|
|
88
|
+
if (Utils.isMountpoint(this.config.snapshot_mnt)) {
|
|
89
|
+
console.log('If necessary, you can create more available space');
|
|
90
|
+
console.log('by removing previous snapshots and saved copies.');
|
|
91
|
+
}
|
|
92
|
+
else {
|
|
93
|
+
console.log(`You can mount a free partition under ${this.config.snapshot_mnt}`);
|
|
94
|
+
}
|
|
95
|
+
console.log();
|
|
96
|
+
}
|
|
61
97
|
}
|
|
62
98
|
/**
|
|
63
99
|
* Load configuration from config_file
|
|
@@ -65,12 +101,12 @@ class Settings {
|
|
|
65
101
|
*/
|
|
66
102
|
async load() {
|
|
67
103
|
const foundSettings = true;
|
|
68
|
-
if (!
|
|
104
|
+
if (!fs.existsSync(config_file)) {
|
|
69
105
|
console.log(`cannot find configuration file ${config_file},`);
|
|
70
106
|
console.log('please generate it with: sudo eggs config');
|
|
71
107
|
process.exit(1);
|
|
72
108
|
}
|
|
73
|
-
this.config =
|
|
109
|
+
this.config = yaml.load(fs.readFileSync(config_file, 'utf8'));
|
|
74
110
|
this.session_excludes = '';
|
|
75
111
|
if (!this.config.snapshot_dir.endsWith('/')) {
|
|
76
112
|
this.config.snapshot_dir += '/';
|
|
@@ -90,16 +126,14 @@ class Settings {
|
|
|
90
126
|
this.iso_work = this.config.snapshot_mnt + 'iso/';
|
|
91
127
|
// remember: before was hostname, not empty
|
|
92
128
|
if (this.config.snapshot_basename === '') {
|
|
93
|
-
this.config.snapshot_basename =
|
|
129
|
+
this.config.snapshot_basename = os.hostname();
|
|
94
130
|
}
|
|
95
|
-
if (this.config.make_efi && !
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
this.config.make_efi = false;
|
|
102
|
-
}
|
|
131
|
+
if (this.config.make_efi && !Pacman.isUefi() && Utils.uefiArch() === 'amd64') {
|
|
132
|
+
Utils.error('You choose to create an UEFI image, but miss to install grub-efi-amd64-bin package.');
|
|
133
|
+
Utils.error('Please install it before to create an UEFI image:');
|
|
134
|
+
Utils.warning('sudo apt install grub-efi-amd64-bin');
|
|
135
|
+
Utils.error('or edit /etc/penguins-eggs.d/eggs.yaml and set the valuer of make_efi = false');
|
|
136
|
+
this.config.make_efi = false;
|
|
103
137
|
}
|
|
104
138
|
this.kernel_image = this.config.vmlinuz;
|
|
105
139
|
this.initrd_image = this.config.initrd_img;
|
|
@@ -121,68 +155,31 @@ class Settings {
|
|
|
121
155
|
this.config.root_passwd = 'evolution';
|
|
122
156
|
}
|
|
123
157
|
if (this.config.timezone === undefined || this.config.timezone === '') {
|
|
124
|
-
this.config.timezone =
|
|
158
|
+
this.config.timezone = shx.exec('cat /etc/timezone', { silent: true }).stdout.trim();
|
|
125
159
|
}
|
|
126
160
|
return foundSettings;
|
|
127
161
|
}
|
|
128
|
-
/**
|
|
129
|
-
* Calculate and show free space on the disk
|
|
130
|
-
* @returns {void}
|
|
131
|
-
*/
|
|
132
|
-
async listFreeSpace() {
|
|
133
|
-
if (!node_fs_1.default.existsSync(this.config.snapshot_dir)) {
|
|
134
|
-
node_fs_1.default.mkdirSync(this.config.snapshot_dir);
|
|
135
|
-
if (!node_fs_1.default.existsSync(this.config.snapshot_mnt)) {
|
|
136
|
-
node_fs_1.default.mkdirSync(this.config.snapshot_mnt);
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
/** Lo spazio usato da SquashFS non è stimabile da live
|
|
140
|
-
* errore buffer troppo piccolo
|
|
141
|
-
*/
|
|
142
|
-
const gb = 1048576;
|
|
143
|
-
let spaceAvailable = 0;
|
|
144
|
-
if (!utils_1.default.isLive()) {
|
|
145
|
-
console.log(`Disk space used: ${Math.round((utils_1.default.getUsedSpace() / gb) * 10) / 10} GB`);
|
|
146
|
-
}
|
|
147
|
-
spaceAvailable = Number(shelljs_1.default
|
|
148
|
-
.exec(`df "${this.config.snapshot_mnt}" | /usr/bin/awk 'NR==2 {print $4}'`, {
|
|
149
|
-
silent: true,
|
|
150
|
-
})
|
|
151
|
-
.stdout.trim());
|
|
152
|
-
console.log(`Space available: ${Math.round((spaceAvailable / gb) * 10) / 10} GB`);
|
|
153
|
-
console.log(`There are ${utils_1.default.getSnapshotCount(this.config.snapshot_mnt)} snapshots taking ${Math.round((utils_1.default.getSnapshotSize(this.config.snapshot_mnt) / gb) * 10) / 10} GB of disk space.`);
|
|
154
|
-
console.log();
|
|
155
|
-
if (spaceAvailable > gb * 3) {
|
|
156
|
-
console.log(chalk_1.default.cyanBright('The free space should be sufficient to hold the'));
|
|
157
|
-
console.log(chalk_1.default.cyanBright('compressed data from the system'));
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
console.log(chalk_1.default.redBright('The free space should be insufficient') + '.');
|
|
161
|
-
console.log();
|
|
162
|
-
if (utils_1.default.isMountpoint(this.config.snapshot_mnt)) {
|
|
163
|
-
console.log('If necessary, you can create more available space');
|
|
164
|
-
console.log('by removing previous snapshots and saved copies.');
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
console.log(`You can mount a free partition under ${this.config.snapshot_mnt}`);
|
|
168
|
-
}
|
|
169
|
-
console.log();
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
162
|
/**
|
|
173
163
|
*
|
|
174
164
|
* @param basename
|
|
175
165
|
* @param theme
|
|
176
166
|
*/
|
|
177
167
|
async loadRemix(basename = '', theme = '') {
|
|
178
|
-
this.remix.versionNumber =
|
|
179
|
-
this.remix.kernel =
|
|
168
|
+
this.remix.versionNumber = Utils.getPackageVersion();
|
|
169
|
+
this.remix.kernel = Utils.kernelVersion();
|
|
180
170
|
this.remix.branding = theme === '' ? 'eggs' : this.remix.branding = theme.slice(Math.max(0, theme.lastIndexOf('/') + 1));
|
|
181
171
|
this.remix.name = this.config.snapshot_basename;
|
|
182
172
|
let name = this.config.snapshot_prefix + this.config.snapshot_basename;
|
|
183
|
-
name = name.
|
|
173
|
+
name = name.replaceAll('-', ' ').replaceAll('_', ' ').replace('egg of ', '');
|
|
184
174
|
this.remix.fullname = name;
|
|
185
175
|
this.remix.versionName = name.toUpperCase();
|
|
186
176
|
}
|
|
177
|
+
/**
|
|
178
|
+
*
|
|
179
|
+
* @param config
|
|
180
|
+
*/
|
|
181
|
+
async save(config) {
|
|
182
|
+
const ordered = Utils.sortObjectKeys(config);
|
|
183
|
+
fs.writeFileSync(config_file, yaml.dump(ordered), 'utf-8');
|
|
184
|
+
}
|
|
187
185
|
}
|
|
188
|
-
exports.default = Settings;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/sources_list.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
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
export default class SourcesList {
|
|
12
|
+
/**
|
|
13
|
+
*
|
|
14
|
+
* @param repos
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
components(components: string[]): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @param repos
|
|
21
|
+
* @returns
|
|
22
|
+
*/
|
|
23
|
+
distribution(distributions: string[]): Promise<boolean>;
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
*/
|
|
27
|
+
private get;
|
|
28
|
+
}
|
|
@@ -1,40 +1,18 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const utils_2 = require("../lib/utils");
|
|
14
|
-
const distro_1 = tslib_1.__importDefault(require("./distro"));
|
|
2
|
+
* ./src/classes/sources_list.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 chalk from 'chalk';
|
|
9
|
+
import { exec } from '../lib/utils.js';
|
|
10
|
+
import Distro from './distro.js';
|
|
11
|
+
import Utils from './utils.js';
|
|
15
12
|
/**
|
|
16
13
|
*
|
|
17
14
|
*/
|
|
18
|
-
class SourcesList {
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
21
|
-
* @param repos
|
|
22
|
-
* @returns
|
|
23
|
-
*/
|
|
24
|
-
async distribution(distributions) {
|
|
25
|
-
/**
|
|
26
|
-
* Linuxmint non ha nessuna configurazione in /etc/apt/sources.list
|
|
27
|
-
*/
|
|
28
|
-
let checked = true;
|
|
29
|
-
checked = false;
|
|
30
|
-
const distro = new distro_1.default();
|
|
31
|
-
for (const distribution of distributions) {
|
|
32
|
-
if (distribution.includes(distro.codenameLikeId)) {
|
|
33
|
-
checked = true;
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
return checked;
|
|
37
|
-
}
|
|
15
|
+
export default class SourcesList {
|
|
38
16
|
/**
|
|
39
17
|
*
|
|
40
18
|
* @param repos
|
|
@@ -51,16 +29,35 @@ class SourcesList {
|
|
|
51
29
|
for (const component of components) {
|
|
52
30
|
// On security we need just main
|
|
53
31
|
if (!repo.includes('security') && !repo.includes(component)) {
|
|
54
|
-
console.log('component: ' +
|
|
32
|
+
console.log('component: ' + chalk.green(component) + ' is not included in repo: ' + chalk.green(repo));
|
|
55
33
|
checked = false;
|
|
56
34
|
}
|
|
57
35
|
}
|
|
58
36
|
}
|
|
59
37
|
if (checked) {
|
|
60
|
-
|
|
38
|
+
Utils.warning('repositories checked');
|
|
61
39
|
}
|
|
62
40
|
else {
|
|
63
|
-
|
|
41
|
+
Utils.pressKeyToExit('component warning, check your /etc/apt/sources.list', true);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return checked;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
*
|
|
48
|
+
* @param repos
|
|
49
|
+
* @returns
|
|
50
|
+
*/
|
|
51
|
+
async distribution(distributions) {
|
|
52
|
+
/**
|
|
53
|
+
* Linuxmint non ha nessuna configurazione in /etc/apt/sources.list
|
|
54
|
+
*/
|
|
55
|
+
let checked = true;
|
|
56
|
+
checked = false;
|
|
57
|
+
const distro = new Distro();
|
|
58
|
+
for (const distribution of distributions) {
|
|
59
|
+
if (distribution.includes(distro.codenameLikeId)) {
|
|
60
|
+
checked = true;
|
|
64
61
|
}
|
|
65
62
|
}
|
|
66
63
|
return checked;
|
|
@@ -70,12 +67,12 @@ class SourcesList {
|
|
|
70
67
|
*/
|
|
71
68
|
async get() {
|
|
72
69
|
let universalSourcesList = '/etc/apt/sources.list';
|
|
73
|
-
const distro = new
|
|
70
|
+
const distro = new Distro();
|
|
74
71
|
if (distro.distroId === 'Linuxmint') {
|
|
75
72
|
universalSourcesList = '/etc/apt/sources.list.d/official-package-repositories.list';
|
|
76
73
|
}
|
|
77
74
|
// deb uri distribution [component1] [component2] [...]
|
|
78
|
-
const checkRepos = await
|
|
75
|
+
const checkRepos = await exec(`grep "deb http"<${universalSourcesList}`, { capture: true, echo: false });
|
|
79
76
|
let tmp = [];
|
|
80
77
|
if (checkRepos.code === 0) {
|
|
81
78
|
tmp = checkRepos.data.split('\n');
|
|
@@ -90,4 +87,3 @@ class SourcesList {
|
|
|
90
87
|
return repos;
|
|
91
88
|
}
|
|
92
89
|
}
|
|
93
|
-
exports.default = SourcesList;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
/**
|
|
3
|
+
* penguins-eggs
|
|
4
|
+
* class: systemctl.ts
|
|
5
|
+
* author: Piero Proietti
|
|
6
|
+
* email: piero.proietti@gmail.com
|
|
7
|
+
* Presa da https://github.com/VolantisDev/node-systemctl
|
|
8
|
+
* license: MIT
|
|
9
|
+
*/
|
|
10
|
+
export default class SistemdCtl {
|
|
11
|
+
echo: {};
|
|
12
|
+
constructor(verbose?: boolean);
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
disable(service: string, chroot?: string, report?: boolean): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
*
|
|
19
|
+
*/
|
|
20
|
+
enable(service: string): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @param service
|
|
24
|
+
* @returns
|
|
25
|
+
*/
|
|
26
|
+
isActive(service: string): Promise<unknown>;
|
|
27
|
+
/**
|
|
28
|
+
*
|
|
29
|
+
*/
|
|
30
|
+
isEnabled(service: string): Promise<unknown>;
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
*/
|
|
34
|
+
reload(service: string): Promise<void>;
|
|
35
|
+
/**
|
|
36
|
+
*
|
|
37
|
+
*/
|
|
38
|
+
restart(service: string): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
*
|
|
41
|
+
*/
|
|
42
|
+
start(service: string): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
*/
|
|
46
|
+
stop(service: string): Promise<void>;
|
|
47
|
+
}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
2
|
/**
|
|
4
3
|
* penguins-eggs
|
|
@@ -8,26 +7,18 @@
|
|
|
8
7
|
* Presa da https://github.com/VolantisDev/node-systemctl
|
|
9
8
|
* license: MIT
|
|
10
9
|
*/
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
class SistemdCtl {
|
|
10
|
+
import { exec } from '../lib/utils.js';
|
|
11
|
+
import Utils from './utils.js';
|
|
12
|
+
export default class SistemdCtl {
|
|
13
|
+
echo = {};
|
|
16
14
|
constructor(verbose = false) {
|
|
17
|
-
this.echo =
|
|
18
|
-
this.echo = utils_2.default.setEcho(verbose);
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
*
|
|
22
|
-
*/
|
|
23
|
-
async reload(service) {
|
|
24
|
-
await (0, utils_1.exec)(`systemctl reload ${service}`, this.echo);
|
|
15
|
+
this.echo = Utils.setEcho(verbose);
|
|
25
16
|
}
|
|
26
17
|
/**
|
|
27
18
|
*
|
|
28
19
|
*/
|
|
29
20
|
async disable(service, chroot = '/', report = false) {
|
|
30
|
-
await
|
|
21
|
+
await exec(`chroot ${chroot}} systemctl disable ${service}`, this.echo);
|
|
31
22
|
if (report) {
|
|
32
23
|
console.log(`systemctl: disabled ${service} on ${chroot}`);
|
|
33
24
|
}
|
|
@@ -36,25 +27,7 @@ class SistemdCtl {
|
|
|
36
27
|
*
|
|
37
28
|
*/
|
|
38
29
|
async enable(service) {
|
|
39
|
-
await
|
|
40
|
-
}
|
|
41
|
-
/**
|
|
42
|
-
*
|
|
43
|
-
*/
|
|
44
|
-
async restart(service) {
|
|
45
|
-
await (0, utils_1.exec)(`systemctl restart ${service}`, this.echo);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
*
|
|
49
|
-
*/
|
|
50
|
-
async start(service) {
|
|
51
|
-
await (0, utils_1.exec)(`systemctl start ${service}`, this.echo);
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
*
|
|
55
|
-
*/
|
|
56
|
-
async stop(service) {
|
|
57
|
-
await (0, utils_1.exec)(`systemctl stop ${service}`, this.echo);
|
|
30
|
+
await exec(`systemctl enable ${service}`, this.echo);
|
|
58
31
|
}
|
|
59
32
|
/**
|
|
60
33
|
*
|
|
@@ -63,11 +36,11 @@ class SistemdCtl {
|
|
|
63
36
|
*/
|
|
64
37
|
async isActive(service) {
|
|
65
38
|
return new Promise((resolve, reject) => {
|
|
66
|
-
|
|
39
|
+
exec(`systemctl is-active ${service}`, this.echo)
|
|
67
40
|
.then(result => {
|
|
68
41
|
resolve(!result.data.includes('inactive'));
|
|
69
42
|
})
|
|
70
|
-
.catch(
|
|
43
|
+
.catch((error) => {
|
|
71
44
|
resolve(false);
|
|
72
45
|
});
|
|
73
46
|
});
|
|
@@ -77,14 +50,37 @@ class SistemdCtl {
|
|
|
77
50
|
*/
|
|
78
51
|
async isEnabled(service) {
|
|
79
52
|
return new Promise((resolve, reject) => {
|
|
80
|
-
|
|
53
|
+
exec(`systemctl is-enabled ${service}`, this.echo)
|
|
81
54
|
.then(result => {
|
|
82
55
|
resolve(result.data.includes('enabled'));
|
|
83
56
|
})
|
|
84
|
-
.catch(
|
|
57
|
+
.catch((error) => {
|
|
85
58
|
resolve(false);
|
|
86
59
|
});
|
|
87
60
|
});
|
|
88
61
|
}
|
|
62
|
+
/**
|
|
63
|
+
*
|
|
64
|
+
*/
|
|
65
|
+
async reload(service) {
|
|
66
|
+
await exec(`systemctl reload ${service}`, this.echo);
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
*
|
|
70
|
+
*/
|
|
71
|
+
async restart(service) {
|
|
72
|
+
await exec(`systemctl restart ${service}`, this.echo);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
*
|
|
76
|
+
*/
|
|
77
|
+
async start(service) {
|
|
78
|
+
await exec(`systemctl start ${service}`, this.echo);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
*
|
|
82
|
+
*/
|
|
83
|
+
async stop(service) {
|
|
84
|
+
await exec(`systemctl stop ${service}`, this.echo);
|
|
85
|
+
}
|
|
89
86
|
}
|
|
90
|
-
exports.default = SistemdCtl;
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/tailor.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 { IMateria } from '../interfaces/index.js';
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
export default class Tailor {
|
|
13
|
+
materials: IMateria;
|
|
14
|
+
private category;
|
|
15
|
+
private costume;
|
|
16
|
+
private echo;
|
|
17
|
+
private verbose;
|
|
18
|
+
private wardrobe;
|
|
19
|
+
/**
|
|
20
|
+
* @param wardrobe
|
|
21
|
+
* @param costume
|
|
22
|
+
*/
|
|
23
|
+
constructor(costume: string, category?: string);
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @param packages
|
|
27
|
+
* @param verbose
|
|
28
|
+
* @param section
|
|
29
|
+
* @returns
|
|
30
|
+
*/
|
|
31
|
+
helperExists(packages: string[], verbose?: boolean, section?: string): Promise<string[]>;
|
|
32
|
+
/**
|
|
33
|
+
* - check if every package if installed
|
|
34
|
+
* - if find any packages to install, install it
|
|
35
|
+
*/
|
|
36
|
+
helperInstall(packages: string[], comment?: string, cmd?: string): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
prepare(verbose?: boolean, no_accessories?: boolean, no_firmwares?: boolean): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
*
|
|
43
|
+
* @param command
|
|
44
|
+
*/
|
|
45
|
+
titles(command?: string): void;
|
|
46
|
+
}
|