penguins-eggs 9.3.27 → 9.3.29
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/dist/classes/bleach.js +26 -24
- package/dist/classes/compressors.js +4 -2
- package/dist/classes/daddy.js +30 -28
- package/dist/classes/distro.js +7 -5
- package/dist/classes/family/archlinux.js +21 -19
- package/dist/classes/family/debian.js +28 -26
- package/dist/classes/family/fedora.js +19 -17
- package/dist/classes/family/suse.js +19 -17
- package/dist/classes/incubation/branding.js +4 -2
- package/dist/classes/incubation/distros/bionic.js +5 -3
- package/dist/classes/incubation/distros/buster.js +5 -3
- package/dist/classes/incubation/distros/focal.js +5 -3
- package/dist/classes/incubation/distros/jessie.js +5 -3
- package/dist/classes/incubation/distros/rolling.js +5 -3
- package/dist/classes/incubation/fisherman-helper/displaymanager.js +5 -3
- package/dist/classes/incubation/fisherman-helper/packages.js +9 -7
- package/dist/classes/incubation/fisherman.js +14 -12
- package/dist/classes/incubation/incubator.js +30 -28
- package/dist/classes/incubation/installer.js +8 -6
- package/dist/classes/initrd.js +5 -3
- package/dist/classes/keyboards.js +9 -7
- package/dist/classes/locales.js +10 -8
- package/dist/classes/n8.js +4 -2
- package/dist/classes/network.js +4 -2
- package/dist/classes/ovary.js +248 -233
- package/dist/classes/pacman.js +127 -125
- package/dist/classes/pve-live.js +7 -5
- package/dist/classes/pxe.js +66 -63
- package/dist/classes/settings.js +32 -30
- package/dist/classes/sources_list.js +12 -10
- package/dist/classes/systemctl.js +14 -12
- package/dist/classes/tailor.js +64 -62
- package/dist/classes/tools.js +7 -5
- package/dist/classes/users.js +6 -4
- package/dist/classes/utils.js +22 -20
- package/dist/classes/xdg.js +44 -42
- package/dist/classes/yolk.js +32 -30
- package/dist/commands/adapt.js +18 -10
- package/dist/commands/analyze.js +16 -14
- package/dist/commands/calamares.js +22 -20
- package/dist/commands/config.js +71 -69
- package/dist/commands/cuckoo.js +11 -9
- package/dist/commands/dad.js +12 -10
- package/dist/commands/export/deb.js +12 -10
- package/dist/commands/export/iso.js +11 -9
- package/dist/commands/install.js +16 -14
- package/dist/commands/kill.js +14 -13
- package/dist/commands/mom.js +9 -7
- package/dist/commands/produce.js +21 -19
- package/dist/commands/status.js +5 -3
- package/dist/commands/syncfrom.js +39 -37
- package/dist/commands/syncto.js +47 -45
- package/dist/commands/tools/clean.js +10 -8
- package/dist/commands/tools/ppa.js +21 -19
- package/dist/commands/tools/skel.js +15 -13
- package/dist/commands/tools/stat.js +7 -5
- package/dist/commands/tools/yolk.js +11 -9
- package/dist/commands/update.js +25 -23
- package/dist/commands/wardrobe/get.js +16 -8
- package/dist/commands/wardrobe/list.js +18 -10
- package/dist/commands/wardrobe/show.js +17 -12
- package/dist/commands/wardrobe/wear.js +22 -14
- package/dist/components/elements/information.js +21 -19
- package/dist/components/elements/steps.js +4 -2
- package/dist/components/elements/title.js +4 -2
- package/dist/components/finished.js +10 -8
- package/dist/components/install.js +10 -8
- package/dist/components/keyboard.js +10 -8
- package/dist/components/location.js +10 -8
- package/dist/components/network.js +10 -8
- package/dist/components/partitions.js +10 -8
- package/dist/components/summary.js +10 -8
- package/dist/components/users.js +33 -8
- package/dist/components/welcome.js +10 -8
- package/dist/krill/krill-prepare.js +92 -90
- package/dist/krill/krill-sequence.js +148 -145
- package/dist/krill/modules/add-user.js +9 -7
- package/dist/krill/modules/bootloader-config-ubuntu.js +24 -22
- package/dist/krill/modules/bootloader.js +9 -7
- package/dist/krill/modules/change-password.js +2 -2
- package/dist/krill/modules/del-live-user.js +8 -6
- package/dist/krill/modules/fstab.js +14 -12
- package/dist/krill/modules/grubcfg.js +7 -5
- package/dist/krill/modules/hostname.js +4 -2
- package/dist/krill/modules/initramfs-cfg.js +6 -4
- package/dist/krill/modules/initramfs.js +13 -11
- package/dist/krill/modules/locale-cfg.js +4 -2
- package/dist/krill/modules/locale.js +7 -5
- package/dist/krill/modules/m-keyboard.js +13 -11
- package/dist/krill/modules/m-timezone.js +7 -5
- package/dist/krill/modules/machine-id.js +7 -5
- package/dist/krill/modules/mkfs.js +6 -6
- package/dist/krill/modules/mount-fs.js +17 -15
- package/dist/krill/modules/mount-vfs.js +12 -12
- package/dist/krill/modules/network-cfg.js +8 -6
- package/dist/krill/modules/packages.js +15 -13
- package/dist/krill/modules/partition.js +74 -72
- package/dist/krill/modules/remove-installer-link.js +4 -2
- package/dist/krill/modules/umount.js +9 -7
- package/dist/krill/modules/unpackfs.js +7 -5
- package/dist/lib/cli-autologin.js +163 -163
- package/dist/lib/get_address.js +4 -2
- package/dist/lib/get_dns.js +4 -2
- package/dist/lib/get_domain.js +4 -2
- package/dist/lib/get_gateway.js +4 -2
- package/dist/lib/get_hostname.js +4 -2
- package/dist/lib/get_netmask.js +4 -2
- package/dist/lib/get_password.js +4 -2
- package/dist/lib/get_root_password.js +4 -2
- package/dist/lib/get_userfullname.js +4 -2
- package/dist/lib/get_username.js +4 -2
- package/dist/lib/select_address_type.js +4 -2
- package/dist/lib/select_filesystem_type.js +6 -4
- package/dist/lib/select_installation_device.js +5 -3
- package/dist/lib/select_installation_mode.js +4 -2
- package/dist/lib/select_interface.js +4 -2
- package/dist/lib/select_keyboard_layout.js +6 -4
- package/dist/lib/select_keyboard_model.js +6 -4
- package/dist/lib/select_keyboard_option.js +6 -4
- package/dist/lib/select_keyboard_variant.js +6 -4
- package/dist/lib/select_languages.js +6 -4
- package/dist/lib/select_regions.js +4 -2
- package/dist/lib/select_user_swap_choice.js +6 -4
- package/dist/lib/select_zones.js +4 -2
- package/package.json +6 -5
- package/dist/types/etrick.js +0 -1
package/dist/classes/xdg.js
CHANGED
|
@@ -5,16 +5,18 @@
|
|
|
5
5
|
* email: piero.proietti@gmail.com
|
|
6
6
|
* license: MIT
|
|
7
7
|
*/
|
|
8
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
8
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const n8_1 = tslib_1.__importDefault(require("./n8"));
|
|
12
|
+
const shelljs_1 = __importDefault(require("shelljs"));
|
|
13
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
14
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
15
|
+
const pacman_js_1 = __importDefault(require("./pacman.js"));
|
|
16
|
+
const utils_js_1 = __importDefault(require("./utils.js"));
|
|
17
|
+
const n8_js_1 = __importDefault(require("./n8.js"));
|
|
16
18
|
// libraries
|
|
17
|
-
const
|
|
19
|
+
const utils_js_2 = require("../lib/utils.js");
|
|
18
20
|
const xdg_dirs = ['DESKTOP', 'DOWNLOAD', 'TEMPLATES', 'PUBLICSHARE', 'DOCUMENTS', 'MUSIC', 'PICTURES', 'VIDEOS'];
|
|
19
21
|
/**
|
|
20
22
|
* Xdg: xdg-user-dirs, etc
|
|
@@ -35,7 +37,7 @@ class Xdg {
|
|
|
35
37
|
else {
|
|
36
38
|
xdg_dirs.forEach(async (dir) => {
|
|
37
39
|
if (dir === xdg_dir) {
|
|
38
|
-
retval = node_path_1.default.basename(shelljs_1.default.exec(`sudo -u ${await
|
|
40
|
+
retval = node_path_1.default.basename(shelljs_1.default.exec(`sudo -u ${await utils_js_1.default.getPrimaryUser()} xdg-user-dir ${dir}`, { silent: true }).stdout.trim());
|
|
39
41
|
}
|
|
40
42
|
});
|
|
41
43
|
}
|
|
@@ -48,7 +50,7 @@ class Xdg {
|
|
|
48
50
|
* @param verbose
|
|
49
51
|
*/
|
|
50
52
|
static async create(user, chroot, traduce = true, verbose = false) {
|
|
51
|
-
const echo =
|
|
53
|
+
const echo = utils_js_1.default.setEcho(verbose);
|
|
52
54
|
/**
|
|
53
55
|
* Creo solo la cartella DESKTOP perchè serve per i link, eventualmente posso creare le altre
|
|
54
56
|
* ma c'è il problema di traduce/non traduce
|
|
@@ -66,9 +68,9 @@ class Xdg {
|
|
|
66
68
|
* @param verbose
|
|
67
69
|
*/
|
|
68
70
|
static async mk(chroot, path, verbose = false) {
|
|
69
|
-
const echo =
|
|
71
|
+
const echo = utils_js_1.default.setEcho(verbose);
|
|
70
72
|
if (!node_fs_1.default.existsSync(chroot + path)) {
|
|
71
|
-
await (0,
|
|
73
|
+
await (0, utils_js_2.exec)(`mkdir ${chroot}${path}`, echo);
|
|
72
74
|
}
|
|
73
75
|
}
|
|
74
76
|
/**
|
|
@@ -78,23 +80,23 @@ class Xdg {
|
|
|
78
80
|
* @param chroot
|
|
79
81
|
*/
|
|
80
82
|
static async autologin(olduser, newuser, chroot = '/') {
|
|
81
|
-
if (
|
|
83
|
+
if (pacman_js_1.default.isInstalledGui()) {
|
|
82
84
|
/**
|
|
83
85
|
* SLIM
|
|
84
86
|
*/
|
|
85
|
-
if (
|
|
87
|
+
if (pacman_js_1.default.packageIsInstalled('slim')) {
|
|
86
88
|
shelljs_1.default.sed('-i', 'auto_login no', 'auto_login yes', `${chroot}/etc/slim.conf`);
|
|
87
89
|
shelljs_1.default.sed('-i', `default_user ${olduser}`, `default_user ${newuser}`, `${chroot}/etc/slim.conf`);
|
|
88
90
|
}
|
|
89
91
|
/**
|
|
90
92
|
* LIGHTDM
|
|
91
93
|
*/
|
|
92
|
-
if (
|
|
94
|
+
if (pacman_js_1.default.packageIsInstalled('lightdm')) {
|
|
93
95
|
const dc = `${chroot}/etc/lightdm/`;
|
|
94
96
|
const files = node_fs_1.default.readdirSync(dc);
|
|
95
97
|
for (const elem of files) {
|
|
96
98
|
const curFile = dc + elem;
|
|
97
|
-
if (!
|
|
99
|
+
if (!n8_js_1.default.isDirectory(curFile)) {
|
|
98
100
|
const content = node_fs_1.default.readFileSync(curFile, 'utf8');
|
|
99
101
|
const find = '[Seat:*]';
|
|
100
102
|
if (content.includes(find)) {
|
|
@@ -106,7 +108,7 @@ class Xdg {
|
|
|
106
108
|
/**
|
|
107
109
|
* SDDM
|
|
108
110
|
*/
|
|
109
|
-
if (
|
|
111
|
+
if (pacman_js_1.default.packageIsInstalled('sddm')) {
|
|
110
112
|
let sddmChanged = false;
|
|
111
113
|
const curFile = `${chroot}/etc/sddm.conf`;
|
|
112
114
|
if (node_fs_1.default.existsSync(curFile)) {
|
|
@@ -135,7 +137,7 @@ class Xdg {
|
|
|
135
137
|
// sddm.conf don't exists, generate it
|
|
136
138
|
if (!sddmChanged) {
|
|
137
139
|
let session = 'plasma';
|
|
138
|
-
if (
|
|
140
|
+
if (pacman_js_1.default.isInstalledWayland()) {
|
|
139
141
|
session = 'plasma-wayland';
|
|
140
142
|
}
|
|
141
143
|
const content = `[Autologin]\nUser=${newuser}\nSession=${session}\n`;
|
|
@@ -147,12 +149,12 @@ class Xdg {
|
|
|
147
149
|
* GDM/GDM3
|
|
148
150
|
* in manjaro è /etc/gdm/custom.conf
|
|
149
151
|
*/
|
|
150
|
-
if (
|
|
152
|
+
if (pacman_js_1.default.packageIsInstalled('gdm') || pacman_js_1.default.packageIsInstalled('gdm3')) {
|
|
151
153
|
let gdmConf = `${chroot}/etc/gdm3`;
|
|
152
|
-
if (
|
|
154
|
+
if (pacman_js_1.default.packageIsInstalled('gdm3')) {
|
|
153
155
|
gdmConf = `${chroot}/etc/gdm3`;
|
|
154
156
|
}
|
|
155
|
-
else if (
|
|
157
|
+
else if (pacman_js_1.default.packageIsInstalled('gdm')) {
|
|
156
158
|
gdmConf = `${chroot}/etc/gdm`;
|
|
157
159
|
}
|
|
158
160
|
if (node_fs_1.default.existsSync(`${gdmConf}/custom.conf`)) {
|
|
@@ -165,7 +167,7 @@ class Xdg {
|
|
|
165
167
|
gdmConf = `}/etc/${gdmConf}/custom.conf`;
|
|
166
168
|
}
|
|
167
169
|
const content = `[daemon]\nAutomaticLoginEnable=true\nAutomaticLogin=${newuser}\n`;
|
|
168
|
-
|
|
170
|
+
utils_js_1.default.write(gdmConf, content);
|
|
169
171
|
}
|
|
170
172
|
}
|
|
171
173
|
}
|
|
@@ -175,51 +177,51 @@ class Xdg {
|
|
|
175
177
|
* @param verbose
|
|
176
178
|
*/
|
|
177
179
|
static async skel(user, verbose = false) {
|
|
178
|
-
const echo =
|
|
180
|
+
const echo = utils_js_1.default.setEcho(verbose);
|
|
179
181
|
// Remove and create /etc/skel
|
|
180
|
-
await (0,
|
|
181
|
-
await (0,
|
|
182
|
+
await (0, utils_js_2.exec)('rm /etc/skel -rf', echo);
|
|
183
|
+
await (0, utils_js_2.exec)('mkdir -p /etc/skel', echo);
|
|
182
184
|
// copy .bash_logout, .bashrc and .profile to /etc/skel
|
|
183
|
-
await (0,
|
|
184
|
-
await (0,
|
|
185
|
-
await (0,
|
|
185
|
+
await (0, utils_js_2.exec)(`cp /home/${user}/.bash_logout /etc/skel`, echo);
|
|
186
|
+
await (0, utils_js_2.exec)(`cp /home/${user}/.bashrc /etc/skel`, echo);
|
|
187
|
+
await (0, utils_js_2.exec)(`cp /home/${user}/.profile /etc/skel`, echo);
|
|
186
188
|
/**
|
|
187
189
|
* copy desktop configuration
|
|
188
190
|
*/
|
|
189
|
-
if (
|
|
191
|
+
if (pacman_js_1.default.packageIsInstalled('gnome-session')) {
|
|
190
192
|
// we need a more clean solution
|
|
191
193
|
await rsyncIfExist(`/home/${user}/.config`, '/etc/skel', verbose);
|
|
192
194
|
await rsyncIfExist(`/home/${user}/.gtkrc-2.0`, '/etc/skel', verbose);
|
|
193
195
|
}
|
|
194
|
-
else if (
|
|
196
|
+
else if (pacman_js_1.default.packageIsInstalled('cinnamon-core')) {
|
|
195
197
|
// use .cinnamon NOT cinnamon/
|
|
196
198
|
await rsyncIfExist(`/home/${user}/.config`, '/etc/skel', verbose);
|
|
197
199
|
await rsyncIfExist(`/home/${user}/.cinnamon`, '/etc/skel', verbose);
|
|
198
200
|
}
|
|
199
|
-
else if (
|
|
201
|
+
else if (pacman_js_1.default.packageIsInstalled('plasma-desktop')) {
|
|
200
202
|
// use .kde NOT .kde/
|
|
201
203
|
await rsyncIfExist(`/home/${user}/.config`, '/etc/skel', verbose);
|
|
202
204
|
await rsyncIfExist(`/home/${user}/.kde`, '/etc/skel', verbose);
|
|
203
205
|
}
|
|
204
|
-
else if (
|
|
206
|
+
else if (pacman_js_1.default.packageIsInstalled('lxde-core')) {
|
|
205
207
|
// we need a more clean solution
|
|
206
208
|
await rsyncIfExist(`/home/${user}/.config`, '/etc/skel', verbose);
|
|
207
209
|
await rsyncIfExist(`/home/${user}/.gtkrc-2.0`, '/etc/skel', verbose);
|
|
208
210
|
}
|
|
209
|
-
else if (
|
|
211
|
+
else if (pacman_js_1.default.packageIsInstalled('lxqt-core')) {
|
|
210
212
|
// we need a more clean solution
|
|
211
213
|
await rsyncIfExist(`/home/${user}/.config`, '/etc/skel', verbose);
|
|
212
214
|
await rsyncIfExist(`/home/${user}/.gtkrc-2.0`, '/etc/skel', verbose);
|
|
213
215
|
}
|
|
214
|
-
else if (
|
|
216
|
+
else if (pacman_js_1.default.packageIsInstalled('mate-session-manager')) {
|
|
215
217
|
// we need a more clean solution
|
|
216
218
|
await rsyncIfExist(`/home/${user}/.config`, '/etc/skel', verbose);
|
|
217
219
|
await rsyncIfExist(`/home/${user}/.gtkrc-2.0`, '/etc/skel', verbose);
|
|
218
220
|
}
|
|
219
|
-
else if (
|
|
221
|
+
else if (pacman_js_1.default.packageIsInstalled('xfce4-session')) {
|
|
220
222
|
// use .config/xfce4 NOT .config/xfce4/
|
|
221
223
|
await rsyncIfExist(`/home/${user}/.config/xfce4`, '/etc/skel/.config', verbose);
|
|
222
|
-
await (0,
|
|
224
|
+
await (0, utils_js_2.exec)('mkdir /etc/skel/.local/share -p', echo);
|
|
223
225
|
await rsyncIfExist(`/home/${user}/.local/share/recently-used.xbel`, '/etc/skel/.local/share', verbose);
|
|
224
226
|
}
|
|
225
227
|
/**
|
|
@@ -237,8 +239,8 @@ class Xdg {
|
|
|
237
239
|
await rsyncIfExist(`/home/${user}/.linuxfx`, '/etc/skel', verbose);
|
|
238
240
|
await rsyncIfExist(`/home/${user}/.local`, '/etc/skel', verbose);
|
|
239
241
|
}
|
|
240
|
-
await (0,
|
|
241
|
-
await (0,
|
|
242
|
+
await (0, utils_js_2.exec)('chown root:root /etc/skel -R', echo);
|
|
243
|
+
await (0, utils_js_2.exec)('chmod a+rwx,g-w,o-w /etc/skel/ -R', echo);
|
|
242
244
|
await execIfExist('chmod a+rwx,g-w-x,o-wx', '/etc/skel/.bashrc', verbose);
|
|
243
245
|
await execIfExist('chmod a+rwx,g-w-x,o-wx', '/etc/skel/.bash_logout', verbose);
|
|
244
246
|
await execIfExist('chmod a+rwx,g-w-x,o-wx', '/etc/skel/.profile', verbose);
|
|
@@ -255,17 +257,17 @@ exports.default = Xdg;
|
|
|
255
257
|
* @param verbose
|
|
256
258
|
*/
|
|
257
259
|
async function execIfExist(cmd, file, verbose = false) {
|
|
258
|
-
const echo =
|
|
260
|
+
const echo = utils_js_1.default.setEcho(verbose);
|
|
259
261
|
if (node_fs_1.default.existsSync(file)) {
|
|
260
|
-
await (0,
|
|
262
|
+
await (0, utils_js_2.exec)(`${cmd} ${file}`, echo);
|
|
261
263
|
}
|
|
262
264
|
}
|
|
263
265
|
/**
|
|
264
266
|
*
|
|
265
267
|
*/
|
|
266
268
|
async function rsyncIfExist(source, dest = '/etc/skel/', verbose = false) {
|
|
267
|
-
const echo =
|
|
269
|
+
const echo = utils_js_1.default.setEcho(verbose);
|
|
268
270
|
if (node_fs_1.default.existsSync(source)) {
|
|
269
|
-
await (0,
|
|
271
|
+
await (0, utils_js_2.exec)(`rsync -avx ${source} ${dest}`, echo);
|
|
270
272
|
}
|
|
271
273
|
}
|
package/dist/classes/yolk.js
CHANGED
|
@@ -1,18 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
6
|
/**
|
|
5
7
|
* penguins-eggs-v7 based on Debian live
|
|
6
8
|
* author: Piero Proietti
|
|
7
9
|
* email: piero.proietti@gmail.com
|
|
8
10
|
* license: MIT
|
|
9
11
|
*/
|
|
10
|
-
const fs_1 =
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const shelljs_1 =
|
|
12
|
+
const fs_1 = __importDefault(require("fs"));
|
|
13
|
+
const utils_js_1 = __importDefault(require("./utils.js"));
|
|
14
|
+
const pacman_js_1 = __importDefault(require("./pacman.js"));
|
|
15
|
+
const bleach_js_1 = __importDefault(require("./bleach.js"));
|
|
16
|
+
const utils_js_2 = require("../lib/utils.js");
|
|
17
|
+
const shelljs_1 = __importDefault(require("shelljs"));
|
|
16
18
|
/**
|
|
17
19
|
*
|
|
18
20
|
*/
|
|
@@ -27,23 +29,23 @@ class Yolk {
|
|
|
27
29
|
*/
|
|
28
30
|
async create(verbose = false) {
|
|
29
31
|
this.verbose = verbose;
|
|
30
|
-
this.echo =
|
|
31
|
-
|
|
32
|
-
if (!
|
|
32
|
+
this.echo = utils_js_1.default.setEcho(verbose);
|
|
33
|
+
utils_js_1.default.warning('updating system...');
|
|
34
|
+
if (!pacman_js_1.default.commandIsInstalled('dpkg-scanpackages')) {
|
|
33
35
|
process.exit(0);
|
|
34
36
|
}
|
|
35
37
|
let cmd = '';
|
|
36
38
|
try {
|
|
37
39
|
cmd = 'apt-get update --yes';
|
|
38
|
-
await (0,
|
|
40
|
+
await (0, utils_js_2.exec)(cmd, this.echo);
|
|
39
41
|
}
|
|
40
42
|
catch (error) {
|
|
41
43
|
console.log(error);
|
|
42
|
-
await
|
|
44
|
+
await utils_js_1.default.pressKeyToExit(cmd);
|
|
43
45
|
}
|
|
44
46
|
if (!this.yolkExists()) {
|
|
45
|
-
await (0,
|
|
46
|
-
await (0,
|
|
47
|
+
await (0, utils_js_2.exec)(`mkdir ${this.yolkDir} -p`, this.echo);
|
|
48
|
+
await (0, utils_js_2.exec)(`chown _apt:root ${this.yolkDir} -R`, this.echo);
|
|
47
49
|
}
|
|
48
50
|
else {
|
|
49
51
|
await this.yolkClean();
|
|
@@ -51,37 +53,37 @@ class Yolk {
|
|
|
51
53
|
// packages we need
|
|
52
54
|
const packages = ['cryptsetup', 'keyutils', 'shim-signed']; // addes shim-signed
|
|
53
55
|
// grub-pc just for amd64 or i386
|
|
54
|
-
if (
|
|
56
|
+
if (utils_js_1.default.machineArch() === 'amd64' || utils_js_1.default.machineArch() === 'i386') {
|
|
55
57
|
packages.push('grub-pc');
|
|
56
58
|
}
|
|
57
59
|
// if not i386
|
|
58
|
-
if (
|
|
60
|
+
if (utils_js_1.default.machineArch() !== 'i386') {
|
|
59
61
|
// add grub-efi-amd64
|
|
60
|
-
packages.push('grub-efi-' +
|
|
62
|
+
packages.push('grub-efi-' + utils_js_1.default.machineArch());
|
|
61
63
|
// add grub-efi-amd64-bin
|
|
62
|
-
packages.push('grub-efi-' +
|
|
64
|
+
packages.push('grub-efi-' + utils_js_1.default.machineArch() + '-bin');
|
|
63
65
|
}
|
|
64
66
|
// chdir on yolkDir
|
|
65
67
|
process.chdir(this.yolkDir);
|
|
66
68
|
// for all packages, find dependencies and check if are not installed
|
|
67
69
|
for (const package_ of packages) {
|
|
68
|
-
|
|
70
|
+
utils_js_1.default.warning(`downloading package ${package_} and it's dependencies...`);
|
|
69
71
|
cmd = `apt-cache depends --recurse --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances ${package_} | grep "^\\w" | sort -u`;
|
|
70
|
-
const depends = (await (0,
|
|
72
|
+
const depends = (await (0, utils_js_2.exec)(cmd, { echo: false, capture: true })).data;
|
|
71
73
|
await this.installDeps(depends.split('\n'));
|
|
72
74
|
}
|
|
73
75
|
// create Package.gz
|
|
74
76
|
cmd = 'dpkg-scanpackages -h md5,sha1,sha256 . | gzip -c > Packages.gz';
|
|
75
|
-
|
|
76
|
-
await (0,
|
|
77
|
+
utils_js_1.default.warning(cmd);
|
|
78
|
+
await (0, utils_js_2.exec)(cmd, { echo: false, capture: true });
|
|
77
79
|
// Create Release date: Sat, 14 Aug 2021 07:42:00 UTC
|
|
78
80
|
const now = shelljs_1.default.exec('date -R -u').stdout.trim();
|
|
79
|
-
const content = `Archive: stable\nComponent: yolk\nOrigin: penguins-eggs\nArchitecture: ${
|
|
80
|
-
|
|
81
|
+
const content = `Archive: stable\nComponent: yolk\nOrigin: penguins-eggs\nArchitecture: ${utils_js_1.default.machineArch()} \nDate: ${now}\n`;
|
|
82
|
+
utils_js_1.default.warning('Writing Release');
|
|
81
83
|
fs_1.default.writeFileSync('Release', content);
|
|
82
84
|
// Cleaning
|
|
83
|
-
|
|
84
|
-
const bleach = new
|
|
85
|
+
utils_js_1.default.warning('Cleaning apt cache');
|
|
86
|
+
const bleach = new bleach_js_1.default();
|
|
85
87
|
await bleach.clean(verbose);
|
|
86
88
|
}
|
|
87
89
|
/**
|
|
@@ -93,7 +95,7 @@ class Yolk {
|
|
|
93
95
|
// select for downloads only packages NOT already installed
|
|
94
96
|
const toDownloads = [];
|
|
95
97
|
for (const depend of depends) {
|
|
96
|
-
if (depend !== '' && !
|
|
98
|
+
if (depend !== '' && !pacman_js_1.default.packageIsInstalled(depend)) {
|
|
97
99
|
toDownloads.push(depend);
|
|
98
100
|
}
|
|
99
101
|
}
|
|
@@ -101,8 +103,8 @@ class Yolk {
|
|
|
101
103
|
for (const toDownload of toDownloads) {
|
|
102
104
|
process.chdir(this.yolkDir);
|
|
103
105
|
const cmd = `apt-get download ${toDownload}`;
|
|
104
|
-
|
|
105
|
-
await (0,
|
|
106
|
+
utils_js_1.default.warning(`- ${cmd}`);
|
|
107
|
+
await (0, utils_js_2.exec)(cmd, this.echo);
|
|
106
108
|
}
|
|
107
109
|
}
|
|
108
110
|
/**
|
|
@@ -116,7 +118,7 @@ class Yolk {
|
|
|
116
118
|
* Svuota la repo yolk
|
|
117
119
|
*/
|
|
118
120
|
async yolkClean() {
|
|
119
|
-
await (0,
|
|
121
|
+
await (0, utils_js_2.exec)(`rm ${this.yolkDir}/*`, this.echo);
|
|
120
122
|
}
|
|
121
123
|
}
|
|
122
124
|
exports.default = Yolk;
|
package/dist/commands/adapt.js
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
|
|
6
|
+
/**
|
|
7
|
+
* penguins-eggs: adapt
|
|
8
|
+
* author: Piero Proietti
|
|
9
|
+
* email: piero.proietti@gmail.com
|
|
10
|
+
* license: MIT
|
|
11
|
+
*/
|
|
4
12
|
const core_1 = require("@oclif/core");
|
|
5
|
-
const
|
|
6
|
-
const
|
|
13
|
+
const utils_js_1 = __importDefault(require("../classes/utils.js"));
|
|
14
|
+
const utils_js_2 = require("../lib/utils.js");
|
|
7
15
|
class Adapt extends core_1.Command {
|
|
8
16
|
async run() {
|
|
9
17
|
const { args, flags } = await this.parse(Adapt);
|
|
@@ -11,14 +19,14 @@ class Adapt extends core_1.Command {
|
|
|
11
19
|
if (flags.verbose) {
|
|
12
20
|
verbose = true;
|
|
13
21
|
}
|
|
14
|
-
const echo =
|
|
22
|
+
const echo = utils_js_1.default.setEcho(verbose);
|
|
15
23
|
// const {args, flags} = this.parse(Adjust)
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
await (0,
|
|
19
|
-
await (0,
|
|
20
|
-
await (0,
|
|
21
|
-
await (0,
|
|
24
|
+
utils_js_1.default.titles(this.id + ' ' + this.argv);
|
|
25
|
+
utils_js_1.default.warning('Adapt monitor resolutions to the size of window in virtual machines');
|
|
26
|
+
await (0, utils_js_2.exec)('xrandr --output Virtual-0 --auto', echo);
|
|
27
|
+
await (0, utils_js_2.exec)('xrandr --output Virtual-1 --auto', echo);
|
|
28
|
+
await (0, utils_js_2.exec)('xrandr --output Virtual-2 --auto', echo);
|
|
29
|
+
await (0, utils_js_2.exec)('xrandr --output Virtual-3 --auto', echo);
|
|
22
30
|
}
|
|
23
31
|
}
|
|
24
32
|
exports.default = Adapt;
|
package/dist/commands/analyze.js
CHANGED
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
6
|
/**
|
|
5
|
-
* penguins-eggs
|
|
7
|
+
* penguins-eggs: analyze
|
|
6
8
|
* author: Piero Proietti
|
|
7
9
|
* email: piero.proietti@gmail.com
|
|
8
10
|
* license: MIT
|
|
9
11
|
*/
|
|
10
12
|
const core_1 = require("@oclif/core");
|
|
11
|
-
const fs_1 =
|
|
12
|
-
const
|
|
13
|
+
const fs_1 = __importDefault(require("fs"));
|
|
14
|
+
const utils_js_1 = __importDefault(require("../classes/utils.js"));
|
|
13
15
|
const promises_1 = require("fs/promises");
|
|
14
16
|
const fs_2 = require("fs");
|
|
15
|
-
const
|
|
16
|
-
const systeminformation_1 =
|
|
17
|
+
const users_js_1 = __importDefault(require("../classes/users.js"));
|
|
18
|
+
const systeminformation_1 = __importDefault(require("systeminformation"));
|
|
17
19
|
class Analyze extends core_1.Command {
|
|
18
20
|
constructor() {
|
|
19
21
|
super(...arguments);
|
|
@@ -22,15 +24,15 @@ class Analyze extends core_1.Command {
|
|
|
22
24
|
this.work_dir = {};
|
|
23
25
|
}
|
|
24
26
|
async run() {
|
|
25
|
-
|
|
27
|
+
utils_js_1.default.titles(this.id + ' ' + this.argv);
|
|
26
28
|
const { flags } = await this.parse(Analyze);
|
|
27
29
|
let verbose = false;
|
|
28
30
|
if (flags.verbose) {
|
|
29
31
|
verbose = true;
|
|
30
32
|
}
|
|
31
|
-
const echo =
|
|
33
|
+
const echo = utils_js_1.default.setEcho(verbose);
|
|
32
34
|
let totalSize = 0;
|
|
33
|
-
if (
|
|
35
|
+
if (utils_js_1.default.isRoot(this.id)) {
|
|
34
36
|
const audio = await systeminformation_1.default.audio();
|
|
35
37
|
const bios = await systeminformation_1.default.bios();
|
|
36
38
|
const blockDevices = await systeminformation_1.default.blockDevices();
|
|
@@ -61,18 +63,18 @@ class Analyze extends core_1.Command {
|
|
|
61
63
|
* MacOS: "/Users"
|
|
62
64
|
* Linux: "/home"
|
|
63
65
|
*/
|
|
64
|
-
|
|
66
|
+
utils_js_1.default.warning('eggs will analyze your system, to get users and servers data');
|
|
65
67
|
const users = await this.fill();
|
|
66
68
|
for (let i = 0; i < users.length; i++)
|
|
67
69
|
if (users[i].saveIt) {
|
|
68
|
-
console.log(`user: ${users[i].login} \thome: ${users[i].home.padEnd(16)} \tsize: ${
|
|
70
|
+
console.log(`user: ${users[i].login} \thome: ${users[i].home.padEnd(16)} \tsize: ${utils_js_1.default.formatBytes(users[i].size)} \tBytes: ${users[i].size} `);
|
|
69
71
|
// console.log(`user: ${users[i].login} \thome: ${users[i].home} \tsize: ${users[i].size}`)
|
|
70
72
|
totalSize += users[i].size;
|
|
71
73
|
}
|
|
72
|
-
console.log(`Total\t\t\t\t\tSize: ${
|
|
74
|
+
console.log(`Total\t\t\t\t\tSize: ${utils_js_1.default.formatBytes(totalSize)} \tBytes: ${totalSize}`);
|
|
73
75
|
}
|
|
74
76
|
else {
|
|
75
|
-
|
|
77
|
+
utils_js_1.default.useRoot(this.id);
|
|
76
78
|
}
|
|
77
79
|
}
|
|
78
80
|
/**
|
|
@@ -85,7 +87,7 @@ class Analyze extends core_1.Command {
|
|
|
85
87
|
const passwd = fs_1.default.readFileSync('/etc/passwd', 'utf-8').split('\n');
|
|
86
88
|
for (const element of passwd) {
|
|
87
89
|
const line = element.split(':');
|
|
88
|
-
const users = new
|
|
90
|
+
const users = new users_js_1.default(line[0], line[1], line[2], line[3], line[4], line[5], line[6]);
|
|
89
91
|
await users.getValues();
|
|
90
92
|
if (users.password !== undefined) {
|
|
91
93
|
usersArray.push(users);
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
6
|
/**
|
|
5
7
|
* penguins-eggs-v7 based on Debian live
|
|
6
8
|
* author: Piero Proietti
|
|
@@ -8,10 +10,10 @@ const tslib_1 = require("tslib");
|
|
|
8
10
|
* license: MIT
|
|
9
11
|
*/
|
|
10
12
|
const core_1 = require("@oclif/core");
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
13
|
+
const utils_js_1 = __importDefault(require("../classes/utils.js"));
|
|
14
|
+
const settings_js_1 = __importDefault(require("../classes/settings.js"));
|
|
15
|
+
const incubator_js_1 = __importDefault(require("../classes/incubation/incubator.js"));
|
|
16
|
+
const pacman_js_1 = __importDefault(require("../classes/pacman.js"));
|
|
15
17
|
class Calamares extends core_1.Command {
|
|
16
18
|
constructor() {
|
|
17
19
|
super(...arguments);
|
|
@@ -20,8 +22,8 @@ class Calamares extends core_1.Command {
|
|
|
20
22
|
this.settings = {};
|
|
21
23
|
}
|
|
22
24
|
async run() {
|
|
23
|
-
|
|
24
|
-
this.settings = new
|
|
25
|
+
utils_js_1.default.titles(this.id + ' ' + this.argv);
|
|
26
|
+
this.settings = new settings_js_1.default();
|
|
25
27
|
const { flags } = await this.parse(Calamares);
|
|
26
28
|
let verbose = false;
|
|
27
29
|
if (flags.verbose) {
|
|
@@ -45,33 +47,33 @@ class Calamares extends core_1.Command {
|
|
|
45
47
|
}
|
|
46
48
|
const nointeractive = flags.nointeractive;
|
|
47
49
|
console.log(`theme: ${theme}`);
|
|
48
|
-
if (
|
|
50
|
+
if (utils_js_1.default.isRoot(this.id)) {
|
|
49
51
|
let installer = 'krill';
|
|
50
|
-
if (
|
|
52
|
+
if (pacman_js_1.default.isInstalledGui()) {
|
|
51
53
|
installer = 'calamares';
|
|
52
54
|
}
|
|
53
55
|
if (installer === 'calamares') {
|
|
54
56
|
if (!remove) {
|
|
55
|
-
if (!nointeractive || await
|
|
57
|
+
if (!nointeractive || await utils_js_1.default.customConfirm('Select yes to continue...')) {
|
|
56
58
|
/**
|
|
57
59
|
* Install calamares
|
|
58
60
|
*/
|
|
59
61
|
if (install) {
|
|
60
|
-
|
|
61
|
-
await
|
|
62
|
+
utils_js_1.default.warning('Installing calamares...');
|
|
63
|
+
await pacman_js_1.default.calamaresInstall();
|
|
62
64
|
if (await this.settings.load()) {
|
|
63
65
|
this.settings.config.force_installer = true;
|
|
64
66
|
this.settings.save(this.settings.config);
|
|
65
|
-
await
|
|
67
|
+
await pacman_js_1.default.calamaresPolicies();
|
|
66
68
|
}
|
|
67
69
|
}
|
|
68
70
|
/**
|
|
69
71
|
* Configure calamares
|
|
70
72
|
*/
|
|
71
73
|
if (await this.settings.load()) {
|
|
72
|
-
|
|
74
|
+
utils_js_1.default.warning('Configuring installer');
|
|
73
75
|
await this.settings.loadRemix(this.settings.config.snapshot_basename, theme);
|
|
74
|
-
this.incubator = new
|
|
76
|
+
this.incubator = new incubator_js_1.default(this.settings.remix, this.settings.distro, this.settings.config.user_opt, theme, verbose);
|
|
75
77
|
await this.incubator.config(release);
|
|
76
78
|
}
|
|
77
79
|
}
|
|
@@ -80,8 +82,8 @@ class Calamares extends core_1.Command {
|
|
|
80
82
|
/**
|
|
81
83
|
* Remove calamares
|
|
82
84
|
*/
|
|
83
|
-
if (await
|
|
84
|
-
await
|
|
85
|
+
if (await pacman_js_1.default.calamaresCheck()) {
|
|
86
|
+
await pacman_js_1.default.calamaresRemove();
|
|
85
87
|
if (await this.settings.load()) {
|
|
86
88
|
this.settings.config.force_installer = false;
|
|
87
89
|
this.settings.save(this.settings.config);
|
|
@@ -89,10 +91,10 @@ class Calamares extends core_1.Command {
|
|
|
89
91
|
}
|
|
90
92
|
}
|
|
91
93
|
}
|
|
92
|
-
else if ((await
|
|
93
|
-
|
|
94
|
+
else if ((await utils_js_1.default.customConfirm('Select yes to continue...')) && (await this.settings.load())) {
|
|
95
|
+
utils_js_1.default.warning('Configuring krill');
|
|
94
96
|
await this.settings.loadRemix(this.settings.config.snapshot_basename, theme);
|
|
95
|
-
this.incubator = new
|
|
97
|
+
this.incubator = new incubator_js_1.default(this.settings.remix, this.settings.distro, this.settings.config.user_opt, theme, verbose);
|
|
96
98
|
console.log('calamares relase: ' + release);
|
|
97
99
|
await this.incubator.config(release);
|
|
98
100
|
}
|