penguins-eggs 9.3.26 → 9.3.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oclif.manifest.json +1 -1
- package/conf/derivatives.yaml +7 -0
- package/dist/classes/bleach.js +26 -24
- package/dist/classes/compressors.js +7 -5
- package/dist/classes/daddy.js +38 -36
- package/dist/classes/distro.js +30 -27
- package/dist/classes/family/archlinux.js +21 -19
- package/dist/classes/family/debian.js +33 -31
- package/dist/classes/family/fedora.js +19 -17
- package/dist/classes/family/suse.js +19 -17
- package/dist/classes/incubation/branding.js +8 -6
- 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 +6 -4
- package/dist/classes/incubation/distros/rolling.js +9 -7
- package/dist/classes/incubation/fisherman-helper/displaymanager.js +5 -3
- package/dist/classes/incubation/fisherman-helper/packages.js +17 -15
- package/dist/classes/incubation/fisherman.js +19 -19
- package/dist/classes/incubation/incubator.js +37 -35
- package/dist/classes/incubation/installer.js +8 -6
- package/dist/classes/initrd.js +5 -3
- package/dist/classes/keyboards.js +25 -23
- package/dist/classes/locales.js +19 -17
- package/dist/classes/n8.js +4 -2
- package/dist/classes/network.js +9 -9
- package/dist/classes/ovary.js +280 -281
- package/dist/classes/pacman.js +128 -128
- package/dist/classes/pve-live.js +7 -5
- package/dist/classes/pxe.js +141 -138
- package/dist/classes/settings.js +34 -32
- package/dist/classes/sources_list.js +31 -31
- package/dist/classes/systemctl.js +16 -14
- package/dist/classes/tailor.js +255 -262
- package/dist/classes/tools.js +7 -5
- package/dist/classes/users.js +30 -28
- package/dist/classes/utils.js +22 -20
- package/dist/classes/xdg.js +60 -58
- package/dist/classes/yolk.js +33 -33
- package/dist/commands/adapt.js +14 -12
- package/dist/commands/analyze.js +48 -15
- package/dist/commands/calamares.js +28 -26
- package/dist/commands/config.js +77 -79
- package/dist/commands/cuckoo.js +19 -17
- package/dist/commands/dad.js +16 -14
- package/dist/commands/export/deb.js +19 -17
- package/dist/commands/export/iso.js +17 -15
- package/dist/commands/install.js +31 -29
- package/dist/commands/kill.js +17 -15
- package/dist/commands/mom.js +11 -9
- package/dist/commands/produce.js +30 -28
- package/dist/commands/status.js +7 -5
- package/dist/commands/syncfrom.js +41 -41
- package/dist/commands/syncto.js +77 -80
- package/dist/commands/tools/clean.js +13 -11
- package/dist/commands/tools/ppa.js +26 -24
- package/dist/commands/tools/skel.js +18 -16
- package/dist/commands/tools/stat.js +12 -10
- package/dist/commands/tools/yolk.js +13 -11
- package/dist/commands/update.js +29 -27
- package/dist/commands/wardrobe/get.js +14 -12
- package/dist/commands/wardrobe/list.js +25 -23
- package/dist/commands/wardrobe/show.js +25 -23
- package/dist/commands/wardrobe/wear.js +24 -22
- 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/interfaces/i-packages.js +1 -1
- package/dist/interfaces/i-pxe.js +39 -0
- package/dist/krill/krill-prepare.js +92 -90
- package/dist/krill/krill-sequence.js +148 -145
- package/dist/krill/modules/add-user.js +11 -9
- package/dist/krill/modules/bootloader-config-ubuntu.js +25 -23
- package/dist/krill/modules/bootloader.js +11 -9
- 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 +35 -33
- package/dist/krill/modules/grubcfg.js +8 -6
- package/dist/krill/modules/hostname.js +19 -17
- package/dist/krill/modules/initramfs-cfg.js +6 -4
- package/dist/krill/modules/initramfs.js +17 -15
- package/dist/krill/modules/locale-cfg.js +12 -10
- package/dist/krill/modules/locale.js +13 -11
- package/dist/krill/modules/m-keyboard.js +33 -31
- package/dist/krill/modules/m-timezone.js +7 -5
- package/dist/krill/modules/machine-id.js +8 -6
- package/dist/krill/modules/mkfs.js +7 -7
- package/dist/krill/modules/mount-fs.js +22 -22
- package/dist/krill/modules/mount-vfs.js +12 -12
- package/dist/krill/modules/network-cfg.js +21 -21
- package/dist/krill/modules/packages.js +20 -18
- package/dist/krill/modules/partition.js +148 -139
- package/dist/krill/modules/remove-installer-link.js +5 -3
- package/dist/krill/modules/umount.js +9 -7
- package/dist/krill/modules/unpackfs.js +8 -6
- package/dist/lib/cli-autologin.js +163 -163
- package/dist/lib/dependencies.js +10 -10
- package/dist/lib/get_address.js +6 -4
- package/dist/lib/get_dns.js +6 -4
- package/dist/lib/get_domain.js +6 -4
- package/dist/lib/get_gateway.js +6 -4
- package/dist/lib/get_hostname.js +6 -4
- package/dist/lib/get_netmask.js +6 -4
- package/dist/lib/get_password.js +8 -6
- package/dist/lib/get_root_password.js +7 -5
- package/dist/lib/get_userfullname.js +6 -4
- package/dist/lib/get_username.js +6 -4
- package/dist/lib/select_address_type.js +6 -4
- package/dist/lib/select_filesystem_type.js +8 -6
- package/dist/lib/select_installation_device.js +7 -5
- package/dist/lib/select_installation_mode.js +6 -4
- package/dist/lib/select_interface.js +6 -4
- package/dist/lib/select_keyboard_layout.js +10 -8
- package/dist/lib/select_keyboard_model.js +10 -8
- package/dist/lib/select_keyboard_option.js +10 -8
- package/dist/lib/select_keyboard_variant.js +10 -8
- package/dist/lib/select_languages.js +9 -7
- package/dist/lib/select_regions.js +6 -4
- package/dist/lib/select_user_swap_choice.js +8 -6
- package/dist/lib/select_zones.js +12 -10
- package/dist/lib/utils.js +3 -3
- package/package.json +12 -5
- package/dist/dhcpd/dhcpd.js +0 -222
- package/dist/dhcpd/index.js +0 -7
- package/dist/dhcpd/packet/converters.js +0 -377
- package/dist/dhcpd/packet/options.js +0 -2
- package/dist/dhcpd/packet/types.js +0 -2
- package/dist/dhcpd/packet.js +0 -251
- package/dist/dhcpd/proxy.js +0 -152
- package/dist/dhcpd/server.js +0 -152
- package/dist/dhcpd/sprintf.js +0 -170
- package/dist/dhcpd/utils.js +0 -190
- package/dist/interfaces/i-pxe-options.js +0 -2
package/dist/classes/tools.js
CHANGED
|
@@ -5,11 +5,13 @@
|
|
|
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 settings_1 = tslib_1.__importDefault(require("./settings"));
|
|
12
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
13
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
14
|
+
const settings_js_1 = __importDefault(require("./settings.js"));
|
|
13
15
|
/**
|
|
14
16
|
* Utils: general porpourse utils
|
|
15
17
|
* @remarks all the utilities
|
|
@@ -42,7 +44,7 @@ class Tools {
|
|
|
42
44
|
/**
|
|
43
45
|
* da eggs
|
|
44
46
|
*/
|
|
45
|
-
const settings = new
|
|
47
|
+
const settings = new settings_js_1.default();
|
|
46
48
|
settings.load();
|
|
47
49
|
this.snapshot_dir = settings.config.snapshot_dir;
|
|
48
50
|
this.snapshot_name = settings.config.snapshot_prefix + settings.config.snapshot_basename + '_'; // + Utils.machineArch() + '_'
|
package/dist/classes/users.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
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
|
|
4
|
-
const
|
|
5
|
-
const utils_1 = require("../lib/utils");
|
|
6
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const utils_js_1 = require("../lib/utils.js");
|
|
6
8
|
/**
|
|
7
9
|
*
|
|
8
10
|
*/
|
|
@@ -24,7 +26,7 @@ class Users {
|
|
|
24
26
|
* @param verbose
|
|
25
27
|
*/
|
|
26
28
|
async getValues() {
|
|
27
|
-
|
|
29
|
+
const fLevels = [
|
|
28
30
|
{ path: 'bin', saveIt: false },
|
|
29
31
|
{ path: 'boot', saveIt: false },
|
|
30
32
|
{ path: 'dev', saveIt: false },
|
|
@@ -45,63 +47,63 @@ class Users {
|
|
|
45
47
|
{ path: 'srv', saveIt: true },
|
|
46
48
|
{ path: 'tmp', saveIt: false },
|
|
47
49
|
{ path: 'usr', saveIt: true },
|
|
48
|
-
{ path: 'var', saveIt: true }
|
|
50
|
+
{ path: 'var', saveIt: true },
|
|
49
51
|
];
|
|
50
52
|
let hasHome = false;
|
|
51
53
|
let saveIt = false;
|
|
52
54
|
let size = 0;
|
|
53
55
|
// Only users not services
|
|
54
|
-
if (parseInt(this.uid) >= 1000) {
|
|
56
|
+
if (Number.parseInt(this.uid) >= 1000) {
|
|
55
57
|
if (this.home != undefined) {
|
|
56
58
|
/**
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
for (
|
|
62
|
-
if (
|
|
63
|
-
saveIt =
|
|
59
|
+
* analyze firstLevel and
|
|
60
|
+
* excluded to be saved
|
|
61
|
+
*/
|
|
62
|
+
const fLevel = this.home.split('/')[1];
|
|
63
|
+
for (const fLevel_ of fLevels) {
|
|
64
|
+
if (fLevel_.path === fLevel) {
|
|
65
|
+
saveIt = fLevel_.saveIt;
|
|
64
66
|
}
|
|
65
67
|
}
|
|
66
68
|
/**
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
69
|
+
* analize second level
|
|
70
|
+
* examples: /var/run, /var/cache, /var/spool, etc
|
|
71
|
+
*/
|
|
70
72
|
if (saveIt) {
|
|
71
|
-
|
|
73
|
+
const sLevel = this.home.split('/')[2];
|
|
72
74
|
if (sLevel === 'cache' || sLevel === 'run' || sLevel === 'spool') {
|
|
73
75
|
saveIt = false;
|
|
74
76
|
}
|
|
75
77
|
}
|
|
76
78
|
/**
|
|
77
|
-
|
|
78
|
-
|
|
79
|
+
* exclude to save if home don't exist
|
|
80
|
+
*/
|
|
79
81
|
if (!fs_1.default.existsSync(this.home)) {
|
|
80
82
|
saveIt = false;
|
|
81
83
|
}
|
|
82
84
|
/**
|
|
83
|
-
|
|
84
|
-
|
|
85
|
+
* others motivations to exclude
|
|
86
|
+
*/
|
|
85
87
|
if (saveIt) {
|
|
86
88
|
switch (this.home) {
|
|
87
89
|
/**
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
* exclude always /
|
|
91
|
+
*/
|
|
90
92
|
case '/':
|
|
91
93
|
{
|
|
92
94
|
break;
|
|
93
95
|
}
|
|
94
96
|
/**
|
|
95
|
-
|
|
96
|
-
|
|
97
|
+
* excludes: under /usr
|
|
98
|
+
*/
|
|
97
99
|
case '/usr/bin':
|
|
98
100
|
case '/usr/sbin': {
|
|
99
101
|
saveIt = false;
|
|
100
102
|
break;
|
|
101
103
|
}
|
|
102
104
|
/**
|
|
103
|
-
|
|
104
|
-
|
|
105
|
+
* excludes: under var
|
|
106
|
+
*/
|
|
105
107
|
case '/var/backups':
|
|
106
108
|
case '/var/lib/colord':
|
|
107
109
|
case '/var/lib/geoclue':
|
|
@@ -114,7 +116,7 @@ class Users {
|
|
|
114
116
|
default: {
|
|
115
117
|
if (fs_1.default.existsSync(this.home)) {
|
|
116
118
|
hasHome = true;
|
|
117
|
-
const sizeUser = await (0,
|
|
119
|
+
const sizeUser = await (0, utils_js_1.exec)(` du --block-size=1 --summarize ${this.home} | awk '{print $1}'`, { echo: false, ignore: false, capture: true });
|
|
118
120
|
size = Number.parseInt(sizeUser.data);
|
|
119
121
|
}
|
|
120
122
|
saveIt = true;
|
package/dist/classes/utils.js
CHANGED
|
@@ -6,22 +6,24 @@
|
|
|
6
6
|
* email: piero.proietti@gmail.com
|
|
7
7
|
* license: MIT
|
|
8
8
|
*/
|
|
9
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
+
};
|
|
9
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const pacman_1 = tslib_1.__importDefault(require("./pacman"));
|
|
13
|
+
const shelljs_1 = __importDefault(require("shelljs"));
|
|
14
|
+
const fs_1 = __importDefault(require("fs"));
|
|
15
|
+
const dns_1 = __importDefault(require("dns"));
|
|
16
|
+
const path_1 = __importDefault(require("path"));
|
|
17
|
+
const os_1 = __importDefault(require("os"));
|
|
18
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
19
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
20
|
+
const pacman_js_1 = __importDefault(require("./pacman.js"));
|
|
19
21
|
// import { green, whiteBright } from 'chalk'
|
|
20
22
|
const child_process_1 = require("child_process");
|
|
21
23
|
const netmask_1 = require("netmask");
|
|
22
24
|
// libraries
|
|
23
|
-
const
|
|
24
|
-
const
|
|
25
|
+
const utils_js_1 = require("../lib/utils.js");
|
|
26
|
+
const distro_js_1 = __importDefault(require("./distro.js"));
|
|
25
27
|
const pjson = require('../../package.json');
|
|
26
28
|
/**
|
|
27
29
|
* Utils: general porpourse utils
|
|
@@ -95,7 +97,7 @@ class Utils {
|
|
|
95
97
|
}
|
|
96
98
|
}
|
|
97
99
|
// Arch
|
|
98
|
-
let distro = new
|
|
100
|
+
let distro = new distro_js_1.default();
|
|
99
101
|
if (distro.distroId === 'Arch' || distro.distroId === 'RebornOS') {
|
|
100
102
|
vmlinuz = '/boot/vmlinuz-linux';
|
|
101
103
|
}
|
|
@@ -113,23 +115,23 @@ class Utils {
|
|
|
113
115
|
const path = vmlinuz.substring(0, vmlinuz.lastIndexOf('/')) + '/';
|
|
114
116
|
let initrd = '';
|
|
115
117
|
let version = '';
|
|
116
|
-
if (
|
|
118
|
+
if (pacman_js_1.default.distro().familyId === 'debian') {
|
|
117
119
|
initrd = 'initrd.img';
|
|
118
120
|
version = vmlinuz.substring(vmlinuz.indexOf('-'));
|
|
119
121
|
}
|
|
120
|
-
else if (
|
|
122
|
+
else if (pacman_js_1.default.distro().familyId === 'fedora') {
|
|
121
123
|
initrd = 'initramfs';
|
|
122
124
|
version = vmlinuz.substring(vmlinuz.indexOf('-')) + '.img';
|
|
123
125
|
}
|
|
124
|
-
else if (
|
|
126
|
+
else if (pacman_js_1.default.distro().familyId === 'archlinux') {
|
|
125
127
|
initrd = 'initramfs';
|
|
126
128
|
version = vmlinuz.substring(vmlinuz.indexOf('-')) + '.img';
|
|
127
129
|
}
|
|
128
|
-
else if (
|
|
130
|
+
else if (pacman_js_1.default.distro().familyId === 'suse') {
|
|
129
131
|
initrd = 'initrd';
|
|
130
132
|
version = vmlinuz.substring(vmlinuz.indexOf('-'));
|
|
131
133
|
}
|
|
132
|
-
let distro = new
|
|
134
|
+
let distro = new distro_js_1.default();
|
|
133
135
|
if (distro.distroId === 'Arch' || distro.distroId === 'RebornOS') {
|
|
134
136
|
initrd = '/boot/initramfs-linux.img';
|
|
135
137
|
}
|
|
@@ -165,7 +167,7 @@ class Utils {
|
|
|
165
167
|
* Return the primary user's name
|
|
166
168
|
*/
|
|
167
169
|
static async getPrimaryUser() {
|
|
168
|
-
let primaryUser = (await (0,
|
|
170
|
+
let primaryUser = (await (0, utils_js_1.exec)('/usr/bin/logname 2>/dev/null || echo ${SUDO_USER:-${USER}}', { echo: false, ignore: false, capture: true })).data.trim();
|
|
169
171
|
// if logname don't work seem we get '' so:
|
|
170
172
|
if (primaryUser === '') {
|
|
171
173
|
primaryUser = shelljs_1.default.exec('echo $SUDO_USER', { silent: true }).stdout.trim();
|
|
@@ -285,10 +287,10 @@ class Utils {
|
|
|
285
287
|
else if (arch === 'armel') {
|
|
286
288
|
machineUEFI = 'arm-efi';
|
|
287
289
|
}
|
|
288
|
-
if (
|
|
290
|
+
if (pacman_js_1.default.distro().familyId === 'fedora') {
|
|
289
291
|
machineUEFI = 'i386-efi';
|
|
290
292
|
}
|
|
291
|
-
else if (
|
|
293
|
+
else if (pacman_js_1.default.distro().familyId === 'suse') {
|
|
292
294
|
machineUEFI = 'i386-efi';
|
|
293
295
|
}
|
|
294
296
|
return machineUEFI;
|
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,25 +80,25 @@ 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 (
|
|
93
|
-
|
|
94
|
-
|
|
94
|
+
if (pacman_js_1.default.packageIsInstalled('lightdm')) {
|
|
95
|
+
const dc = `${chroot}/etc/lightdm/`;
|
|
96
|
+
const files = node_fs_1.default.readdirSync(dc);
|
|
95
97
|
for (const elem of files) {
|
|
96
98
|
const curFile = dc + elem;
|
|
97
|
-
if (!
|
|
98
|
-
|
|
99
|
-
|
|
99
|
+
if (!n8_js_1.default.isDirectory(curFile)) {
|
|
100
|
+
const content = node_fs_1.default.readFileSync(curFile, 'utf8');
|
|
101
|
+
const find = '[Seat:*]';
|
|
100
102
|
if (content.includes(find)) {
|
|
101
103
|
shelljs_1.default.sed('-i', `autologin-user=${olduser}`, `autologin-user=${newuser}`, curFile);
|
|
102
104
|
}
|
|
@@ -106,25 +108,25 @@ 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)) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
+
const content = node_fs_1.default.readFileSync(curFile, 'utf8');
|
|
116
|
+
const find = '[Autologin]';
|
|
115
117
|
if (content.includes(find)) {
|
|
116
118
|
shelljs_1.default.sed('-i', `User=${olduser}`, `User=${newuser}`, curFile);
|
|
117
119
|
sddmChanged = true;
|
|
118
120
|
}
|
|
119
121
|
}
|
|
120
122
|
if (!sddmChanged) {
|
|
121
|
-
|
|
123
|
+
const dc = `${chroot}/etc/sddm.conf.d/`;
|
|
122
124
|
if (node_fs_1.default.existsSync(dc)) {
|
|
123
|
-
|
|
125
|
+
const files = node_fs_1.default.readdirSync(dc);
|
|
124
126
|
for (const elem of files) {
|
|
125
127
|
const curFile = dc + elem;
|
|
126
|
-
|
|
127
|
-
|
|
128
|
+
const content = node_fs_1.default.readFileSync(curFile, 'utf8');
|
|
129
|
+
const find = '[Autologin]';
|
|
128
130
|
if (content.includes(find)) {
|
|
129
131
|
shelljs_1.default.sed('-i', `User=${olduser}`, `User=${newuser}`, curFile);
|
|
130
132
|
sddmChanged = true;
|
|
@@ -134,12 +136,12 @@ class Xdg {
|
|
|
134
136
|
}
|
|
135
137
|
// sddm.conf don't exists, generate it
|
|
136
138
|
if (!sddmChanged) {
|
|
137
|
-
let session =
|
|
138
|
-
if (
|
|
139
|
-
session =
|
|
139
|
+
let session = 'plasma';
|
|
140
|
+
if (pacman_js_1.default.isInstalledWayland()) {
|
|
141
|
+
session = 'plasma-wayland';
|
|
140
142
|
}
|
|
141
|
-
|
|
142
|
-
|
|
143
|
+
const content = `[Autologin]\nUser=${newuser}\nSession=${session}\n`;
|
|
144
|
+
const curFile = `${chroot}/etc/sddm.conf`;
|
|
143
145
|
node_fs_1.default.writeFileSync(curFile, content, 'utf8');
|
|
144
146
|
}
|
|
145
147
|
}
|
|
@@ -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
|
/**
|
|
@@ -234,11 +236,11 @@ class Xdg {
|
|
|
234
236
|
// we need to copy: .linuxfx ,kde and ,cinnamon
|
|
235
237
|
await rsyncIfExist(`/home/${user}/.cinnamon`, '/etc/skel', verbose);
|
|
236
238
|
await rsyncIfExist(`/home/${user}/.kde`, '/etc/skel', verbose);
|
|
237
|
-
await rsyncIfExist(`/home/${user}/.linuxfx`,
|
|
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
|
}
|