penguins-eggs 10.0.26 → 10.0.28
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 +2 -1463
- package/README.md +3 -741
- package/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +4 -4
- package/package.json +3 -3
- package/scripts/love +13 -18
- package/dist/classes/bleach.d.ts +0 -32
- package/dist/classes/bleach.js +0 -136
- package/dist/classes/cfs.d.ts +0 -17
- package/dist/classes/cfs.js +0 -39
- package/dist/classes/cli-autologin.d.ts +0 -52
- package/dist/classes/cli-autologin.js +0 -230
- package/dist/classes/compressors.d.ts +0 -54
- package/dist/classes/compressors.js +0 -109
- package/dist/classes/daddy.d.ts +0 -26
- package/dist/classes/daddy.js +0 -161
- package/dist/classes/distro.d.ts +0 -36
- package/dist/classes/distro.js +0 -346
- package/dist/classes/families/alpine.d.ts +0 -55
- package/dist/classes/families/alpine.js +0 -108
- package/dist/classes/families/archlinux.d.ts +0 -61
- package/dist/classes/families/archlinux.js +0 -140
- package/dist/classes/families/debian.d.ts +0 -65
- package/dist/classes/families/debian.js +0 -138
- package/dist/classes/families/fedora.d.ts +0 -52
- package/dist/classes/families/fedora.js +0 -100
- package/dist/classes/families/mockup.d.ts +0 -60
- package/dist/classes/families/mockup.js +0 -79
- package/dist/classes/families/opensuse.d.ts +0 -52
- package/dist/classes/families/opensuse.js +0 -104
- package/dist/classes/incubation/branding.d.ts +0 -17
- package/dist/classes/incubation/branding.js +0 -89
- package/dist/classes/incubation/distros/bionic.d.ts +0 -32
- package/dist/classes/incubation/distros/bionic.js +0 -83
- package/dist/classes/incubation/distros/buster.d.ts +0 -32
- package/dist/classes/incubation/distros/buster.js +0 -85
- package/dist/classes/incubation/distros/jessie.d.ts +0 -31
- package/dist/classes/incubation/distros/jessie.js +0 -44
- package/dist/classes/incubation/distros/noble.d.ts +0 -32
- package/dist/classes/incubation/distros/noble.js +0 -85
- package/dist/classes/incubation/distros/rolling.d.ts +0 -32
- package/dist/classes/incubation/distros/rolling.js +0 -82
- package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +0 -11
- package/dist/classes/incubation/fisherman-helper/displaymanager.js +0 -39
- package/dist/classes/incubation/fisherman-helper/packages.d.ts +0 -20
- package/dist/classes/incubation/fisherman-helper/packages.js +0 -72
- package/dist/classes/incubation/fisherman-helper/settings.d.ts +0 -15
- package/dist/classes/incubation/fisherman-helper/settings.js +0 -83
- package/dist/classes/incubation/fisherman.d.ts +0 -77
- package/dist/classes/incubation/fisherman.js +0 -251
- package/dist/classes/incubation/incubator.d.ts +0 -40
- package/dist/classes/incubation/incubator.js +0 -328
- package/dist/classes/incubation/installer.d.ts +0 -13
- package/dist/classes/incubation/installer.js +0 -64
- package/dist/classes/keyboards.d.ts +0 -50
- package/dist/classes/keyboards.js +0 -217
- package/dist/classes/locales.d.ts +0 -21
- package/dist/classes/locales.js +0 -80
- package/dist/classes/n8.d.ts +0 -18
- package/dist/classes/n8.js +0 -36
- package/dist/classes/network.d.ts +0 -37
- package/dist/classes/network.js +0 -98
- package/dist/classes/ovary.d.ts +0 -214
- package/dist/classes/ovary.js +0 -1879
- package/dist/classes/pacman.d.ts +0 -149
- package/dist/classes/pacman.js +0 -699
- package/dist/classes/pve-live.d.ts +0 -17
- package/dist/classes/pve-live.js +0 -52
- package/dist/classes/pxe.d.ts +0 -74
- package/dist/classes/pxe.js +0 -410
- package/dist/classes/settings.d.ts +0 -53
- package/dist/classes/settings.js +0 -185
- package/dist/classes/sources_list.d.ts +0 -28
- package/dist/classes/sources_list.js +0 -89
- package/dist/classes/systemctl.d.ts +0 -47
- package/dist/classes/systemctl.js +0 -86
- package/dist/classes/tailor.d.ts +0 -46
- package/dist/classes/tailor.js +0 -539
- package/dist/classes/tools.d.ts +0 -30
- package/dist/classes/tools.js +0 -54
- package/dist/classes/users.d.ts +0 -28
- package/dist/classes/users.js +0 -143
- package/dist/classes/utils.d.ts +0 -323
- package/dist/classes/utils.js +0 -946
- package/dist/classes/xdg.d.ts +0 -45
- package/dist/classes/xdg.js +0 -329
- package/dist/classes/yolk.d.ts +0 -33
- package/dist/classes/yolk.js +0 -114
- package/dist/commands/adapt.d.ts +0 -17
- package/dist/commands/adapt.js +0 -33
- package/dist/commands/analyze.d.ts +0 -26
- package/dist/commands/analyze.js +0 -95
- package/dist/commands/calamares.d.ts +0 -29
- package/dist/commands/calamares.js +0 -110
- package/dist/commands/config.d.ts +0 -35
- package/dist/commands/config.js +0 -192
- package/dist/commands/cuckoo.d.ts +0 -16
- package/dist/commands/cuckoo.js +0 -62
- package/dist/commands/dad.d.ts +0 -20
- package/dist/commands/dad.js +0 -46
- package/dist/commands/export/deb.d.ts +0 -19
- package/dist/commands/export/deb.js +0 -51
- package/dist/commands/export/iso.d.ts +0 -19
- package/dist/commands/export/iso.js +0 -55
- package/dist/commands/install.d.ts +0 -37
- package/dist/commands/install.js +0 -92
- package/dist/commands/kill.d.ts +0 -24
- package/dist/commands/kill.js +0 -50
- package/dist/commands/mom.d.ts +0 -16
- package/dist/commands/mom.js +0 -30
- package/dist/commands/produce.d.ts +0 -34
- package/dist/commands/produce.js +0 -199
- package/dist/commands/status.d.ts +0 -23
- package/dist/commands/status.js +0 -31
- package/dist/commands/syncfrom.d.ts +0 -45
- package/dist/commands/syncfrom.js +0 -152
- package/dist/commands/syncto.d.ts +0 -40
- package/dist/commands/syncto.js +0 -175
- package/dist/commands/tools/clean.d.ts +0 -18
- package/dist/commands/tools/clean.js +0 -37
- package/dist/commands/tools/ppa.d.ts +0 -26
- package/dist/commands/tools/ppa.js +0 -138
- package/dist/commands/tools/skel.d.ts +0 -18
- package/dist/commands/tools/skel.js +0 -44
- package/dist/commands/tools/stat.d.ts +0 -31
- package/dist/commands/tools/stat.js +0 -70
- package/dist/commands/tools/yolk.d.ts +0 -24
- package/dist/commands/tools/yolk.js +0 -45
- package/dist/commands/update.d.ts +0 -47
- package/dist/commands/update.js +0 -140
- package/dist/commands/wardrobe/get.d.ts +0 -23
- package/dist/commands/wardrobe/get.js +0 -52
- package/dist/commands/wardrobe/list.d.ts +0 -24
- package/dist/commands/wardrobe/list.js +0 -125
- package/dist/commands/wardrobe/show.d.ts +0 -25
- package/dist/commands/wardrobe/show.js +0 -97
- package/dist/commands/wardrobe/wear.d.ts +0 -26
- package/dist/commands/wardrobe/wear.js +0 -81
- package/dist/components/finished.d.ts +0 -15
- package/dist/components/finished.js +0 -55
- package/dist/components/information.d.ts +0 -8
- package/dist/components/information.js +0 -153
- package/dist/components/install.d.ts +0 -15
- package/dist/components/install.js +0 -56
- package/dist/components/keyboard.d.ts +0 -16
- package/dist/components/keyboard.js +0 -54
- package/dist/components/location.d.ts +0 -16
- package/dist/components/location.js +0 -59
- package/dist/components/network.d.ts +0 -19
- package/dist/components/network.js +0 -65
- package/dist/components/partitions.d.ts +0 -16
- package/dist/components/partitions.js +0 -73
- package/dist/components/steps.d.ts +0 -13
- package/dist/components/steps.js +0 -148
- package/dist/components/summary.d.ts +0 -24
- package/dist/components/summary.js +0 -82
- package/dist/components/title.d.ts +0 -11
- package/dist/components/title.js +0 -35
- package/dist/components/users.d.ts +0 -24
- package/dist/components/users.js +0 -80
- package/dist/components/welcome.d.ts +0 -13
- package/dist/components/welcome.js +0 -63
- package/dist/index.d.ts +0 -8
- package/dist/index.js +0 -8
- package/dist/interfaces/i-addons.d.ts +0 -13
- package/dist/interfaces/i-addons.js +0 -8
- package/dist/interfaces/i-analyze.d.ts +0 -17
- package/dist/interfaces/i-analyze.js +0 -17
- package/dist/interfaces/i-app.d.ts +0 -14
- package/dist/interfaces/i-app.js +0 -8
- package/dist/interfaces/i-branding.d.ts +0 -36
- package/dist/interfaces/i-branding.js +0 -8
- package/dist/interfaces/i-calamares-partition.d.ts +0 -18
- package/dist/interfaces/i-calamares-partition.js +0 -8
- package/dist/interfaces/i-config-tools.d.ts +0 -18
- package/dist/interfaces/i-config-tools.js +0 -8
- package/dist/interfaces/i-devices.d.ts +0 -20
- package/dist/interfaces/i-devices.js +0 -8
- package/dist/interfaces/i-distro.d.ts +0 -27
- package/dist/interfaces/i-distro.js +0 -8
- package/dist/interfaces/i-drive-list.d.ts +0 -33
- package/dist/interfaces/i-drive-list.js +0 -8
- package/dist/interfaces/i-eggs-config.d.ts +0 -32
- package/dist/interfaces/i-eggs-config.js +0 -8
- package/dist/interfaces/i-excludes.d.ts +0 -14
- package/dist/interfaces/i-excludes.js +0 -8
- package/dist/interfaces/i-exec.d.ts +0 -11
- package/dist/interfaces/i-exec.js +0 -8
- package/dist/interfaces/i-initrd.d.ts +0 -13
- package/dist/interfaces/i-initrd.js +0 -8
- package/dist/interfaces/i-install.d.ts +0 -16
- package/dist/interfaces/i-install.js +0 -8
- package/dist/interfaces/i-installer.d.ts +0 -17
- package/dist/interfaces/i-installer.js +0 -8
- package/dist/interfaces/i-krill-config.d.ts +0 -33
- package/dist/interfaces/i-krill-config.js +0 -8
- package/dist/interfaces/i-krill.d.ts +0 -42
- package/dist/interfaces/i-krill.js +0 -8
- package/dist/interfaces/i-materia.d.ts +0 -41
- package/dist/interfaces/i-materia.js +0 -8
- package/dist/interfaces/i-net.d.ts +0 -16
- package/dist/interfaces/i-net.js +0 -8
- package/dist/interfaces/i-packages.d.ts +0 -16
- package/dist/interfaces/i-packages.js +0 -8
- package/dist/interfaces/i-partitions.d.ts +0 -16
- package/dist/interfaces/i-partitions.js +0 -8
- package/dist/interfaces/i-pxe.d.ts +0 -45
- package/dist/interfaces/i-pxe.js +0 -1
- package/dist/interfaces/i-remix.d.ts +0 -21
- package/dist/interfaces/i-remix.js +0 -8
- package/dist/interfaces/i-settings.d.ts +0 -33
- package/dist/interfaces/i-settings.js +0 -8
- package/dist/interfaces/i-user.d.ts +0 -14
- package/dist/interfaces/i-user.js +0 -8
- package/dist/interfaces/i-workdir.d.ts +0 -14
- package/dist/interfaces/i-workdir.js +0 -8
- package/dist/interfaces/i-xkb-model.d.ts +0 -24
- package/dist/interfaces/i-xkb-model.js +0 -8
- package/dist/interfaces/index.d.ts +0 -25
- package/dist/interfaces/index.js +0 -8
- package/dist/krill/modules/add-user.d.ts +0 -20
- package/dist/krill/modules/add-user.js +0 -50
- package/dist/krill/modules/bootloader-config-arch.d.ts +0 -14
- package/dist/krill/modules/bootloader-config-arch.js +0 -37
- package/dist/krill/modules/bootloader-config-debian.d.ts +0 -10
- package/dist/krill/modules/bootloader-config-debian.js +0 -50
- package/dist/krill/modules/bootloader-config.d.ts +0 -10
- package/dist/krill/modules/bootloader-config.js +0 -16
- package/dist/krill/modules/bootloader.d.ts +0 -14
- package/dist/krill/modules/bootloader.js +0 -30
- package/dist/krill/modules/change-password.d.ts +0 -15
- package/dist/krill/modules/change-password.js +0 -18
- package/dist/krill/modules/del-live-user.d.ts +0 -14
- package/dist/krill/modules/del-live-user.js +0 -38
- package/dist/krill/modules/fstab.d.ts +0 -14
- package/dist/krill/modules/fstab.js +0 -121
- package/dist/krill/modules/grubcfg.d.ts +0 -17
- package/dist/krill/modules/grubcfg.js +0 -29
- package/dist/krill/modules/hostname.d.ts +0 -13
- package/dist/krill/modules/hostname.js +0 -50
- package/dist/krill/modules/initramfs-cfg.d.ts +0 -14
- package/dist/krill/modules/initramfs-cfg.js +0 -25
- package/dist/krill/modules/initramfs.d.ts +0 -13
- package/dist/krill/modules/initramfs.js +0 -48
- package/dist/krill/modules/locale-cfg.d.ts +0 -10
- package/dist/krill/modules/locale-cfg.js +0 -61
- package/dist/krill/modules/locale.d.ts +0 -13
- package/dist/krill/modules/locale.js +0 -48
- package/dist/krill/modules/m-keyboard.d.ts +0 -14
- package/dist/krill/modules/m-keyboard.js +0 -79
- package/dist/krill/modules/m-timezone.d.ts +0 -14
- package/dist/krill/modules/m-timezone.js +0 -22
- package/dist/krill/modules/machine-id.d.ts +0 -15
- package/dist/krill/modules/machine-id.js +0 -30
- package/dist/krill/modules/mkfs.d.ts +0 -13
- package/dist/krill/modules/mkfs.js +0 -48
- package/dist/krill/modules/mount-fs.d.ts +0 -17
- package/dist/krill/modules/mount-fs.js +0 -60
- package/dist/krill/modules/mount-vfs.d.ts +0 -17
- package/dist/krill/modules/mount-vfs.js +0 -40
- package/dist/krill/modules/network-cfg.d.ts +0 -19
- package/dist/krill/modules/network-cfg.js +0 -64
- package/dist/krill/modules/packages.d.ts +0 -14
- package/dist/krill/modules/packages.js +0 -98
- package/dist/krill/modules/partition.d.ts +0 -20
- package/dist/krill/modules/partition.js +0 -324
- package/dist/krill/modules/remove-installer-link.d.ts +0 -13
- package/dist/krill/modules/remove-installer-link.js +0 -35
- package/dist/krill/modules/umount.d.ts +0 -14
- package/dist/krill/modules/umount.js +0 -27
- package/dist/krill/modules/unpackfs.d.ts +0 -13
- package/dist/krill/modules/unpackfs.js +0 -19
- package/dist/krill/prepare.d.ts +0 -78
- package/dist/krill/prepare.js +0 -626
- package/dist/krill/sequence.d.ts +0 -157
- package/dist/krill/sequence.js +0 -665
- package/dist/lib/get_address.d.ts +0 -8
- package/dist/lib/get_address.js +0 -23
- package/dist/lib/get_dns.d.ts +0 -8
- package/dist/lib/get_dns.js +0 -23
- package/dist/lib/get_domain.d.ts +0 -8
- package/dist/lib/get_domain.js +0 -23
- package/dist/lib/get_gateway.d.ts +0 -8
- package/dist/lib/get_gateway.js +0 -23
- package/dist/lib/get_hostname.d.ts +0 -8
- package/dist/lib/get_hostname.js +0 -23
- package/dist/lib/get_netmask.d.ts +0 -8
- package/dist/lib/get_netmask.js +0 -23
- package/dist/lib/get_password.d.ts +0 -8
- package/dist/lib/get_password.js +0 -36
- package/dist/lib/get_userfullname.d.ts +0 -8
- package/dist/lib/get_userfullname.js +0 -23
- package/dist/lib/get_username.d.ts +0 -8
- package/dist/lib/get_username.js +0 -23
- package/dist/lib/kill_me_softly.d.ts +0 -11
- package/dist/lib/kill_me_softly.js +0 -61
- package/dist/lib/select_address_type.d.ts +0 -8
- package/dist/lib/select_address_type.js +0 -24
- package/dist/lib/select_filesystem_type.d.ts +0 -8
- package/dist/lib/select_filesystem_type.js +0 -45
- package/dist/lib/select_installation_device.d.ts +0 -8
- package/dist/lib/select_installation_device.js +0 -30
- package/dist/lib/select_installation_mode.d.ts +0 -8
- package/dist/lib/select_installation_mode.js +0 -24
- package/dist/lib/select_interface.d.ts +0 -8
- package/dist/lib/select_interface.js +0 -24
- package/dist/lib/select_keyboard_layout.d.ts +0 -11
- package/dist/lib/select_keyboard_layout.js +0 -36
- package/dist/lib/select_keyboard_model.d.ts +0 -11
- package/dist/lib/select_keyboard_model.js +0 -34
- package/dist/lib/select_keyboard_option.d.ts +0 -11
- package/dist/lib/select_keyboard_option.js +0 -34
- package/dist/lib/select_keyboard_variant.d.ts +0 -11
- package/dist/lib/select_keyboard_variant.js +0 -35
- package/dist/lib/select_languages.d.ts +0 -8
- package/dist/lib/select_languages.js +0 -28
- package/dist/lib/select_regions.d.ts +0 -8
- package/dist/lib/select_regions.js +0 -24
- package/dist/lib/select_user_swap_choice.d.ts +0 -8
- package/dist/lib/select_user_swap_choice.js +0 -34
- package/dist/lib/select_zones.d.ts +0 -8
- package/dist/lib/select_zones.js +0 -518
- package/dist/lib/utils.d.ts +0 -34
- package/dist/lib/utils.js +0 -79
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/incubation/distros/buster.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 CFS from '../../cfs.js';
|
|
9
|
-
import Fisherman from '../fisherman.js';
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
*/
|
|
13
|
-
export class Buster {
|
|
14
|
-
distro;
|
|
15
|
-
installer = {};
|
|
16
|
-
isClone;
|
|
17
|
-
release = false;
|
|
18
|
-
remix;
|
|
19
|
-
theme;
|
|
20
|
-
user_opt; // theme comprende il path
|
|
21
|
-
verbose = false;
|
|
22
|
-
/**
|
|
23
|
-
* @param remix
|
|
24
|
-
* @param distro
|
|
25
|
-
* @param displaymanager
|
|
26
|
-
* @param verbose
|
|
27
|
-
*/
|
|
28
|
-
constructor(installer, remix, distro, user_opt, release = false, theme = 'eggs', isClone = false, verbose = false) {
|
|
29
|
-
this.installer = installer;
|
|
30
|
-
this.remix = remix;
|
|
31
|
-
this.distro = distro;
|
|
32
|
-
this.user_opt = user_opt;
|
|
33
|
-
this.verbose = verbose;
|
|
34
|
-
this.release = release;
|
|
35
|
-
this.theme = theme;
|
|
36
|
-
this.isClone = isClone;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* locale, partitions, users can come from themes
|
|
40
|
-
*/
|
|
41
|
-
async create() {
|
|
42
|
-
const fisherman = new Fisherman(this.distro, this.installer, this.verbose);
|
|
43
|
-
await fisherman.createCalamaresSettings(this.theme, this.isClone);
|
|
44
|
-
await fisherman.buildModule('welcome');
|
|
45
|
-
await fisherman.buildModule('partition', this.theme);
|
|
46
|
-
await fisherman.buildModule('mount');
|
|
47
|
-
await fisherman.moduleUnpackfs();
|
|
48
|
-
await fisherman.buildCalamaresModule('dpkg-unsafe-io', true);
|
|
49
|
-
await fisherman.buildCalamaresModule('sources-yolk', true);
|
|
50
|
-
await fisherman.buildModule('machineid');
|
|
51
|
-
await fisherman.buildModule('fstab');
|
|
52
|
-
await fisherman.buildModule('locale', this.theme);
|
|
53
|
-
await fisherman.buildModule('keyboard');
|
|
54
|
-
await fisherman.buildModule('localecfg');
|
|
55
|
-
await fisherman.buildModule('users', this.theme);
|
|
56
|
-
await fisherman.moduleDisplaymanager();
|
|
57
|
-
await fisherman.buildModule('networkcfg');
|
|
58
|
-
await fisherman.buildModule('hwclock');
|
|
59
|
-
await fisherman.buildModule('services-systemd');
|
|
60
|
-
await fisherman.buildCalamaresModule('bootloader-config', true);
|
|
61
|
-
await fisherman.buildModule('grubcf');
|
|
62
|
-
await fisherman.buildModule('bootloader');
|
|
63
|
-
await fisherman.modulePackages(this.distro, this.release);
|
|
64
|
-
await fisherman.buildModule('luksbootkeyfile');
|
|
65
|
-
await fisherman.buildModule('plymouthcfg');
|
|
66
|
-
await fisherman.buildModule('initramfscfg');
|
|
67
|
-
await fisherman.buildModule('initramfs');
|
|
68
|
-
await fisherman.buildCalamaresModule('dpkg-unsafe-io-undo', false);
|
|
69
|
-
await fisherman.moduleRemoveuser(this.user_opt);
|
|
70
|
-
await fisherman.buildCalamaresModule('sources-yolk-undo', false);
|
|
71
|
-
await fisherman.buildCalamaresModule('cleanup', true);
|
|
72
|
-
/**
|
|
73
|
-
* cfs: custom final steps
|
|
74
|
-
*/
|
|
75
|
-
const cfs = new CFS();
|
|
76
|
-
const steps = await cfs.steps();
|
|
77
|
-
if (steps.length > 0) {
|
|
78
|
-
for (const step of steps) {
|
|
79
|
-
await fisherman.buildCalamaresModule(step, true, this.theme);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
await fisherman.buildModule('umount');
|
|
83
|
-
await fisherman.moduleFinished();
|
|
84
|
-
}
|
|
85
|
-
}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/incubation/distros/jessie.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 { IInstaller } from '../../../interfaces/i-installer.js';
|
|
9
|
-
import { IDistro, IRemix } from '../../../interfaces/index.js';
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
*/
|
|
13
|
-
export declare class Jessie {
|
|
14
|
-
distro: IDistro;
|
|
15
|
-
installer: IInstaller;
|
|
16
|
-
release: boolean;
|
|
17
|
-
remix: IRemix;
|
|
18
|
-
user_opt: string;
|
|
19
|
-
verbose: boolean;
|
|
20
|
-
/**
|
|
21
|
-
* @param remix
|
|
22
|
-
* @param distro
|
|
23
|
-
* @param displaymanager
|
|
24
|
-
* @param verbose
|
|
25
|
-
*/
|
|
26
|
-
constructor(installer: IInstaller, remix: IRemix, distro: IDistro, user_opt: string, release?: boolean, verbose?: boolean);
|
|
27
|
-
/**
|
|
28
|
-
* partitions can come from themes
|
|
29
|
-
*/
|
|
30
|
-
create(): Promise<void>;
|
|
31
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/incubation/distros/jessie.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 Fisherman from '../fisherman.js';
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
*/
|
|
12
|
-
export class Jessie {
|
|
13
|
-
distro;
|
|
14
|
-
installer = {};
|
|
15
|
-
release = false;
|
|
16
|
-
remix;
|
|
17
|
-
user_opt;
|
|
18
|
-
verbose = false;
|
|
19
|
-
/**
|
|
20
|
-
* @param remix
|
|
21
|
-
* @param distro
|
|
22
|
-
* @param displaymanager
|
|
23
|
-
* @param verbose
|
|
24
|
-
*/
|
|
25
|
-
constructor(installer, remix, distro, user_opt, release = false, verbose = false) {
|
|
26
|
-
this.installer = installer;
|
|
27
|
-
this.remix = remix;
|
|
28
|
-
this.distro = distro;
|
|
29
|
-
this.user_opt = user_opt;
|
|
30
|
-
this.verbose = verbose;
|
|
31
|
-
this.release = release; // nel senso di --final
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* partitions can come from themes
|
|
35
|
-
*/
|
|
36
|
-
async create() {
|
|
37
|
-
const fisherman = new Fisherman(this.distro, this.installer, this.verbose);
|
|
38
|
-
await fisherman.createCalamaresSettings(this.remix.branding);
|
|
39
|
-
await fisherman.buildModule('partition', this.remix.branding);
|
|
40
|
-
await fisherman.buildCalamaresModule('sources-yolk', true);
|
|
41
|
-
await fisherman.moduleRemoveuser(this.user_opt);
|
|
42
|
-
await fisherman.buildCalamaresModule('sources-yolk-undo', false);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/incubation/distros/focal.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, IRemix } from '../../../interfaces/index.js';
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
*/
|
|
12
|
-
export declare class Noble {
|
|
13
|
-
distro: IDistro;
|
|
14
|
-
installer: IInstaller;
|
|
15
|
-
isClone: boolean;
|
|
16
|
-
release: boolean;
|
|
17
|
-
remix: IRemix;
|
|
18
|
-
theme: string;
|
|
19
|
-
user_opt: string;
|
|
20
|
-
verbose: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* @param remix
|
|
23
|
-
* @param distro
|
|
24
|
-
* @param displaymanager
|
|
25
|
-
* @param verbose
|
|
26
|
-
*/
|
|
27
|
-
constructor(installer: IInstaller, remix: IRemix, distro: IDistro, user_opt: string, release?: boolean, theme?: string, isClone?: boolean, verbose?: boolean);
|
|
28
|
-
/**
|
|
29
|
-
* locale, partitions, users can come from themes
|
|
30
|
-
*/
|
|
31
|
-
create(): Promise<void>;
|
|
32
|
-
}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/incubation/distros/focal.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 CFS from '../../cfs.js';
|
|
9
|
-
import Fisherman from '../fisherman.js';
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
*/
|
|
13
|
-
export class Noble {
|
|
14
|
-
distro;
|
|
15
|
-
installer = {};
|
|
16
|
-
isClone;
|
|
17
|
-
release = false;
|
|
18
|
-
remix;
|
|
19
|
-
theme; // theme comprende il path
|
|
20
|
-
user_opt;
|
|
21
|
-
verbose = false;
|
|
22
|
-
/**
|
|
23
|
-
* @param remix
|
|
24
|
-
* @param distro
|
|
25
|
-
* @param displaymanager
|
|
26
|
-
* @param verbose
|
|
27
|
-
*/
|
|
28
|
-
constructor(installer, remix, distro, user_opt, release = false, theme = 'eggs', isClone = false, verbose = false) {
|
|
29
|
-
this.installer = installer;
|
|
30
|
-
this.remix = remix;
|
|
31
|
-
this.distro = distro;
|
|
32
|
-
this.user_opt = user_opt;
|
|
33
|
-
this.verbose = verbose;
|
|
34
|
-
this.release = release;
|
|
35
|
-
this.theme = theme;
|
|
36
|
-
this.isClone = isClone;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* locale, partitions, users can come from themes
|
|
40
|
-
*/
|
|
41
|
-
async create() {
|
|
42
|
-
const fisherman = new Fisherman(this.distro, this.installer, this.verbose);
|
|
43
|
-
await fisherman.createCalamaresSettings(this.theme, this.isClone);
|
|
44
|
-
await fisherman.buildModule('welcome');
|
|
45
|
-
await fisherman.buildModule('partition', this.theme);
|
|
46
|
-
await fisherman.buildModule('mount');
|
|
47
|
-
await fisherman.moduleUnpackfs();
|
|
48
|
-
await fisherman.buildCalamaresModule('sources-yolk', true);
|
|
49
|
-
await fisherman.buildModule('machineid');
|
|
50
|
-
await fisherman.buildModule('fstab');
|
|
51
|
-
await fisherman.buildModule('locale', this.theme);
|
|
52
|
-
await fisherman.buildModule('keyboard');
|
|
53
|
-
await fisherman.buildModule('localecfg');
|
|
54
|
-
await fisherman.buildModule('luksbootkeyfile');
|
|
55
|
-
await fisherman.buildModule('users', this.theme);
|
|
56
|
-
await fisherman.moduleDisplaymanager();
|
|
57
|
-
await fisherman.buildModule('networkcfg');
|
|
58
|
-
await fisherman.buildModule('hwclock');
|
|
59
|
-
await fisherman.contextualprocess('before_bootloader_mkdirs');
|
|
60
|
-
await fisherman.shellprocess('bug-LP#1829805');
|
|
61
|
-
await fisherman.buildModule('initramfs');
|
|
62
|
-
await fisherman.buildModule('grubcfg');
|
|
63
|
-
await fisherman.contextualprocess('before_bootloader');
|
|
64
|
-
await fisherman.buildModule('bootloader');
|
|
65
|
-
await fisherman.contextualprocess('after_bootloader');
|
|
66
|
-
await fisherman.shellprocess('add386arch');
|
|
67
|
-
await fisherman.modulePackages(this.distro, this.release); //
|
|
68
|
-
await fisherman.moduleRemoveuser(this.user_opt);
|
|
69
|
-
await fisherman.buildCalamaresModule('sources-yolk', false);
|
|
70
|
-
await fisherman.buildCalamaresModule('sources-yolk-undo', false);
|
|
71
|
-
await fisherman.buildCalamaresModule('cleanup', true);
|
|
72
|
-
/**
|
|
73
|
-
* cfs: custom final steps
|
|
74
|
-
*/
|
|
75
|
-
const cfs = new CFS();
|
|
76
|
-
const steps = await cfs.steps();
|
|
77
|
-
if (steps.length > 0) {
|
|
78
|
-
for (const step of steps) {
|
|
79
|
-
await fisherman.buildCalamaresModule(step, true, this.theme);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
await fisherman.buildModule('umount');
|
|
83
|
-
await fisherman.buildModule('finished');
|
|
84
|
-
}
|
|
85
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/incubation/distros/rolling.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, IRemix } from '../../../interfaces/index.js';
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
*/
|
|
12
|
-
export declare class Rolling {
|
|
13
|
-
distro: IDistro;
|
|
14
|
-
installer: IInstaller;
|
|
15
|
-
isClone: boolean;
|
|
16
|
-
release: boolean;
|
|
17
|
-
remix: IRemix;
|
|
18
|
-
theme: string;
|
|
19
|
-
user_opt: string;
|
|
20
|
-
verbose: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* @param remix
|
|
23
|
-
* @param distro
|
|
24
|
-
* @param displaymanager
|
|
25
|
-
* @param verbose
|
|
26
|
-
*/
|
|
27
|
-
constructor(installer: IInstaller, remix: IRemix, distro: IDistro, user_opt: string, release?: boolean, theme?: string, isClone?: boolean, verbose?: boolean);
|
|
28
|
-
/**
|
|
29
|
-
* locale, partitions, users can come from themes
|
|
30
|
-
*/
|
|
31
|
-
create(): Promise<void>;
|
|
32
|
-
}
|
|
@@ -1,82 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/incubation/distros/rolling.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 CFS from '../../cfs.js';
|
|
9
|
-
import Fisherman from '../fisherman.js';
|
|
10
|
-
/**
|
|
11
|
-
*
|
|
12
|
-
*/
|
|
13
|
-
export class Rolling {
|
|
14
|
-
distro;
|
|
15
|
-
installer = {};
|
|
16
|
-
isClone = false;
|
|
17
|
-
release = false;
|
|
18
|
-
remix;
|
|
19
|
-
theme; // theme comprende il path
|
|
20
|
-
user_opt;
|
|
21
|
-
verbose = false;
|
|
22
|
-
/**
|
|
23
|
-
* @param remix
|
|
24
|
-
* @param distro
|
|
25
|
-
* @param displaymanager
|
|
26
|
-
* @param verbose
|
|
27
|
-
*/
|
|
28
|
-
constructor(installer, remix, distro, user_opt, release = false, theme = 'eggs', isClone = false, verbose = false) {
|
|
29
|
-
this.installer = installer;
|
|
30
|
-
this.remix = remix;
|
|
31
|
-
this.distro = distro;
|
|
32
|
-
this.user_opt = user_opt;
|
|
33
|
-
this.verbose = verbose;
|
|
34
|
-
this.release = release;
|
|
35
|
-
this.theme = theme;
|
|
36
|
-
this.isClone = isClone;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* locale, partitions, users can come from themes
|
|
40
|
-
*/
|
|
41
|
-
async create() {
|
|
42
|
-
const fisherman = new Fisherman(this.distro, this.installer, this.verbose);
|
|
43
|
-
await fisherman.createCalamaresSettings(this.theme, this.isClone);
|
|
44
|
-
await fisherman.buildModule('welcome');
|
|
45
|
-
await fisherman.buildModule('partition', this.theme);
|
|
46
|
-
await fisherman.buildModule('mount');
|
|
47
|
-
await fisherman.moduleUnpackfs();
|
|
48
|
-
// await fisherman.buildCalamaresModule('sources-yolk', true)
|
|
49
|
-
// await fisherman.buildModule('machineid')
|
|
50
|
-
await fisherman.buildModule('fstab');
|
|
51
|
-
await fisherman.buildModule('locale', this.theme);
|
|
52
|
-
await fisherman.buildModule('keyboard');
|
|
53
|
-
await fisherman.buildModule('localecfg');
|
|
54
|
-
await fisherman.buildModule('users', this.theme);
|
|
55
|
-
await fisherman.moduleDisplaymanager();
|
|
56
|
-
await fisherman.buildModule('networkcfg');
|
|
57
|
-
await fisherman.buildModule('hwclock');
|
|
58
|
-
// await fisherman.buildModule('services-systemd')
|
|
59
|
-
// await fisherman.buildCalamaresModule('bootloader-config', true)
|
|
60
|
-
await fisherman.buildModule('grubcf');
|
|
61
|
-
await fisherman.buildModule('bootloader');
|
|
62
|
-
await fisherman.modulePackages(this.distro, this.release);
|
|
63
|
-
await fisherman.buildModule('luksbootkeyfile');
|
|
64
|
-
await fisherman.buildModule('plymouthcfg');
|
|
65
|
-
// await fisherman.buildModule('initramfscfg')
|
|
66
|
-
// await fisherman.buildModule('initramfs')
|
|
67
|
-
await fisherman.moduleRemoveuser(this.user_opt);
|
|
68
|
-
await fisherman.shellprocess('removelink');
|
|
69
|
-
/**
|
|
70
|
-
* cfs: custom final steps
|
|
71
|
-
*/
|
|
72
|
-
const cfs = new CFS();
|
|
73
|
-
const steps = await cfs.steps();
|
|
74
|
-
if (steps.length > 0) {
|
|
75
|
-
for (const step of steps) {
|
|
76
|
-
await fisherman.buildCalamaresModule(step, true, this.theme);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
await fisherman.buildModule('umount');
|
|
80
|
-
await fisherman.moduleFinished();
|
|
81
|
-
}
|
|
82
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/incubation/fisherman-helper/displaymanager.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
|
-
* restituisce displaymanagers in uso
|
|
10
|
-
*/
|
|
11
|
-
export declare function displaymanager(): string;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* ./src/classes/incubation/fisherman-helper/displaymanager.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';
|
|
9
|
-
/**
|
|
10
|
-
* restituisce displaymanagers in uso
|
|
11
|
-
*/
|
|
12
|
-
export function displaymanager() {
|
|
13
|
-
let text = '';
|
|
14
|
-
text += addIfExist('slim');
|
|
15
|
-
text += addIfExist('sddm');
|
|
16
|
-
text += addIfExist('lightdm');
|
|
17
|
-
text += addIfExist('gdm');
|
|
18
|
-
text += addIfExist('gdm3');
|
|
19
|
-
text += addIfExist('mdm');
|
|
20
|
-
text += addIfExist('lxdm');
|
|
21
|
-
text += addIfExist('kdm');
|
|
22
|
-
return text;
|
|
23
|
-
}
|
|
24
|
-
/*
|
|
25
|
-
* @param package2check
|
|
26
|
-
*/
|
|
27
|
-
function addIfExist(package2check) {
|
|
28
|
-
let content = '';
|
|
29
|
-
if (Pacman.packageIsInstalled(package2check)) {
|
|
30
|
-
let displayManager = package2check;
|
|
31
|
-
if (package2check === 'gdm3') {
|
|
32
|
-
// gdm3 is treat as gdm
|
|
33
|
-
displayManager = 'gdm';
|
|
34
|
-
}
|
|
35
|
-
content = `- ${displayManager}\n`;
|
|
36
|
-
// text += text === '' ? `- ${displayManager}\n` : ` - ${displayManager}\n`
|
|
37
|
-
}
|
|
38
|
-
return content;
|
|
39
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
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 { IDistro } from '../../../interfaces/index.js';
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
* @param distro
|
|
12
|
-
* @returns yaml-string
|
|
13
|
-
*/
|
|
14
|
-
export declare function remove(distro: IDistro): string;
|
|
15
|
-
/**
|
|
16
|
-
*
|
|
17
|
-
* @param distro
|
|
18
|
-
* @returns yaml-string
|
|
19
|
-
*/
|
|
20
|
-
export declare function tryInstall(distro: IDistro): string;
|
|
@@ -1,72 +0,0 @@
|
|
|
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';
|
|
9
|
-
/**
|
|
10
|
-
*
|
|
11
|
-
* @param distro
|
|
12
|
-
* @returns yaml-string
|
|
13
|
-
*/
|
|
14
|
-
export function remove(distro) {
|
|
15
|
-
const packages = ['calamares-eggs', 'calamares-garuda', 'calamares'];
|
|
16
|
-
if (distro.familyId === 'archlinux') {
|
|
17
|
-
packages.push('penguins-eggs');
|
|
18
|
-
}
|
|
19
|
-
if (distro.familyId === 'debian') {
|
|
20
|
-
packages.push('penguins-eggs', 'live-boot', 'live-boot-doc', 'live-boot-initramfs-tools', 'live-tools');
|
|
21
|
-
}
|
|
22
|
-
const installedPackages = [];
|
|
23
|
-
for (const elem of packages) {
|
|
24
|
-
if (Pacman.packageIsInstalled(elem)) {
|
|
25
|
-
installedPackages.push(elem);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
installedPackages.sort();
|
|
29
|
-
let yaml = '';
|
|
30
|
-
for (const elem of installedPackages) {
|
|
31
|
-
yaml += ` - ${elem.trim()}\n`;
|
|
32
|
-
}
|
|
33
|
-
if (yaml !== '') {
|
|
34
|
-
yaml = '- try_remove:\n' + yaml;
|
|
35
|
-
}
|
|
36
|
-
return yaml;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
*
|
|
40
|
-
* @param distro
|
|
41
|
-
* @returns yaml-string
|
|
42
|
-
*/
|
|
43
|
-
export function tryInstall(distro) {
|
|
44
|
-
let yaml = '';
|
|
45
|
-
/**
|
|
46
|
-
* Depending on the distro
|
|
47
|
-
*/
|
|
48
|
-
if (distro.distroLike === 'Ubuntu') {
|
|
49
|
-
yaml += ' - language-pack-$LOCALE\n';
|
|
50
|
-
}
|
|
51
|
-
// Da localizzare se presenti
|
|
52
|
-
if (Pacman.packageIsInstalled('hunspell')) {
|
|
53
|
-
yaml += ' - hunspell-$LOCALE\n';
|
|
54
|
-
}
|
|
55
|
-
if (Pacman.packageIsInstalled('libreoffice-base-core')) {
|
|
56
|
-
yaml += ' - libreoffice-l10n-$LOCALE\n';
|
|
57
|
-
yaml += ' - libreoffice-help-$LOCALE\n';
|
|
58
|
-
}
|
|
59
|
-
if (Pacman.packageIsInstalled('firefox-esr')) {
|
|
60
|
-
yaml += ' - firefox-esr-$LOCALE\n';
|
|
61
|
-
}
|
|
62
|
-
if (Pacman.packageIsInstalled('firefox')) {
|
|
63
|
-
yaml += ' - firefox-$LOCALE\n';
|
|
64
|
-
}
|
|
65
|
-
if (Pacman.packageIsInstalled('thunderbird')) {
|
|
66
|
-
yaml += ' - thunderbird-locale-$LOCALE\n';
|
|
67
|
-
}
|
|
68
|
-
if (yaml !== '') {
|
|
69
|
-
yaml = '- try_install:\n' + yaml;
|
|
70
|
-
}
|
|
71
|
-
return yaml;
|
|
72
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
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,83 +0,0 @@
|
|
|
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 theme
|
|
11
|
-
* @param isClone
|
|
12
|
-
*/
|
|
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';
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
21
|
-
* @param src
|
|
22
|
-
* @param dest
|
|
23
|
-
* @param theme
|
|
24
|
-
* @param isClone
|
|
25
|
-
*/
|
|
26
|
-
export async function settings(src, dest, theme = 'eggs', isClone = false) {
|
|
27
|
-
let branding = theme;
|
|
28
|
-
const settingsSrc = src + 'settings.yml';
|
|
29
|
-
if (theme.includes('/')) {
|
|
30
|
-
branding = theme.slice(Math.max(0, theme.lastIndexOf('/') + 1));
|
|
31
|
-
}
|
|
32
|
-
const settingsDest = dest + 'settings.conf';
|
|
33
|
-
shx.cp(settingsSrc, settingsDest);
|
|
34
|
-
let hasSystemd = '# ';
|
|
35
|
-
if (Utils.isSystemd()) {
|
|
36
|
-
hasSystemd = '- ';
|
|
37
|
-
}
|
|
38
|
-
let createUsers = '- ';
|
|
39
|
-
if (isClone) {
|
|
40
|
-
createUsers = '# ';
|
|
41
|
-
}
|
|
42
|
-
let hasDisplaymanager = '# ';
|
|
43
|
-
if (displaymanager() !== '') {
|
|
44
|
-
hasDisplaymanager = '- ';
|
|
45
|
-
}
|
|
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);
|
|
50
|
-
/**
|
|
51
|
-
* cfsAppend
|
|
52
|
-
*/
|
|
53
|
-
const cfsPath = `${theme}/theme/calamares/cfs.yml`;
|
|
54
|
-
if (fs.existsSync(cfsPath)) {
|
|
55
|
-
cfsAppend(cfsPath);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
*
|
|
60
|
-
*/
|
|
61
|
-
function cfsAppend(cfs) {
|
|
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);
|
|
67
|
-
const execSteps = so.sequence[1].exec;
|
|
68
|
-
for (const execStep of execSteps) {
|
|
69
|
-
if (execStep.includes('umount')) {
|
|
70
|
-
so.sequence[1].exec.pop(); // OK remove umount
|
|
71
|
-
/**
|
|
72
|
-
* insert cfsStep
|
|
73
|
-
*/
|
|
74
|
-
for (const cfsStep of cfsSteps) {
|
|
75
|
-
so.sequence[1].exec.push(cfsStep);
|
|
76
|
-
}
|
|
77
|
-
so.sequence[1].exec.push('end-cfs'); // we will replace with umount
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
// ***
|
|
81
|
-
fs.writeFileSync(configRoot, yaml.dump(so), 'utf-8');
|
|
82
|
-
shx.sed('-i', 'end-cfs', 'umount', configRoot);
|
|
83
|
-
}
|