penguins-eggs 9.8.1 → 10.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oclif.manifest.json +62 -62
- package/README.md +43 -40
- package/bin/dev.cmd +1 -1
- package/bin/dev.js +6 -6
- package/bin/run.js +3 -5
- package/conf/tools.yaml +1 -1
- package/dist/classes/bleach.d.ts +37 -0
- package/dist/classes/bleach.js +43 -91
- package/dist/classes/cfs.d.ts +17 -0
- package/dist/classes/cfs.js +15 -12
- package/dist/classes/compressors.d.ts +53 -0
- package/dist/classes/compressors.js +42 -47
- package/dist/classes/daddy.d.ts +18 -0
- package/dist/classes/daddy.js +92 -98
- package/dist/classes/distro.d.ts +26 -0
- package/dist/classes/distro.js +36 -37
- package/dist/classes/families/archlinux.d.ts +61 -0
- package/dist/classes/families/archlinux.js +52 -107
- package/dist/classes/families/debian.d.ts +65 -0
- package/dist/classes/families/debian.js +67 -142
- package/dist/classes/families/fedora.d.ts +52 -0
- package/dist/classes/families/fedora.js +42 -98
- package/dist/classes/families/mockup.d.ts +60 -0
- package/dist/classes/families/mockup.js +27 -46
- package/dist/classes/families/suse.d.ts +52 -0
- package/dist/classes/families/suse.js +44 -96
- package/dist/classes/incubation/branding.d.ts +17 -0
- package/dist/classes/incubation/branding.js +32 -36
- package/dist/classes/incubation/distros/bionic.d.ts +32 -0
- package/dist/classes/incubation/distros/bionic.js +11 -16
- package/dist/classes/incubation/distros/buster.d.ts +32 -0
- package/dist/classes/incubation/distros/buster.js +13 -18
- package/dist/classes/incubation/distros/focal.d.ts +32 -0
- package/dist/classes/incubation/distros/focal.js +11 -16
- package/dist/classes/incubation/distros/jessie.d.ts +31 -0
- package/dist/classes/incubation/distros/jessie.js +8 -13
- package/dist/classes/incubation/distros/rolling.d.ts +32 -0
- package/dist/classes/incubation/distros/rolling.js +11 -16
- package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +11 -0
- package/dist/classes/incubation/fisherman-helper/displaymanager.js +8 -9
- package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
- package/dist/classes/incubation/fisherman-helper/packages.js +17 -20
- package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
- package/dist/classes/incubation/fisherman-helper/settings.js +30 -28
- package/dist/classes/incubation/fisherman.d.ts +77 -0
- package/dist/classes/incubation/fisherman.js +135 -131
- package/dist/classes/incubation/incubator.d.ts +40 -0
- package/dist/classes/incubation/incubator.js +90 -89
- package/dist/classes/incubation/installer.d.ts +13 -0
- package/dist/classes/incubation/installer.js +27 -12
- package/dist/classes/initrd.d.ts +41 -0
- package/dist/classes/initrd.js +40 -42
- package/dist/classes/keyboards.d.ts +50 -0
- package/dist/classes/keyboards.js +108 -105
- package/dist/classes/locales.d.ts +21 -0
- package/dist/classes/locales.js +30 -34
- package/dist/classes/n8.d.ts +17 -0
- package/dist/classes/n8.js +16 -22
- package/dist/classes/network.d.ts +37 -0
- package/dist/classes/network.js +14 -18
- package/dist/classes/ovary.d.ts +205 -0
- package/dist/classes/ovary.js +1281 -1294
- package/dist/classes/pacman.d.ts +149 -0
- package/dist/classes/pacman.js +344 -418
- package/dist/classes/pve-live.d.ts +17 -0
- package/dist/classes/pve-live.js +22 -24
- package/dist/classes/pxe.d.ts +65 -0
- package/dist/classes/pxe.js +204 -206
- package/dist/classes/settings.d.ts +53 -0
- package/dist/classes/settings.js +91 -94
- package/dist/classes/sources_list.d.ts +28 -0
- package/dist/classes/sources_list.js +35 -39
- package/dist/classes/systemctl.d.ts +47 -0
- package/dist/classes/systemctl.js +34 -38
- package/dist/classes/tailor.d.ts +46 -0
- package/dist/classes/tailor.js +223 -239
- package/dist/classes/tools.d.ts +30 -0
- package/dist/classes/tools.js +18 -22
- package/dist/classes/users.d.ts +28 -0
- package/dist/classes/users.js +18 -22
- package/dist/classes/utils.d.ts +318 -0
- package/dist/classes/utils.js +78 -78
- package/dist/classes/xdg.d.ts +45 -0
- package/dist/classes/xdg.js +129 -133
- package/dist/classes/yolk.d.ts +33 -0
- package/dist/classes/yolk.js +53 -57
- package/dist/commands/adapt.d.ts +17 -0
- package/dist/commands/adapt.js +17 -21
- package/dist/commands/analyze.d.ts +26 -0
- package/dist/commands/analyze.js +56 -67
- package/dist/commands/calamares.d.ts +29 -0
- package/dist/commands/calamares.js +44 -48
- package/dist/commands/config.d.ts +36 -0
- package/dist/commands/config.js +115 -137
- package/dist/commands/cuckoo.d.ts +16 -0
- package/dist/commands/cuckoo.js +20 -24
- package/dist/commands/dad.d.ts +19 -0
- package/dist/commands/dad.js +20 -24
- package/dist/commands/export/deb.d.ts +19 -0
- package/dist/commands/export/deb.js +19 -23
- package/dist/commands/export/iso.d.ts +19 -0
- package/dist/commands/export/iso.js +19 -23
- package/dist/commands/install.d.ts +37 -0
- package/dist/commands/install.js +46 -50
- package/dist/commands/kill.d.ts +24 -0
- package/dist/commands/kill.js +25 -29
- package/dist/commands/mom.d.ts +16 -0
- package/dist/commands/mom.js +16 -18
- package/dist/commands/produce.d.ts +33 -0
- package/dist/commands/produce.js +64 -66
- package/dist/commands/status.d.ts +23 -0
- package/dist/commands/status.js +10 -14
- package/dist/commands/syncfrom.d.ts +45 -0
- package/dist/commands/syncfrom.js +85 -89
- package/dist/commands/syncto.d.ts +40 -0
- package/dist/commands/syncto.js +91 -95
- package/dist/commands/tools/clean.d.ts +18 -0
- package/dist/commands/tools/clean.js +17 -21
- package/dist/commands/tools/ppa.d.ts +26 -0
- package/dist/commands/tools/ppa.js +41 -45
- package/dist/commands/tools/skel.d.ts +18 -0
- package/dist/commands/tools/skel.js +22 -26
- package/dist/commands/tools/stat.d.ts +31 -0
- package/dist/commands/tools/stat.js +15 -19
- package/dist/commands/tools/yolk.d.ts +24 -0
- package/dist/commands/tools/yolk.js +19 -23
- package/dist/commands/update.d.ts +47 -0
- package/dist/commands/update.js +62 -66
- package/dist/commands/wardrobe/get.d.ts +23 -0
- package/dist/commands/wardrobe/get.js +19 -23
- package/dist/commands/wardrobe/list.d.ts +24 -0
- package/dist/commands/wardrobe/list.js +61 -60
- package/dist/commands/wardrobe/show.d.ts +25 -0
- package/dist/commands/wardrobe/show.js +50 -47
- package/dist/commands/wardrobe/wear.d.ts +26 -0
- package/dist/commands/wardrobe/wear.js +32 -36
- package/dist/components/finished.d.ts +15 -0
- package/dist/components/finished.js +37 -42
- package/dist/components/information.d.ts +8 -0
- package/dist/components/information.js +155 -0
- package/dist/components/install.d.ts +15 -0
- package/dist/components/install.js +31 -35
- package/dist/components/keyboard.d.ts +16 -0
- package/dist/components/keyboard.js +37 -40
- package/dist/components/location.d.ts +16 -0
- package/dist/components/location.js +38 -38
- package/dist/components/network.d.ts +19 -0
- package/dist/components/network.js +47 -48
- package/dist/components/partitions.d.ts +16 -0
- package/dist/components/partitions.js +47 -51
- package/dist/components/steps.d.ts +13 -0
- package/dist/components/steps.js +148 -0
- package/dist/components/summary.d.ts +24 -0
- package/dist/components/summary.js +50 -54
- package/dist/components/title.d.ts +12 -0
- package/dist/components/title.js +35 -0
- package/dist/components/users.d.ts +24 -0
- package/dist/components/users.js +43 -43
- package/dist/components/welcome.d.ts +13 -0
- package/dist/components/welcome.js +37 -38
- package/dist/index.d.ts +8 -0
- package/dist/index.js +8 -5
- package/dist/interfaces/i-addons.d.ts +13 -0
- package/dist/interfaces/i-addons.js +8 -3
- package/dist/interfaces/i-analyze.d.ts +17 -0
- package/dist/interfaces/i-analyze.js +7 -10
- package/dist/interfaces/i-app.d.ts +14 -0
- package/dist/interfaces/i-app.js +8 -2
- package/dist/interfaces/i-branding.d.ts +36 -0
- package/dist/interfaces/i-branding.js +8 -2
- package/dist/interfaces/i-calamares-partition.d.ts +18 -0
- package/dist/interfaces/i-calamares-partition.js +3 -4
- package/dist/interfaces/i-config-tools.d.ts +18 -0
- package/dist/interfaces/i-config-tools.js +8 -2
- package/dist/interfaces/i-devices.d.ts +20 -0
- package/dist/interfaces/i-devices.js +8 -2
- package/dist/interfaces/i-distro.d.ts +27 -0
- package/dist/interfaces/i-distro.js +3 -4
- package/dist/interfaces/i-drive-list.d.ts +33 -0
- package/dist/interfaces/i-drive-list.js +3 -4
- package/dist/interfaces/i-eggs-config.d.ts +32 -0
- package/dist/interfaces/i-eggs-config.js +3 -4
- package/dist/interfaces/i-excludes.d.ts +14 -0
- package/dist/interfaces/i-excludes.js +8 -2
- package/dist/interfaces/i-exec.d.ts +11 -0
- package/dist/interfaces/i-exec.js +3 -4
- package/dist/interfaces/i-initrd.d.ts +13 -0
- package/dist/interfaces/i-initrd.js +8 -2
- package/dist/interfaces/i-install.d.ts +16 -0
- package/dist/interfaces/i-install.js +8 -2
- package/dist/interfaces/i-installer.d.ts +17 -0
- package/dist/interfaces/i-installer.js +8 -2
- package/dist/interfaces/i-krill-config.d.ts +33 -0
- package/dist/interfaces/i-krill-config.js +3 -4
- package/dist/interfaces/i-krill.d.ts +42 -0
- package/dist/interfaces/i-krill.js +8 -2
- package/dist/interfaces/i-materia.d.ts +41 -0
- package/dist/interfaces/i-materia.js +8 -2
- package/dist/interfaces/i-net.d.ts +16 -0
- package/dist/interfaces/i-net.js +8 -2
- package/dist/interfaces/i-packages.d.ts +29 -0
- package/dist/interfaces/i-packages.js +3 -4
- package/dist/interfaces/i-partitions.d.ts +16 -0
- package/dist/interfaces/i-partitions.js +8 -2
- package/dist/interfaces/i-pxe.d.ts +21 -0
- package/dist/interfaces/i-pxe.js +8 -39
- package/dist/interfaces/i-remix.d.ts +21 -0
- package/dist/interfaces/i-remix.js +3 -4
- package/dist/interfaces/i-settings.d.ts +39 -0
- package/dist/interfaces/i-settings.js +8 -2
- package/dist/interfaces/i-user.d.ts +14 -0
- package/dist/interfaces/i-user.js +8 -2
- package/dist/interfaces/i-workdir.d.ts +14 -0
- package/dist/interfaces/i-workdir.js +8 -2
- package/dist/interfaces/i-xkb-model.d.ts +24 -0
- package/dist/interfaces/i-xkb-model.js +8 -2
- package/dist/interfaces/index.d.ts +25 -0
- package/dist/interfaces/index.js +3 -4
- package/dist/krill/modules/add-user.d.ts +20 -0
- package/dist/krill/modules/add-user.js +11 -15
- package/dist/krill/modules/bootloader-config-arch.d.ts +14 -0
- package/dist/krill/modules/bootloader-config-arch.js +15 -11
- package/dist/krill/modules/bootloader-config-debian.d.ts +10 -0
- package/dist/krill/modules/bootloader-config-debian.js +20 -16
- package/dist/krill/modules/bootloader-config.d.ts +10 -0
- package/dist/krill/modules/bootloader-config.js +3 -6
- package/dist/krill/modules/bootloader.d.ts +14 -0
- package/dist/krill/modules/bootloader.js +9 -13
- package/dist/krill/modules/change-password.d.ts +15 -0
- package/dist/krill/modules/change-password.js +5 -8
- package/dist/krill/modules/del-live-user.d.ts +14 -0
- package/dist/krill/modules/del-live-user.js +8 -12
- package/dist/krill/modules/fstab.d.ts +14 -0
- package/dist/krill/modules/fstab.js +33 -37
- package/dist/krill/modules/grubcfg.d.ts +17 -0
- package/dist/krill/modules/grubcfg.js +8 -17
- package/dist/krill/modules/hostname.d.ts +13 -0
- package/dist/krill/modules/hostname.js +11 -17
- package/dist/krill/modules/initramfs-cfg.d.ts +14 -0
- package/dist/krill/modules/initramfs-cfg.js +6 -15
- package/dist/krill/modules/initramfs.d.ts +13 -0
- package/dist/krill/modules/initramfs.js +17 -19
- package/dist/krill/modules/locale-cfg.d.ts +10 -0
- package/dist/krill/modules/locale-cfg.js +8 -12
- package/dist/krill/modules/locale.d.ts +13 -0
- package/dist/krill/modules/locale.js +7 -11
- package/dist/krill/modules/m-keyboard.d.ts +14 -0
- package/dist/krill/modules/m-keyboard.js +14 -18
- package/dist/krill/modules/m-timezone.d.ts +14 -0
- package/dist/krill/modules/m-timezone.js +8 -12
- package/dist/krill/modules/machine-id.d.ts +15 -0
- package/dist/krill/modules/machine-id.js +6 -10
- package/dist/krill/modules/mkfs.d.ts +13 -0
- package/dist/krill/modules/mkfs.js +10 -13
- package/dist/krill/modules/mount-fs.d.ts +17 -0
- package/dist/krill/modules/mount-fs.js +20 -26
- package/dist/krill/modules/mount-vfs.d.ts +17 -0
- package/dist/krill/modules/mount-vfs.js +16 -21
- package/dist/krill/modules/network-cfg.d.ts +19 -0
- package/dist/krill/modules/network-cfg.js +16 -20
- package/dist/krill/modules/packages.d.ts +14 -0
- package/dist/krill/modules/packages.js +17 -21
- package/dist/krill/modules/partition.d.ts +20 -0
- package/dist/krill/modules/partition.js +78 -84
- package/dist/krill/modules/remove-installer-link.d.ts +13 -0
- package/dist/krill/modules/remove-installer-link.js +7 -11
- package/dist/krill/modules/umount.d.ts +14 -0
- package/dist/krill/modules/umount.js +9 -13
- package/dist/krill/modules/unpackfs.d.ts +13 -0
- package/dist/krill/modules/unpackfs.js +7 -11
- package/dist/krill/prepare.d.ts +77 -0
- package/dist/krill/{krill-prepare.js → prepare.js} +118 -124
- package/dist/krill/sequence.d.ts +156 -0
- package/dist/krill/{krill-sequence.js → sequence.js} +166 -170
- package/dist/lib/cli-autologin.d.ts +43 -0
- package/dist/lib/cli-autologin.js +88 -92
- package/dist/lib/get_address.d.ts +8 -0
- package/dist/lib/get_address.js +9 -11
- package/dist/lib/get_dns.d.ts +8 -0
- package/dist/lib/get_dns.js +9 -11
- package/dist/lib/get_domain.d.ts +8 -0
- package/dist/lib/get_domain.js +9 -11
- package/dist/lib/get_gateway.d.ts +8 -0
- package/dist/lib/get_gateway.js +9 -11
- package/dist/lib/get_hostname.d.ts +8 -0
- package/dist/lib/get_hostname.js +9 -11
- package/dist/lib/get_netmask.d.ts +8 -0
- package/dist/lib/get_netmask.js +9 -11
- package/dist/lib/get_password.d.ts +8 -0
- package/dist/lib/get_password.js +10 -13
- package/dist/lib/get_userfullname.d.ts +8 -0
- package/dist/lib/get_userfullname.js +9 -11
- package/dist/lib/get_username.d.ts +8 -0
- package/dist/lib/get_username.js +9 -12
- package/dist/lib/kill_me_softly.d.ts +11 -0
- package/dist/lib/kill_me_softly.js +19 -24
- package/dist/lib/select_address_type.d.ts +8 -0
- package/dist/lib/select_address_type.js +9 -12
- package/dist/lib/select_filesystem_type.d.ts +8 -0
- package/dist/lib/select_filesystem_type.js +15 -18
- package/dist/lib/select_installation_device.d.ts +8 -0
- package/dist/lib/select_installation_device.js +11 -15
- package/dist/lib/select_installation_mode.d.ts +8 -0
- package/dist/lib/select_installation_mode.js +9 -11
- package/dist/lib/select_interface.d.ts +8 -0
- package/dist/lib/select_interface.js +9 -12
- package/dist/lib/select_keyboard_layout.d.ts +11 -0
- package/dist/lib/select_keyboard_layout.js +11 -15
- package/dist/lib/select_keyboard_model.d.ts +11 -0
- package/dist/lib/select_keyboard_model.js +11 -15
- package/dist/lib/select_keyboard_option.d.ts +11 -0
- package/dist/lib/select_keyboard_option.js +11 -15
- package/dist/lib/select_keyboard_variant.d.ts +11 -0
- package/dist/lib/select_keyboard_variant.js +11 -15
- package/dist/lib/select_languages.d.ts +8 -0
- package/dist/lib/select_languages.js +11 -15
- package/dist/lib/select_regions.d.ts +8 -0
- package/dist/lib/select_regions.js +9 -11
- package/dist/lib/select_user_swap_choice.d.ts +8 -0
- package/dist/lib/select_user_swap_choice.js +13 -17
- package/dist/lib/select_zones.d.ts +8 -0
- package/dist/lib/select_zones.js +9 -11
- package/dist/lib/utils.d.ts +34 -0
- package/dist/lib/utils.js +24 -14
- package/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +10 -10
- package/package.json +48 -69
- package/LICENSE +0 -339
- package/bin/dev +0 -17
- package/bin/run +0 -5
- package/dist/components/elements/information.js +0 -194
- package/dist/components/elements/steps.js +0 -152
- package/dist/components/elements/title.js +0 -36
- package/dist/lib/dependencies.js +0 -121
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/families/archlinux.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
|
+
* Archlinux
|
|
10
|
+
* @remarks all the utilities
|
|
11
|
+
*/
|
|
12
|
+
export default class Archlinux {
|
|
13
|
+
static packs4calamares: string[];
|
|
14
|
+
/**
|
|
15
|
+
* Archlinux: calamaresInstall
|
|
16
|
+
*/
|
|
17
|
+
static calamaresInstall(verbose?: boolean): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Archlinux: calamaresPolicies
|
|
20
|
+
*/
|
|
21
|
+
static calamaresPolicies(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Archlinux: calamaresRemove
|
|
24
|
+
*/
|
|
25
|
+
static calamaresRemove(verbose?: boolean): Promise<boolean>;
|
|
26
|
+
/**
|
|
27
|
+
* Archlinux: isInstalledWayland
|
|
28
|
+
* @returns true if wayland is installed
|
|
29
|
+
*/
|
|
30
|
+
static isInstalledWayland(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Archlinux: isInstalledXorg
|
|
33
|
+
* @returns true if xorg is installed
|
|
34
|
+
*/
|
|
35
|
+
static isInstalledXorg(): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Archlinux: packageInstall
|
|
38
|
+
* Install the package packageName
|
|
39
|
+
* @param packageName {string} Pacchetto Debian da installare
|
|
40
|
+
* @returns {boolean} True if success
|
|
41
|
+
*/
|
|
42
|
+
static packageInstall(packageName: string): Promise<boolean>;
|
|
43
|
+
/**
|
|
44
|
+
* Archlinux: packageIsInstalled
|
|
45
|
+
* restuisce VERO se il pacchetto è installato
|
|
46
|
+
* @param packageName
|
|
47
|
+
*/
|
|
48
|
+
static packageIsInstalled(packageName: string): boolean;
|
|
49
|
+
/**
|
|
50
|
+
* Archlinux: packagePacmanAvailable
|
|
51
|
+
* restuisce VERO se il pacchetto è installato
|
|
52
|
+
* @param packageName
|
|
53
|
+
*/
|
|
54
|
+
static packagePacmanAvailable(packageName: string): Promise<boolean>;
|
|
55
|
+
/**
|
|
56
|
+
* Archlinux: packagePacmanLast
|
|
57
|
+
* @param packageName
|
|
58
|
+
* @returns
|
|
59
|
+
*/
|
|
60
|
+
static packagePacmanLast(packageName: string): Promise<string>;
|
|
61
|
+
}
|
|
@@ -1,109 +1,43 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/* eslint-disable no-console */
|
|
3
1
|
/**
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const utils_1 = tslib_1.__importDefault(require("../utils"));
|
|
15
|
-
const pacman_1 = tslib_1.__importDefault(require("../pacman"));
|
|
16
|
-
const dependencies_1 = require("../../lib/dependencies");
|
|
17
|
-
const utils_2 = require("../../lib/utils");
|
|
2
|
+
* ./src/classes/families/archlinux.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 fs from 'node:fs';
|
|
9
|
+
import shx from 'shelljs';
|
|
10
|
+
import { exec } from '../../lib/utils.js';
|
|
11
|
+
import Utils from '../utils.js';
|
|
18
12
|
/**
|
|
19
13
|
* Archlinux
|
|
20
14
|
* @remarks all the utilities
|
|
21
15
|
*/
|
|
22
|
-
class Archlinux {
|
|
16
|
+
export default class Archlinux {
|
|
23
17
|
static packs4calamares = ['calamares-eggs']; // , 'calamares', 'calamares-git']
|
|
24
|
-
/**
|
|
25
|
-
* Archlinux: isInstalledXorg
|
|
26
|
-
* @returns true if xorg is installed
|
|
27
|
-
*/
|
|
28
|
-
static isInstalledXorg() {
|
|
29
|
-
return this.packageIsInstalled('xorg-server-common');
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Archlinux: isInstalledWayland
|
|
33
|
-
* @returns true if wayland is installed
|
|
34
|
-
*/
|
|
35
|
-
static isInstalledWayland() {
|
|
36
|
-
return this.packageIsInstalled('xwayland');
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Archlinux: packages
|
|
40
|
-
* Create array packages to install/remove
|
|
41
|
-
*/
|
|
42
|
-
static packages(remove = false, verbose = false) {
|
|
43
|
-
const packages = ['']; // 'arch-install-scripts', 'e2fsprogs', 'erofs-utils', 'findutils', 'gzip', 'libarchive', 'libisoburn', 'mtools', 'openssl', 'rsync', 'sed', 'syslinux', 'squashfs-tools']
|
|
44
|
-
const toInstall = [];
|
|
45
|
-
const toRemove = [];
|
|
46
|
-
for (const elem of packages) {
|
|
47
|
-
if (!this.packageIsInstalled(elem)) {
|
|
48
|
-
toInstall.push(elem);
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
toRemove.push(elem);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
if (remove) {
|
|
55
|
-
return toRemove;
|
|
56
|
-
}
|
|
57
|
-
return toInstall;
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Archlinux: prerequisitesInstall
|
|
61
|
-
*/
|
|
62
|
-
static async prerequisitesInstall(verbose = true) {
|
|
63
|
-
const echo = utils_1.default.setEcho(verbose);
|
|
64
|
-
const retVal = false;
|
|
65
|
-
await (0, utils_2.exec)(`pacman -Sy ${(0, dependencies_1.array2spaced)(this.packages(false, verbose))}`, echo);
|
|
66
|
-
if (!pacman_1.default.isInstalledGui()) {
|
|
67
|
-
/**
|
|
68
|
-
* live-config-getty-generator
|
|
69
|
-
*
|
|
70
|
-
* Viene rimosso in naked, altrimenti non funziona il login
|
|
71
|
-
* generando un errore getty.
|
|
72
|
-
* Sarebbe utile individuarne le ragioni, forse rompe anche sul desktop
|
|
73
|
-
* non permettendo di cambiare terminale e loggarsi
|
|
74
|
-
*
|
|
75
|
-
* A che serve?
|
|
76
|
-
*/
|
|
77
|
-
const fileToRemove = '/lib/systemd/system-generators/live-config-getty-generator';
|
|
78
|
-
if (node_fs_1.default.existsSync(fileToRemove)) {
|
|
79
|
-
await (0, utils_2.exec)(`rm ${fileToRemove}`);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return retVal;
|
|
83
|
-
}
|
|
84
18
|
/**
|
|
85
19
|
* Archlinux: calamaresInstall
|
|
86
20
|
*/
|
|
87
21
|
static async calamaresInstall(verbose = false) {
|
|
88
22
|
verbose = true; // serve per pacman
|
|
89
|
-
const echo =
|
|
23
|
+
const echo = Utils.setEcho(verbose);
|
|
90
24
|
// const cal_eggs = 'arco-calamares-3.3.2-02-x86_64.pkg.tar.zst' // 2024-02-10
|
|
91
|
-
//const cal_eggs = 'arco-calamares-3.3.5-02-x86_64.pkg.tar.zst' // 2024-03-10
|
|
92
|
-
//const cal_eggs = 'calamares-garuda-3.3.5.r19.g10acebff4-1-x86_64.pkg.tar.zst' // 2024-03-10
|
|
25
|
+
// const cal_eggs = 'arco-calamares-3.3.5-02-x86_64.pkg.tar.zst' // 2024-03-10
|
|
26
|
+
// const cal_eggs = 'calamares-garuda-3.3.5.r19.g10acebff4-1-x86_64.pkg.tar.zst' // 2024-03-10
|
|
93
27
|
const cal_eggs = 'arco-calamares-3.3.6-06-x86_64.pkg.tar.zst'; // 24/04/27
|
|
94
28
|
let cmd = `wget -O /tmp/${cal_eggs} https://sourceforge.net/projects/penguins-eggs/files/PKGBUILD/${cal_eggs}/download`;
|
|
95
29
|
try {
|
|
96
|
-
await
|
|
30
|
+
await exec(cmd, echo);
|
|
97
31
|
cmd = `pacman -U /tmp/${cal_eggs}`;
|
|
98
32
|
try {
|
|
99
|
-
await
|
|
33
|
+
await exec(cmd, echo);
|
|
100
34
|
}
|
|
101
35
|
catch {
|
|
102
|
-
|
|
36
|
+
Utils.error(`Cannot install /tmp/${cal_eggs}`); // + e.error)
|
|
103
37
|
}
|
|
104
38
|
}
|
|
105
39
|
catch {
|
|
106
|
-
|
|
40
|
+
Utils.error(`Cannot download ${cal_eggs}`); // + e.error)
|
|
107
41
|
}
|
|
108
42
|
}
|
|
109
43
|
/**
|
|
@@ -111,7 +45,7 @@ class Archlinux {
|
|
|
111
45
|
*/
|
|
112
46
|
static async calamaresPolicies() {
|
|
113
47
|
const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
|
|
114
|
-
await
|
|
48
|
+
await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`);
|
|
115
49
|
}
|
|
116
50
|
/**
|
|
117
51
|
* Archlinux: calamaresRemove
|
|
@@ -119,38 +53,36 @@ class Archlinux {
|
|
|
119
53
|
static async calamaresRemove(verbose = true) {
|
|
120
54
|
verbose = true; // serve per pacman
|
|
121
55
|
let removed = false;
|
|
122
|
-
const echo =
|
|
123
|
-
|
|
56
|
+
const echo = Utils.setEcho(verbose);
|
|
57
|
+
const calPKGs = [
|
|
124
58
|
'arco-calamares',
|
|
125
59
|
'calamares',
|
|
126
60
|
'calamares-garuda',
|
|
127
61
|
];
|
|
128
62
|
for (const calPKG of calPKGs) {
|
|
129
63
|
if (await this.packagePacmanAvailable(calPKG)) {
|
|
130
|
-
await
|
|
64
|
+
await exec(`pacman -R ${calPKG}`, echo);
|
|
131
65
|
removed = true;
|
|
132
66
|
}
|
|
133
67
|
}
|
|
134
|
-
if (removed) {
|
|
135
|
-
|
|
136
|
-
await (0, utils_2.exec)('rm /etc/calamares -rf', echo);
|
|
137
|
-
}
|
|
68
|
+
if (removed && fs.existsSync('/etc/calamares')) {
|
|
69
|
+
await exec('rm /etc/calamares -rf', echo);
|
|
138
70
|
}
|
|
139
71
|
return removed;
|
|
140
72
|
}
|
|
141
73
|
/**
|
|
142
|
-
* Archlinux:
|
|
143
|
-
*
|
|
144
|
-
* @param packageName
|
|
74
|
+
* Archlinux: isInstalledWayland
|
|
75
|
+
* @returns true if wayland is installed
|
|
145
76
|
*/
|
|
146
|
-
static
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
77
|
+
static isInstalledWayland() {
|
|
78
|
+
return this.packageIsInstalled('xwayland');
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Archlinux: isInstalledXorg
|
|
82
|
+
* @returns true if xorg is installed
|
|
83
|
+
*/
|
|
84
|
+
static isInstalledXorg() {
|
|
85
|
+
return this.packageIsInstalled('xorg-server-common');
|
|
154
86
|
}
|
|
155
87
|
/**
|
|
156
88
|
* Archlinux: packageInstall
|
|
@@ -160,11 +92,25 @@ class Archlinux {
|
|
|
160
92
|
*/
|
|
161
93
|
static async packageInstall(packageName) {
|
|
162
94
|
let retVal = false;
|
|
163
|
-
if (
|
|
95
|
+
if (shx.exec(`/usr/bin/pacman -Si ${packageName}`, { silent: true }) === '0') {
|
|
164
96
|
retVal = true;
|
|
165
97
|
}
|
|
166
98
|
return retVal;
|
|
167
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Archlinux: packageIsInstalled
|
|
102
|
+
* restuisce VERO se il pacchetto è installato
|
|
103
|
+
* @param packageName
|
|
104
|
+
*/
|
|
105
|
+
static packageIsInstalled(packageName) {
|
|
106
|
+
let installed = false;
|
|
107
|
+
const cmd = `/usr/bin/pacman -Qi ${packageName}`;
|
|
108
|
+
const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
|
|
109
|
+
if (stdout.includes(packageName)) {
|
|
110
|
+
installed = true;
|
|
111
|
+
}
|
|
112
|
+
return installed;
|
|
113
|
+
}
|
|
168
114
|
/**
|
|
169
115
|
* Archlinux: packagePacmanAvailable
|
|
170
116
|
* restuisce VERO se il pacchetto è installato
|
|
@@ -173,7 +119,7 @@ class Archlinux {
|
|
|
173
119
|
static async packagePacmanAvailable(packageName) {
|
|
174
120
|
let available = false;
|
|
175
121
|
const cmd = `/usr/bin/pacman -Q ${packageName} | awk '{ print $1 }'`;
|
|
176
|
-
const stdout =
|
|
122
|
+
const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
|
|
177
123
|
if (stdout == packageName) {
|
|
178
124
|
available = true;
|
|
179
125
|
}
|
|
@@ -187,7 +133,7 @@ class Archlinux {
|
|
|
187
133
|
static async packagePacmanLast(packageName) {
|
|
188
134
|
let version = '';
|
|
189
135
|
const cmd = `/usr/bin/pacman -Q ${packageName} | grep Version:`;
|
|
190
|
-
const stdout =
|
|
136
|
+
const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
|
|
191
137
|
version = stdout.slice(9);
|
|
192
138
|
// console.log('===================================')
|
|
193
139
|
// console.log('[' + version + ']')
|
|
@@ -195,4 +141,3 @@ class Archlinux {
|
|
|
195
141
|
return version;
|
|
196
142
|
}
|
|
197
143
|
}
|
|
198
|
-
exports.default = Archlinux;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/families/debian.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
|
+
* Debian
|
|
10
|
+
* @remarks all the utilities
|
|
11
|
+
*/
|
|
12
|
+
export default class Debian {
|
|
13
|
+
static debs4calamares: string[];
|
|
14
|
+
/**
|
|
15
|
+
* Debian: calamaresInstall
|
|
16
|
+
*/
|
|
17
|
+
static calamaresInstall(verbose?: boolean): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Debian: calamaresPolicies
|
|
20
|
+
*/
|
|
21
|
+
static calamaresPolicies(): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Debian: calamaresRemove
|
|
24
|
+
*/
|
|
25
|
+
static calamaresRemove(verbose?: boolean): Promise<boolean>;
|
|
26
|
+
/**
|
|
27
|
+
* Debian: isInstalledWayland
|
|
28
|
+
* @returns true if wayland is installed
|
|
29
|
+
*/
|
|
30
|
+
static isInstalledWayland(): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Debian: isInstalledXorg
|
|
33
|
+
* @returns true if xorg is installed
|
|
34
|
+
*/
|
|
35
|
+
static isInstalledXorg(): boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Debian: liveInstallerPolicies
|
|
38
|
+
* liveInstallerPolicies is NOT USED
|
|
39
|
+
*/
|
|
40
|
+
static liveInstallerPolicies(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Debian: packageAptAvailable
|
|
43
|
+
* return TRUE if package is present on repository
|
|
44
|
+
* @param debPackage
|
|
45
|
+
*/
|
|
46
|
+
static packageAptAvailable(packageName: string): Promise<boolean>;
|
|
47
|
+
/**
|
|
48
|
+
* Debian: packageAptLast
|
|
49
|
+
* @param debPackage
|
|
50
|
+
* @returns version
|
|
51
|
+
*/
|
|
52
|
+
static packageAptLast(debPackage: string): Promise<string>;
|
|
53
|
+
/**
|
|
54
|
+
* Debian: packageInstall
|
|
55
|
+
* @param packageName {string} Pacchetto Debian da installare
|
|
56
|
+
* @returns {boolean} True if success
|
|
57
|
+
*/
|
|
58
|
+
static packageInstall(packageName: string): Promise<boolean>;
|
|
59
|
+
/**
|
|
60
|
+
* Debian: packageIsInstalled
|
|
61
|
+
* restuisce VERO se il pacchetto è installato
|
|
62
|
+
* @param debPackage
|
|
63
|
+
*/
|
|
64
|
+
static packageIsInstalled(debPackage: string): boolean;
|
|
65
|
+
}
|
|
@@ -1,128 +1,37 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const utils_1 = tslib_1.__importDefault(require("../utils"));
|
|
14
|
-
const pacman_1 = tslib_1.__importDefault(require("../pacman"));
|
|
15
|
-
const utils_2 = require("../../lib/utils");
|
|
16
|
-
const dependencies_1 = require("../../lib/dependencies");
|
|
2
|
+
* ./src/classes/families/debian.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 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
|
* Debian
|
|
19
14
|
* @remarks all the utilities
|
|
20
15
|
*/
|
|
21
|
-
class Debian {
|
|
16
|
+
export default class Debian {
|
|
22
17
|
static debs4calamares = ['calamares', 'qml-module-qtquick2', 'qml-module-qtquick-controls'];
|
|
23
|
-
/**
|
|
24
|
-
* Debian: isInstalledXorg
|
|
25
|
-
* @returns true if xorg is installed
|
|
26
|
-
*/
|
|
27
|
-
static isInstalledXorg() {
|
|
28
|
-
return this.packageIsInstalled('xserver-xorg-core');
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Debian: isInstalledWayland
|
|
32
|
-
* @returns true if wayland is installed
|
|
33
|
-
*/
|
|
34
|
-
static isInstalledWayland() {
|
|
35
|
-
return this.packageIsInstalled('xwayland');
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Debian: packages
|
|
39
|
-
* Create array packages to install/remove
|
|
40
|
-
*/
|
|
41
|
-
static packages(remove = false, verbose = false) {
|
|
42
|
-
let packages = [];
|
|
43
|
-
const toInstall = [];
|
|
44
|
-
const toRemove = [];
|
|
45
|
-
for (const elem of dependencies_1.depCommon) {
|
|
46
|
-
if (!this.packageIsInstalled(elem)) {
|
|
47
|
-
toInstall.push(elem);
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
toRemove.push(elem);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
const arch = utils_1.default.uefiArch();
|
|
54
|
-
for (const dep of dependencies_1.depArch) {
|
|
55
|
-
if (dep.arch.includes(arch)) {
|
|
56
|
-
if (!this.packageIsInstalled(dep.package)) {
|
|
57
|
-
toInstall.push(dep.package);
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
toRemove.push(dep.package);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* depending on init/systemd
|
|
66
|
-
*/
|
|
67
|
-
const initType = shelljs_1.default.exec('ps --no-headers -o comm 1', { silent: !verbose }).trim();
|
|
68
|
-
for (const dep of dependencies_1.depInit) {
|
|
69
|
-
if (dep.init.includes(initType)) {
|
|
70
|
-
if (!this.packageIsInstalled(dep.package)) {
|
|
71
|
-
toInstall.push(dep.package);
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
toRemove.push(dep.package);
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
packages = toInstall;
|
|
79
|
-
if (remove) {
|
|
80
|
-
packages = toRemove;
|
|
81
|
-
}
|
|
82
|
-
return packages;
|
|
83
|
-
}
|
|
84
|
-
/**
|
|
85
|
-
* Debian: prerequisitesInstall
|
|
86
|
-
* install prerequisites
|
|
87
|
-
*/
|
|
88
|
-
static async prerequisitesInstall(verbose = true) {
|
|
89
|
-
const echo = utils_1.default.setEcho(verbose);
|
|
90
|
-
const retVal = false;
|
|
91
|
-
await (0, utils_2.exec)(`apt-get install --yes ${(0, dependencies_1.array2spaced)(this.packages(false, verbose))}`, echo);
|
|
92
|
-
if (!pacman_1.default.isInstalledGui()) {
|
|
93
|
-
/**
|
|
94
|
-
* live-config-getty-generator
|
|
95
|
-
*
|
|
96
|
-
* Viene rimosso in naked, altrimenti non funziona il login
|
|
97
|
-
* generando un errore getty.
|
|
98
|
-
* Sarebbe utile individuarne le ragioni, forse rompe anche sul desktop
|
|
99
|
-
* non permettendo di cambiare terminale e loggarsi
|
|
100
|
-
*
|
|
101
|
-
* A che serve?
|
|
102
|
-
*/
|
|
103
|
-
const fileToRemove = '/lib/systemd/system-generators/live-config-getty-generator';
|
|
104
|
-
if (node_fs_1.default.existsSync(fileToRemove)) {
|
|
105
|
-
await (0, utils_2.exec)(`rm ${fileToRemove}`);
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
return retVal;
|
|
109
|
-
}
|
|
110
18
|
/**
|
|
111
19
|
* Debian: calamaresInstall
|
|
112
20
|
*/
|
|
113
21
|
static async calamaresInstall(verbose = true) {
|
|
114
|
-
const echo =
|
|
22
|
+
const echo = Utils.setEcho(verbose);
|
|
115
23
|
try {
|
|
116
|
-
await
|
|
24
|
+
await exec('apt-get update --yes', echo);
|
|
117
25
|
}
|
|
118
26
|
catch {
|
|
119
|
-
|
|
27
|
+
Utils.error('Debian.calamaresInstall() apt-get update --yes '); // + e.error as string)
|
|
120
28
|
}
|
|
121
29
|
try {
|
|
122
|
-
await
|
|
30
|
+
// await exec(`apt-get install --yes ${array2spaced(this.debs4calamares)}`, echo)
|
|
31
|
+
await exec(`apt-get install --yes ${this.debs4calamares.join(' ')}`, echo);
|
|
123
32
|
}
|
|
124
33
|
catch {
|
|
125
|
-
|
|
34
|
+
Utils.error(`Debian.calamaresInstall() apt-get install --yes ${array2spaced(this.debs4calamares)}`); // + e.error)
|
|
126
35
|
}
|
|
127
36
|
}
|
|
128
37
|
/**
|
|
@@ -130,54 +39,42 @@ class Debian {
|
|
|
130
39
|
*/
|
|
131
40
|
static async calamaresPolicies() {
|
|
132
41
|
const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
|
|
133
|
-
await
|
|
42
|
+
await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`);
|
|
134
43
|
}
|
|
135
44
|
/**
|
|
136
45
|
* Debian: calamaresRemove
|
|
137
46
|
*/
|
|
138
47
|
static async calamaresRemove(verbose = true) {
|
|
139
|
-
const echo =
|
|
48
|
+
const echo = Utils.setEcho(verbose);
|
|
140
49
|
const retVal = false;
|
|
141
|
-
if (
|
|
142
|
-
await
|
|
50
|
+
if (fs.existsSync('/etc/calamares')) {
|
|
51
|
+
await exec('rm /etc/calamares -rf', echo);
|
|
143
52
|
}
|
|
144
|
-
await
|
|
145
|
-
await
|
|
53
|
+
await exec('apt-get remove --purge --yes calamares', echo);
|
|
54
|
+
await exec('apt-get autoremove --yes', echo);
|
|
146
55
|
return retVal;
|
|
147
56
|
}
|
|
148
57
|
/**
|
|
149
|
-
* Debian:
|
|
150
|
-
*
|
|
58
|
+
* Debian: isInstalledWayland
|
|
59
|
+
* @returns true if wayland is installed
|
|
151
60
|
*/
|
|
152
|
-
static
|
|
153
|
-
|
|
154
|
-
await (0, utils_2.exec)(`sed -i 's/auth_admin/yes/' ${policyFile}`);
|
|
61
|
+
static isInstalledWayland() {
|
|
62
|
+
return this.packageIsInstalled('xwayland');
|
|
155
63
|
}
|
|
156
64
|
/**
|
|
157
|
-
* Debian:
|
|
158
|
-
*
|
|
159
|
-
* @param debPackage
|
|
65
|
+
* Debian: isInstalledXorg
|
|
66
|
+
* @returns true if xorg is installed
|
|
160
67
|
*/
|
|
161
|
-
static
|
|
162
|
-
|
|
163
|
-
const cmd = `/usr/bin/dpkg -s ${debPackage} | grep Status:`;
|
|
164
|
-
const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
|
|
165
|
-
if (stdout === 'Status: install ok installed') {
|
|
166
|
-
installed = true;
|
|
167
|
-
}
|
|
168
|
-
return installed;
|
|
68
|
+
static isInstalledXorg() {
|
|
69
|
+
return this.packageIsInstalled('xserver-xorg-core');
|
|
169
70
|
}
|
|
170
71
|
/**
|
|
171
|
-
* Debian:
|
|
172
|
-
*
|
|
173
|
-
* @returns {boolean} True if success
|
|
72
|
+
* Debian: liveInstallerPolicies
|
|
73
|
+
* liveInstallerPolicies is NOT USED
|
|
174
74
|
*/
|
|
175
|
-
static async
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
retVal = true;
|
|
179
|
-
}
|
|
180
|
-
return retVal;
|
|
75
|
+
static async liveInstallerPolicies() {
|
|
76
|
+
const policyFile = '/usr/share/polkit-1/actions/com.github.pieroproietti.penguins-eggs.policy';
|
|
77
|
+
await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`);
|
|
181
78
|
}
|
|
182
79
|
/**
|
|
183
80
|
* Debian: packageAptAvailable
|
|
@@ -188,7 +85,7 @@ class Debian {
|
|
|
188
85
|
let available = false;
|
|
189
86
|
const cmd = `apt-cache show ${packageName} | grep Package:`;
|
|
190
87
|
const test = `Package: ${packageName}`;
|
|
191
|
-
const stdout =
|
|
88
|
+
const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
|
|
192
89
|
if (stdout === test) {
|
|
193
90
|
available = true;
|
|
194
91
|
}
|
|
@@ -202,12 +99,40 @@ class Debian {
|
|
|
202
99
|
static async packageAptLast(debPackage) {
|
|
203
100
|
let version = '';
|
|
204
101
|
const cmd = `apt-cache show ${debPackage} | grep Version:`;
|
|
205
|
-
const stdout =
|
|
102
|
+
const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
|
|
206
103
|
version = stdout.slice(9);
|
|
207
104
|
// console.log('===================================')
|
|
208
105
|
// console.log('[' + version + ']')
|
|
209
106
|
// console.log('===================================')
|
|
210
107
|
return version;
|
|
211
108
|
}
|
|
109
|
+
/**
|
|
110
|
+
* Debian: packageInstall
|
|
111
|
+
* @param packageName {string} Pacchetto Debian da installare
|
|
112
|
+
* @returns {boolean} True if success
|
|
113
|
+
*/
|
|
114
|
+
static async packageInstall(packageName) {
|
|
115
|
+
let retVal = false;
|
|
116
|
+
if (shx.exec(`/usr/bin/apt-get install -y ${packageName}`, { silent: true }) === '0') {
|
|
117
|
+
retVal = true;
|
|
118
|
+
}
|
|
119
|
+
return retVal;
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Debian: packageIsInstalled
|
|
123
|
+
* restuisce VERO se il pacchetto è installato
|
|
124
|
+
* @param debPackage
|
|
125
|
+
*/
|
|
126
|
+
static packageIsInstalled(debPackage) {
|
|
127
|
+
let installed = false;
|
|
128
|
+
const cmd = `/usr/bin/dpkg -s ${debPackage} | grep Status:`;
|
|
129
|
+
const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
|
|
130
|
+
if (stdout === 'Status: install ok installed') {
|
|
131
|
+
installed = true;
|
|
132
|
+
}
|
|
133
|
+
return installed;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
function array2spaced(oArray) {
|
|
137
|
+
return oArray.join(' ');
|
|
212
138
|
}
|
|
213
|
-
exports.default = Debian;
|