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,25 +1,27 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/incubation/fisherman-helper/packages.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 Pacman from '../../pacman.js';
|
|
6
9
|
/**
|
|
7
10
|
*
|
|
8
11
|
* @param distro
|
|
9
12
|
* @returns yaml-string
|
|
10
13
|
*/
|
|
11
|
-
function remove(distro) {
|
|
14
|
+
export function remove(distro) {
|
|
12
15
|
const packages = [
|
|
13
|
-
'arco-calamares-git',
|
|
14
16
|
'calamares-eggs',
|
|
15
|
-
'calamares-
|
|
17
|
+
'calamares-garuda',
|
|
16
18
|
'calamares',
|
|
17
19
|
];
|
|
18
20
|
if (distro.familyId === 'archlinux') {
|
|
19
21
|
packages.push('penguins-eggs');
|
|
20
22
|
}
|
|
21
23
|
if (distro.familyId === 'debian') {
|
|
22
|
-
packages.push('eggs');
|
|
24
|
+
packages.push('penguins-eggs', 'live-boot', 'live-boot-doc', 'live-boot-initramfs-tools', 'live-tools');
|
|
23
25
|
}
|
|
24
26
|
let yaml = '';
|
|
25
27
|
for (const elem of packages) {
|
|
@@ -30,13 +32,12 @@ function remove(distro) {
|
|
|
30
32
|
}
|
|
31
33
|
return yaml;
|
|
32
34
|
}
|
|
33
|
-
exports.remove = remove;
|
|
34
35
|
/**
|
|
35
36
|
*
|
|
36
37
|
* @param distro
|
|
37
38
|
* @returns yaml-string
|
|
38
39
|
*/
|
|
39
|
-
function tryInstall(distro) {
|
|
40
|
+
export function tryInstall(distro) {
|
|
40
41
|
let yaml = '';
|
|
41
42
|
/**
|
|
42
43
|
* Depending on the distro
|
|
@@ -45,20 +46,20 @@ function tryInstall(distro) {
|
|
|
45
46
|
yaml += ' - language-pack-$LOCALE\n';
|
|
46
47
|
}
|
|
47
48
|
// Da localizzare se presenti
|
|
48
|
-
if (
|
|
49
|
+
if (Pacman.packageIsInstalled('hunspell')) {
|
|
49
50
|
yaml += ' - hunspell-$LOCALE\n';
|
|
50
51
|
}
|
|
51
|
-
if (
|
|
52
|
+
if (Pacman.packageIsInstalled('libreoffice-base-core')) {
|
|
52
53
|
yaml += ' - libreoffice-l10n-$LOCALE\n';
|
|
53
54
|
yaml += ' - libreoffice-help-$LOCALE\n';
|
|
54
55
|
}
|
|
55
|
-
if (
|
|
56
|
+
if (Pacman.packageIsInstalled('firefox-esr')) {
|
|
56
57
|
yaml += ' - firefox-esr-$LOCALE\n';
|
|
57
58
|
}
|
|
58
|
-
if (
|
|
59
|
+
if (Pacman.packageIsInstalled('firefox')) {
|
|
59
60
|
yaml += ' - firefox-$LOCALE\n';
|
|
60
61
|
}
|
|
61
|
-
if (
|
|
62
|
+
if (Pacman.packageIsInstalled('thunderbird')) {
|
|
62
63
|
yaml += ' - thunderbird-locale-$LOCALE\n';
|
|
63
64
|
}
|
|
64
65
|
if (yaml !== '') {
|
|
@@ -66,4 +67,3 @@ function tryInstall(distro) {
|
|
|
66
67
|
}
|
|
67
68
|
return yaml;
|
|
68
69
|
}
|
|
69
|
-
exports.tryInstall = tryInstall;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/incubation/fisherman-helper/settings.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
*
|
|
10
|
+
* @param src
|
|
11
|
+
* @param dest
|
|
12
|
+
* @param theme
|
|
13
|
+
* @param isClone
|
|
14
|
+
*/
|
|
15
|
+
export declare function settings(src: string, dest: string, theme?: string, isClone?: boolean): Promise<void>;
|
|
@@ -1,18 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/incubation/fisherman-helper/settings.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
2
8
|
/**
|
|
3
9
|
*
|
|
4
10
|
* @param theme
|
|
5
11
|
* @param isClone
|
|
6
12
|
*/
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const displaymanager_1 = require("./displaymanager");
|
|
14
|
-
const utils_1 = tslib_1.__importDefault(require("../../utils"));
|
|
15
|
-
const installer_1 = require("../installer");
|
|
13
|
+
import yaml from 'js-yaml';
|
|
14
|
+
import fs from 'node:fs';
|
|
15
|
+
import shx from 'shelljs';
|
|
16
|
+
import Utils from '../../utils.js';
|
|
17
|
+
import { installer } from '../installer.js';
|
|
18
|
+
import { displaymanager } from './displaymanager.js';
|
|
16
19
|
/**
|
|
17
20
|
*
|
|
18
21
|
* @param src
|
|
@@ -20,16 +23,16 @@ const installer_1 = require("../installer");
|
|
|
20
23
|
* @param theme
|
|
21
24
|
* @param isClone
|
|
22
25
|
*/
|
|
23
|
-
async function settings(src, dest, theme = 'eggs', isClone = false) {
|
|
26
|
+
export async function settings(src, dest, theme = 'eggs', isClone = false) {
|
|
24
27
|
let branding = theme;
|
|
25
|
-
|
|
28
|
+
const settingsSrc = src + 'settings.yml';
|
|
26
29
|
if (theme.includes('/')) {
|
|
27
30
|
branding = theme.slice(Math.max(0, theme.lastIndexOf('/') + 1));
|
|
28
31
|
}
|
|
29
32
|
const settingsDest = dest + 'settings.conf';
|
|
30
|
-
|
|
33
|
+
shx.cp(settingsSrc, settingsDest);
|
|
31
34
|
let hasSystemd = '# ';
|
|
32
|
-
if (
|
|
35
|
+
if (Utils.isSystemd()) {
|
|
33
36
|
hasSystemd = '- ';
|
|
34
37
|
}
|
|
35
38
|
let createUsers = '- ';
|
|
@@ -37,31 +40,30 @@ async function settings(src, dest, theme = 'eggs', isClone = false) {
|
|
|
37
40
|
createUsers = '# ';
|
|
38
41
|
}
|
|
39
42
|
let hasDisplaymanager = '# ';
|
|
40
|
-
if (
|
|
43
|
+
if (displaymanager() !== '') {
|
|
41
44
|
hasDisplaymanager = '- ';
|
|
42
45
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
46
|
+
shx.sed('-i', '{{hasSystemd}}', hasSystemd, settingsDest);
|
|
47
|
+
shx.sed('-i', '{{hasDisplaymanager}}', hasDisplaymanager, settingsDest);
|
|
48
|
+
shx.sed('-i', '{{branding}}', branding, settingsDest);
|
|
49
|
+
shx.sed('-i', '{{createUsers}}', createUsers, settingsDest);
|
|
47
50
|
/**
|
|
48
51
|
* cfsAppend
|
|
49
52
|
*/
|
|
50
53
|
const cfsPath = `${theme}/theme/calamares/cfs.yml`;
|
|
51
|
-
if (
|
|
54
|
+
if (fs.existsSync(cfsPath)) {
|
|
52
55
|
cfsAppend(cfsPath);
|
|
53
56
|
}
|
|
54
57
|
}
|
|
55
|
-
exports.settings = settings;
|
|
56
58
|
/**
|
|
57
59
|
*
|
|
58
60
|
*/
|
|
59
61
|
function cfsAppend(cfs) {
|
|
60
|
-
const configRoot =
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const cfsContent =
|
|
64
|
-
const cfsSteps =
|
|
62
|
+
const configRoot = installer().configRoot + 'settings.conf';
|
|
63
|
+
const soContent = fs.readFileSync(configRoot, 'utf8');
|
|
64
|
+
const so = yaml.load(soContent);
|
|
65
|
+
const cfsContent = fs.readFileSync(cfs, 'utf8');
|
|
66
|
+
const cfsSteps = yaml.load(cfsContent);
|
|
65
67
|
const execSteps = so.sequence[1].exec;
|
|
66
68
|
for (const execStep of execSteps) {
|
|
67
69
|
if (execStep.includes('umount')) {
|
|
@@ -76,6 +78,6 @@ function cfsAppend(cfs) {
|
|
|
76
78
|
}
|
|
77
79
|
}
|
|
78
80
|
// ***
|
|
79
|
-
|
|
80
|
-
|
|
81
|
+
fs.writeFileSync(configRoot, yaml.dump(so), 'utf-8');
|
|
82
|
+
shx.sed('-i', 'end-cfs', 'umount', configRoot);
|
|
81
83
|
}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/incubation/fisherman.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, IInstaller } from '../../interfaces/index.js';
|
|
9
|
+
export default class Fisherman {
|
|
10
|
+
distro: IDistro;
|
|
11
|
+
installer: IInstaller;
|
|
12
|
+
verbose: boolean;
|
|
13
|
+
constructor(distro: IDistro, installer: IInstaller, verbose?: boolean);
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
* @param name
|
|
17
|
+
* @param isScript
|
|
18
|
+
*/
|
|
19
|
+
buildCalamaresModule(name: string, isScript?: boolean, theme?: string): Promise<string>;
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
* @param name
|
|
23
|
+
*/
|
|
24
|
+
buildCalamaresPy(name: string): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
* @param name
|
|
28
|
+
* @param replaces [['search','replace']]
|
|
29
|
+
*/
|
|
30
|
+
buildModule(name: string, vendor?: string): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
*
|
|
33
|
+
* @param name
|
|
34
|
+
*/
|
|
35
|
+
contextualprocess(name: string): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* write setting
|
|
38
|
+
*/
|
|
39
|
+
createCalamaresSettings(theme?: string, isClone?: boolean): Promise<void>;
|
|
40
|
+
/**
|
|
41
|
+
* usa i moduli-ts
|
|
42
|
+
*/
|
|
43
|
+
moduleDisplaymanager(): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Al momento rimane con la vecchia configurazione
|
|
46
|
+
*/
|
|
47
|
+
moduleFinished(): Promise<void>;
|
|
48
|
+
/**
|
|
49
|
+
* ====================================================================================
|
|
50
|
+
* M O D U L E S
|
|
51
|
+
* ====================================================================================
|
|
52
|
+
*/
|
|
53
|
+
/**
|
|
54
|
+
* usa i moduli-ts
|
|
55
|
+
*/
|
|
56
|
+
modulePackages(distro: IDistro, release?: boolean): Promise<void>;
|
|
57
|
+
/**
|
|
58
|
+
* Al momento rimane con la vecchia configurazione
|
|
59
|
+
*/
|
|
60
|
+
moduleRemoveuser(username: string): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Al momento rimane con la vecchia configurazione
|
|
63
|
+
*/
|
|
64
|
+
moduleUnpackfs(): Promise<void>;
|
|
65
|
+
/**
|
|
66
|
+
*
|
|
67
|
+
* @param name
|
|
68
|
+
*/
|
|
69
|
+
shellprocess(name: string): Promise<void>;
|
|
70
|
+
/**
|
|
71
|
+
*
|
|
72
|
+
* @param module
|
|
73
|
+
* @param type
|
|
74
|
+
* @param path
|
|
75
|
+
*/
|
|
76
|
+
show(name: string, type: string, path: string): void;
|
|
77
|
+
}
|
|
@@ -1,64 +1,73 @@
|
|
|
1
|
-
"use strict";
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* ./src/classes/incubation/fisherman.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
5
4
|
* author: Piero Proietti
|
|
6
|
-
*
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
7
|
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const
|
|
17
|
-
|
|
8
|
+
import chalk from 'chalk';
|
|
9
|
+
import mustache from 'mustache';
|
|
10
|
+
import fs from 'node:fs';
|
|
11
|
+
import path from 'node:path';
|
|
12
|
+
import shx from 'shelljs';
|
|
13
|
+
import { exec } from '../../lib/utils.js';
|
|
14
|
+
import { settings } from './fisherman-helper/settings.js';
|
|
15
|
+
// _dirname
|
|
16
|
+
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
17
|
+
/**
|
|
18
|
+
* vecchi require che vanno sostituiti con import
|
|
19
|
+
*/
|
|
20
|
+
import { displaymanager } from './fisherman-helper/displaymanager.js';
|
|
21
|
+
import { remove as removePackages, tryInstall } from './fisherman-helper/packages.js';
|
|
22
|
+
export default class Fisherman {
|
|
23
|
+
distro;
|
|
24
|
+
installer = {};
|
|
25
|
+
verbose = false;
|
|
18
26
|
constructor(distro, installer, verbose = false) {
|
|
19
|
-
this.installer = {};
|
|
20
|
-
this.verbose = false;
|
|
21
27
|
this.distro = distro;
|
|
22
28
|
this.installer = installer;
|
|
23
29
|
this.verbose = verbose;
|
|
24
30
|
}
|
|
25
|
-
/**
|
|
26
|
-
* write setting
|
|
27
|
-
*/
|
|
28
|
-
async createCalamaresSettings(theme = 'eggs', isClone = false) {
|
|
29
|
-
await (0, settings_1.settings)(this.installer.template, this.installer.configRoot, theme, isClone);
|
|
30
|
-
}
|
|
31
31
|
/**
|
|
32
32
|
*
|
|
33
33
|
* @param name
|
|
34
|
+
* @param isScript
|
|
34
35
|
*/
|
|
35
|
-
async
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
if (this.verbose)
|
|
40
|
-
this.show(name, 'shellprocess', moduleDest);
|
|
41
|
-
shelljs_1.default.cp(moduleSource, moduleDest);
|
|
36
|
+
async buildCalamaresModule(name, isScript = true, theme = 'eggs') {
|
|
37
|
+
let moduleTemplate = path.resolve(__dirname, this.installer.templateMultiarch + name);
|
|
38
|
+
if (theme !== 'eggs') {
|
|
39
|
+
moduleTemplate = theme + '/theme/calamares/calamares-modules/' + name;
|
|
42
40
|
}
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
const moduleDest = this.installer.multiarchModules + name;
|
|
42
|
+
const moduleScript = `/usr/sbin/${name}.sh`;
|
|
43
|
+
if (this.verbose)
|
|
44
|
+
this.show(name, 'module', moduleDest);
|
|
45
|
+
if (!fs.existsSync(moduleDest)) {
|
|
46
|
+
fs.mkdirSync(moduleDest);
|
|
45
47
|
}
|
|
48
|
+
shx.cp(`${moduleTemplate}/module.yml`, `${moduleDest}/module.desc`);
|
|
49
|
+
if (isScript) {
|
|
50
|
+
shx.cp(`${moduleTemplate}/${name}.sh`, moduleScript);
|
|
51
|
+
await exec(`chmod +x ${moduleScript}`);
|
|
52
|
+
}
|
|
53
|
+
return moduleScript;
|
|
46
54
|
}
|
|
47
55
|
/**
|
|
48
56
|
*
|
|
49
57
|
* @param name
|
|
50
58
|
*/
|
|
51
|
-
async
|
|
52
|
-
const moduleSource =
|
|
53
|
-
const moduleDest = this.installer.
|
|
54
|
-
if (
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
else if (this.verbose) {
|
|
60
|
-
console.log(`calamares: ${name} contextualprocess, nothing to do!`);
|
|
59
|
+
async buildCalamaresPy(name) {
|
|
60
|
+
const moduleSource = path.resolve(__dirname, this.installer.templateMultiarch + '/' + name);
|
|
61
|
+
const moduleDest = this.installer.multiarchModules + name;
|
|
62
|
+
if (this.verbose)
|
|
63
|
+
this.show(name, 'python', moduleDest);
|
|
64
|
+
if (!fs.existsSync(moduleDest)) {
|
|
65
|
+
fs.mkdirSync(moduleDest);
|
|
61
66
|
}
|
|
67
|
+
shx.cp(`${moduleSource}/module.yml`, `${moduleDest}/module.desc`);
|
|
68
|
+
shx.cp(`${moduleSource}/${name}.yml`, `${moduleDest}/${name}.conf`);
|
|
69
|
+
shx.cp(`${moduleSource}/main.py`, moduleDest);
|
|
70
|
+
await exec(`chmod +x ${moduleSource}/main.py`);
|
|
62
71
|
}
|
|
63
72
|
/**
|
|
64
73
|
*
|
|
@@ -66,7 +75,7 @@ class Fisherman {
|
|
|
66
75
|
* @param replaces [['search','replace']]
|
|
67
76
|
*/
|
|
68
77
|
async buildModule(name, vendor = '') {
|
|
69
|
-
let moduleSource =
|
|
78
|
+
let moduleSource = path.resolve(__dirname, this.installer.templateModules + name + '.yml');
|
|
70
79
|
/**
|
|
71
80
|
* We need vendor here to have possibility to load custom modules for calamares
|
|
72
81
|
* the custom modules live in: /addons/vendor/theme/calamares/modules
|
|
@@ -84,111 +93,69 @@ class Fisherman {
|
|
|
84
93
|
*
|
|
85
94
|
*/
|
|
86
95
|
if (vendor !== 'eggs') {
|
|
87
|
-
let customModuleSource =
|
|
96
|
+
let customModuleSource = path.resolve(__dirname, `../../../addons/${vendor}/theme/calamares/modules/${name}.yml`);
|
|
88
97
|
if (vendor.includes('/')) {
|
|
89
98
|
customModuleSource = `${vendor}/theme/calamares/modules/${name}.yml`;
|
|
90
99
|
}
|
|
91
|
-
if (
|
|
100
|
+
if (fs.existsSync(customModuleSource)) {
|
|
92
101
|
moduleSource = customModuleSource;
|
|
93
102
|
}
|
|
94
103
|
}
|
|
95
104
|
const moduleDest = this.installer.modules + name + '.conf';
|
|
96
|
-
if (
|
|
105
|
+
if (fs.existsSync(moduleSource)) {
|
|
97
106
|
if (this.verbose) {
|
|
98
107
|
this.show(name, 'module', moduleDest);
|
|
99
108
|
}
|
|
100
109
|
// We need to adapt just mount.conf
|
|
101
110
|
if (name === 'mount') {
|
|
102
|
-
|
|
111
|
+
const calamaresVersion = (await exec('calamares --version', { capture: true, echo: false, ignore: false })).data.trim().slice(10, 13);
|
|
103
112
|
let options = '[ bind ]';
|
|
104
113
|
if (calamaresVersion === '3.2') {
|
|
105
114
|
options = 'bind';
|
|
106
115
|
}
|
|
107
|
-
|
|
108
|
-
const moduleSourceTemplate =
|
|
109
|
-
|
|
116
|
+
const view = { options };
|
|
117
|
+
const moduleSourceTemplate = fs.readFileSync(moduleSource, 'utf8');
|
|
118
|
+
fs.writeFileSync(moduleDest, mustache.render(moduleSourceTemplate, view));
|
|
110
119
|
}
|
|
111
120
|
else {
|
|
112
|
-
|
|
121
|
+
shx.cp(moduleSource, moduleDest);
|
|
113
122
|
}
|
|
114
123
|
}
|
|
115
124
|
else if (this.verbose) {
|
|
116
|
-
console.log('unchanged: ' +
|
|
125
|
+
console.log('unchanged: ' + chalk.greenBright(name));
|
|
117
126
|
}
|
|
118
127
|
}
|
|
119
128
|
/**
|
|
120
129
|
*
|
|
121
130
|
* @param name
|
|
122
|
-
* @param isScript
|
|
123
131
|
*/
|
|
124
|
-
async
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
if (this.verbose)
|
|
132
|
-
this.show(name, 'module', moduleDest);
|
|
133
|
-
if (!node_fs_1.default.existsSync(moduleDest)) {
|
|
134
|
-
node_fs_1.default.mkdirSync(moduleDest);
|
|
132
|
+
async contextualprocess(name) {
|
|
133
|
+
const moduleSource = path.resolve(__dirname, this.installer.templateModules + name + '_context.yml');
|
|
134
|
+
const moduleDest = this.installer.modules + name + '_context.conf';
|
|
135
|
+
if (fs.existsSync(moduleSource)) {
|
|
136
|
+
if (this.verbose)
|
|
137
|
+
this.show(name, 'contextualprocess', moduleDest);
|
|
138
|
+
shx.cp(moduleSource, moduleDest);
|
|
135
139
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
shelljs_1.default.cp(`${moduleTemplate}/${name}.sh`, moduleScript);
|
|
139
|
-
await (0, utils_1.exec)(`chmod +x ${moduleScript}`);
|
|
140
|
+
else if (this.verbose) {
|
|
141
|
+
console.log(`calamares: ${name} contextualprocess, nothing to do!`);
|
|
140
142
|
}
|
|
141
|
-
return moduleScript;
|
|
142
143
|
}
|
|
143
144
|
/**
|
|
144
|
-
*
|
|
145
|
-
* @param name
|
|
145
|
+
* write setting
|
|
146
146
|
*/
|
|
147
|
-
async
|
|
148
|
-
|
|
149
|
-
const moduleDest = this.installer.multiarchModules + name;
|
|
150
|
-
if (this.verbose)
|
|
151
|
-
this.show(name, 'python', moduleDest);
|
|
152
|
-
if (!node_fs_1.default.existsSync(moduleDest)) {
|
|
153
|
-
node_fs_1.default.mkdirSync(moduleDest);
|
|
154
|
-
}
|
|
155
|
-
shelljs_1.default.cp(`${moduleSource}/module.yml`, `${moduleDest}/module.desc`);
|
|
156
|
-
shelljs_1.default.cp(`${moduleSource}/${name}.yml`, `${moduleDest}/${name}.conf`);
|
|
157
|
-
shelljs_1.default.cp(`${moduleSource}/main.py`, moduleDest);
|
|
158
|
-
await (0, utils_1.exec)(`chmod +x ${moduleSource}/main.py`);
|
|
147
|
+
async createCalamaresSettings(theme = 'eggs', isClone = false) {
|
|
148
|
+
await settings(this.installer.template, this.installer.configRoot, theme, isClone);
|
|
159
149
|
}
|
|
160
150
|
/**
|
|
161
|
-
*
|
|
162
|
-
* @param module
|
|
163
|
-
* @param type
|
|
164
|
-
* @param path
|
|
151
|
+
* usa i moduli-ts
|
|
165
152
|
*/
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
}
|
|
172
|
-
case 'calamares_module': {
|
|
173
|
-
console.log('fisherman: ' + chalk_1.default.cyanBright(name) + ' calamares_module in ' + chalk_1.default.cyanBright(path));
|
|
174
|
-
break;
|
|
175
|
-
}
|
|
176
|
-
case 'shellprocess': {
|
|
177
|
-
console.log('fisherman: ' + chalk_1.default.green(name) + ' shellprocess in ' + chalk_1.default.green(path));
|
|
178
|
-
break;
|
|
179
|
-
}
|
|
180
|
-
case 'contextualprocess': {
|
|
181
|
-
console.log('fisherman: ' + chalk_1.default.cyanBright(name) + ' shellprocess in ' + chalk_1.default.cyanBright(path));
|
|
182
|
-
break;
|
|
183
|
-
}
|
|
184
|
-
// No default
|
|
185
|
-
}
|
|
153
|
+
async moduleDisplaymanager() {
|
|
154
|
+
const name = 'displaymanager';
|
|
155
|
+
// const displaymanager = require('./fisherman-helper/displaymanager').displaymanager
|
|
156
|
+
this.buildModule(name);
|
|
157
|
+
shx.sed('-i', '{{displaymanagers}}', displaymanager(), this.installer.modules + name + '.conf');
|
|
186
158
|
}
|
|
187
|
-
/**
|
|
188
|
-
* ====================================================================================
|
|
189
|
-
* M O D U L E S
|
|
190
|
-
* ====================================================================================
|
|
191
|
-
*/
|
|
192
159
|
/**
|
|
193
160
|
* Al momento rimane con la vecchia configurazione
|
|
194
161
|
*/
|
|
@@ -196,32 +163,20 @@ class Fisherman {
|
|
|
196
163
|
const name = 'finished';
|
|
197
164
|
await this.buildModule(name);
|
|
198
165
|
const restartNowCommand = 'reboot';
|
|
199
|
-
|
|
166
|
+
shx.sed('-i', '{{restartNowCommand}}', restartNowCommand, this.installer.modules + name + '.conf');
|
|
200
167
|
}
|
|
201
168
|
/**
|
|
202
|
-
*
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
const name = 'unpackfs';
|
|
206
|
-
this.buildModule(name);
|
|
207
|
-
shelljs_1.default.sed('-i', '{{source}}', this.distro.liveMediumPath + this.distro.squashfs, this.installer.modules + name + '.conf');
|
|
208
|
-
}
|
|
209
|
-
/**
|
|
210
|
-
* usa i moduli-ts
|
|
169
|
+
* ====================================================================================
|
|
170
|
+
* M O D U L E S
|
|
171
|
+
* ====================================================================================
|
|
211
172
|
*/
|
|
212
|
-
async moduleDisplaymanager() {
|
|
213
|
-
const name = 'displaymanager';
|
|
214
|
-
const displaymanager = require('./fisherman-helper/displaymanager').displaymanager;
|
|
215
|
-
this.buildModule(name);
|
|
216
|
-
shelljs_1.default.sed('-i', '{{displaymanagers}}', displaymanager(), this.installer.modules + name + '.conf');
|
|
217
|
-
}
|
|
218
173
|
/**
|
|
219
174
|
* usa i moduli-ts
|
|
220
175
|
*/
|
|
221
176
|
async modulePackages(distro, release = false) {
|
|
222
177
|
const name = 'packages';
|
|
223
|
-
const removePackages = require('./fisherman-helper/packages').remove
|
|
224
|
-
const tryInstall = require('./fisherman-helper/packages').tryInstall
|
|
178
|
+
// const removePackages = require('./fisherman-helper/packages').remove
|
|
179
|
+
// const tryInstall = require('./fisherman-helper/packages').tryInstall
|
|
225
180
|
this.buildModule(name);
|
|
226
181
|
const yamlInstall = tryInstall(distro);
|
|
227
182
|
let yamlRemove = '';
|
|
@@ -232,7 +187,7 @@ class Fisherman {
|
|
|
232
187
|
if (yamlRemove !== '' || yamlInstall !== '') {
|
|
233
188
|
operations = 'operations:\n' + yamlRemove + yamlInstall;
|
|
234
189
|
}
|
|
235
|
-
|
|
190
|
+
shx.sed('-i', '{{operations}}', operations, this.installer.modules + name + '.conf');
|
|
236
191
|
}
|
|
237
192
|
/**
|
|
238
193
|
* Al momento rimane con la vecchia configurazione
|
|
@@ -240,7 +195,57 @@ class Fisherman {
|
|
|
240
195
|
async moduleRemoveuser(username) {
|
|
241
196
|
const name = 'removeuser';
|
|
242
197
|
this.buildModule(name);
|
|
243
|
-
|
|
198
|
+
shx.sed('-i', '{{username}}', username, this.installer.modules + name + '.conf');
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Al momento rimane con la vecchia configurazione
|
|
202
|
+
*/
|
|
203
|
+
async moduleUnpackfs() {
|
|
204
|
+
const name = 'unpackfs';
|
|
205
|
+
this.buildModule(name);
|
|
206
|
+
shx.sed('-i', '{{source}}', this.distro.liveMediumPath + this.distro.squashfs, this.installer.modules + name + '.conf');
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
*
|
|
210
|
+
* @param name
|
|
211
|
+
*/
|
|
212
|
+
async shellprocess(name) {
|
|
213
|
+
const moduleSource = path.resolve(__dirname, this.installer.templateModules + 'shellprocess_' + name + '.yml');
|
|
214
|
+
const moduleDest = this.installer.modules + 'shellprocess_' + name + '.conf';
|
|
215
|
+
if (fs.existsSync(moduleSource)) {
|
|
216
|
+
if (this.verbose)
|
|
217
|
+
this.show(name, 'shellprocess', moduleDest);
|
|
218
|
+
shx.cp(moduleSource, moduleDest);
|
|
219
|
+
}
|
|
220
|
+
else if (this.verbose) {
|
|
221
|
+
console.log(`calamares: ${name} shellprocess, nothing to do`);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
*
|
|
226
|
+
* @param module
|
|
227
|
+
* @param type
|
|
228
|
+
* @param path
|
|
229
|
+
*/
|
|
230
|
+
show(name, type, path) {
|
|
231
|
+
switch (type) {
|
|
232
|
+
case 'module': {
|
|
233
|
+
console.log('fisherman: ' + chalk.yellow(name) + ' module in ' + chalk.yellow(path));
|
|
234
|
+
break;
|
|
235
|
+
}
|
|
236
|
+
case 'calamares_module': {
|
|
237
|
+
console.log('fisherman: ' + chalk.cyanBright(name) + ' calamares_module in ' + chalk.cyanBright(path));
|
|
238
|
+
break;
|
|
239
|
+
}
|
|
240
|
+
case 'shellprocess': {
|
|
241
|
+
console.log('fisherman: ' + chalk.green(name) + ' shellprocess in ' + chalk.green(path));
|
|
242
|
+
break;
|
|
243
|
+
}
|
|
244
|
+
case 'contextualprocess': {
|
|
245
|
+
console.log('fisherman: ' + chalk.cyanBright(name) + ' shellprocess in ' + chalk.cyanBright(path));
|
|
246
|
+
break;
|
|
247
|
+
}
|
|
248
|
+
// No default
|
|
249
|
+
}
|
|
244
250
|
}
|
|
245
251
|
}
|
|
246
|
-
exports.default = Fisherman;
|