penguins-eggs 9.6.23 → 9.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oclif.manifest.json +1458 -1
- package/README.md +1527 -201
- package/addons/eggs/theme/livecd/grub.main.cfg +4 -4
- package/addons/eggs/theme/livecd/isolinux.main.cfg +5 -5
- package/bin/dev.js +6 -0
- package/bin/run +0 -0
- package/bin/run.js +7 -0
- package/conf/derivatives.yaml +23 -3
- package/conf/distros/README.md +25 -0
- package/conf/distros/bionic/calamares/calamares-modules/sources-yolk/module.yml +8 -0
- package/conf/distros/bionic/calamares/calamares-modules/sources-yolk/sources-yolk.sh +82 -0
- package/conf/distros/bionic/calamares/modules/packages.yml +6 -0
- package/conf/distros/{rolling/calamares-32 → bionic/calamares}/modules/removeuser.yml +2 -3
- package/conf/distros/bionic/calamares/modules/unpackfs.yml +6 -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/bootloader.yml +2 -1
- package/conf/distros/buster/calamares/modules/fstab.yml +1 -1
- package/conf/distros/buster/calamares/modules/mount.yml +2 -2
- package/conf/distros/focal/calamares/modules/after_bootloader_context.yml +10 -1
- package/conf/distros/focal/calamares/modules/before_bootloader_mkdirs_context.yml +4 -4
- package/conf/distros/focal/calamares/modules/fstab.yml +1 -1
- package/conf/distros/focal/calamares/modules/mount.yml +2 -2
- package/conf/distros/focal/calamares/modules/shellprocess_bug-LP#1829805.yml +1 -1
- package/conf/distros/focal/calamares/modules/shellprocess_logs.yml +1 -1
- package/conf/distros/stretch/krill/krill-modules/bootloader-config/bootloader-config.sh +28 -0
- package/conf/distros/stretch/krill/krill-modules/bootloader-config/module.yml +8 -0
- package/conf/distros/stretch/krill/krill-modules/remove-link/module.yml +9 -0
- package/conf/distros/stretch/krill/krill-modules/remove-link/remove-link.sh +5 -0
- package/conf/distros/stretch/krill/krill-modules/sources-yolk/module.yml +8 -0
- package/conf/distros/stretch/krill/krill-modules/sources-yolk/sources-yolk.sh +75 -0
- package/conf/distros/stretch/krill/krill-modules/sources-yolk-unmount/module.yml +8 -0
- package/conf/distros/stretch/krill/modules/partitions.yml +8 -0
- package/conf/distros/stretch/krill/modules/removeuser.yml +15 -0
- package/conf/distros/{rolling/calamares-32 → stretch/krill}/settings.yml +50 -11
- package/conf/eggs.yaml +2 -9
- package/conf/{exclude.list.homes → exclude.list.d/home.list} +6 -1
- package/conf/{exclude.list.template → exclude.list.d/master.list} +16 -26
- package/conf/{exclude.list.usr → exclude.list.d/usr.list} +2 -2
- package/conf/exclude.list.d/var.list +21 -0
- package/conf/tools.yaml +1 -3
- package/dist/classes/compressors.js +11 -13
- package/dist/classes/daddy.js +1 -3
- package/dist/classes/distro.js +23 -4
- package/dist/classes/families/archlinux.js +7 -9
- package/dist/classes/families/debian.js +1 -1
- package/dist/classes/families/fedora.js +1 -1
- package/dist/classes/families/suse.js +1 -1
- package/dist/classes/incubation/branding.js +9 -3
- package/dist/classes/incubation/distros/bionic.js +8 -3
- package/dist/classes/incubation/distros/buster.js +8 -3
- package/dist/classes/incubation/distros/focal.js +8 -3
- package/dist/classes/incubation/distros/jessie.js +6 -3
- package/dist/classes/incubation/distros/rolling.js +8 -4
- package/dist/classes/incubation/fisherman-helper/packages.js +5 -2
- package/dist/classes/incubation/fisherman.js +18 -3
- package/dist/classes/incubation/incubator.js +7 -2
- package/dist/classes/incubation/installer.js +3 -1
- package/dist/classes/initrd.js +5 -5
- package/dist/classes/keyboards.js +4 -4
- package/dist/classes/network.js +7 -7
- package/dist/classes/ovary.js +136 -176
- package/dist/classes/pacman.js +12 -14
- package/dist/classes/pve-live.js +1 -1
- package/dist/classes/pxe.js +10 -12
- package/dist/classes/settings.js +19 -18
- package/dist/classes/systemctl.js +1 -1
- package/dist/classes/tailor.js +6 -6
- package/dist/classes/tools.js +4 -6
- package/dist/classes/users.js +10 -0
- package/dist/classes/utils.js +30 -0
- package/dist/classes/xdg.js +21 -8
- package/dist/classes/yolk.js +3 -5
- package/dist/commands/adapt.js +8 -8
- package/dist/commands/analyze.js +9 -12
- package/dist/commands/calamares.js +20 -23
- package/dist/commands/config.js +13 -13
- package/dist/commands/cuckoo.js +7 -7
- package/dist/commands/dad.js +12 -12
- package/dist/commands/export/deb.js +20 -25
- package/dist/commands/export/iso.js +11 -11
- package/dist/commands/install.js +41 -37
- package/dist/commands/kill.js +12 -15
- package/dist/commands/mom.js +7 -7
- package/dist/commands/produce.js +71 -47
- package/dist/commands/status.js +8 -8
- package/dist/commands/syncfrom.js +34 -40
- package/dist/commands/syncto.js +142 -202
- package/dist/commands/tools/clean.js +9 -9
- package/dist/commands/tools/ppa.js +12 -12
- package/dist/commands/tools/skel.js +10 -10
- package/dist/commands/tools/stat.js +11 -11
- package/dist/commands/tools/yolk.js +9 -9
- package/dist/commands/update.js +8 -8
- package/dist/commands/wardrobe/get.js +13 -10
- package/dist/commands/wardrobe/list.js +15 -13
- package/dist/commands/wardrobe/show.js +16 -13
- package/dist/commands/wardrobe/wear.js +16 -14
- package/dist/components/summary.js +5 -2
- package/dist/interfaces/i-analyze.js +8 -10
- package/dist/interfaces/{i-filters.js → i-excludes.js} +0 -1
- package/dist/krill/krill-prepare.js +23 -11
- package/dist/krill/krill-sequence.js +72 -73
- package/dist/krill/modules/fstab.js +59 -32
- package/dist/krill/modules/mkfs.js +29 -16
- package/dist/krill/modules/network-cfg.js +22 -21
- package/dist/krill/modules/partition.js +3 -3
- package/dist/lib/dependencies.js +1 -0
- package/dist/lib/select_filesystem_type.js +6 -1
- package/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +128 -74
- package/mkinitcpio/biglinux/live.conf +74 -0
- package/mkinitcpio/biglinux/mkinitcpio.conf +73 -0
- package/package.json +43 -41
- package/scripts/_eggs +17 -14
- package/scripts/eggs.bash +6 -6
- package/conf/distros/rolling/calamares-32/modules/displaymanager.yml +0 -23
- package/conf/distros/rolling/calamares-32/modules/finished.yml +0 -6
- package/conf/distros/rolling/calamares-32/modules/fstab.yml +0 -14
- package/conf/distros/rolling/calamares-32/modules/locale.yml +0 -11
- package/conf/distros/rolling/calamares-32/modules/mount.yml +0 -39
- package/conf/distros/rolling/calamares-32/modules/packages.yml +0 -11
- package/conf/distros/rolling/calamares-32/modules/partition.yml +0 -283
- package/conf/distros/rolling/calamares-32/modules/shellprocess_removelink.yml +0 -8
- package/conf/distros/rolling/calamares-32/modules/unpackfs.yml +0 -7
- package/conf/distros/rolling/calamares-32/modules/users.yml +0 -20
- package/conf/exclude.list.custom +0 -3
- package/manpages/doc/man/README.md +0 -0
|
@@ -20,6 +20,22 @@ const utils_1 = tslib_1.__importDefault(require("../../classes/utils"));
|
|
|
20
20
|
*
|
|
21
21
|
*/
|
|
22
22
|
class Show extends core_1.Command {
|
|
23
|
+
static flags = {
|
|
24
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
25
|
+
json: core_1.Flags.boolean({ char: 'j', description: 'output JSON' }),
|
|
26
|
+
verbose: core_1.Flags.boolean({ char: 'v' }),
|
|
27
|
+
wardrobe: core_1.Flags.string({ char: 'w', description: 'wardrobe' }),
|
|
28
|
+
};
|
|
29
|
+
static description = 'show costumes/accessories in wardrobe';
|
|
30
|
+
static args = {
|
|
31
|
+
repo: core_1.Args.string({ name: 'costume', description: 'costume to show', required: false }),
|
|
32
|
+
};
|
|
33
|
+
//static args = [{ name: 'costume', description: 'costume', required: false }]
|
|
34
|
+
static example = [
|
|
35
|
+
'eggs wardrobe show colibri',
|
|
36
|
+
'eggs wardrobe show accessories/firmwares',
|
|
37
|
+
'eggs wardrobe show accessories/',
|
|
38
|
+
];
|
|
23
39
|
async run() {
|
|
24
40
|
const { args, flags } = await this.parse(Show);
|
|
25
41
|
const verbose = flags.verbose;
|
|
@@ -79,17 +95,4 @@ class Show extends core_1.Command {
|
|
|
79
95
|
}
|
|
80
96
|
}
|
|
81
97
|
}
|
|
82
|
-
Show.flags = {
|
|
83
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
84
|
-
json: core_1.Flags.boolean({ char: 'j', description: 'output JSON' }),
|
|
85
|
-
verbose: core_1.Flags.boolean({ char: 'v' }),
|
|
86
|
-
wardrobe: core_1.Flags.string({ char: 'w', description: 'wardrobe' }),
|
|
87
|
-
};
|
|
88
|
-
Show.description = 'show costumes/accessories in wardrobe';
|
|
89
|
-
Show.args = [{ name: 'costume', description: 'costume', required: false }];
|
|
90
|
-
Show.example = [
|
|
91
|
-
'eggs wardrobe show colibri',
|
|
92
|
-
'eggs wardrobe show accessories/firmwares',
|
|
93
|
-
'eggs wardrobe show accessories/',
|
|
94
|
-
];
|
|
95
98
|
exports.default = Show;
|
|
@@ -18,6 +18,22 @@ const tailor_1 = tslib_1.__importDefault(require("../../classes/tailor"));
|
|
|
18
18
|
*
|
|
19
19
|
*/
|
|
20
20
|
class Wear extends core_1.Command {
|
|
21
|
+
static flags = {
|
|
22
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
23
|
+
no_accessories: core_1.Flags.boolean({ char: 'a', description: 'not install accessories' }),
|
|
24
|
+
no_firmwares: core_1.Flags.boolean({ char: 'f', description: 'not install firmwares' }),
|
|
25
|
+
verbose: core_1.Flags.boolean({ char: 'v' }),
|
|
26
|
+
wardrobe: core_1.Flags.string({ char: 'w', description: 'wardrobe' }),
|
|
27
|
+
};
|
|
28
|
+
static description = 'wear costume/accessories from wardrobe';
|
|
29
|
+
static args = {
|
|
30
|
+
repo: core_1.Args.string({ name: 'costume', description: 'costume to wear', required: false }),
|
|
31
|
+
};
|
|
32
|
+
static examples = [
|
|
33
|
+
'sudo eggs wardrobe wear duck',
|
|
34
|
+
'sudo eggs wardrobe wear accessories/firmwares',
|
|
35
|
+
'sudo eggs wardrobe wear wagtail/waydroid',
|
|
36
|
+
];
|
|
21
37
|
async run() {
|
|
22
38
|
const { argv, flags } = await this.parse(Wear);
|
|
23
39
|
const verbose = flags.verbose;
|
|
@@ -70,18 +86,4 @@ class Wear extends core_1.Command {
|
|
|
70
86
|
}
|
|
71
87
|
}
|
|
72
88
|
}
|
|
73
|
-
Wear.flags = {
|
|
74
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
75
|
-
no_accessories: core_1.Flags.boolean({ char: 'a', description: 'not install accessories' }),
|
|
76
|
-
no_firmwares: core_1.Flags.boolean({ char: 'f', description: 'not install firmwares' }),
|
|
77
|
-
verbose: core_1.Flags.boolean({ char: 'v' }),
|
|
78
|
-
wardrobe: core_1.Flags.string({ char: 'w', description: 'wardrobe' }),
|
|
79
|
-
};
|
|
80
|
-
Wear.description = 'wear costume/accessories from wardrobe';
|
|
81
|
-
Wear.args = [{ name: 'costume', description: 'costume', required: false }];
|
|
82
|
-
Wear.examples = [
|
|
83
|
-
'sudo eggs wardrobe wear duck',
|
|
84
|
-
'sudo eggs wardrobe wear accessories/firmwares',
|
|
85
|
-
'sudo eggs wardrobe wear wagtail/waydroid',
|
|
86
|
-
];
|
|
87
89
|
exports.default = Wear;
|
|
@@ -14,7 +14,7 @@ const title_1 = tslib_1.__importDefault(require("./elements/title"));
|
|
|
14
14
|
const steps_1 = tslib_1.__importDefault(require("./elements/steps"));
|
|
15
15
|
const js_yaml_1 = tslib_1.__importDefault(require("js-yaml"));
|
|
16
16
|
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
17
|
-
function Summary({ name, password, rootPassword, hostname, region, zone, language, keyboardModel, keyboardLayout, installationDevice, message }) {
|
|
17
|
+
function Summary({ name, password, rootPassword, hostname, region, zone, language, keyboardModel, keyboardLayout, installationDevice, filesystemType, message }) {
|
|
18
18
|
let productName = 'unknown';
|
|
19
19
|
let version = 'x.x.x';
|
|
20
20
|
let configRoot = '/etc/penguins-eggs.d/krill/';
|
|
@@ -75,7 +75,10 @@ function Summary({ name, password, rootPassword, hostname, region, zone, languag
|
|
|
75
75
|
react_1.default.createElement(ink_1.Text, { color: "green" }, keyboardLayout)),
|
|
76
76
|
react_1.default.createElement(ink_1.Box, null,
|
|
77
77
|
react_1.default.createElement(ink_1.Text, { bold: true }, "Erase disk "),
|
|
78
|
-
react_1.default.createElement(ink_1.Text,
|
|
78
|
+
react_1.default.createElement(ink_1.Text, null,
|
|
79
|
+
installationDevice,
|
|
80
|
+
" formatting: ",
|
|
81
|
+
filesystemType)),
|
|
79
82
|
react_1.default.createElement(ink_1.Box, null,
|
|
80
83
|
react_1.default.createElement(ink_1.Text, { color: "red" }, message))))))));
|
|
81
84
|
}
|
|
@@ -8,15 +8,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
8
8
|
* license: MIT
|
|
9
9
|
*/
|
|
10
10
|
class IAnalyze {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
this.size = 0;
|
|
20
|
-
}
|
|
11
|
+
login = '';
|
|
12
|
+
password = '';
|
|
13
|
+
uid = '';
|
|
14
|
+
gid = '';
|
|
15
|
+
gecos = '';
|
|
16
|
+
home = '';
|
|
17
|
+
shell = '';
|
|
18
|
+
size = 0;
|
|
21
19
|
}
|
|
22
20
|
exports.default = IAnalyze;
|
|
@@ -67,6 +67,7 @@ const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
|
67
67
|
const systemctl_1 = tslib_1.__importDefault(require("../classes/systemctl"));
|
|
68
68
|
const locales_1 = tslib_1.__importDefault(require("../classes/locales"));
|
|
69
69
|
const keyboards_1 = tslib_1.__importDefault(require("../classes/keyboards"));
|
|
70
|
+
const pacman_1 = tslib_1.__importDefault(require("../classes/pacman"));
|
|
70
71
|
// libraries
|
|
71
72
|
const exec = require('../lib/utils').exec;
|
|
72
73
|
const welcome_1 = tslib_1.__importDefault(require("../components/welcome"));
|
|
@@ -104,6 +105,12 @@ const config_file = '/etc/penguins-eggs.d/krill.yaml';
|
|
|
104
105
|
*
|
|
105
106
|
*/
|
|
106
107
|
class Krill {
|
|
108
|
+
krillConfig = {};
|
|
109
|
+
locales = new locales_1.default();
|
|
110
|
+
keyboards = new keyboards_1.default();
|
|
111
|
+
unattended = false;
|
|
112
|
+
nointeractive = false;
|
|
113
|
+
halt = false;
|
|
107
114
|
/**
|
|
108
115
|
* constructor
|
|
109
116
|
* @param unattended
|
|
@@ -111,12 +118,6 @@ class Krill {
|
|
|
111
118
|
* @param halt
|
|
112
119
|
*/
|
|
113
120
|
constructor(unattended = false, nointeractive = false, halt = false) {
|
|
114
|
-
this.krillConfig = {};
|
|
115
|
-
this.locales = new locales_1.default();
|
|
116
|
-
this.keyboards = new keyboards_1.default();
|
|
117
|
-
this.unattended = false;
|
|
118
|
-
this.nointeractive = false;
|
|
119
|
-
this.halt = false;
|
|
120
121
|
this.unattended = unattended;
|
|
121
122
|
this.nointeractive = nointeractive;
|
|
122
123
|
this.halt = halt;
|
|
@@ -134,7 +135,7 @@ class Krill {
|
|
|
134
135
|
* @param pve
|
|
135
136
|
* @param verbose
|
|
136
137
|
*/
|
|
137
|
-
async prepare(krillConfig = {}, ip = false, random = false, domain = '', suspend = false, small = false, none = false, cryped = false, pve = false, verbose = false) {
|
|
138
|
+
async prepare(krillConfig = {}, ip = false, random = false, domain = '', suspend = false, small = false, none = false, cryped = false, pve = false, btrfs = false, verbose = false) {
|
|
138
139
|
/**
|
|
139
140
|
* Check for disk presence
|
|
140
141
|
*/
|
|
@@ -210,6 +211,9 @@ class Krill {
|
|
|
210
211
|
filesystemType: this.krillConfig.filesystemType,
|
|
211
212
|
userSwapChoice: this.krillConfig.userSwapChoice
|
|
212
213
|
};
|
|
214
|
+
if (btrfs) {
|
|
215
|
+
oPartitions.filesystemType = 'btrfs';
|
|
216
|
+
}
|
|
213
217
|
if (suspend) {
|
|
214
218
|
oPartitions.userSwapChoice = 'suspend';
|
|
215
219
|
}
|
|
@@ -258,7 +262,7 @@ class Krill {
|
|
|
258
262
|
oLocation = await this.location(oWelcome.language);
|
|
259
263
|
//let kl = oWelcome.language.substring(oWelcome.language.indexOf('_'),2).toLowerCase()
|
|
260
264
|
oKeyboard = await this.keyboard();
|
|
261
|
-
oPartitions = await this.partitions(cryped, pve);
|
|
265
|
+
oPartitions = await this.partitions(cryped, pve, btrfs);
|
|
262
266
|
oUsers = await this.users();
|
|
263
267
|
oNetwork = await this.network();
|
|
264
268
|
}
|
|
@@ -378,7 +382,7 @@ class Krill {
|
|
|
378
382
|
/**
|
|
379
383
|
* PARTITIONS
|
|
380
384
|
*/
|
|
381
|
-
async partitions(crypted = false, pve = false) {
|
|
385
|
+
async partitions(crypted = false, pve = false, btrfs = false) {
|
|
382
386
|
// Calamares won't use any devices with iso9660 filesystem on it.
|
|
383
387
|
const drives = shelljs_1.default.exec('lsblk |grep disk|cut -f 1 "-d "', { silent: true }).stdout.trim().split('\n');
|
|
384
388
|
const driveList = [];
|
|
@@ -397,6 +401,9 @@ class Krill {
|
|
|
397
401
|
installationMode = 'lvm2';
|
|
398
402
|
}
|
|
399
403
|
let filesystemType = 'ext4';
|
|
404
|
+
if (pacman_1.default.packageIsInstalled("btrfs-progs")) {
|
|
405
|
+
filesystemType = 'btrfs';
|
|
406
|
+
}
|
|
400
407
|
let userSwapChoice = 'small';
|
|
401
408
|
let partitionsElem;
|
|
402
409
|
while (true) {
|
|
@@ -413,7 +420,12 @@ class Krill {
|
|
|
413
420
|
else if (pve) {
|
|
414
421
|
installationMode = 'lvm2';
|
|
415
422
|
}
|
|
416
|
-
|
|
423
|
+
if (btrfs) {
|
|
424
|
+
filesystemType = 'btrfs';
|
|
425
|
+
}
|
|
426
|
+
else {
|
|
427
|
+
filesystemType = 'ext4';
|
|
428
|
+
}
|
|
417
429
|
userSwapChoice = '';
|
|
418
430
|
}
|
|
419
431
|
installationDevice = await (0, select_installation_device_1.default)();
|
|
@@ -533,7 +545,7 @@ class Krill {
|
|
|
533
545
|
message = "Unattended installation will start in 5 seconds, press CTRL-C to abort!";
|
|
534
546
|
}
|
|
535
547
|
while (true) {
|
|
536
|
-
summaryElem = react_1.default.createElement(summary_1.default, { name: users.name, password: users.password, rootPassword: users.rootPassword, hostname: users.hostname, region: location.region, zone: location.zone, language: location.language, keyboardModel: keyboard.keyboardModel, keyboardLayout: keyboard.keyboardLayout, installationDevice: partitions.installationDevice, message: message });
|
|
548
|
+
summaryElem = react_1.default.createElement(summary_1.default, { name: users.name, password: users.password, rootPassword: users.rootPassword, hostname: users.hostname, region: location.region, zone: location.zone, language: location.language, keyboardModel: keyboard.keyboardModel, keyboardLayout: keyboard.keyboardLayout, installationDevice: partitions.installationDevice, filesystemType: partitions.filesystemType, message: message });
|
|
537
549
|
if (this.unattended && this.nointeractive) {
|
|
538
550
|
redraw(summaryElem);
|
|
539
551
|
await sleep(5000);
|
|
@@ -48,8 +48,6 @@ const grubcfg_1 = tslib_1.__importDefault(require("./modules/grubcfg"));
|
|
|
48
48
|
const bootloader_1 = tslib_1.__importDefault(require("./modules/bootloader"));
|
|
49
49
|
const packages_1 = tslib_1.__importDefault(require("./modules/packages"));
|
|
50
50
|
const remove_installer_link_1 = tslib_1.__importDefault(require("./modules/remove-installer-link"));
|
|
51
|
-
// luksbootkeyfile:
|
|
52
|
-
// plymouthcfg;
|
|
53
51
|
const initramfs_cfg_1 = tslib_1.__importDefault(require("./modules/initramfs-cfg"));
|
|
54
52
|
const initramfs_1 = tslib_1.__importDefault(require("./modules/initramfs"));
|
|
55
53
|
const del_live_user_1 = tslib_1.__importDefault(require("./modules/del-live-user"));
|
|
@@ -64,80 +62,80 @@ const cfs_1 = tslib_1.__importDefault(require("../classes/cfs"));
|
|
|
64
62
|
* hatching: installazione o cova!!!
|
|
65
63
|
*/
|
|
66
64
|
class Sequence {
|
|
65
|
+
partition = partition_1.default;
|
|
66
|
+
// mount
|
|
67
|
+
mountFs = mount_fs_1.mountFs;
|
|
68
|
+
mountVfs = mount_vfs_1.mountVfs;
|
|
69
|
+
//
|
|
70
|
+
unpackfs = unpackfs_1.default;
|
|
71
|
+
machineId = machine_id_1.default;
|
|
72
|
+
fstab = fstab_1.default;
|
|
73
|
+
locale = locale_1.default;
|
|
74
|
+
keyboard = m_keyboard_1.default;
|
|
75
|
+
localeCfg = locale_cfg_1.default;
|
|
76
|
+
// users
|
|
77
|
+
addUser = add_user_1.default;
|
|
78
|
+
changePassword = change_password_1.default;
|
|
79
|
+
// displaumanager: autologin
|
|
80
|
+
networkCfg = network_cfg_1.default;
|
|
81
|
+
// hwclock:
|
|
82
|
+
// services-systemd:
|
|
83
|
+
// bootloader-config
|
|
84
|
+
bootloaderConfig = bootloader_config_1.default;
|
|
85
|
+
bootloaderConfigArch = bootloader_config_arch_1.default;
|
|
86
|
+
bootloaderConfigDebian = bootloader_config_debian_1.default;
|
|
87
|
+
//
|
|
88
|
+
grubcfg = grubcfg_1.default;
|
|
89
|
+
bootloader = bootloader_1.default;
|
|
90
|
+
packages = packages_1.default;
|
|
91
|
+
removeInstallerLink = remove_installer_link_1.default;
|
|
92
|
+
// luksbootkeyfile:
|
|
93
|
+
// plymouthcfg;
|
|
94
|
+
initramfsCfg = initramfs_cfg_1.default;
|
|
95
|
+
initramfs = initramfs_1.default;
|
|
96
|
+
delLiveUser = del_live_user_1.default;
|
|
97
|
+
umountFs = mount_fs_1.umountFs;
|
|
98
|
+
umountVfs = mount_vfs_1.umountVfs;
|
|
99
|
+
// to order in same way
|
|
100
|
+
timezone = m_timezone_1.default;
|
|
101
|
+
umount = umount_1.default;
|
|
102
|
+
mkfs = mkfs_1.default;
|
|
103
|
+
hostname = hostname_1.default;
|
|
104
|
+
installer = {};
|
|
105
|
+
installTarget = '/tmp/calamares-krill-root';
|
|
106
|
+
verbose = false;
|
|
107
|
+
echo = {};
|
|
108
|
+
efi = false;
|
|
109
|
+
devices = {};
|
|
110
|
+
users = {};
|
|
111
|
+
network = {};
|
|
112
|
+
partitions = {};
|
|
113
|
+
language = '';
|
|
114
|
+
region = '';
|
|
115
|
+
zone = '';
|
|
116
|
+
keyboardModel = '';
|
|
117
|
+
keyboardLayout = '';
|
|
118
|
+
keyboardVariant = '';
|
|
119
|
+
toNull = ' > /dev/null 2>&1';
|
|
120
|
+
settings = {};
|
|
121
|
+
remix = {};
|
|
122
|
+
distro = {};
|
|
123
|
+
// Crypted Clone
|
|
124
|
+
luksName = 'luks-volume';
|
|
125
|
+
luksFile = ``;
|
|
126
|
+
luksDevice = `/dev/mapper/${this.luksName}`;
|
|
127
|
+
luksMountpoint = `/mnt`;
|
|
128
|
+
// Clone (Uncrypted)
|
|
129
|
+
is_clone = fs_1.default.existsSync('penguins-eggs.d/is_clone');
|
|
130
|
+
is_crypted_clone = fs_1.default.existsSync('/etc/penguins-eggs.d/is_crypted_clone');
|
|
131
|
+
unattended = false;
|
|
132
|
+
nointeractive = false;
|
|
133
|
+
halt = false;
|
|
134
|
+
cliAutologin = new cli_autologin_1.default();
|
|
67
135
|
/**
|
|
68
136
|
* constructor
|
|
69
137
|
*/
|
|
70
138
|
constructor(location, keyboard, partitions, users, network) {
|
|
71
|
-
this.partition = partition_1.default;
|
|
72
|
-
// mount
|
|
73
|
-
this.mountFs = mount_fs_1.mountFs;
|
|
74
|
-
this.mountVfs = mount_vfs_1.mountVfs;
|
|
75
|
-
//
|
|
76
|
-
this.unpackfs = unpackfs_1.default;
|
|
77
|
-
this.machineId = machine_id_1.default;
|
|
78
|
-
this.fstab = fstab_1.default;
|
|
79
|
-
this.locale = locale_1.default;
|
|
80
|
-
this.keyboard = m_keyboard_1.default;
|
|
81
|
-
this.localeCfg = locale_cfg_1.default;
|
|
82
|
-
// users
|
|
83
|
-
this.addUser = add_user_1.default;
|
|
84
|
-
this.changePassword = change_password_1.default;
|
|
85
|
-
// displaumanager: autologin
|
|
86
|
-
this.networkCfg = network_cfg_1.default;
|
|
87
|
-
// hwclock:
|
|
88
|
-
// services-systemd:
|
|
89
|
-
// bootloader-config
|
|
90
|
-
this.bootloaderConfig = bootloader_config_1.default;
|
|
91
|
-
this.bootloaderConfigArch = bootloader_config_arch_1.default;
|
|
92
|
-
this.bootloaderConfigDebian = bootloader_config_debian_1.default;
|
|
93
|
-
//
|
|
94
|
-
this.grubcfg = grubcfg_1.default;
|
|
95
|
-
this.bootloader = bootloader_1.default;
|
|
96
|
-
this.packages = packages_1.default;
|
|
97
|
-
this.removeInstallerLink = remove_installer_link_1.default;
|
|
98
|
-
// luksbootkeyfile:
|
|
99
|
-
// plymouthcfg;
|
|
100
|
-
this.initramfsCfg = initramfs_cfg_1.default;
|
|
101
|
-
this.initramfs = initramfs_1.default;
|
|
102
|
-
this.delLiveUser = del_live_user_1.default;
|
|
103
|
-
this.umountFs = mount_fs_1.umountFs;
|
|
104
|
-
this.umountVfs = mount_vfs_1.umountVfs;
|
|
105
|
-
// to order in same way
|
|
106
|
-
this.timezone = m_timezone_1.default;
|
|
107
|
-
this.umount = umount_1.default;
|
|
108
|
-
this.mkfs = mkfs_1.default;
|
|
109
|
-
this.hostname = hostname_1.default;
|
|
110
|
-
this.installer = {};
|
|
111
|
-
this.installTarget = '/tmp/calamares-krill-root';
|
|
112
|
-
this.verbose = false;
|
|
113
|
-
this.echo = {};
|
|
114
|
-
this.efi = false;
|
|
115
|
-
this.devices = {};
|
|
116
|
-
this.users = {};
|
|
117
|
-
this.network = {};
|
|
118
|
-
this.partitions = {};
|
|
119
|
-
this.language = '';
|
|
120
|
-
this.region = '';
|
|
121
|
-
this.zone = '';
|
|
122
|
-
this.keyboardModel = '';
|
|
123
|
-
this.keyboardLayout = '';
|
|
124
|
-
this.keyboardVariant = '';
|
|
125
|
-
this.toNull = ' > /dev/null 2>&1';
|
|
126
|
-
this.settings = {};
|
|
127
|
-
this.remix = {};
|
|
128
|
-
this.distro = {};
|
|
129
|
-
// Crypted Clone
|
|
130
|
-
this.luksName = 'luks-eggs-data';
|
|
131
|
-
this.luksFile = `/run/live/medium/live/${this.luksName}`;
|
|
132
|
-
this.luksDevice = `/dev/mapper/${this.luksName}`;
|
|
133
|
-
this.luksMountpoint = `/mnt`;
|
|
134
|
-
// Clone (Uncrypted)
|
|
135
|
-
this.is_clone = fs_1.default.existsSync('/etc/penguins-eggs.d/is_clone');
|
|
136
|
-
this.is_crypted_clone = fs_1.default.existsSync('/etc/penguins-eggs.d/is_crypted_clone');
|
|
137
|
-
this.unattended = false;
|
|
138
|
-
this.nointeractive = false;
|
|
139
|
-
this.halt = false;
|
|
140
|
-
this.cliAutologin = new cli_autologin_1.default();
|
|
141
139
|
this.installer = (0, installer_1.installer)();
|
|
142
140
|
this.settings = new settings_1.default();
|
|
143
141
|
this.language = location.language;
|
|
@@ -156,6 +154,7 @@ class Sequence {
|
|
|
156
154
|
this.devices.swap = {};
|
|
157
155
|
this.distro = new distro_1.default(this.remix);
|
|
158
156
|
this.efi = fs_1.default.existsSync('/sys/firmware/efi/efivars');
|
|
157
|
+
this.luksFile = `${this.distro.liveMediumPath}live/${this.luksName}`;
|
|
159
158
|
}
|
|
160
159
|
/**
|
|
161
160
|
* install
|
|
@@ -308,7 +307,7 @@ class Sequence {
|
|
|
308
307
|
}
|
|
309
308
|
}
|
|
310
309
|
else {
|
|
311
|
-
await utils_1.default.pressKeyToExit(`Cannot find
|
|
310
|
+
await utils_1.default.pressKeyToExit(`Cannot find luks-volume file ${this.luksFile}`);
|
|
312
311
|
}
|
|
313
312
|
}
|
|
314
313
|
// networkcfg
|
|
@@ -11,6 +11,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
11
11
|
const tslib_1 = require("tslib");
|
|
12
12
|
const utils_1 = tslib_1.__importDefault(require("../../classes/utils"));
|
|
13
13
|
const shelljs_1 = tslib_1.__importDefault(require("shelljs"));
|
|
14
|
+
const pacman_1 = tslib_1.__importDefault(require("../../classes/pacman"));
|
|
14
15
|
/**
|
|
15
16
|
* fstab()
|
|
16
17
|
* @param devices
|
|
@@ -18,11 +19,10 @@ const shelljs_1 = tslib_1.__importDefault(require("shelljs"));
|
|
|
18
19
|
async function fstab(installDevice, crypted = false) {
|
|
19
20
|
let text = '';
|
|
20
21
|
/**
|
|
21
|
-
|
|
22
|
-
|
|
22
|
+
* crypttab
|
|
23
|
+
*/
|
|
23
24
|
if (this.partitions.installationMode === 'full-encrypted') {
|
|
24
25
|
const crypttab = this.installTarget + '/etc/crypttab';
|
|
25
|
-
text = '';
|
|
26
26
|
text += '# /etc/crypttab: mappings for encrypted partitions.\n';
|
|
27
27
|
text += '#\n';
|
|
28
28
|
text += '# Each mapped device will be created in /dev/mapper, so your /etc/fstab\n';
|
|
@@ -42,43 +42,70 @@ async function fstab(installDevice, crypted = false) {
|
|
|
42
42
|
text += `root_crypted UUID=${utils_1.default.uuid(this.devices.root.cryptedFrom)} none luks,swap\n`;
|
|
43
43
|
utils_1.default.write(crypttab, text);
|
|
44
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* fstab
|
|
47
|
+
*/
|
|
48
|
+
if (!pacman_1.default.packageIsInstalled('btrfs-progs')) {
|
|
49
|
+
this.partitions.filesystemType === 'ext4';
|
|
50
|
+
}
|
|
45
51
|
const fstab = this.installTarget + '/etc/fstab';
|
|
46
52
|
let mountOptsRoot = '';
|
|
47
53
|
let mountOptsBoot = '';
|
|
48
54
|
let mountOptsData = '';
|
|
49
55
|
let mountOptsEfi = '';
|
|
50
56
|
let mountOptsSwap = '';
|
|
51
|
-
if (
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
57
|
+
if (this.partitions.filesystemType === 'ext4') {
|
|
58
|
+
if (await isRotational(installDevice)) {
|
|
59
|
+
mountOptsRoot = 'defaults,relatime 0 1';
|
|
60
|
+
mountOptsBoot = 'defaults,relatime 0 1';
|
|
61
|
+
mountOptsData = 'defaults,relatime 0 1';
|
|
62
|
+
mountOptsEfi = 'defaults,relatime 0 2';
|
|
63
|
+
mountOptsSwap = 'defaults,relatime 0 2';
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
mountOptsRoot = 'defaults,noatime 0 1';
|
|
67
|
+
mountOptsBoot = 'defaults,noatime 0 1';
|
|
68
|
+
mountOptsData = 'defaults,noatime 0 1';
|
|
69
|
+
mountOptsEfi = 'defaults,noatime 0 2';
|
|
70
|
+
mountOptsSwap = 'defaults,noatime 0 2';
|
|
71
|
+
}
|
|
72
|
+
text = '';
|
|
73
|
+
text += `# ${this.devices.root.name} ${this.devices.root.mountPoint} ${this.devices.root.fsType} ${mountOptsRoot}\n`;
|
|
74
|
+
text += `UUID=${utils_1.default.uuid(this.devices.root.name)} ${this.devices.root.mountPoint} ${this.devices.root.fsType} ${mountOptsRoot}\n`;
|
|
75
|
+
if (this.devices.boot.name !== 'none') {
|
|
76
|
+
text += `# ${this.devices.boot.name} ${this.devices.boot.mountPoint} ${this.devices.boot.fsType} ${mountOptsBoot}\n`;
|
|
77
|
+
text += `UUID=${utils_1.default.uuid(this.devices.boot.name)} ${this.devices.boot.mountPoint} ${this.devices.root.fsType} ${mountOptsBoot}\n`;
|
|
78
|
+
}
|
|
79
|
+
if (this.devices.data.name !== 'none') {
|
|
80
|
+
text += `# ${this.devices.data.name} ${this.devices.data.mountPoint} ${this.devices.data.fsType} ${mountOptsData}\n`;
|
|
81
|
+
text += `UUID=${utils_1.default.uuid(this.devices.data.name)} ${this.devices.data.mountPoint} ${this.devices.data.fsType} ${mountOptsData}\n`;
|
|
82
|
+
}
|
|
83
|
+
if (this.efi) {
|
|
84
|
+
text += `# ${this.devices.efi.name} ${this.devices.efi.mountPoint} vfat ${mountOptsEfi}\n`;
|
|
85
|
+
text += `UUID=${utils_1.default.uuid(this.devices.efi.name)} ${this.devices.efi.mountPoint} vfat ${mountOptsEfi}\n`;
|
|
86
|
+
}
|
|
87
|
+
text += `# ${this.devices.swap.name} ${this.devices.swap.mountPoint} ${this.devices.swap.fsType} ${mountOptsSwap}\n`;
|
|
88
|
+
text += `UUID=${utils_1.default.uuid(this.devices.swap.name)} ${this.devices.swap.mountPoint} ${this.devices.swap.fsType} ${mountOptsSwap}\n`;
|
|
75
89
|
}
|
|
76
|
-
if (this.
|
|
77
|
-
|
|
78
|
-
|
|
90
|
+
else if (this.partitions.filesystemType === 'btrfs') {
|
|
91
|
+
let base = '/ btrfs subvol=/@,defaults 0 0';
|
|
92
|
+
let snapshots = '/.snapshots btrfs subvol=/@snapshots,defaults 0 0';
|
|
93
|
+
let home = '/home btrfs subvol=/@home,defaults 0 0';
|
|
94
|
+
let root = '/root btrfs subvol=/@root,defaults 0 0';
|
|
95
|
+
let var_log = '/var/log btrfs subvol=/@var@log,defaults 0 0';
|
|
96
|
+
let var_lib_AccountsService = '/var/lib/AccountsService btrfs subvol=/@var@lib@AccountsService,defaults 0 0';
|
|
97
|
+
let var_lib_blueman = '/var/lib/blueman btrfs subvol=/@var@lib@blueman,defaults 0 0';
|
|
98
|
+
let tmp = '/tmp btrfs subvol=/@tmp,defaults 0 0';
|
|
99
|
+
text += `# ${this.devices.root.name} btrfs ${this.devices.root.mountPoint} subvol\n`;
|
|
100
|
+
text += `UUID=${utils_1.default.uuid(this.devices.root.name)} ${base}\n`;
|
|
101
|
+
text += `# UUID=${utils_1.default.uuid(this.devices.root.name)} ${snapshots}\n`;
|
|
102
|
+
text += `# UUID=${utils_1.default.uuid(this.devices.root.name)} ${home}\n`;
|
|
103
|
+
text += `# UUID=${utils_1.default.uuid(this.devices.root.name)} ${root}\n`;
|
|
104
|
+
text += `# UUID=${utils_1.default.uuid(this.devices.root.name)} ${var_log}\n`;
|
|
105
|
+
text += `# UUID=${utils_1.default.uuid(this.devices.root.name)} ${var_lib_AccountsService}\n`;
|
|
106
|
+
text += `# UUID=${utils_1.default.uuid(this.devices.root.name)} ${var_lib_blueman}\n`;
|
|
107
|
+
text += `# UUID=${utils_1.default.uuid(this.devices.root.name)} ${tmp}\n`;
|
|
79
108
|
}
|
|
80
|
-
text += `# ${this.devices.swap.name} ${this.devices.swap.mountPoint} ${this.devices.swap.fsType} ${mountOptsSwap}\n`;
|
|
81
|
-
text += `UUID=${utils_1.default.uuid(this.devices.swap.name)} ${this.devices.swap.mountPoint} ${this.devices.swap.fsType} ${mountOptsSwap}\n`;
|
|
82
109
|
utils_1.default.write(fstab, text);
|
|
83
110
|
}
|
|
84
111
|
exports.default = fstab;
|
|
@@ -14,24 +14,37 @@ const utils_1 = require("../../lib/utils");
|
|
|
14
14
|
*/
|
|
15
15
|
async function mkfs() {
|
|
16
16
|
const result = true;
|
|
17
|
-
if (this.
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
if (this.devices.boot.
|
|
22
|
-
this.devices.boot.fsType
|
|
23
|
-
|
|
17
|
+
if (this.partitions.filesystemType === 'ext4') {
|
|
18
|
+
if (this.efi) {
|
|
19
|
+
await (0, utils_1.exec)(`mkdosfs -F 32 -I ${this.devices.efi.name} ${this.toNull}`, this.echo);
|
|
20
|
+
}
|
|
21
|
+
if (this.devices.boot.name !== 'none') {
|
|
22
|
+
if (this.devices.boot.fsType === undefined) {
|
|
23
|
+
this.devices.boot.fsType = 'ext2';
|
|
24
|
+
this.devices.boot.mountPoint = '/boot';
|
|
25
|
+
}
|
|
26
|
+
await (0, utils_1.exec)(`mke2fs -Ft ${this.devices.boot.fsType} ${this.devices.boot.name} ${this.toNull}`, this.echo);
|
|
27
|
+
}
|
|
28
|
+
if (this.devices.root.name !== 'none') {
|
|
29
|
+
await (0, utils_1.exec)(`mke2fs -Ft ${this.devices.root.fsType} ${this.devices.root.name} ${this.toNull}`, this.echo);
|
|
30
|
+
}
|
|
31
|
+
if (this.devices.data.name !== 'none') {
|
|
32
|
+
await (0, utils_1.exec)(`mke2fs -Ft ${this.devices.data.fsType} ${this.devices.data.name} ${this.toNull}`, this.echo);
|
|
33
|
+
}
|
|
34
|
+
if (this.devices.swap.name !== 'none') {
|
|
35
|
+
await (0, utils_1.exec)(`mkswap ${this.devices.swap.name} ${this.toNull}`, this.echo);
|
|
24
36
|
}
|
|
25
|
-
await (0, utils_1.exec)(`mke2fs -Ft ${this.devices.boot.fsType} ${this.devices.boot.name} ${this.toNull}`, this.echo);
|
|
26
|
-
}
|
|
27
|
-
if (this.devices.root.name !== 'none') {
|
|
28
|
-
await (0, utils_1.exec)(`mke2fs -Ft ${this.devices.root.fsType} ${this.devices.root.name} ${this.toNull}`, this.echo);
|
|
29
|
-
}
|
|
30
|
-
if (this.devices.data.name !== 'none') {
|
|
31
|
-
await (0, utils_1.exec)(`mke2fs -Ft ${this.devices.data.fsType} ${this.devices.data.name} ${this.toNull}`, this.echo);
|
|
32
37
|
}
|
|
33
|
-
if (this.
|
|
34
|
-
await (0, utils_1.exec)(`
|
|
38
|
+
else if (this.partitions.filesystemType === 'btrfs') {
|
|
39
|
+
await (0, utils_1.exec)(`mkfs.btrfs -f ${this.devices.root.name} ${this.toNull}`, this.echo);
|
|
40
|
+
// create subvolumes
|
|
41
|
+
// await exec(`btrfs subvolume create /.snapshots ${this.toNull}`, this.echo)
|
|
42
|
+
// await exec(`btrfs subvolume create /home ${this.toNull}`, this.echo)
|
|
43
|
+
// await exec(`btrfs subvolume create /root ${this.toNull}`, this.echo)
|
|
44
|
+
// await exec(`btrfs subvolume create /var/log ${this.toNull}`, this.echo)
|
|
45
|
+
// await exec(`btrfs subvolume create /var/lib/AccountsService ${this.toNull}`, this.echo)
|
|
46
|
+
// await exec(`btrfs subvolume create /var/lib/blueman ${this.toNull}`, this.echo)
|
|
47
|
+
// await exec(`btrfs subvolume create /tmp ${this.toNull}`, this.echo)
|
|
35
48
|
}
|
|
36
49
|
return result;
|
|
37
50
|
}
|