penguins-eggs 8.1.3 → 9.0.16
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/README.md +332 -168
- package/addons/README.md +78 -84
- package/addons/{pve → blissos}/theme/applications/install-debian.desktop +0 -0
- package/addons/{deblinux → blissos}/theme/artwork/install-debian.png +0 -0
- package/addons/blissos/theme/calamares/branding/blissos-logo.png +0 -0
- package/addons/{guadalinex → blissos}/theme/calamares/branding/branding.desc +0 -0
- package/addons/blissos/theme/calamares/branding/languages.png +0 -0
- package/addons/blissos/theme/calamares/branding/show.qml +75 -0
- package/addons/blissos/theme/calamares/branding/slide1.png +0 -0
- package/addons/blissos/theme/calamares/branding/slide2.png +0 -0
- package/addons/blissos/theme/calamares/branding/slide3.png +0 -0
- package/addons/blissos/theme/calamares/branding/welcome.png +0 -0
- package/addons/{guadalinex → blissos}/theme/calamares/modules/partition.yml +1 -1
- package/{conf/distros/buster/grub/theme.cfg → addons/blissos/theme/livecd/grub.theme.cfg} +10 -9
- package/{conf/distros/buster/isolinux/stdmenu.template.cfg → addons/blissos/theme/livecd/isolinux.theme.cfg} +4 -0
- package/addons/blissos/theme/livecd/splash.png +0 -0
- package/addons/eggs/adapt/applications/eggs-adapt.desktop +1 -1
- package/addons/eggs/theme/calamares/branding/show.qml +1 -1
- package/addons/eggs/theme/livecd/README.md +19 -6
- package/addons/eggs/theme/livecd/{theme.cfg → grub.theme.cfg} +13 -12
- package/addons/eggs/theme/livecd/isolinux.theme.cfg +46 -0
- package/addons/eggs/theme/livecd/splash.png +0 -0
- package/addons/{ufficiozero/theme/livecd/theme.cfg → neon/theme/livecd/grub.theme.cfg} +13 -12
- package/addons/neon/theme/livecd/isolinux.theme.cfg +46 -0
- package/addons/neon/theme/livecd/splash.png +0 -0
- package/addons/templates/grub.template +28 -0
- package/addons/templates/isolinux.template +29 -0
- package/addons/ufficiozero/theme/applications/install-debian.desktop +17 -2
- package/bin/dev +17 -0
- package/bin/dev.cmd +3 -0
- package/bin/run +2 -4
- package/conf/distros/bionic/calamares/settings.yml +5 -5
- package/conf/distros/bookworm/README.md +9 -0
- package/conf/distros/bullseye/README.md +6 -8
- package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.sh +1 -1
- package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.working.sh +1 -1
- package/conf/distros/buster/calamares/modules/shellprocess_eggs-cleanup.yml +6 -0
- package/conf/distros/buster/calamares/settings.yml +14 -3
- package/conf/distros/chimaera/README.md +3 -0
- package/conf/distros/daedalus/README.md +3 -0
- package/conf/distros/focal/calamares/settings.yml +2 -2
- package/conf/distros/hirsute/README.md +1 -1
- package/conf/distros/impish/README.md +9 -0
- package/conf/distros/jammy/README.md +9 -0
- package/conf/distros/jessie/krill/krill-modules/sources-yolk/sources-yolk.sh +1 -1
- package/conf/distros/rolling/README.md +3 -0
- package/conf/distros/rolling/calamares/calamares-modules/remove-link/module.yml +9 -0
- package/conf/distros/rolling/calamares/calamares-modules/remove-link/remove-link.sh +3 -0
- package/conf/distros/rolling/calamares/modules/displaymanager.yml +22 -0
- package/conf/distros/rolling/calamares/modules/finished.yml +6 -0
- package/conf/distros/rolling/calamares/modules/fstab.yml +13 -0
- package/conf/distros/rolling/calamares/modules/locale.yml +97 -0
- package/conf/distros/rolling/calamares/modules/luksopenswaphookcfg.yml +6 -0
- package/conf/distros/rolling/calamares/modules/mount.yml +38 -0
- package/conf/distros/rolling/calamares/modules/packages.yml +8 -0
- package/conf/distros/rolling/calamares/modules/removeuser.yml +15 -0
- package/conf/distros/rolling/calamares/modules/unpackfs.yml +7 -0
- package/conf/distros/rolling/calamares/modules/users.yml +20 -0
- package/conf/distros/rolling/calamares/modules/welcome.yml +19 -0
- package/conf/distros/{bullseye → rolling}/calamares/settings.yml +17 -12
- package/conf/distros/thirtyfive/README.md +3 -0
- package/conf/distros/tumbleweed/README.md +3 -0
- package/conf/eggs.yaml +3 -3
- package/conf/exclude.list +12 -7
- package/conf/tools.yaml +1 -1
- package/lib/classes/basket.js +24 -20
- package/lib/classes/bleach.js +19 -19
- package/lib/classes/compressors.js +15 -14
- package/lib/classes/daddy.js +44 -31
- package/lib/classes/distro.d.ts +3 -2
- package/lib/classes/distro.js +314 -175
- package/lib/classes/family/archlinux.d.ts +69 -0
- package/lib/classes/family/archlinux.js +182 -0
- package/lib/classes/family/debian.d.ts +64 -0
- package/lib/classes/family/debian.js +227 -0
- package/lib/classes/family/fedora.d.ts +63 -0
- package/lib/classes/family/fedora.js +169 -0
- package/lib/classes/family/suse.d.ts +63 -0
- package/lib/classes/family/suse.js +169 -0
- package/lib/classes/i18n.js +16 -16
- package/lib/classes/incubation/branding.js +5 -4
- package/lib/classes/incubation/distros/bionic.js +1 -2
- package/lib/classes/incubation/distros/buster.js +2 -2
- package/lib/classes/incubation/distros/focal.js +3 -2
- package/lib/classes/incubation/distros/jessie.js +1 -25
- package/lib/classes/incubation/distros/{bullseye.d.ts → rolling.d.ts} +3 -3
- package/lib/classes/incubation/distros/{bullseye.js → rolling.js} +15 -16
- package/lib/classes/incubation/fisherman-helper/displaymanager.js +2 -7
- package/lib/classes/incubation/fisherman-helper/packages.js +31 -32
- package/lib/classes/incubation/fisherman.d.ts +17 -17
- package/lib/classes/incubation/fisherman.js +84 -71
- package/lib/classes/incubation/incubator.js +116 -74
- package/lib/classes/incubation/installer.d.ts +2 -2
- package/lib/classes/incubation/installer.js +6 -20
- package/lib/classes/initrd.d.ts +1 -1
- package/lib/classes/initrd.js +37 -30
- package/lib/classes/krill_install.d.ts +4 -4
- package/lib/classes/krill_install.js +166 -162
- package/lib/classes/krill_prepare.d.ts +6 -2
- package/lib/classes/krill_prepare.js +73 -60
- package/lib/classes/n8.js +6 -11
- package/lib/classes/ovary.d.ts +34 -25
- package/lib/classes/ovary.js +771 -688
- package/lib/classes/pacman.d.ts +55 -56
- package/lib/classes/pacman.js +524 -436
- package/lib/classes/pve-live.js +6 -6
- package/lib/classes/settings.js +47 -56
- package/lib/classes/systemctl.d.ts +6 -6
- package/lib/classes/systemctl.js +7 -7
- package/lib/classes/tools.d.ts +1 -1
- package/lib/classes/tools.js +10 -10
- package/lib/classes/users.d.ts +21 -0
- package/lib/classes/users.js +129 -0
- package/lib/classes/utils.d.ts +10 -13
- package/lib/classes/utils.js +128 -107
- package/lib/classes/xdg.js +112 -91
- package/lib/classes/yolk.js +38 -31
- package/lib/commands/adapt.d.ts +3 -3
- package/lib/commands/adapt.js +12 -12
- package/lib/commands/analyze.d.ts +25 -0
- package/lib/commands/analyze.js +74 -0
- package/lib/commands/bro.d.ts +14 -0
- package/lib/commands/bro.js +31 -0
- package/lib/commands/calamares.d.ts +7 -7
- package/lib/commands/calamares.js +22 -54
- package/lib/commands/config.d.ts +5 -5
- package/lib/commands/config.js +69 -79
- package/lib/commands/dad.d.ts +5 -5
- package/lib/commands/dad.js +11 -11
- package/lib/commands/export/deb.d.ts +8 -8
- package/lib/commands/export/deb.js +16 -16
- package/lib/commands/export/docs.d.ts +2 -2
- package/lib/commands/export/docs.js +9 -9
- package/lib/commands/export/iso.d.ts +4 -4
- package/lib/commands/export/iso.js +12 -17
- package/lib/commands/info.d.ts +9 -3
- package/lib/commands/info.js +14 -164
- package/lib/commands/install.d.ts +5 -5
- package/lib/commands/install.js +28 -42
- package/lib/commands/kill.d.ts +3 -3
- package/lib/commands/kill.js +11 -13
- package/lib/commands/mom.d.ts +2 -2
- package/lib/commands/mom.js +8 -8
- package/lib/commands/produce.d.ts +14 -14
- package/lib/commands/produce.js +48 -46
- package/lib/commands/remove.d.ts +5 -5
- package/lib/commands/remove.js +46 -57
- package/lib/commands/syncfrom.d.ts +37 -0
- package/lib/commands/syncfrom.js +156 -0
- package/lib/commands/syncto.d.ts +48 -0
- package/lib/commands/syncto.js +219 -0
- package/lib/commands/tools/clean.d.ts +3 -3
- package/lib/commands/tools/clean.js +10 -12
- package/lib/commands/tools/locales.d.ts +4 -4
- package/lib/commands/tools/locales.js +8 -8
- package/lib/commands/tools/skel.d.ts +4 -4
- package/lib/commands/tools/skel.js +10 -15
- package/lib/commands/tools/stat.d.ts +7 -4
- package/lib/commands/tools/stat.js +20 -13
- package/lib/commands/tools/yolk.d.ts +3 -3
- package/lib/commands/tools/yolk.js +13 -13
- package/lib/commands/update.d.ts +5 -10
- package/lib/commands/update.js +56 -72
- package/lib/components/elements/information.d.ts +4 -0
- package/lib/components/elements/information.js +166 -0
- package/lib/components/elements/steps.js +1 -1
- package/lib/components/elements/title.js +7 -10
- package/lib/components/finished.js +5 -5
- package/lib/components/install.js +5 -5
- package/lib/components/keyboard.js +5 -5
- package/lib/components/location.js +5 -5
- package/lib/components/network.js +5 -5
- package/lib/components/partitions.d.ts +2 -1
- package/lib/components/partitions.js +9 -7
- package/lib/components/summary.js +5 -5
- package/lib/components/users.js +6 -6
- package/lib/components/welcome.js +6 -6
- package/lib/index.d.ts +1 -1
- package/lib/index.js +2 -2
- package/lib/interfaces/i-analyze.d.ts +13 -0
- package/lib/interfaces/i-analyze.js +18 -0
- package/lib/interfaces/i-distro.d.ts +3 -2
- package/lib/interfaces/i-krill.d.ts +1 -0
- package/lib/interfaces/i-settings.d.ts +2 -2
- package/lib/lib/cli-autologin.d.ts +19 -2
- package/lib/lib/cli-autologin.js +114 -39
- package/lib/lib/dependencies.d.ts +9 -6
- package/lib/lib/dependencies.js +22 -13
- package/lib/lib/get_address.js +2 -2
- package/lib/lib/get_dns.js +2 -2
- package/lib/lib/get_domain.js +2 -2
- package/lib/lib/get_gateway.js +2 -2
- package/lib/lib/get_hostname.js +2 -2
- package/lib/lib/get_netmask.js +2 -2
- package/lib/lib/get_password.js +3 -2
- package/lib/lib/get_root_password.js +2 -2
- package/lib/lib/get_userfullname.js +2 -2
- package/lib/lib/get_username.js +2 -2
- package/lib/lib/select_address_type.js +2 -5
- package/lib/lib/select_filesystem_type.js +5 -14
- package/lib/lib/select_installation_device.js +3 -3
- package/lib/lib/select_interface.js +1 -1
- package/lib/lib/select_keyboard_layout.js +2 -10
- package/lib/lib/select_languages.js +2 -2
- package/lib/lib/select_regions.js +1 -12
- package/lib/lib/select_user_swap_choice.js +4 -4
- package/lib/lib/select_zones.js +483 -62
- package/manpages/doc/man/eggs.html +508 -0
- package/manpages/doc/man/eggs.roll.gz +0 -0
- package/oclif.manifest.json +1 -1
- package/package.json +115 -107
- package/scripts/_eggs +275 -0
- package/scripts/bros/waydroid-helper.sh +92 -0
- package/scripts/eggs.bash +68 -19
- package/scripts/mom-cli.sh +6 -5
- package/scripts/not-used/eggs-cleanup.sh +7 -0
- package/scripts/not-used/install-eggs-ppa.sh +2 -0
- package/scripts/{mkinitramfs → not-used/mkinitramfs} +0 -0
- package/scripts/{pve-live.sh → not-used/pve-live.sh} +0 -0
- package/addons/debian/theme/applications/install-debian.desktop +0 -13
- package/addons/debian/theme/artwork/install-debian.png +0 -0
- package/addons/debian/theme/branding/branding.desc +0 -27
- package/addons/debian/theme/branding/debian-logo.png +0 -0
- package/addons/debian/theme/branding/show.qml +0 -51
- package/addons/debian/theme/branding/slide1.png +0 -0
- package/addons/debian/theme/branding/welcome.png +0 -0
- package/addons/deblinux/theme/README.md +0 -16
- package/addons/deblinux/theme/applications/install-debian.desktop +0 -13
- package/addons/deblinux/theme/calamares/branding/branding.desc +0 -23
- package/addons/deblinux/theme/calamares/branding/deblinux-logo.png +0 -0
- package/addons/deblinux/theme/calamares/branding/show.qml +0 -46
- package/addons/deblinux/theme/calamares/branding/slide1.png +0 -0
- package/addons/deblinux/theme/calamares/branding/welcome.png +0 -0
- package/addons/deblinux/theme/calamares/modules/partition.yml +0 -233
- package/addons/eggs/theme/calamares/branding/4tation.png +0 -0
- package/addons/eggs/theme/livecd/grub.template.cfg +0 -60
- package/addons/eggs/theme/livecd/menu.template.cfg +0 -54
- package/addons/guadalinex/theme/README.md +0 -9
- package/addons/guadalinex/theme/applications/install-debian.desktop +0 -28
- package/addons/guadalinex/theme/artwork/install-debian.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/guadalinex-logo.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/show.qml +0 -85
- package/addons/guadalinex/theme/calamares/branding/slide1.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/slide2.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/slide3.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/slide4.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/slide5.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/slide6.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/slide7.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/welcome.png +0 -0
- package/addons/guadalinex/theme/livecd/menu.template.cfg +0 -54
- package/addons/guadalinex/theme/livecd/splash.png +0 -0
- package/addons/guadalinex/theme/livecd/theme.cfg +0 -42
- package/addons/openos/theme/applications/Install-OpenOS-Neon_RLTS-Desktop.png +0 -0
- package/addons/openos/theme/applications/install-debian.desktop +0 -24
- package/addons/openos/theme/artwork/install-debian.png +0 -0
- package/addons/openos/theme/calamares/branding/branding.desc +0 -28
- package/addons/openos/theme/calamares/branding/openos-logo.png +0 -0
- package/addons/openos/theme/calamares/branding/show.qml +0 -203
- package/addons/openos/theme/calamares/branding/slide1.png +0 -0
- package/addons/openos/theme/calamares/branding/slide10.png +0 -0
- package/addons/openos/theme/calamares/branding/slide11.png +0 -0
- package/addons/openos/theme/calamares/branding/slide12.png +0 -0
- package/addons/openos/theme/calamares/branding/slide13.png +0 -0
- package/addons/openos/theme/calamares/branding/slide14.png +0 -0
- package/addons/openos/theme/calamares/branding/slide15.png +0 -0
- package/addons/openos/theme/calamares/branding/slide16.png +0 -0
- package/addons/openos/theme/calamares/branding/slide2.png +0 -0
- package/addons/openos/theme/calamares/branding/slide3.png +0 -0
- package/addons/openos/theme/calamares/branding/slide4.png +0 -0
- package/addons/openos/theme/calamares/branding/slide5.png +0 -0
- package/addons/openos/theme/calamares/branding/slide6.png +0 -0
- package/addons/openos/theme/calamares/branding/slide7.png +0 -0
- package/addons/openos/theme/calamares/branding/slide8.png +0 -0
- package/addons/openos/theme/calamares/branding/slide9.png +0 -0
- package/addons/openos/theme/calamares/branding/welcome.png +0 -0
- package/addons/openos/theme/calamares/branding.desc +0 -24
- package/addons/openos/theme/calamares/lang/calamares-default_ar.qm +0 -0
- package/addons/openos/theme/calamares/lang/calamares-default_en.qm +0 -0
- package/addons/openos/theme/calamares/lang/calamares-default_eo.qm +0 -0
- package/addons/openos/theme/calamares/lang/calamares-default_fr.qm +0 -0
- package/addons/openos/theme/calamares/lang/calamares-default_nl.qm +0 -0
- package/addons/openos/theme/calamares/modules/partition.yml +0 -233
- package/addons/openos/theme/livecd/grub.template.cfg +0 -60
- package/addons/openos/theme/livecd/menu.template.cfg +0 -54
- package/addons/openos/theme/livecd/splash.png +0 -0
- package/addons/openos/theme/livecd/theme.cfg +0 -42
- package/addons/pve/theme/applications/penguins-pve.desktop +0 -24
- package/addons/pve/theme/artwork/install-debian.png +0 -0
- package/addons/pve/theme/calamares/branding/branding.desc +0 -1
- package/addons/pve/theme/calamares/branding/pve-logo.png +0 -0
- package/addons/pve/theme/calamares/branding/show.qml +0 -227
- package/addons/pve/theme/calamares/branding/slide1.png +0 -0
- package/addons/pve/theme/calamares/branding/slide2.png +0 -0
- package/addons/pve/theme/calamares/branding/slide3.png +0 -0
- package/addons/pve/theme/calamares/branding/slide4.png +0 -0
- package/addons/pve/theme/calamares/branding/slide5.png +0 -0
- package/addons/pve/theme/calamares/branding/slide6.png +0 -0
- package/addons/pve/theme/calamares/branding/slide7.png +0 -0
- package/addons/pve/theme/calamares/branding/slide8.png +0 -0
- package/addons/pve/theme/calamares/branding/slide9.png +0 -0
- package/addons/pve/theme/calamares/branding/welcome.png +0 -0
- package/addons/pve/theme/calamares/modules/partition.yml +0 -233
- package/addons/pve/theme/livecd/README.md +0 -8
- package/addons/pve/theme/livecd/grub.template.cfg +0 -60
- package/addons/pve/theme/livecd/menu.template.cfg +0 -54
- package/addons/pve/theme/livecd/splash.png +0 -0
- package/addons/pve/theme/livecd/theme.cfg +0 -42
- package/addons/ufficiozero/theme/artwork/install-debian.png +0 -0
- package/addons/ufficiozero/theme/livecd/README.md +0 -8
- package/addons/ufficiozero/theme/livecd/grub.template.cfg +0 -60
- package/addons/ufficiozero/theme/livecd/menu.template.cfg +0 -54
- package/conf/distros/bullseye/calamares/calamares-modules/bootloader-config/bootloader-config.sh +0 -28
- package/conf/distros/bullseye/calamares/calamares-modules/bootloader-config/module.yml +0 -8
- package/conf/distros/buster/grub/grub.template.cfg +0 -58
- package/conf/distros/buster/grub/loopback.cfg +0 -1
- package/conf/distros/buster/isolinux/isolinux.template.cfg +0 -8
- package/conf/distros/buster/isolinux/menu.template.cfg +0 -56
- package/conf/distros/focal/grub/grub.template.cfg +0 -67
- package/conf/distros/focal/isolinux/menu.template.cfg +0 -54
- package/lib/classes/incubation/distros/beowulf.d.ts +0 -30
- package/lib/classes/incubation/distros/beowulf.js +0 -69
- package/manpages/doc/man/eggs.1.gz +0 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* penguins-eggs-v8
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const tslib_1 = require("tslib");
|
|
10
|
+
const node_fs_1 = (0, tslib_1.__importDefault)(require("node:fs"));
|
|
11
|
+
const shelljs_1 = (0, tslib_1.__importDefault)(require("shelljs"));
|
|
12
|
+
const utils_1 = (0, tslib_1.__importDefault)(require("../utils"));
|
|
13
|
+
const pacman_1 = (0, tslib_1.__importDefault)(require("../pacman"));
|
|
14
|
+
const dependencies_1 = require("../../lib/dependencies");
|
|
15
|
+
const utils_2 = require("../../lib/utils");
|
|
16
|
+
/**
|
|
17
|
+
* Utils: general porpourse utils
|
|
18
|
+
* @remarks all the utilities
|
|
19
|
+
*/
|
|
20
|
+
class Archlinux {
|
|
21
|
+
/**
|
|
22
|
+
* check if it's installed xorg
|
|
23
|
+
* @returns true if xorg is installed
|
|
24
|
+
*/
|
|
25
|
+
static isInstalledXorg() {
|
|
26
|
+
return this.packageIsInstalled('xorg-server-common');
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* check if it's installed wayland
|
|
30
|
+
* @returns true if wayland
|
|
31
|
+
*/
|
|
32
|
+
static isInstalledWayland() {
|
|
33
|
+
return this.packageIsInstalled('xwayland');
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Crea array pacchetti da installare/rimuovere
|
|
37
|
+
*/
|
|
38
|
+
static packages(remove = false, verbose = false) {
|
|
39
|
+
const packages = ['arch-install-scripts', 'awk', 'dosfstools', 'e2fsprogs', 'erofs-utils', 'findutils', 'gzip', 'libarchive', 'libisoburn', 'mtools', 'openssl', 'pacman', 'rsync', 'sed', 'syslinux', 'squashfs-tools'];
|
|
40
|
+
const toInstall = [];
|
|
41
|
+
const toRemove = [];
|
|
42
|
+
for (const elem of packages) {
|
|
43
|
+
if (!this.packageIsInstalled(elem)) {
|
|
44
|
+
toInstall.push(elem);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
toRemove.push(elem);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (remove) {
|
|
51
|
+
return toRemove;
|
|
52
|
+
}
|
|
53
|
+
return toInstall;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
*
|
|
57
|
+
*/
|
|
58
|
+
static async prerequisitesInstall(verbose = true) {
|
|
59
|
+
const echo = utils_1.default.setEcho(verbose);
|
|
60
|
+
const retVal = false;
|
|
61
|
+
await (0, utils_2.exec)(`pacman -Sy ${(0, dependencies_1.array2spaced)(this.packages(false, verbose))}`, echo);
|
|
62
|
+
if (!pacman_1.default.isInstalledGui()) {
|
|
63
|
+
/**
|
|
64
|
+
* live-config-getty-generator
|
|
65
|
+
*
|
|
66
|
+
* Viene rimosso in naked, altrimenti non funziona il login
|
|
67
|
+
* generando un errore getty.
|
|
68
|
+
* Sarebbe utile individuarne le ragioni, forse rompe anche sul desktop
|
|
69
|
+
* non permettendo di cambiare terminale e loggarsi
|
|
70
|
+
*
|
|
71
|
+
* A che serve?
|
|
72
|
+
*/
|
|
73
|
+
const fileToRemove = '/lib/systemd/system-generators/live-config-getty-generator';
|
|
74
|
+
if (node_fs_1.default.existsSync(fileToRemove)) {
|
|
75
|
+
await (0, utils_2.exec)(`rm ${fileToRemove}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return retVal;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Torna verso se calamares è installato
|
|
82
|
+
*/
|
|
83
|
+
static async calamaresCheck() {
|
|
84
|
+
let installed = true;
|
|
85
|
+
for (const i in this.packs4calamares) {
|
|
86
|
+
if (!this.packageIsInstalled(this.packs4calamares[i])) {
|
|
87
|
+
installed = false;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return installed;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
*
|
|
95
|
+
*/
|
|
96
|
+
static async calamaresInstall(verbose = false) {
|
|
97
|
+
verbose = true; // serve per pacman
|
|
98
|
+
const echo = utils_1.default.setEcho(verbose);
|
|
99
|
+
try {
|
|
100
|
+
// inserito flag --noconfirm
|
|
101
|
+
await (0, utils_2.exec)(`pacman -Sy --noconfirm ${(0, dependencies_1.array2spaced)(this.packs4calamares)}`, echo);
|
|
102
|
+
}
|
|
103
|
+
catch {
|
|
104
|
+
utils_1.default.error(`Archlinux.calamaresInstall() pacman -Sy ${(0, dependencies_1.array2spaced)(this.packs4calamares)}`); // + e.error)
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* calamaresPolicies
|
|
109
|
+
*/
|
|
110
|
+
static async calamaresPolicies() {
|
|
111
|
+
const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
|
|
112
|
+
await (0, utils_2.exec)(`sed -i 's/auth_admin/yes/' ${policyFile}`);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
*
|
|
116
|
+
*/
|
|
117
|
+
static async calamaresRemove(verbose = true) {
|
|
118
|
+
verbose = true; // serve per pacman
|
|
119
|
+
const echo = utils_1.default.setEcho(verbose);
|
|
120
|
+
const retVal = false;
|
|
121
|
+
if (node_fs_1.default.existsSync('/etc/calamares')) {
|
|
122
|
+
await (0, utils_2.exec)('rm /etc/calamares -rf', echo);
|
|
123
|
+
}
|
|
124
|
+
await (0, utils_2.exec)('yay -Rns calamares', echo);
|
|
125
|
+
return retVal;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* restuisce VERO se il pacchetto è installato
|
|
129
|
+
* @param packageName
|
|
130
|
+
*/
|
|
131
|
+
static packageIsInstalled(packageName) {
|
|
132
|
+
let installed = false;
|
|
133
|
+
const cmd = `/usr/bin/pacman -Qi ${packageName}`;
|
|
134
|
+
const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
|
|
135
|
+
if (stdout.includes(packageName)) {
|
|
136
|
+
installed = true;
|
|
137
|
+
}
|
|
138
|
+
return installed;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* Install the package packageName
|
|
142
|
+
* @param packageName {string} Pacchetto Debian da installare
|
|
143
|
+
* @returns {boolean} True if success
|
|
144
|
+
*/
|
|
145
|
+
static async packageInstall(packageName) {
|
|
146
|
+
let retVal = false;
|
|
147
|
+
if (shelljs_1.default.exec(`/usr/bin/pacman -Si ${packageName}`, { silent: true }) === '0') {
|
|
148
|
+
retVal = true;
|
|
149
|
+
}
|
|
150
|
+
return retVal;
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* restuisce VERO se il pacchetto è installato
|
|
154
|
+
* @param packageName
|
|
155
|
+
*/
|
|
156
|
+
static async packageAptAvailable(packageName) {
|
|
157
|
+
let available = false;
|
|
158
|
+
const cmd = `/usr/bin/pacman -Q ${packageName} | grep Package:`;
|
|
159
|
+
const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
|
|
160
|
+
if (stdout.includes(packageName)) {
|
|
161
|
+
available = true;
|
|
162
|
+
}
|
|
163
|
+
return available;
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
*
|
|
167
|
+
* @param packageName
|
|
168
|
+
* @returns
|
|
169
|
+
*/
|
|
170
|
+
static async packageAptLast(packageName) {
|
|
171
|
+
let version = '';
|
|
172
|
+
const cmd = `/usr/bin/pacman -Q ${packageName} | grep Version:`;
|
|
173
|
+
const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
|
|
174
|
+
version = stdout.slice(9);
|
|
175
|
+
// console.log('===================================')
|
|
176
|
+
// console.log('[' + version + ']')
|
|
177
|
+
// console.log('===================================')
|
|
178
|
+
return version;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
exports.default = Archlinux;
|
|
182
|
+
Archlinux.packs4calamares = ['calamares'];
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* penguins-eggs-v8
|
|
3
|
+
* author: Piero Proietti
|
|
4
|
+
* email: piero.proietti@gmail.com
|
|
5
|
+
* license: MIT
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Utils: general porpourse utils
|
|
9
|
+
* @remarks all the utilities
|
|
10
|
+
*/
|
|
11
|
+
export default class Debian {
|
|
12
|
+
static debs4calamares: string[];
|
|
13
|
+
/**
|
|
14
|
+
* check if it's installed xorg
|
|
15
|
+
* @returns true if xorg is installed
|
|
16
|
+
*/
|
|
17
|
+
static isInstalledXorg(): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* check if it's installed wayland
|
|
20
|
+
* @returns true if wayland
|
|
21
|
+
*/
|
|
22
|
+
static isInstalledWayland(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Crea array packages dei pacchetti da installare
|
|
25
|
+
*/
|
|
26
|
+
static packages(remove?: boolean, verbose?: boolean): string[];
|
|
27
|
+
/**
|
|
28
|
+
*
|
|
29
|
+
*/
|
|
30
|
+
static prerequisitesInstall(verbose?: boolean): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Torna verso se calamares è installato
|
|
33
|
+
*/
|
|
34
|
+
static calamaresCheck(): Promise<boolean>;
|
|
35
|
+
/**
|
|
36
|
+
*
|
|
37
|
+
*/
|
|
38
|
+
static calamaresInstall(verbose?: boolean): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* calamaresPolicies
|
|
41
|
+
*/
|
|
42
|
+
static calamaresPolicies(): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
*/
|
|
46
|
+
static calamaresRemove(verbose?: boolean): Promise<boolean>;
|
|
47
|
+
/**
|
|
48
|
+
* restuisce VERO se il pacchetto è installato
|
|
49
|
+
* @param debPackage
|
|
50
|
+
*/
|
|
51
|
+
static packageIsInstalled(debPackage: string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Install the package packageName
|
|
54
|
+
* @param packageName {string} Pacchetto Debian da installare
|
|
55
|
+
* @returns {boolean} True if success
|
|
56
|
+
*/
|
|
57
|
+
static packageInstall(packageName: string): Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* restuisce VERO se il pacchetto è installato
|
|
60
|
+
* @param debPackage
|
|
61
|
+
*/
|
|
62
|
+
static packageAptAvailable(packageName: string): Promise<boolean>;
|
|
63
|
+
static packageAptLast(debPackage: string): Promise<string>;
|
|
64
|
+
}
|
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* penguins-eggs-v8
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const tslib_1 = require("tslib");
|
|
10
|
+
const node_fs_1 = (0, tslib_1.__importDefault)(require("node:fs"));
|
|
11
|
+
const shelljs_1 = (0, tslib_1.__importDefault)(require("shelljs"));
|
|
12
|
+
const utils_1 = (0, tslib_1.__importDefault)(require("../utils"));
|
|
13
|
+
const pacman_1 = (0, tslib_1.__importDefault)(require("../pacman"));
|
|
14
|
+
const utils_2 = require("../../lib/utils");
|
|
15
|
+
const dependencies_1 = require("../../lib/dependencies");
|
|
16
|
+
/**
|
|
17
|
+
* Utils: general porpourse utils
|
|
18
|
+
* @remarks all the utilities
|
|
19
|
+
*/
|
|
20
|
+
class Debian {
|
|
21
|
+
/**
|
|
22
|
+
* check if it's installed xorg
|
|
23
|
+
* @returns true if xorg is installed
|
|
24
|
+
*/
|
|
25
|
+
static isInstalledXorg() {
|
|
26
|
+
let test = 'xserver-xorg-core';
|
|
27
|
+
if (pacman_1.default.distro().versionLike === 'bionic') {
|
|
28
|
+
/**
|
|
29
|
+
* BUT_ on Ubuntu bionic we have:
|
|
30
|
+
* xserver-xorg-core-hwe-18.04
|
|
31
|
+
*/
|
|
32
|
+
test = 'xserver-xorg-core-hwe-18.04';
|
|
33
|
+
}
|
|
34
|
+
return this.packageIsInstalled(test);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* check if it's installed wayland
|
|
38
|
+
* @returns true if wayland
|
|
39
|
+
*/
|
|
40
|
+
static isInstalledWayland() {
|
|
41
|
+
return this.packageIsInstalled('xwayland');
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Crea array packages dei pacchetti da installare
|
|
45
|
+
*/
|
|
46
|
+
static packages(remove = false, verbose = false) {
|
|
47
|
+
let packages = [];
|
|
48
|
+
const toInstall = [];
|
|
49
|
+
const toRemove = [];
|
|
50
|
+
if (!utils_1.default.isDebPackage()) {
|
|
51
|
+
for (const elem of dependencies_1.depCommon) {
|
|
52
|
+
if (!this.packageIsInstalled(elem)) {
|
|
53
|
+
toInstall.push(elem);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
toRemove.push(elem);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const arch = utils_1.default.machineArch();
|
|
60
|
+
for (const dep of dependencies_1.depArch) {
|
|
61
|
+
if (dep.arch.includes(arch)) {
|
|
62
|
+
if (!this.packageIsInstalled(dep.package)) {
|
|
63
|
+
toInstall.push(dep.package);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
toRemove.push(dep.package);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// Version e initType da controllare
|
|
72
|
+
const version = pacman_1.default.distro().versionLike;
|
|
73
|
+
for (const dep of dependencies_1.depVersions) {
|
|
74
|
+
if (dep.versions.includes(version)) {
|
|
75
|
+
if (!this.packageIsInstalled(dep.package)) {
|
|
76
|
+
toInstall.push(dep.package);
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
toRemove.push(dep.package);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const initType = shelljs_1.default.exec('ps --no-headers -o comm 1', { silent: !verbose }).trim();
|
|
84
|
+
for (const dep of dependencies_1.depInit) {
|
|
85
|
+
if (dep.init.includes(initType)) {
|
|
86
|
+
if (!this.packageIsInstalled(dep.package)) {
|
|
87
|
+
toInstall.push(dep.package);
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
toRemove.push(dep.package);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
packages = toInstall;
|
|
95
|
+
if (remove) {
|
|
96
|
+
packages = toRemove;
|
|
97
|
+
}
|
|
98
|
+
return packages;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
*
|
|
102
|
+
*/
|
|
103
|
+
static async prerequisitesInstall(verbose = true) {
|
|
104
|
+
const echo = utils_1.default.setEcho(verbose);
|
|
105
|
+
const retVal = false;
|
|
106
|
+
await (0, utils_2.exec)(`apt-get install --yes ${(0, dependencies_1.array2spaced)(this.packages(false, verbose))}`, echo);
|
|
107
|
+
if (!pacman_1.default.isInstalledGui()) {
|
|
108
|
+
/**
|
|
109
|
+
* live-config-getty-generator
|
|
110
|
+
*
|
|
111
|
+
* Viene rimosso in naked, altrimenti non funziona il login
|
|
112
|
+
* generando un errore getty.
|
|
113
|
+
* Sarebbe utile individuarne le ragioni, forse rompe anche sul desktop
|
|
114
|
+
* non permettendo di cambiare terminale e loggarsi
|
|
115
|
+
*
|
|
116
|
+
* A che serve?
|
|
117
|
+
*/
|
|
118
|
+
const fileToRemove = '/lib/systemd/system-generators/live-config-getty-generator';
|
|
119
|
+
if (node_fs_1.default.existsSync(fileToRemove)) {
|
|
120
|
+
await (0, utils_2.exec)(`rm ${fileToRemove}`);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return retVal;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Torna verso se calamares è installato
|
|
127
|
+
*/
|
|
128
|
+
static async calamaresCheck() {
|
|
129
|
+
let installed = true;
|
|
130
|
+
for (const i in this.debs4calamares) {
|
|
131
|
+
if (!this.packageIsInstalled(this.debs4calamares[i])) {
|
|
132
|
+
installed = false;
|
|
133
|
+
break;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
return installed;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
*
|
|
140
|
+
*/
|
|
141
|
+
static async calamaresInstall(verbose = true) {
|
|
142
|
+
const echo = utils_1.default.setEcho(verbose);
|
|
143
|
+
try {
|
|
144
|
+
await (0, utils_2.exec)('apt-get update --yes', echo);
|
|
145
|
+
}
|
|
146
|
+
catch {
|
|
147
|
+
utils_1.default.error('Debian.calamaresInstall() apt-get update --yes '); // + e.error as string)
|
|
148
|
+
}
|
|
149
|
+
try {
|
|
150
|
+
await (0, utils_2.exec)(`apt-get install --yes ${(0, dependencies_1.array2spaced)(this.debs4calamares)}`, echo);
|
|
151
|
+
}
|
|
152
|
+
catch {
|
|
153
|
+
utils_1.default.error(`Debian.calamaresInstall() apt-get install --yes ${(0, dependencies_1.array2spaced)(this.debs4calamares)}`); // + e.error)
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* calamaresPolicies
|
|
158
|
+
*/
|
|
159
|
+
static async calamaresPolicies() {
|
|
160
|
+
const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
|
|
161
|
+
await (0, utils_2.exec)(`sed -i 's/auth_admin/yes/' ${policyFile}`);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
*
|
|
165
|
+
*/
|
|
166
|
+
static async calamaresRemove(verbose = true) {
|
|
167
|
+
const echo = utils_1.default.setEcho(verbose);
|
|
168
|
+
const retVal = false;
|
|
169
|
+
if (node_fs_1.default.existsSync('/etc/calamares')) {
|
|
170
|
+
await (0, utils_2.exec)('rm /etc/calamares -rf', echo);
|
|
171
|
+
}
|
|
172
|
+
await (0, utils_2.exec)('apt-get remove --purge --yes calamares', echo);
|
|
173
|
+
await (0, utils_2.exec)('apt-get autoremove --yes', echo);
|
|
174
|
+
return retVal;
|
|
175
|
+
}
|
|
176
|
+
/**
|
|
177
|
+
* restuisce VERO se il pacchetto è installato
|
|
178
|
+
* @param debPackage
|
|
179
|
+
*/
|
|
180
|
+
static packageIsInstalled(debPackage) {
|
|
181
|
+
let installed = false;
|
|
182
|
+
const cmd = `/usr/bin/dpkg -s ${debPackage} | grep Status:`;
|
|
183
|
+
const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
|
|
184
|
+
if (stdout === 'Status: install ok installed') {
|
|
185
|
+
installed = true;
|
|
186
|
+
}
|
|
187
|
+
return installed;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Install the package packageName
|
|
191
|
+
* @param packageName {string} Pacchetto Debian da installare
|
|
192
|
+
* @returns {boolean} True if success
|
|
193
|
+
*/
|
|
194
|
+
static async packageInstall(packageName) {
|
|
195
|
+
let retVal = false;
|
|
196
|
+
if (shelljs_1.default.exec(`/usr/bin/apt-get install -y ${packageName}`, { silent: true }) === '0') {
|
|
197
|
+
retVal = true;
|
|
198
|
+
}
|
|
199
|
+
return retVal;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* restuisce VERO se il pacchetto è installato
|
|
203
|
+
* @param debPackage
|
|
204
|
+
*/
|
|
205
|
+
static async packageAptAvailable(packageName) {
|
|
206
|
+
let available = false;
|
|
207
|
+
const cmd = `apt-cache show ${packageName} | grep Package:`;
|
|
208
|
+
const test = `Package: ${packageName}`;
|
|
209
|
+
const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
|
|
210
|
+
if (stdout === test) {
|
|
211
|
+
available = true;
|
|
212
|
+
}
|
|
213
|
+
return available;
|
|
214
|
+
}
|
|
215
|
+
static async packageAptLast(debPackage) {
|
|
216
|
+
let version = '';
|
|
217
|
+
const cmd = `apt-cache show ${debPackage} | grep Version:`;
|
|
218
|
+
const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
|
|
219
|
+
version = stdout.slice(9);
|
|
220
|
+
// console.log('===================================')
|
|
221
|
+
// console.log('[' + version + ']')
|
|
222
|
+
// console.log('===================================')
|
|
223
|
+
return version;
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
exports.default = Debian;
|
|
227
|
+
Debian.debs4calamares = ['calamares', 'qml-module-qtquick2', 'qml-module-qtquick-controls'];
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* penguins-eggs-v8
|
|
3
|
+
* author: Piero Proietti
|
|
4
|
+
* email: piero.proietti@gmail.com
|
|
5
|
+
* license: MIT
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Utils: general porpourse utils
|
|
9
|
+
* @remarks all the utilities
|
|
10
|
+
*/
|
|
11
|
+
export default class Fedora {
|
|
12
|
+
static packs4calamares: string[];
|
|
13
|
+
/**
|
|
14
|
+
* check if it's installed xorg
|
|
15
|
+
* @returns true if xorg is installed
|
|
16
|
+
*/
|
|
17
|
+
static isInstalledXorg(): boolean;
|
|
18
|
+
/**
|
|
19
|
+
* check if it's installed wayland
|
|
20
|
+
* @returns true if wayland
|
|
21
|
+
*/
|
|
22
|
+
static isInstalledWayland(): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Crea array pacchetti da installare/rimuovere
|
|
25
|
+
*/
|
|
26
|
+
static packages(remove?: boolean, verbose?: boolean): string[];
|
|
27
|
+
/**
|
|
28
|
+
*
|
|
29
|
+
*/
|
|
30
|
+
static prerequisitesInstall(verbose?: boolean): Promise<boolean>;
|
|
31
|
+
/**
|
|
32
|
+
* Torna verso se calamares è installato
|
|
33
|
+
*/
|
|
34
|
+
static calamaresCheck(): Promise<boolean>;
|
|
35
|
+
/**
|
|
36
|
+
*
|
|
37
|
+
*/
|
|
38
|
+
static calamaresInstall(verbose?: boolean): Promise<void>;
|
|
39
|
+
/**
|
|
40
|
+
* calamaresPolicies
|
|
41
|
+
*/
|
|
42
|
+
static calamaresPolicies(): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
*
|
|
45
|
+
*/
|
|
46
|
+
static calamaresRemove(verbose?: boolean): Promise<boolean>;
|
|
47
|
+
/**
|
|
48
|
+
* restuisce VERO se il pacchetto è installato
|
|
49
|
+
* @param packageName
|
|
50
|
+
*/
|
|
51
|
+
static packageIsInstalled(packageName: string): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Install the package packageName
|
|
54
|
+
* @param packageName {string} Pacchetto da installare
|
|
55
|
+
* @returns {boolean} True if success
|
|
56
|
+
*/
|
|
57
|
+
static packageInstall(packageName: string): Promise<boolean>;
|
|
58
|
+
/**
|
|
59
|
+
* restuisce VERO se il pacchetto è installato
|
|
60
|
+
* @param packageName
|
|
61
|
+
*/
|
|
62
|
+
static packageAvailable(packageName: string): Promise<boolean>;
|
|
63
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* penguins-eggs-v8
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
const tslib_1 = require("tslib");
|
|
10
|
+
const node_fs_1 = (0, tslib_1.__importDefault)(require("node:fs"));
|
|
11
|
+
const shelljs_1 = (0, tslib_1.__importDefault)(require("shelljs"));
|
|
12
|
+
const utils_1 = (0, tslib_1.__importDefault)(require("../utils"));
|
|
13
|
+
const pacman_1 = (0, tslib_1.__importDefault)(require("../pacman"));
|
|
14
|
+
const dependencies_1 = require("../../lib/dependencies");
|
|
15
|
+
const utils_2 = require("../../lib/utils");
|
|
16
|
+
/**
|
|
17
|
+
* Utils: general porpourse utils
|
|
18
|
+
* @remarks all the utilities
|
|
19
|
+
*/
|
|
20
|
+
class Fedora {
|
|
21
|
+
/**
|
|
22
|
+
* check if it's installed xorg
|
|
23
|
+
* @returns true if xorg is installed
|
|
24
|
+
*/
|
|
25
|
+
static isInstalledXorg() {
|
|
26
|
+
return this.packageIsInstalled('xorg-x11-server-Xorg.x86_64');
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* check if it's installed wayland
|
|
30
|
+
* @returns true if wayland
|
|
31
|
+
*/
|
|
32
|
+
static isInstalledWayland() {
|
|
33
|
+
return this.packageIsInstalled('xorg-x11-server-Xwayland*');
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Crea array pacchetti da installare/rimuovere
|
|
37
|
+
*/
|
|
38
|
+
static packages(remove = false, verbose = false) {
|
|
39
|
+
// Preso qualcosa da livecd-tools
|
|
40
|
+
const packages = ['xorriso', 'xz-lzma-compat', 'syslinux', 'squashfs-tools'];
|
|
41
|
+
const toInstall = [];
|
|
42
|
+
const toRemove = [];
|
|
43
|
+
for (const elem of packages) {
|
|
44
|
+
if (!this.packageIsInstalled(elem)) {
|
|
45
|
+
toInstall.push(elem);
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
toRemove.push(elem);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (remove) {
|
|
52
|
+
return toRemove;
|
|
53
|
+
}
|
|
54
|
+
return toInstall;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
*
|
|
58
|
+
*/
|
|
59
|
+
static async prerequisitesInstall(verbose = true) {
|
|
60
|
+
const echo = utils_1.default.setEcho(verbose);
|
|
61
|
+
const retVal = false;
|
|
62
|
+
await (0, utils_2.exec)(`dnf install ${(0, dependencies_1.array2spaced)(this.packages(false, verbose))}`, echo);
|
|
63
|
+
if (!pacman_1.default.isInstalledGui()) {
|
|
64
|
+
/**
|
|
65
|
+
* live-config-getty-generator
|
|
66
|
+
*
|
|
67
|
+
* Viene rimosso in naked, altrimenti non funziona il login
|
|
68
|
+
* generando un errore getty.
|
|
69
|
+
* Sarebbe utile individuarne le ragioni, forse rompe anche sul desktop
|
|
70
|
+
* non permettendo di cambiare terminale e loggarsi
|
|
71
|
+
*
|
|
72
|
+
* A che serve?
|
|
73
|
+
*/
|
|
74
|
+
const fileToRemove = '/lib/systemd/system-generators/live-config-getty-generator';
|
|
75
|
+
if (node_fs_1.default.existsSync(fileToRemove)) {
|
|
76
|
+
await (0, utils_2.exec)(`rm ${fileToRemove}`);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return retVal;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Torna verso se calamares è installato
|
|
83
|
+
*/
|
|
84
|
+
static async calamaresCheck() {
|
|
85
|
+
let installed = true;
|
|
86
|
+
for (const i in this.packs4calamares) {
|
|
87
|
+
if (!this.packageIsInstalled(this.packs4calamares[i])) {
|
|
88
|
+
installed = false;
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return installed;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
*
|
|
96
|
+
*/
|
|
97
|
+
static async calamaresInstall(verbose = true) {
|
|
98
|
+
const echo = utils_1.default.setEcho(verbose);
|
|
99
|
+
try {
|
|
100
|
+
await (0, utils_2.exec)(`dnf install ${(0, dependencies_1.array2spaced)(this.packs4calamares)}`, echo);
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
utils_1.default.error(`Fedora.calamaresInstall() pacman -Sy ${(0, dependencies_1.array2spaced)(this.packs4calamares)}`); // + e.error)
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* calamaresPolicies
|
|
108
|
+
*/
|
|
109
|
+
static async calamaresPolicies() {
|
|
110
|
+
const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
|
|
111
|
+
/**
|
|
112
|
+
* Su fedora occorre vedere come fare!
|
|
113
|
+
*/
|
|
114
|
+
// await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`)
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
*
|
|
118
|
+
*/
|
|
119
|
+
static async calamaresRemove(verbose = true) {
|
|
120
|
+
const echo = utils_1.default.setEcho(verbose);
|
|
121
|
+
const retVal = false;
|
|
122
|
+
if (node_fs_1.default.existsSync('/etc/calamares')) {
|
|
123
|
+
await (0, utils_2.exec)('rm /etc/calamares -rf', echo);
|
|
124
|
+
}
|
|
125
|
+
await (0, utils_2.exec)('yay -Rns calamares', echo);
|
|
126
|
+
return retVal;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* restuisce VERO se il pacchetto è installato
|
|
130
|
+
* @param packageName
|
|
131
|
+
*/
|
|
132
|
+
static packageIsInstalled(packageName) {
|
|
133
|
+
let installed = false;
|
|
134
|
+
// rpm -qa | grep -i nano
|
|
135
|
+
const cmd = `/usr/bin/dnf list --installed ${packageName}`;
|
|
136
|
+
const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
|
|
137
|
+
if (stdout.includes(packageName)) {
|
|
138
|
+
installed = true;
|
|
139
|
+
}
|
|
140
|
+
return installed;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Install the package packageName
|
|
144
|
+
* @param packageName {string} Pacchetto da installare
|
|
145
|
+
* @returns {boolean} True if success
|
|
146
|
+
*/
|
|
147
|
+
static async packageInstall(packageName) {
|
|
148
|
+
let retVal = false;
|
|
149
|
+
if (shelljs_1.default.exec(`/usr/bin/dnf install ${packageName}`, { silent: true }) === '0') {
|
|
150
|
+
retVal = true;
|
|
151
|
+
}
|
|
152
|
+
return retVal;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* restuisce VERO se il pacchetto è installato
|
|
156
|
+
* @param packageName
|
|
157
|
+
*/
|
|
158
|
+
static async packageAvailable(packageName) {
|
|
159
|
+
let available = false;
|
|
160
|
+
const cmd = `/usr/bin/dnf list --available ${packageName} | grep Package:`;
|
|
161
|
+
const stdout = shelljs_1.default.exec(cmd, { silent: true }).stdout.trim();
|
|
162
|
+
if (stdout.includes(packageName)) {
|
|
163
|
+
available = true;
|
|
164
|
+
}
|
|
165
|
+
return available;
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
exports.default = Fedora;
|
|
169
|
+
Fedora.packs4calamares = ['calamares'];
|