penguins-eggs 9.6.34 → 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 +815 -3
- 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 +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/compressors.js +11 -13
- package/dist/classes/daddy.js +1 -3
- package/dist/classes/distro.js +21 -2
- package/dist/classes/families/archlinux.js +6 -8
- 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 +5 -0
- 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 +3 -2
- package/dist/classes/incubation/incubator.js +7 -2
- 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 +102 -161
- package/dist/classes/pacman.js +4 -9
- package/dist/classes/pve-live.js +1 -1
- package/dist/classes/pxe.js +10 -12
- package/dist/classes/settings.js +17 -17
- 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 +15 -0
- 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 +58 -48
- package/dist/commands/status.js +8 -10
- 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 -11
- package/dist/commands/wardrobe/list.js +15 -14
- package/dist/commands/wardrobe/show.js +16 -14
- 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/package.json +34 -32
- package/scripts/_eggs +9 -7
- package/scripts/eggs.bash +4 -4
- package/conf/exclude.list.custom +0 -3
- package/manpages/doc/man/README.md +0 -0
- /package/conf/{exclude.list.usr → exclude.list.d/usr.list} +0 -0
|
@@ -19,6 +19,17 @@ const agent = new node_https_1.default.Agent({
|
|
|
19
19
|
*
|
|
20
20
|
*/
|
|
21
21
|
class ToolsStat extends core_1.Command {
|
|
22
|
+
static flags = {
|
|
23
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
24
|
+
month: core_1.Flags.boolean({ char: 'm', description: 'current month' }),
|
|
25
|
+
year: core_1.Flags.boolean({ char: 'y', description: 'current year' }),
|
|
26
|
+
};
|
|
27
|
+
static description = 'get statistics from sourceforge';
|
|
28
|
+
static examples = [
|
|
29
|
+
'eggs tools stat',
|
|
30
|
+
'eggs tools stat --month',
|
|
31
|
+
'eggs tools stat --year',
|
|
32
|
+
];
|
|
22
33
|
/**
|
|
23
34
|
*
|
|
24
35
|
*/
|
|
@@ -64,15 +75,4 @@ class ToolsStat extends core_1.Command {
|
|
|
64
75
|
}
|
|
65
76
|
}
|
|
66
77
|
}
|
|
67
|
-
ToolsStat.flags = {
|
|
68
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
69
|
-
month: core_1.Flags.boolean({ char: 'm', description: 'current month' }),
|
|
70
|
-
year: core_1.Flags.boolean({ char: 'y', description: 'current year' }),
|
|
71
|
-
};
|
|
72
|
-
ToolsStat.description = 'get statistics from sourceforge';
|
|
73
|
-
ToolsStat.examples = [
|
|
74
|
-
'eggs tools stat',
|
|
75
|
-
'eggs tools stat --month',
|
|
76
|
-
'eggs tools stat --year',
|
|
77
|
-
];
|
|
78
78
|
exports.default = ToolsStat;
|
|
@@ -17,6 +17,15 @@ const yolk_1 = tslib_1.__importDefault(require("../../classes/yolk"));
|
|
|
17
17
|
*
|
|
18
18
|
*/
|
|
19
19
|
class ToolsYolk extends core_1.Command {
|
|
20
|
+
static flags = {
|
|
21
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
22
|
+
verbose: core_1.Flags.boolean({ char: 'v' }),
|
|
23
|
+
};
|
|
24
|
+
static description = 'configure eggs to install without internet';
|
|
25
|
+
static examples = [
|
|
26
|
+
'sudo eggs tools yolk',
|
|
27
|
+
];
|
|
28
|
+
static dir = '/var/local/yolk';
|
|
20
29
|
/**
|
|
21
30
|
*
|
|
22
31
|
*/
|
|
@@ -39,13 +48,4 @@ class ToolsYolk extends core_1.Command {
|
|
|
39
48
|
}
|
|
40
49
|
}
|
|
41
50
|
}
|
|
42
|
-
ToolsYolk.flags = {
|
|
43
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
44
|
-
verbose: core_1.Flags.boolean({ char: 'v' }),
|
|
45
|
-
};
|
|
46
|
-
ToolsYolk.description = 'configure eggs to install without internet';
|
|
47
|
-
ToolsYolk.examples = [
|
|
48
|
-
'sudo eggs tools yolk',
|
|
49
|
-
];
|
|
50
|
-
ToolsYolk.dir = '/var/local/yolk';
|
|
51
51
|
exports.default = ToolsYolk;
|
package/dist/commands/update.js
CHANGED
|
@@ -18,6 +18,14 @@ const inquirer = require('inquirer');
|
|
|
18
18
|
*
|
|
19
19
|
*/
|
|
20
20
|
class Update extends core_1.Command {
|
|
21
|
+
static flags = {
|
|
22
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
23
|
+
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' }),
|
|
24
|
+
};
|
|
25
|
+
static description = "update the Penguins' eggs tool";
|
|
26
|
+
static examples = [
|
|
27
|
+
'eggs update',
|
|
28
|
+
];
|
|
21
29
|
async run() {
|
|
22
30
|
utils_1.default.titles(this.id + ' ' + this.argv);
|
|
23
31
|
const { flags } = await this.parse(Update);
|
|
@@ -135,12 +143,4 @@ class Update extends core_1.Command {
|
|
|
135
143
|
}
|
|
136
144
|
}
|
|
137
145
|
}
|
|
138
|
-
Update.flags = {
|
|
139
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
140
|
-
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' }),
|
|
141
|
-
};
|
|
142
|
-
Update.description = "update the Penguins' eggs tool";
|
|
143
|
-
Update.examples = [
|
|
144
|
-
'eggs update',
|
|
145
|
-
];
|
|
146
146
|
exports.default = Update;
|
|
@@ -17,6 +17,19 @@ const path_1 = require("path");
|
|
|
17
17
|
*
|
|
18
18
|
*/
|
|
19
19
|
class Get extends core_1.Command {
|
|
20
|
+
static flags = {
|
|
21
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
22
|
+
verbose: core_1.Flags.boolean({ char: 'v' }),
|
|
23
|
+
};
|
|
24
|
+
static args = {
|
|
25
|
+
repo: core_1.Args.string({ name: 'repo', description: 'repository to get', required: false }),
|
|
26
|
+
};
|
|
27
|
+
//static args ={name: 'repo', description: 'repository to get', required: false}
|
|
28
|
+
static description = 'get warorobe';
|
|
29
|
+
static examples = [
|
|
30
|
+
'eggs wardrobe get',
|
|
31
|
+
'eggs wardrobe get your-wardrobe',
|
|
32
|
+
];
|
|
20
33
|
async run() {
|
|
21
34
|
const { args, flags } = await this.parse(Get);
|
|
22
35
|
let verbose = false;
|
|
@@ -41,17 +54,6 @@ class Get extends core_1.Command {
|
|
|
41
54
|
if (result.code === 0) {
|
|
42
55
|
utils_1.default.warning(`you get new wardrobe from repo: ${repo} in ${await utils_1.default.wardrobe()}`);
|
|
43
56
|
}
|
|
44
|
-
await utils_1.default.pressKeyToExit();
|
|
45
57
|
}
|
|
46
58
|
}
|
|
47
|
-
Get.flags = {
|
|
48
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
49
|
-
verbose: core_1.Flags.boolean({ char: 'v' }),
|
|
50
|
-
};
|
|
51
|
-
Get.args = [{ name: 'repo', description: 'repository to get', required: false }];
|
|
52
|
-
Get.description = 'get warorobe';
|
|
53
|
-
Get.examples = [
|
|
54
|
-
'eggs wardrobe get',
|
|
55
|
-
'eggs wardrobe get your-wardrobe',
|
|
56
|
-
];
|
|
57
59
|
exports.default = Get;
|
|
@@ -20,6 +20,21 @@ const chalk_1 = tslib_1.__importDefault(require("chalk"));
|
|
|
20
20
|
*
|
|
21
21
|
*/
|
|
22
22
|
class List extends core_1.Command {
|
|
23
|
+
static flags = {
|
|
24
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
25
|
+
distro: core_1.Flags.string({ char: 'd', description: 'distro' }),
|
|
26
|
+
verbose: core_1.Flags.boolean({ char: 'v' }),
|
|
27
|
+
};
|
|
28
|
+
static args = {
|
|
29
|
+
repo: core_1.Args.string({ name: 'wardrobe', description: 'wardrobe to get', required: false }),
|
|
30
|
+
};
|
|
31
|
+
//static args = [{ name: 'wardrobe', description: 'wardrobe', required: false }]
|
|
32
|
+
static description = 'list costumes and accessoires in wardrobe';
|
|
33
|
+
static examples = [
|
|
34
|
+
'eggs wardrobe list',
|
|
35
|
+
'eggs wardrobe list your-wardrobe',
|
|
36
|
+
'eggs wardrobe list --distro arch',
|
|
37
|
+
];
|
|
23
38
|
async run() {
|
|
24
39
|
const { args, flags } = await this.parse(List);
|
|
25
40
|
let verbose = false;
|
|
@@ -108,20 +123,6 @@ class List extends core_1.Command {
|
|
|
108
123
|
console.log('- ' + chalk_1.default.cyan(vendor));
|
|
109
124
|
}
|
|
110
125
|
}
|
|
111
|
-
console.log();
|
|
112
|
-
await utils_1.default.pressKeyToExit();
|
|
113
126
|
}
|
|
114
127
|
}
|
|
115
|
-
List.flags = {
|
|
116
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
117
|
-
distro: core_1.Flags.string({ char: 'd', description: 'distro' }),
|
|
118
|
-
verbose: core_1.Flags.boolean({ char: 'v' }),
|
|
119
|
-
};
|
|
120
|
-
List.args = [{ name: 'wardrobe', description: 'wardrobe', required: false }];
|
|
121
|
-
List.description = 'list costumes and accessoires in wardrobe';
|
|
122
|
-
List.examples = [
|
|
123
|
-
'eggs wardrobe list',
|
|
124
|
-
'eggs wardrobe list your-wardrobe',
|
|
125
|
-
'eggs wardrobe list --distro arch',
|
|
126
|
-
];
|
|
127
128
|
exports.default = List;
|
|
@@ -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;
|
|
@@ -77,20 +93,6 @@ class Show extends core_1.Command {
|
|
|
77
93
|
else {
|
|
78
94
|
console.log(js_yaml_1.default.dump(materials));
|
|
79
95
|
}
|
|
80
|
-
await utils_1.default.pressKeyToExit();
|
|
81
96
|
}
|
|
82
97
|
}
|
|
83
|
-
Show.flags = {
|
|
84
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
85
|
-
json: core_1.Flags.boolean({ char: 'j', description: 'output JSON' }),
|
|
86
|
-
verbose: core_1.Flags.boolean({ char: 'v' }),
|
|
87
|
-
wardrobe: core_1.Flags.string({ char: 'w', description: 'wardrobe' }),
|
|
88
|
-
};
|
|
89
|
-
Show.description = 'show costumes/accessories in wardrobe';
|
|
90
|
-
Show.args = [{ name: 'costume', description: 'costume', required: false }];
|
|
91
|
-
Show.example = [
|
|
92
|
-
'eggs wardrobe show colibri',
|
|
93
|
-
'eggs wardrobe show accessories/firmwares',
|
|
94
|
-
'eggs wardrobe show accessories/',
|
|
95
|
-
];
|
|
96
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
|