penguins-eggs 9.3.19 → 9.3.22
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 +1 -1
- package/README.md +32 -52
- package/conf/derivatives.yaml +32 -31
- package/dist/classes/distro.js +10 -3
- package/dist/classes/pacman.js +5 -3
- package/dist/classes/xdg.js +34 -23
- package/dist/commands/adapt.js +2 -2
- package/dist/commands/calamares.js +2 -2
- package/dist/commands/config.js +1 -1
- package/dist/commands/dad.js +1 -1
- package/dist/commands/export/deb.js +1 -1
- package/dist/commands/export/iso.js +1 -1
- package/dist/commands/install.js +11 -14
- package/dist/commands/produce.js +8 -9
- package/dist/commands/status.js +2 -2
- package/dist/commands/syncfrom.js +1 -3
- package/dist/commands/tools/ppa.js +1 -1
- package/dist/commands/wardrobe/get.js +2 -2
- package/dist/commands/wardrobe/list.js +2 -2
- package/dist/commands/wardrobe/show.js +2 -2
- package/dist/commands/wardrobe/wear.js +2 -2
- package/dist/krill/krill-prepare.js +21 -10
- package/dist/krill/krill-sequence.js +3 -2
- package/package.json +1 -1
- package/scripts/_eggs +6 -14
- package/scripts/eggs.bash +2 -3
- package/dist/commands/wardrobe/ironing.js +0 -143
package/dist/classes/xdg.js
CHANGED
|
@@ -109,24 +109,39 @@ class Xdg {
|
|
|
109
109
|
if (pacman_1.default.packageIsInstalled('sddm')) {
|
|
110
110
|
let sddmChanged = false;
|
|
111
111
|
let curFile = `${chroot}/etc/sddm.conf`;
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
112
|
+
if (node_fs_1.default.existsSync(curFile)) {
|
|
113
|
+
let content = node_fs_1.default.readFileSync(curFile, 'utf8');
|
|
114
|
+
let find = `[Autologin]`;
|
|
115
|
+
if (content.includes(find)) {
|
|
116
|
+
shelljs_1.default.sed('-i', `User=${olduser}`, `User=${newuser}`, curFile);
|
|
117
|
+
sddmChanged = true;
|
|
118
|
+
}
|
|
117
119
|
}
|
|
118
120
|
if (!sddmChanged) {
|
|
119
121
|
let dc = `${chroot}/etc/sddm.conf.d/`;
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
const
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
122
|
+
if (node_fs_1.default.existsSync(dc)) {
|
|
123
|
+
let files = node_fs_1.default.readdirSync(dc);
|
|
124
|
+
for (const elem of files) {
|
|
125
|
+
const curFile = dc + elem;
|
|
126
|
+
let content = node_fs_1.default.readFileSync(curFile, 'utf8');
|
|
127
|
+
let find = `[Autologin]`;
|
|
128
|
+
if (content.includes(find)) {
|
|
129
|
+
shelljs_1.default.sed('-i', `User=${olduser}`, `User=${newuser}`, curFile);
|
|
130
|
+
sddmChanged = true;
|
|
131
|
+
}
|
|
127
132
|
}
|
|
128
133
|
}
|
|
129
134
|
}
|
|
135
|
+
// sddm.conf don't exists, generate it
|
|
136
|
+
if (!sddmChanged) {
|
|
137
|
+
let session = "plasma";
|
|
138
|
+
if (pacman_1.default.isInstalledWayland()) {
|
|
139
|
+
session = "plasma-wayland";
|
|
140
|
+
}
|
|
141
|
+
let content = `[Autologin]\nUser=${newuser}\nSession=${session}\n`;
|
|
142
|
+
let curFile = `${chroot}/etc/sddm.conf`;
|
|
143
|
+
node_fs_1.default.writeFileSync(curFile, content, 'utf8');
|
|
144
|
+
}
|
|
130
145
|
}
|
|
131
146
|
/**
|
|
132
147
|
* GDM/GDM3
|
|
@@ -177,12 +192,12 @@ class Xdg {
|
|
|
177
192
|
await rsyncIfExist(`/home/${user}/.gtkrc-2.0`, '/etc/skel', verbose);
|
|
178
193
|
}
|
|
179
194
|
else if (pacman_1.default.packageIsInstalled('cinnamon-core')) {
|
|
180
|
-
// use .cinnamon NOT cinnamon/
|
|
195
|
+
// use .cinnamon NOT cinnamon/
|
|
181
196
|
await rsyncIfExist(`/home/${user}/.config`, '/etc/skel', verbose);
|
|
182
197
|
await rsyncIfExist(`/home/${user}/.cinnamon`, '/etc/skel', verbose);
|
|
183
198
|
}
|
|
184
199
|
else if (pacman_1.default.packageIsInstalled('plasma-desktop')) {
|
|
185
|
-
// use .kde NOT .kde/
|
|
200
|
+
// use .kde NOT .kde/
|
|
186
201
|
await rsyncIfExist(`/home/${user}/.config`, '/etc/skel', verbose);
|
|
187
202
|
await rsyncIfExist(`/home/${user}/.kde`, '/etc/skel', verbose);
|
|
188
203
|
}
|
|
@@ -202,7 +217,7 @@ class Xdg {
|
|
|
202
217
|
await rsyncIfExist(`/home/${user}/.gtkrc-2.0`, '/etc/skel', verbose);
|
|
203
218
|
}
|
|
204
219
|
else if (pacman_1.default.packageIsInstalled('xfce4-session')) {
|
|
205
|
-
// use .config/xfce4 NOT .config/xfce4/
|
|
220
|
+
// use .config/xfce4 NOT .config/xfce4/
|
|
206
221
|
await rsyncIfExist(`/home/${user}/.config/xfce4`, '/etc/skel/.config', verbose);
|
|
207
222
|
await (0, utils_2.exec)(`mkdir /etc/skel/.local/share -p`, echo);
|
|
208
223
|
await rsyncIfExist(`/home/${user}/.local/share/recently-used.xbel`, '/etc/skel/.local/share', verbose);
|
|
@@ -210,6 +225,10 @@ class Xdg {
|
|
|
210
225
|
/**
|
|
211
226
|
* special cases
|
|
212
227
|
*/
|
|
228
|
+
// waydroid
|
|
229
|
+
if (node_fs_1.default.existsSync(`/home/${user}/waydroid-package-manager`)) {
|
|
230
|
+
await rsyncIfExist(`/home/${user}/waydroid-package-manager`, '/etc/skel', verbose);
|
|
231
|
+
}
|
|
213
232
|
// LinuxFX
|
|
214
233
|
if (node_fs_1.default.existsSync(`/home/${user}/.linuxfx`)) {
|
|
215
234
|
// we need to copy: .linuxfx ,kde and ,cinnamon
|
|
@@ -217,14 +236,6 @@ class Xdg {
|
|
|
217
236
|
await rsyncIfExist(`/home/${user}/.kde`, '/etc/skel', verbose);
|
|
218
237
|
await rsyncIfExist(`/home/${user}/.linuxfx`, `/etc/skel`, verbose);
|
|
219
238
|
await rsyncIfExist(`/home/${user}/.local`, '/etc/skel', verbose);
|
|
220
|
-
// Create dirs - we try in this way...
|
|
221
|
-
// await exec(`mkdir /etc/skel/Desktop`)
|
|
222
|
-
// await exec(`mkdir /etc/skel/Downloads`)
|
|
223
|
-
// await exec(`mkdir /etc/skel/OneDrive`)
|
|
224
|
-
// await exec(`mkdir /etc/skel/Pictures`)
|
|
225
|
-
// await exec(`mkdir /etc/skel/Public`)
|
|
226
|
-
// await exec(`mkdir /etc/skel/Template`)
|
|
227
|
-
// await exec(`mkdir /etc/skel/Videos`)
|
|
228
239
|
}
|
|
229
240
|
await (0, utils_2.exec)('chown root:root /etc/skel -R', echo);
|
|
230
241
|
await (0, utils_2.exec)('chmod a+rwx,g-w,o-w /etc/skel/ -R', echo);
|
package/dist/commands/adapt.js
CHANGED
|
@@ -25,6 +25,6 @@ exports.default = Adapt;
|
|
|
25
25
|
Adapt.description = 'adapt monitor resolution for VM only';
|
|
26
26
|
// static aliases = ['adjust']
|
|
27
27
|
Adapt.flags = {
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
29
|
+
verbose: core_1.Flags.boolean({ char: 'v' })
|
|
30
30
|
};
|
|
@@ -102,10 +102,10 @@ exports.default = Calamares;
|
|
|
102
102
|
Calamares.description = 'calamares or install or configure it';
|
|
103
103
|
Calamares.flags = {
|
|
104
104
|
help: core_1.Flags.help({ char: 'h' }),
|
|
105
|
-
verbose: core_1.Flags.boolean({ char: 'v' }),
|
|
106
105
|
install: core_1.Flags.boolean({ char: 'i', description: "install calamares and it's dependencies" }),
|
|
107
106
|
release: core_1.Flags.boolean({ char: 'r', description: "release: remove calamares and all it's dependencies after the installation" }),
|
|
108
107
|
remove: core_1.Flags.boolean({ description: "remove calamares and it's dependencies" }),
|
|
109
|
-
theme: core_1.Flags.string({ description: 'theme/branding for eggs and calamares' })
|
|
108
|
+
theme: core_1.Flags.string({ description: 'theme/branding for eggs and calamares' }),
|
|
109
|
+
verbose: core_1.Flags.boolean({ char: 'v' })
|
|
110
110
|
};
|
|
111
111
|
Calamares.examples = ["~$ sudo eggs calamares \ncreate/renew calamares configuration's files\n", "~$ sudo eggs calamares -i \ninstall calamares and create it's configuration's files\n"];
|
package/dist/commands/config.js
CHANGED
|
@@ -209,9 +209,9 @@ exports.default = Config;
|
|
|
209
209
|
Config.description = 'Configure and install prerequisites deb packages to run it';
|
|
210
210
|
// static aliases = ['prerequisites']
|
|
211
211
|
Config.flags = {
|
|
212
|
-
nointeractive: core_1.Flags.boolean({ char: 'n', description: 'assume yes' }),
|
|
213
212
|
clean: core_1.Flags.boolean({ char: 'c', description: 'remove old configuration before to create new one' }),
|
|
214
213
|
help: core_1.Flags.help({ char: 'h' }),
|
|
214
|
+
nointeractive: core_1.Flags.boolean({ char: 'n', description: 'assume yes' }),
|
|
215
215
|
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' })
|
|
216
216
|
};
|
|
217
217
|
Config.examples = ['~$ sudo eggs config\nConfigure and install prerequisites deb packages to run it'];
|
package/dist/commands/dad.js
CHANGED
|
@@ -32,8 +32,8 @@ class Dad extends core_1.Command {
|
|
|
32
32
|
exports.default = Dad;
|
|
33
33
|
Dad.description = 'ask help from daddy - configuration helper';
|
|
34
34
|
Dad.flags = {
|
|
35
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
36
35
|
clean: core_1.Flags.boolean({ char: 'c', description: 'remove old configuration before to create' }),
|
|
37
36
|
default: core_1.Flags.boolean({ char: 'd', description: 'remove old configuration and force default' }),
|
|
37
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
38
38
|
verbose: core_1.Flags.boolean({ char: 'v' })
|
|
39
39
|
};
|
|
@@ -45,8 +45,8 @@ class ExportDeb extends core_1.Command {
|
|
|
45
45
|
exports.default = ExportDeb;
|
|
46
46
|
ExportDeb.description = 'export deb/docs/iso to the destination host';
|
|
47
47
|
ExportDeb.flags = {
|
|
48
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
49
48
|
all: core_1.Flags.boolean({ char: 'a', description: 'export all archs' }),
|
|
50
49
|
clean: core_1.Flags.boolean({ char: 'c', description: 'remove old .deb before to copy' }),
|
|
50
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
51
51
|
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' })
|
|
52
52
|
};
|
|
@@ -43,8 +43,8 @@ class ExportIso extends core_1.Command {
|
|
|
43
43
|
exports.default = ExportIso;
|
|
44
44
|
ExportIso.description = 'export iso in the destination host';
|
|
45
45
|
ExportIso.flags = {
|
|
46
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
47
46
|
backup: core_1.Flags.boolean({ char: 'b', description: 'export backup ISOs' }),
|
|
48
47
|
clean: core_1.Flags.boolean({ char: 'c', description: 'delete old ISOs before to copy' }),
|
|
48
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
49
49
|
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' })
|
|
50
50
|
};
|
package/dist/commands/install.js
CHANGED
|
@@ -49,6 +49,8 @@ class Install extends core_1.Command {
|
|
|
49
49
|
krillConfig = js_yaml_1.default.load(content);
|
|
50
50
|
});
|
|
51
51
|
}
|
|
52
|
+
// noninteractive
|
|
53
|
+
let noninteractive = flags.nointeractive;
|
|
52
54
|
// hostname
|
|
53
55
|
let ip = flags.ip;
|
|
54
56
|
let random = flags.random;
|
|
@@ -69,7 +71,7 @@ class Install extends core_1.Command {
|
|
|
69
71
|
if (utils_1.default.isRoot()) {
|
|
70
72
|
if (utils_1.default.isLive()) {
|
|
71
73
|
const krill = new krill_prepare_1.default();
|
|
72
|
-
await krill.prepare(unattended, krillConfig, ip, random, domain, suspend, small, none, crypted, pve, verbose);
|
|
74
|
+
await krill.prepare(unattended, noninteractive, krillConfig, ip, random, domain, suspend, small, none, crypted, pve, verbose);
|
|
73
75
|
}
|
|
74
76
|
else {
|
|
75
77
|
utils_1.default.warning('You are in an installed system!');
|
|
@@ -82,23 +84,18 @@ class Install extends core_1.Command {
|
|
|
82
84
|
}
|
|
83
85
|
exports.default = Install;
|
|
84
86
|
Install.flags = {
|
|
85
|
-
|
|
87
|
+
crypted: core_1.Flags.boolean({ char: 'k', description: 'Crypted CLI installation' }),
|
|
86
88
|
custom: core_1.Flags.string({ char: 'c', description: 'custom unattended configuration' }),
|
|
87
|
-
|
|
89
|
+
domain: core_1.Flags.string({ char: 'd', description: 'Domain name, defult: .local' }),
|
|
90
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
88
91
|
ip: core_1.Flags.boolean({ char: 'i', description: 'hostname as ip, eg: ip-192-168-1-33' }),
|
|
92
|
+
nointeractive: core_1.Flags.boolean({ char: 'n', description: 'assume yes' }),
|
|
93
|
+
none: core_1.Flags.boolean({ char: 'N', description: 'Swap none: 256M' }),
|
|
94
|
+
pve: core_1.Flags.boolean({ char: 'p', description: 'Proxmox VE install' }),
|
|
89
95
|
random: core_1.Flags.boolean({ char: 'r', description: 'Add random to hostname, eg: colibri-ay412dt' }),
|
|
90
|
-
// append: Flags.string({char: 'a', description: 'append to hostname: ip, random'}),
|
|
91
|
-
domain: core_1.Flags.string({ char: 'd', description: 'Domain name, defult: .local' }),
|
|
92
|
-
// swap
|
|
93
|
-
// swap: Flags.string({char: 's', description: 'swap: none, small, suspend'}),
|
|
94
|
-
suspend: core_1.Flags.boolean({ char: 'S', description: 'Swap suspend: RAM x 2' }),
|
|
95
96
|
small: core_1.Flags.boolean({ char: 's', description: 'Swap small: RAM' }),
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
crypted: core_1.Flags.boolean({ char: 'k', description: 'Crypted CLI installation' }),
|
|
99
|
-
pve: core_1.Flags.boolean({ char: 'p', description: 'Proxmox VE install' }),
|
|
100
|
-
// generic
|
|
101
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
97
|
+
suspend: core_1.Flags.boolean({ char: 'S', description: 'Swap suspend: RAM x 2' }),
|
|
98
|
+
unattended: core_1.Flags.boolean({ char: 'u', description: 'Unattended installation' }),
|
|
102
99
|
verbose: core_1.Flags.boolean({ char: 'v', description: 'Verbose' })
|
|
103
100
|
};
|
|
104
101
|
Install.description = 'command-line system installer - the egg became a penguin!';
|
package/dist/commands/produce.js
CHANGED
|
@@ -125,21 +125,20 @@ class Produce extends core_1.Command {
|
|
|
125
125
|
}
|
|
126
126
|
exports.default = Produce;
|
|
127
127
|
Produce.flags = {
|
|
128
|
-
|
|
129
|
-
basename: core_1.Flags.string({ description: 'basename' }),
|
|
128
|
+
addons: core_1.Flags.string({ multiple: true, description: 'addons to be used: adapt, ichoice, pve, rsupport' }),
|
|
130
129
|
backup: core_1.Flags.boolean({ char: 'b', description: 'backup mode (CRYPTED)' }),
|
|
130
|
+
basename: core_1.Flags.string({ description: 'basename' }),
|
|
131
131
|
clone: core_1.Flags.boolean({ char: 'c', description: 'clone mode' }),
|
|
132
132
|
fast: core_1.Flags.boolean({ char: 'f', description: 'fast compression' }),
|
|
133
|
-
|
|
133
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
134
134
|
max: core_1.Flags.boolean({ char: 'm', description: 'max compression' }),
|
|
135
|
-
|
|
136
|
-
|
|
135
|
+
nointeractive: core_1.Flags.boolean({ char: 'n', description: 'don\'t ask for user interctions' }),
|
|
136
|
+
prefix: core_1.Flags.string({ char: 'p', description: 'prefix' }),
|
|
137
|
+
release: core_1.Flags.boolean({ description: 'release: max compression, remove penguins-eggs and calamares after installation' }),
|
|
137
138
|
script: core_1.Flags.boolean({ char: 's', description: 'script mode. Generate scripts to manage iso build' }),
|
|
138
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
139
139
|
theme: core_1.Flags.string({ description: 'theme for livecd, calamares branding and partitions' }),
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
nointeractive: core_1.Flags.boolean({ char: 'n', description: 'don\'t ask for user interctions' })
|
|
140
|
+
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' }),
|
|
141
|
+
yolk: core_1.Flags.boolean({ char: 'y', description: '-y force yolk renew' }),
|
|
143
142
|
};
|
|
144
143
|
Produce.description = 'produce a live image from your system whithout your data';
|
|
145
144
|
Produce.examples = [
|
package/dist/commands/status.js
CHANGED
|
@@ -25,6 +25,6 @@ class Status extends core_1.Command {
|
|
|
25
25
|
exports.default = Status;
|
|
26
26
|
Status.description = 'informations about eggs status';
|
|
27
27
|
Status.flags = {
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
29
|
+
verbose: core_1.Flags.boolean({ char: 'v' })
|
|
30
30
|
};
|
|
@@ -155,11 +155,9 @@ exports.default = Syncfrom;
|
|
|
155
155
|
Syncfrom.description = 'restore users and user data from a LUKS volumes';
|
|
156
156
|
Syncfrom.flags = {
|
|
157
157
|
delete: core_1.Flags.string({ description: 'rsync --delete delete extraneous files from dest dirs' }),
|
|
158
|
-
// excludeFrom: Flags.string({ description: 'same as rsync --exclude-from=FILE read exclude patterns from FILE' }),
|
|
159
|
-
// includeFrom: Flags.string({ description: 'same as rsync --include-from=FILE read include patterns from FILE' }),
|
|
160
158
|
file: core_1.Flags.string({ char: 'f', description: "file LUKS volume encrypted" }),
|
|
161
|
-
rootdir: core_1.Flags.string({ char: 'r', description: 'rootdir of the installed system, when used from live' }),
|
|
162
159
|
help: core_1.Flags.help({ char: 'h' }),
|
|
160
|
+
rootdir: core_1.Flags.string({ char: 'r', description: 'rootdir of the installed system, when used from live' }),
|
|
163
161
|
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' })
|
|
164
162
|
};
|
|
165
163
|
// static aliases = ['restore']
|
|
@@ -51,8 +51,8 @@ class Ppa extends core_1.Command {
|
|
|
51
51
|
exports.default = Ppa;
|
|
52
52
|
Ppa.description = 'add/remove PPA repositories (Debian family)';
|
|
53
53
|
Ppa.flags = {
|
|
54
|
-
help: core_1.Flags.help({ char: 'h' }),
|
|
55
54
|
add: core_1.Flags.boolean({ char: 'a', description: 'add penguins-eggs PPA repository' }),
|
|
55
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
56
56
|
remove: core_1.Flags.boolean({ char: 'r', description: 'remove penguins-eggs PPA repository' }),
|
|
57
57
|
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' })
|
|
58
58
|
};
|
|
@@ -38,6 +38,6 @@ exports.default = Get;
|
|
|
38
38
|
Get.description = 'get warorobe';
|
|
39
39
|
Get.args = [{ name: 'repo', description: 'repository to get', required: false }];
|
|
40
40
|
Get.flags = {
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
42
|
+
verbose: core_1.Flags.boolean({ char: 'v' })
|
|
43
43
|
};
|
|
@@ -76,6 +76,6 @@ exports.default = List;
|
|
|
76
76
|
List.description = 'list costumes and accessoires in wardrobe';
|
|
77
77
|
List.args = [{ name: 'wardrobe', description: 'wardrobe', required: false }];
|
|
78
78
|
List.flags = {
|
|
79
|
-
|
|
80
|
-
|
|
79
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
80
|
+
verbose: core_1.Flags.boolean({ char: 'v' })
|
|
81
81
|
};
|
|
@@ -64,8 +64,8 @@ exports.default = Show;
|
|
|
64
64
|
Show.description = 'show costumes/accessories in wardrobe';
|
|
65
65
|
Show.args = [{ name: 'costume', description: 'costume', required: false }];
|
|
66
66
|
Show.flags = {
|
|
67
|
-
|
|
67
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
68
68
|
json: core_1.Flags.boolean({ char: 'j', description: 'output JSON' }),
|
|
69
69
|
verbose: core_1.Flags.boolean({ char: 'v' }),
|
|
70
|
-
|
|
70
|
+
wardrobe: core_1.Flags.string({ char: 'w', description: 'wardrobe' }),
|
|
71
71
|
};
|
|
@@ -75,10 +75,10 @@ exports.default = Wear;
|
|
|
75
75
|
Wear.description = 'wear costume/accessories from wardrobe';
|
|
76
76
|
Wear.args = [{ name: 'costume', description: 'costume', required: false }];
|
|
77
77
|
Wear.flags = {
|
|
78
|
-
|
|
78
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
79
79
|
no_accessories: core_1.Flags.boolean({ char: 'a', description: 'not install accessories' }),
|
|
80
80
|
no_firmwares: core_1.Flags.boolean({ char: 'f', description: 'not install firmwares' }),
|
|
81
81
|
silent: core_1.Flags.boolean({ char: 's' }),
|
|
82
82
|
verbose: core_1.Flags.boolean({ char: 'v' }),
|
|
83
|
-
|
|
83
|
+
wardrobe: core_1.Flags.string({ char: 'w', description: 'wardrobe' }),
|
|
84
84
|
};
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
2
4
|
/**
|
|
3
5
|
* penguins-eggs: krill
|
|
4
6
|
*
|
|
@@ -53,8 +55,6 @@
|
|
|
53
55
|
* KDE-shipping-distro). To get all that you just need Calamares installed and the
|
|
54
56
|
* relevant /etc/calamares/ files.
|
|
55
57
|
*/
|
|
56
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
|
-
const tslib_1 = require("tslib");
|
|
58
58
|
const os_1 = tslib_1.__importDefault(require("os"));
|
|
59
59
|
const react_1 = tslib_1.__importDefault(require("react"));
|
|
60
60
|
const ink_1 = require("ink");
|
|
@@ -110,7 +110,7 @@ class Krill {
|
|
|
110
110
|
/**
|
|
111
111
|
* @param cryped
|
|
112
112
|
*/
|
|
113
|
-
async prepare(unattended = false, krillConfig = {}, ip = false, random = false, domain = 'local', suspend = false, small = false, none = false, cryped = false, pve = false, verbose = false) {
|
|
113
|
+
async prepare(unattended = false, noninteractive = false, krillConfig = {}, ip = false, random = false, domain = 'local', suspend = false, small = false, none = false, cryped = false, pve = false, verbose = false) {
|
|
114
114
|
/**
|
|
115
115
|
* Check for disk presence
|
|
116
116
|
*/
|
|
@@ -209,6 +209,7 @@ class Krill {
|
|
|
209
209
|
dns: utils_1.default.getDns(),
|
|
210
210
|
domain: utils_1.default.getDomain()
|
|
211
211
|
};
|
|
212
|
+
// end unattended!
|
|
212
213
|
}
|
|
213
214
|
else {
|
|
214
215
|
oWelcome = await this.welcome();
|
|
@@ -221,7 +222,7 @@ class Krill {
|
|
|
221
222
|
/**
|
|
222
223
|
* summary
|
|
223
224
|
*/
|
|
224
|
-
await this.summary(oLocation, oKeyboard, oPartitions, oUsers, unattended);
|
|
225
|
+
await this.summary(oLocation, oKeyboard, oPartitions, oUsers, unattended, noninteractive);
|
|
225
226
|
/**
|
|
226
227
|
* installation
|
|
227
228
|
*/
|
|
@@ -233,7 +234,7 @@ class Krill {
|
|
|
233
234
|
async welcome() {
|
|
234
235
|
let language = this.krillConfig.language;
|
|
235
236
|
if (language === '') {
|
|
236
|
-
language = await this.locales.getDefault(); // 'en_US.UTF-8'
|
|
237
|
+
language = await this.locales.getDefault(); // 'en_US.UTF-8'
|
|
237
238
|
}
|
|
238
239
|
let welcomeElem;
|
|
239
240
|
while (true) {
|
|
@@ -479,19 +480,28 @@ class Krill {
|
|
|
479
480
|
/**
|
|
480
481
|
* SUMMARY
|
|
481
482
|
*/
|
|
482
|
-
async summary(location, keyboard, partitions, users, unattended = false) {
|
|
483
|
+
async summary(location, keyboard, partitions, users, unattended = false, noninteractive = false) {
|
|
484
|
+
//
|
|
483
485
|
let summaryElem;
|
|
484
|
-
let message = "";
|
|
485
|
-
if (unattended) {
|
|
486
|
+
let message = "Double check the installation disk: " + partitions.installationDevice;
|
|
487
|
+
if (unattended && noninteractive) {
|
|
486
488
|
message = "Unattended installation will start in 5 seconds, press CTRL-C to abort!";
|
|
487
489
|
}
|
|
488
490
|
while (true) {
|
|
489
491
|
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 });
|
|
490
|
-
if (unattended) {
|
|
492
|
+
if (unattended && noninteractive) {
|
|
491
493
|
redraw(summaryElem);
|
|
492
494
|
await sleep(5000);
|
|
493
495
|
break;
|
|
494
496
|
}
|
|
497
|
+
else if (unattended && !noninteractive) {
|
|
498
|
+
if (await confirm(summaryElem, "Read the Summary, confirm or abort")) {
|
|
499
|
+
break;
|
|
500
|
+
}
|
|
501
|
+
else {
|
|
502
|
+
process.exit(0);
|
|
503
|
+
}
|
|
504
|
+
}
|
|
495
505
|
else if (await confirm(summaryElem, "Confirm Summary datas?")) {
|
|
496
506
|
break;
|
|
497
507
|
}
|
|
@@ -542,7 +552,8 @@ function redraw(elem) {
|
|
|
542
552
|
let opt = {};
|
|
543
553
|
opt.patchConsole = true;
|
|
544
554
|
opt.debug = false;
|
|
545
|
-
|
|
555
|
+
console.clear();
|
|
556
|
+
// shx.exec('clear')
|
|
546
557
|
(0, ink_1.render)(elem, opt);
|
|
547
558
|
}
|
|
548
559
|
/**
|
|
@@ -88,7 +88,7 @@ class Sequence {
|
|
|
88
88
|
// bootloader-config
|
|
89
89
|
this.bootloaderConfig = bootloader_config_1.default;
|
|
90
90
|
this.bootloaderConfigUbuntu = bootloader_config_ubuntu_1.default;
|
|
91
|
-
//
|
|
91
|
+
//
|
|
92
92
|
this.grubcfg = grubcfg_1.default;
|
|
93
93
|
this.bootloader = bootloader_1.default;
|
|
94
94
|
this.packages = packages_1.default;
|
|
@@ -427,6 +427,7 @@ class Sequence {
|
|
|
427
427
|
// cleanup
|
|
428
428
|
await cliAutologin.msgRemove(`${this.installTarget}/etc/motd`);
|
|
429
429
|
await cliAutologin.msgRemove(`${this.installTarget}/etc/issue`);
|
|
430
|
+
await cliAutologin.remove(this.installTarget);
|
|
430
431
|
// bootloader-config
|
|
431
432
|
message = "bootloader-config ";
|
|
432
433
|
percent = 0.70;
|
|
@@ -437,7 +438,7 @@ class Sequence {
|
|
|
437
438
|
catch (error) {
|
|
438
439
|
await utils_1.default.pressKeyToExit(JSON.stringify(error));
|
|
439
440
|
}
|
|
440
|
-
// grubcfg
|
|
441
|
+
// grubcfg
|
|
441
442
|
message = "grubcfg ";
|
|
442
443
|
percent = 0.75;
|
|
443
444
|
try {
|
package/package.json
CHANGED
package/scripts/_eggs
CHANGED
|
@@ -29,12 +29,11 @@ _eggs () {
|
|
|
29
29
|
"tools\:yolk:configure eggs to install without internet"
|
|
30
30
|
"update:update the penguin's eggs tool"
|
|
31
31
|
"wardrobe\:get:get warorobe"
|
|
32
|
-
"wardrobe\:ironing:ordered show of costumes or accessories in wardrobe"
|
|
33
32
|
"wardrobe\:list:list costumes and accessoires in wardrobe"
|
|
34
33
|
"wardrobe\:show:show costumes/accessories in wardrobe"
|
|
35
34
|
"wardrobe\:wear:wear costume/accessories from wardrobe"
|
|
36
|
-
"autocomplete:display autocomplete installation instructions"
|
|
37
35
|
"help:Display help for <%= config.bin %>."
|
|
36
|
+
"autocomplete:display autocomplete installation instructions"
|
|
38
37
|
"version:"
|
|
39
38
|
)
|
|
40
39
|
|
|
@@ -111,6 +110,7 @@ install)
|
|
|
111
110
|
_command_flags=(
|
|
112
111
|
"--unattended[Unattended installation]"
|
|
113
112
|
"--custom=-[custom unattended configuration]:"
|
|
113
|
+
"--nointeractive[assume yes]"
|
|
114
114
|
"--ip[hostname as ip, eg: ip-192-168-1-33]"
|
|
115
115
|
"--random[Add random to hostname, eg: colibri-ay412dt]"
|
|
116
116
|
"--domain=-[Domain name, defult: .local]:"
|
|
@@ -235,14 +235,6 @@ wardrobe:get)
|
|
|
235
235
|
)
|
|
236
236
|
;;
|
|
237
237
|
|
|
238
|
-
wardrobe:ironing)
|
|
239
|
-
_command_flags=(
|
|
240
|
-
"--wardrobe=-[wardrobe]:"
|
|
241
|
-
"--verbose[]"
|
|
242
|
-
"--help[Show CLI help.]"
|
|
243
|
-
)
|
|
244
|
-
;;
|
|
245
|
-
|
|
246
238
|
wardrobe:list)
|
|
247
239
|
_command_flags=(
|
|
248
240
|
"--verbose[]"
|
|
@@ -270,15 +262,15 @@ wardrobe:wear)
|
|
|
270
262
|
)
|
|
271
263
|
;;
|
|
272
264
|
|
|
273
|
-
|
|
265
|
+
help)
|
|
274
266
|
_command_flags=(
|
|
275
|
-
"--
|
|
267
|
+
"--nested-commands[Include all nested commands in the output.]"
|
|
276
268
|
)
|
|
277
269
|
;;
|
|
278
270
|
|
|
279
|
-
|
|
271
|
+
autocomplete)
|
|
280
272
|
_command_flags=(
|
|
281
|
-
"--
|
|
273
|
+
"--refresh-cache[Refresh cache (ignores displaying instructions)]"
|
|
282
274
|
)
|
|
283
275
|
;;
|
|
284
276
|
|
package/scripts/eggs.bash
CHANGED
|
@@ -19,7 +19,7 @@ cuckoo --help
|
|
|
19
19
|
dad --help --clean --default --verbose
|
|
20
20
|
export:deb --help --all --clean --verbose
|
|
21
21
|
export:iso --help --backup --clean --verbose
|
|
22
|
-
install --unattended --custom --ip --random --domain --suspend --small --none --crypted --pve --help --verbose
|
|
22
|
+
install --unattended --custom --nointeractive --ip --random --domain --suspend --small --none --crypted --pve --help --verbose
|
|
23
23
|
kill --help --verbose
|
|
24
24
|
mom --help
|
|
25
25
|
produce --prefix --basename --backup --clone --fast --max --verbose --yolk --script --help --theme --addons --release --nointeractive
|
|
@@ -33,12 +33,11 @@ tools:stat --help --month --year
|
|
|
33
33
|
tools:yolk --help --verbose
|
|
34
34
|
update --help --verbose
|
|
35
35
|
wardrobe:get --verbose --help
|
|
36
|
-
wardrobe:ironing --wardrobe --verbose --help
|
|
37
36
|
wardrobe:list --verbose --help
|
|
38
37
|
wardrobe:show --wardrobe --json --verbose --help
|
|
39
38
|
wardrobe:wear --wardrobe --no_accessories --no_firmwares --silent --verbose --help
|
|
40
|
-
autocomplete --refresh-cache
|
|
41
39
|
help --nested-commands
|
|
40
|
+
autocomplete --refresh-cache
|
|
42
41
|
version --json --verbose
|
|
43
42
|
"
|
|
44
43
|
|