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,94 +1,30 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* ./src/classes/families/fedora.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
|
-
const utils_1 = tslib_1.__importDefault(require("../utils"));
|
|
14
|
-
const pacman_1 = tslib_1.__importDefault(require("../pacman"));
|
|
15
|
-
const dependencies_1 = require("../../lib/dependencies");
|
|
16
|
-
const utils_2 = require("../../lib/utils");
|
|
8
|
+
import fs from 'node:fs';
|
|
9
|
+
import shx from 'shelljs';
|
|
10
|
+
import { exec } from '../../lib/utils.js';
|
|
11
|
+
import Utils from '../utils.js';
|
|
17
12
|
/**
|
|
18
13
|
* Utils: general porpourse utils
|
|
19
14
|
* @remarks all the utilities
|
|
20
15
|
*/
|
|
21
|
-
class Fedora {
|
|
22
|
-
|
|
23
|
-
* check if it's installed xorg
|
|
24
|
-
* @returns true if xorg is installed
|
|
25
|
-
*/
|
|
26
|
-
static isInstalledXorg() {
|
|
27
|
-
return this.packageIsInstalled('xorg-x11-server-Xorg.x86_64');
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* check if it's installed wayland
|
|
31
|
-
* @returns true if wayland
|
|
32
|
-
*/
|
|
33
|
-
static isInstalledWayland() {
|
|
34
|
-
return this.packageIsInstalled('xorg-x11-server-Xwayland*');
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Crea array pacchetti da installare/rimuovere
|
|
38
|
-
*/
|
|
39
|
-
static packages(remove = false, verbose = false) {
|
|
40
|
-
// Preso qualcosa da livecd-tools
|
|
41
|
-
const packages = ['xorriso', 'xz-lzma-compat', 'syslinux', 'squashfs-tools'];
|
|
42
|
-
const toInstall = [];
|
|
43
|
-
const toRemove = [];
|
|
44
|
-
for (const elem of packages) {
|
|
45
|
-
if (!this.packageIsInstalled(elem)) {
|
|
46
|
-
toInstall.push(elem);
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
toRemove.push(elem);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (remove) {
|
|
53
|
-
return toRemove;
|
|
54
|
-
}
|
|
55
|
-
return toInstall;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
*
|
|
59
|
-
*/
|
|
60
|
-
static async prerequisitesInstall(verbose = true) {
|
|
61
|
-
const echo = utils_1.default.setEcho(verbose);
|
|
62
|
-
const retVal = false;
|
|
63
|
-
await (0, utils_2.exec)(`dnf install ${(0, dependencies_1.array2spaced)(this.packages(false, verbose))}`, echo);
|
|
64
|
-
if (!pacman_1.default.isInstalledGui()) {
|
|
65
|
-
/**
|
|
66
|
-
* live-config-getty-generator
|
|
67
|
-
*
|
|
68
|
-
* Viene rimosso in naked, altrimenti non funziona il login
|
|
69
|
-
* generando un errore getty.
|
|
70
|
-
* Sarebbe utile individuarne le ragioni, forse rompe anche sul desktop
|
|
71
|
-
* non permettendo di cambiare terminale e loggarsi
|
|
72
|
-
*
|
|
73
|
-
* A che serve?
|
|
74
|
-
*/
|
|
75
|
-
const fileToRemove = '/lib/systemd/system-generators/live-config-getty-generator';
|
|
76
|
-
if (node_fs_1.default.existsSync(fileToRemove)) {
|
|
77
|
-
await (0, utils_2.exec)(`rm ${fileToRemove}`);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return retVal;
|
|
81
|
-
}
|
|
16
|
+
export default class Fedora {
|
|
17
|
+
static packs4calamares = ['calamares'];
|
|
82
18
|
/**
|
|
83
19
|
*
|
|
84
20
|
*/
|
|
85
21
|
static async calamaresInstall(verbose = true) {
|
|
86
|
-
const echo =
|
|
22
|
+
const echo = Utils.setEcho(verbose);
|
|
87
23
|
try {
|
|
88
|
-
await
|
|
24
|
+
await exec(`dnf install ${this.packs4calamares.join(' ')}`, echo);
|
|
89
25
|
}
|
|
90
26
|
catch {
|
|
91
|
-
|
|
27
|
+
Utils.error(`Fedora.calamaresInstall() pacman -Sy ${this.packs4calamares.join(' ')}`); // + e.error)
|
|
92
28
|
}
|
|
93
29
|
}
|
|
94
30
|
/**
|
|
@@ -96,37 +32,46 @@ class Fedora {
|
|
|
96
32
|
*/
|
|
97
33
|
static async calamaresPolicies() {
|
|
98
34
|
const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
|
|
99
|
-
/**
|
|
100
|
-
* Su fedora occorre vedere come fare!
|
|
101
|
-
*/
|
|
102
|
-
// await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`)
|
|
103
35
|
}
|
|
104
36
|
/**
|
|
105
37
|
*
|
|
106
38
|
*/
|
|
107
39
|
static async calamaresRemove(verbose = true) {
|
|
108
|
-
const echo =
|
|
40
|
+
const echo = Utils.setEcho(verbose);
|
|
109
41
|
const retVal = false;
|
|
110
|
-
if (
|
|
111
|
-
await
|
|
42
|
+
if (fs.existsSync('/etc/calamares')) {
|
|
43
|
+
await exec('rm /etc/calamares -rf', echo);
|
|
112
44
|
}
|
|
113
45
|
// yay???
|
|
114
|
-
await
|
|
46
|
+
await exec('yay -Rns calamares', echo);
|
|
115
47
|
return retVal;
|
|
116
48
|
}
|
|
49
|
+
/**
|
|
50
|
+
* check if it's installed wayland
|
|
51
|
+
* @returns true if wayland
|
|
52
|
+
*/
|
|
53
|
+
static isInstalledWayland() {
|
|
54
|
+
return this.packageIsInstalled('xorg-x11-server-Xwayland*');
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* check if it's installed xorg
|
|
58
|
+
* @returns true if xorg is installed
|
|
59
|
+
*/
|
|
60
|
+
static isInstalledXorg() {
|
|
61
|
+
return this.packageIsInstalled('xorg-x11-server-Xorg.x86_64');
|
|
62
|
+
}
|
|
117
63
|
/**
|
|
118
64
|
* restuisce VERO se il pacchetto è installato
|
|
119
65
|
* @param packageName
|
|
120
66
|
*/
|
|
121
|
-
static
|
|
122
|
-
let
|
|
123
|
-
|
|
124
|
-
const
|
|
125
|
-
const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
|
|
67
|
+
static async packageAvailable(packageName) {
|
|
68
|
+
let available = false;
|
|
69
|
+
const cmd = `/usr/bin/dnf list --available ${packageName} | grep Package:`;
|
|
70
|
+
const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
|
|
126
71
|
if (stdout.includes(packageName)) {
|
|
127
|
-
|
|
72
|
+
available = true;
|
|
128
73
|
}
|
|
129
|
-
return
|
|
74
|
+
return available;
|
|
130
75
|
}
|
|
131
76
|
/**
|
|
132
77
|
* Install the package packageName
|
|
@@ -135,7 +80,7 @@ class Fedora {
|
|
|
135
80
|
*/
|
|
136
81
|
static async packageInstall(packageName) {
|
|
137
82
|
let retVal = false;
|
|
138
|
-
if (
|
|
83
|
+
if (shx.exec(`/usr/bin/dnf install ${packageName}`, { silent: true }) === '0') {
|
|
139
84
|
retVal = true;
|
|
140
85
|
}
|
|
141
86
|
return retVal;
|
|
@@ -144,15 +89,14 @@ class Fedora {
|
|
|
144
89
|
* restuisce VERO se il pacchetto è installato
|
|
145
90
|
* @param packageName
|
|
146
91
|
*/
|
|
147
|
-
static
|
|
148
|
-
let
|
|
149
|
-
|
|
150
|
-
const
|
|
92
|
+
static packageIsInstalled(packageName) {
|
|
93
|
+
let installed = false;
|
|
94
|
+
// rpm -qa | grep -i nano
|
|
95
|
+
const cmd = `/usr/bin/dnf list --installed ${packageName}`;
|
|
96
|
+
const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
|
|
151
97
|
if (stdout.includes(packageName)) {
|
|
152
|
-
|
|
98
|
+
installed = true;
|
|
153
99
|
}
|
|
154
|
-
return
|
|
100
|
+
return installed;
|
|
155
101
|
}
|
|
156
102
|
}
|
|
157
|
-
Fedora.packs4calamares = ['calamares'];
|
|
158
|
-
exports.default = Fedora;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/families/mockup.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
|
+
* Mockup
|
|
10
|
+
* @remarks all the utilities
|
|
11
|
+
*/
|
|
12
|
+
export default class Mockup {
|
|
13
|
+
/**
|
|
14
|
+
* Mockup: calamaresInstall
|
|
15
|
+
*/
|
|
16
|
+
static calamaresInstall(verbose?: boolean): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* Mockup: calamaresPolicies
|
|
19
|
+
*/
|
|
20
|
+
static calamaresPolicies(): Promise<void>;
|
|
21
|
+
/**
|
|
22
|
+
* Mockup: calamaresRemove
|
|
23
|
+
*/
|
|
24
|
+
static calamaresRemove(verbose?: boolean): Promise<boolean>;
|
|
25
|
+
/**
|
|
26
|
+
* Mockup: isInstalledWayland
|
|
27
|
+
* @returns true if wayland is installed
|
|
28
|
+
*/
|
|
29
|
+
static isInstalledWayland(): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Mockup: isInstalledXorg
|
|
32
|
+
* @returns true if xorg is installed
|
|
33
|
+
*/
|
|
34
|
+
static isInstalledXorg(): boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Mockup: packageInstall
|
|
37
|
+
* Install the package packageName
|
|
38
|
+
* @param packageName {string}
|
|
39
|
+
* @returns {boolean} True if success
|
|
40
|
+
*/
|
|
41
|
+
static packageInstall(packageName: string): Promise<boolean>;
|
|
42
|
+
/**
|
|
43
|
+
* Mockup: packageIsInstalled
|
|
44
|
+
* restuisce VERO se il pacchetto è installato
|
|
45
|
+
* @param packageName
|
|
46
|
+
*/
|
|
47
|
+
static packageIsInstalled(packageName: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Mockup: packagePacmanAvailable
|
|
50
|
+
* restuisce VERO se il pacchetto è installato
|
|
51
|
+
* @param packageName
|
|
52
|
+
*/
|
|
53
|
+
static packagePacmanAvailable(packageName: string): Promise<boolean>;
|
|
54
|
+
/**
|
|
55
|
+
* Mockup: packagePacmanLast
|
|
56
|
+
* @param packageName
|
|
57
|
+
* @returns
|
|
58
|
+
*/
|
|
59
|
+
static packagePacmanLast(packageName: string): Promise<string>;
|
|
60
|
+
}
|
|
@@ -1,47 +1,15 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* eslint-disable no-console */
|
|
3
1
|
/**
|
|
4
|
-
*
|
|
5
|
-
*
|
|
2
|
+
* ./src/classes/families/mockup.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
6
4
|
* author: Piero Proietti
|
|
7
5
|
* email: piero.proietti@gmail.com
|
|
8
6
|
* license: MIT
|
|
9
7
|
*/
|
|
10
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
8
|
/**
|
|
12
9
|
* Mockup
|
|
13
10
|
* @remarks all the utilities
|
|
14
11
|
*/
|
|
15
|
-
class Mockup {
|
|
16
|
-
/**
|
|
17
|
-
* Mockup: isInstalledXorg
|
|
18
|
-
* @returns true if xorg is installed
|
|
19
|
-
*/
|
|
20
|
-
static isInstalledXorg() {
|
|
21
|
-
return this.packageIsInstalled('xorg-server-common');
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Mockup: isInstalledWayland
|
|
25
|
-
* @returns true if wayland is installed
|
|
26
|
-
*/
|
|
27
|
-
static isInstalledWayland() {
|
|
28
|
-
return this.packageIsInstalled('xwayland');
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Mockup: packages
|
|
32
|
-
* Create array packages to install/remove
|
|
33
|
-
*/
|
|
34
|
-
static packages(remove = false, verbose = false) {
|
|
35
|
-
let packages = [''];
|
|
36
|
-
return packages;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Mockup: prerequisitesInstall
|
|
40
|
-
*/
|
|
41
|
-
static async prerequisitesInstall(verbose = true) {
|
|
42
|
-
let retVal = false;
|
|
43
|
-
return retVal;
|
|
44
|
-
}
|
|
12
|
+
export default class Mockup {
|
|
45
13
|
/**
|
|
46
14
|
* Mockup: calamaresInstall
|
|
47
15
|
*/
|
|
@@ -56,17 +24,22 @@ class Mockup {
|
|
|
56
24
|
* Mockup: calamaresRemove
|
|
57
25
|
*/
|
|
58
26
|
static async calamaresRemove(verbose = true) {
|
|
59
|
-
|
|
27
|
+
const removed = false;
|
|
60
28
|
return removed;
|
|
61
29
|
}
|
|
62
30
|
/**
|
|
63
|
-
* Mockup:
|
|
64
|
-
*
|
|
65
|
-
* @param packageName
|
|
31
|
+
* Mockup: isInstalledWayland
|
|
32
|
+
* @returns true if wayland is installed
|
|
66
33
|
*/
|
|
67
|
-
static
|
|
68
|
-
|
|
69
|
-
|
|
34
|
+
static isInstalledWayland() {
|
|
35
|
+
return this.packageIsInstalled('xwayland');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Mockup: isInstalledXorg
|
|
39
|
+
* @returns true if xorg is installed
|
|
40
|
+
*/
|
|
41
|
+
static isInstalledXorg() {
|
|
42
|
+
return this.packageIsInstalled('xorg-server-common');
|
|
70
43
|
}
|
|
71
44
|
/**
|
|
72
45
|
* Mockup: packageInstall
|
|
@@ -75,16 +48,25 @@ class Mockup {
|
|
|
75
48
|
* @returns {boolean} True if success
|
|
76
49
|
*/
|
|
77
50
|
static async packageInstall(packageName) {
|
|
78
|
-
|
|
51
|
+
const retVal = false;
|
|
79
52
|
return retVal;
|
|
80
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
* Mockup: packageIsInstalled
|
|
56
|
+
* restuisce VERO se il pacchetto è installato
|
|
57
|
+
* @param packageName
|
|
58
|
+
*/
|
|
59
|
+
static packageIsInstalled(packageName) {
|
|
60
|
+
const installed = false;
|
|
61
|
+
return installed;
|
|
62
|
+
}
|
|
81
63
|
/**
|
|
82
64
|
* Mockup: packagePacmanAvailable
|
|
83
65
|
* restuisce VERO se il pacchetto è installato
|
|
84
66
|
* @param packageName
|
|
85
67
|
*/
|
|
86
68
|
static async packagePacmanAvailable(packageName) {
|
|
87
|
-
|
|
69
|
+
const available = false;
|
|
88
70
|
return available;
|
|
89
71
|
}
|
|
90
72
|
/**
|
|
@@ -93,8 +75,7 @@ class Mockup {
|
|
|
93
75
|
* @returns
|
|
94
76
|
*/
|
|
95
77
|
static async packagePacmanLast(packageName) {
|
|
96
|
-
|
|
78
|
+
const version = '';
|
|
97
79
|
return version;
|
|
98
80
|
}
|
|
99
81
|
}
|
|
100
|
-
exports.default = Mockup;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/families/suse.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
|
+
* Utils: general porpourse utils
|
|
10
|
+
* @remarks all the utilities
|
|
11
|
+
*/
|
|
12
|
+
export default class Suse {
|
|
13
|
+
static packs4calamares: string[];
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
static calamaresInstall(verbose?: boolean): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* calamaresPolicies
|
|
20
|
+
*/
|
|
21
|
+
static calamaresPolicies(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
static calamaresRemove(verbose?: boolean): Promise<boolean>;
|
|
26
|
+
/**
|
|
27
|
+
* check if it's installed wayland
|
|
28
|
+
* @returns true if wayland
|
|
29
|
+
*/
|
|
30
|
+
static isInstalledWayland(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* check if it's installed xorg
|
|
33
|
+
* @returns true if xorg is installed
|
|
34
|
+
*/
|
|
35
|
+
static isInstalledXorg(): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* restuisce VERO se il pacchetto è installato
|
|
38
|
+
* @param packageName
|
|
39
|
+
*/
|
|
40
|
+
static packageAvailable(packageName: string): Promise<boolean>;
|
|
41
|
+
/**
|
|
42
|
+
* Install the package packageName
|
|
43
|
+
* @param packageName {string} Pacchetto da installare
|
|
44
|
+
* @returns {boolean} True if success
|
|
45
|
+
*/
|
|
46
|
+
static packageInstall(packageName: string): Promise<boolean>;
|
|
47
|
+
/**
|
|
48
|
+
* restuisce VERO se il pacchetto è installato
|
|
49
|
+
* @param packageName
|
|
50
|
+
*/
|
|
51
|
+
static packageIsInstalled(packageName: string): boolean;
|
|
52
|
+
}
|
|
@@ -1,94 +1,30 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* ./src/classes/families/suse.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
|
-
const utils_1 = tslib_1.__importDefault(require("../utils"));
|
|
14
|
-
const pacman_1 = tslib_1.__importDefault(require("../pacman"));
|
|
15
|
-
const dependencies_1 = require("../../lib/dependencies");
|
|
16
|
-
const utils_2 = require("../../lib/utils");
|
|
8
|
+
import fs from 'node:fs';
|
|
9
|
+
import shx from 'shelljs';
|
|
10
|
+
import { exec } from '../../lib/utils.js';
|
|
11
|
+
import Utils from '../utils.js';
|
|
17
12
|
/**
|
|
18
13
|
* Utils: general porpourse utils
|
|
19
14
|
* @remarks all the utilities
|
|
20
15
|
*/
|
|
21
|
-
class Suse {
|
|
22
|
-
|
|
23
|
-
* check if it's installed xorg
|
|
24
|
-
* @returns true if xorg is installed
|
|
25
|
-
*/
|
|
26
|
-
static isInstalledXorg() {
|
|
27
|
-
return this.packageIsInstalled('xorg-x11-server');
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* check if it's installed wayland
|
|
31
|
-
* @returns true if wayland
|
|
32
|
-
*/
|
|
33
|
-
static isInstalledWayland() {
|
|
34
|
-
return this.packageIsInstalled('xwayland*');
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Crea array pacchetti da installare/rimuovere
|
|
38
|
-
*/
|
|
39
|
-
static packages(remove = false, verbose = false) {
|
|
40
|
-
// Preso qualcosa da livecd-tools
|
|
41
|
-
const packages = ['xorriso', 'syslinux', 'squashfs'];
|
|
42
|
-
const toInstall = [];
|
|
43
|
-
const toRemove = [];
|
|
44
|
-
for (const elem of packages) {
|
|
45
|
-
if (!this.packageIsInstalled(elem)) {
|
|
46
|
-
toInstall.push(elem);
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
toRemove.push(elem);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (remove) {
|
|
53
|
-
return toRemove;
|
|
54
|
-
}
|
|
55
|
-
return toInstall;
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
*
|
|
59
|
-
*/
|
|
60
|
-
static async prerequisitesInstall(verbose = true) {
|
|
61
|
-
const echo = utils_1.default.setEcho(verbose);
|
|
62
|
-
const retVal = false;
|
|
63
|
-
await (0, utils_2.exec)(`dnf install ${(0, dependencies_1.array2spaced)(this.packages(false, verbose))}`, echo);
|
|
64
|
-
if (!pacman_1.default.isInstalledGui()) {
|
|
65
|
-
/**
|
|
66
|
-
* live-config-getty-generator
|
|
67
|
-
*
|
|
68
|
-
* Viene rimosso in naked, altrimenti non funziona il login
|
|
69
|
-
* generando un errore getty.
|
|
70
|
-
* Sarebbe utile individuarne le ragioni, forse rompe anche sul desktop
|
|
71
|
-
* non permettendo di cambiare terminale e loggarsi
|
|
72
|
-
*
|
|
73
|
-
* A che serve?
|
|
74
|
-
*/
|
|
75
|
-
const fileToRemove = '/lib/systemd/system-generators/live-config-getty-generator';
|
|
76
|
-
if (node_fs_1.default.existsSync(fileToRemove)) {
|
|
77
|
-
await (0, utils_2.exec)(`rm ${fileToRemove}`);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return retVal;
|
|
81
|
-
}
|
|
16
|
+
export default class Suse {
|
|
17
|
+
static packs4calamares = ['calamares'];
|
|
82
18
|
/**
|
|
83
19
|
*
|
|
84
20
|
*/
|
|
85
21
|
static async calamaresInstall(verbose = true) {
|
|
86
|
-
const echo =
|
|
22
|
+
const echo = Utils.setEcho(verbose);
|
|
87
23
|
try {
|
|
88
|
-
await
|
|
24
|
+
await exec(`zypper install ${this.packs4calamares.join(' ')}`, echo);
|
|
89
25
|
}
|
|
90
26
|
catch {
|
|
91
|
-
|
|
27
|
+
Utils.error(`Fedora.calamaresInstall() pacman -Sy ${this.packs4calamares.join(' ')}`); // + e.error)
|
|
92
28
|
}
|
|
93
29
|
}
|
|
94
30
|
/**
|
|
@@ -102,30 +38,43 @@ class Suse {
|
|
|
102
38
|
// await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`)
|
|
103
39
|
}
|
|
104
40
|
/**
|
|
105
|
-
|
|
106
|
-
|
|
41
|
+
*
|
|
42
|
+
*/
|
|
107
43
|
static async calamaresRemove(verbose = true) {
|
|
108
|
-
const echo =
|
|
44
|
+
const echo = Utils.setEcho(verbose);
|
|
109
45
|
const retVal = false;
|
|
110
|
-
if (
|
|
111
|
-
await
|
|
46
|
+
if (fs.existsSync('/etc/calamares')) {
|
|
47
|
+
await exec('rm /etc/calamares -rf', echo);
|
|
112
48
|
}
|
|
113
|
-
await
|
|
49
|
+
await exec('zypper remove calamares', echo);
|
|
114
50
|
return retVal;
|
|
115
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* check if it's installed wayland
|
|
54
|
+
* @returns true if wayland
|
|
55
|
+
*/
|
|
56
|
+
static isInstalledWayland() {
|
|
57
|
+
return this.packageIsInstalled('xwayland*');
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* check if it's installed xorg
|
|
61
|
+
* @returns true if xorg is installed
|
|
62
|
+
*/
|
|
63
|
+
static isInstalledXorg() {
|
|
64
|
+
return this.packageIsInstalled('xorg-x11-server');
|
|
65
|
+
}
|
|
116
66
|
/**
|
|
117
67
|
* restuisce VERO se il pacchetto è installato
|
|
118
68
|
* @param packageName
|
|
119
69
|
*/
|
|
120
|
-
static
|
|
121
|
-
let
|
|
122
|
-
|
|
123
|
-
const
|
|
124
|
-
const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
|
|
70
|
+
static async packageAvailable(packageName) {
|
|
71
|
+
let available = false;
|
|
72
|
+
const cmd = `/usr/bin/zypper --not-installed-only ${packageName} | grep Package:`;
|
|
73
|
+
const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
|
|
125
74
|
if (stdout.includes(packageName)) {
|
|
126
|
-
|
|
75
|
+
available = true;
|
|
127
76
|
}
|
|
128
|
-
return
|
|
77
|
+
return available;
|
|
129
78
|
}
|
|
130
79
|
/**
|
|
131
80
|
* Install the package packageName
|
|
@@ -134,7 +83,7 @@ class Suse {
|
|
|
134
83
|
*/
|
|
135
84
|
static async packageInstall(packageName) {
|
|
136
85
|
let retVal = false;
|
|
137
|
-
if (
|
|
86
|
+
if (shx.exec(`/usr/bin/zypper install ${packageName}`, { silent: true }) === '0') {
|
|
138
87
|
retVal = true;
|
|
139
88
|
}
|
|
140
89
|
return retVal;
|
|
@@ -143,15 +92,14 @@ class Suse {
|
|
|
143
92
|
* restuisce VERO se il pacchetto è installato
|
|
144
93
|
* @param packageName
|
|
145
94
|
*/
|
|
146
|
-
static
|
|
147
|
-
let
|
|
148
|
-
|
|
149
|
-
const
|
|
95
|
+
static packageIsInstalled(packageName) {
|
|
96
|
+
let installed = false;
|
|
97
|
+
// rpm -qa | grep -i nano
|
|
98
|
+
const cmd = `/usr/bin/zypper search --installed-only ${packageName}`;
|
|
99
|
+
const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
|
|
150
100
|
if (stdout.includes(packageName)) {
|
|
151
|
-
|
|
101
|
+
installed = true;
|
|
152
102
|
}
|
|
153
|
-
return
|
|
103
|
+
return installed;
|
|
154
104
|
}
|
|
155
105
|
}
|
|
156
|
-
Suse.packs4calamares = ['calamares'];
|
|
157
|
-
exports.default = Suse;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/incubation/branding.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 { IDistro, IRemix } from '../../interfaces/index.js';
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
* @param remix
|
|
12
|
+
* @param distro
|
|
13
|
+
* @param theme
|
|
14
|
+
* @param verbose
|
|
15
|
+
* @returns
|
|
16
|
+
*/
|
|
17
|
+
export declare function branding(remix: IRemix, distro: IDistro, theme?: string, verbose?: boolean): string;
|