penguins-eggs 9.0.2 → 9.0.25
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/README.md +123 -25
- package/addons/eggs/theme/calamares/branding/show.qml +1 -1
- package/addons/eggs/theme/livecd/README.md +13 -15
- package/addons/eggs/theme/livecd/grub.theme.cfg +12 -15
- package/addons/eggs/theme/livecd/splash.png +0 -0
- package/addons/neon/theme/livecd/grub.theme.cfg +12 -15
- package/addons/neon/theme/livecd/splash.png +0 -0
- package/addons/templates/grub.template +30 -0
- package/addons/{neon/theme/livecd/isolinux.template.cfg → templates/isolinux.template} +7 -7
- package/addons/{blissos → waydroid}/theme/applications/install-debian.desktop +0 -0
- package/addons/{blissos → waydroid}/theme/artwork/install-debian.png +0 -0
- package/addons/{blissos → waydroid}/theme/calamares/branding/branding.desc +0 -0
- package/addons/{blissos → waydroid}/theme/calamares/branding/languages.png +0 -0
- package/addons/{blissos → waydroid}/theme/calamares/branding/show.qml +0 -0
- package/addons/{blissos → waydroid}/theme/calamares/branding/slide1.png +0 -0
- package/addons/{blissos → waydroid}/theme/calamares/branding/slide2.png +0 -0
- package/addons/{blissos → waydroid}/theme/calamares/branding/slide3.png +0 -0
- package/addons/{blissos/theme/calamares/branding/blissos-logo.png → waydroid/theme/calamares/branding/waydroid-logo.png} +0 -0
- package/addons/{blissos → waydroid}/theme/calamares/branding/welcome.png +0 -0
- package/addons/{blissos → waydroid}/theme/calamares/modules/partition.yml +0 -0
- package/addons/{guadalinex/theme/livecd/isolinux.theme.cfg → waydroid/theme/livecd/grub.theme.cfg} +9 -8
- package/addons/{debian → waydroid}/theme/livecd/isolinux.theme.cfg +1 -1
- package/addons/{blissos → waydroid}/theme/livecd/splash.png +0 -0
- package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.sh +1 -1
- package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.working.sh +1 -1
- package/conf/distros/jessie/krill/krill-modules/sources-yolk/sources-yolk.sh +1 -1
- package/conf/eggs.yaml +2 -2
- package/conf/exclude.list +10 -3
- package/lib/classes/daddy.js +6 -0
- package/lib/classes/distro.js +26 -1
- package/lib/classes/family/archlinux.js +2 -1
- package/lib/classes/incubation/incubator.js +5 -0
- package/lib/classes/krill_install.d.ts +52 -29
- package/lib/classes/krill_install.js +471 -199
- package/lib/classes/krill_prepare.d.ts +11 -3
- package/lib/classes/krill_prepare.js +41 -7
- package/lib/classes/ovary.d.ts +5 -14
- package/lib/classes/ovary.js +166 -179
- package/lib/classes/pacman.js +10 -4
- package/lib/classes/settings.js +1 -1
- package/lib/classes/users.d.ts +21 -0
- package/lib/classes/users.js +129 -0
- package/lib/classes/utils.d.ts +1 -1
- package/lib/classes/utils.js +1 -1
- package/lib/classes/xdg.js +21 -4
- package/lib/classes/yolk.js +2 -2
- package/lib/commands/analyze.d.ts +25 -0
- package/lib/commands/analyze.js +74 -0
- package/lib/commands/export/iso.js +1 -1
- package/lib/commands/install.d.ts +2 -0
- package/lib/commands/install.js +19 -3
- package/lib/commands/kill.js +1 -1
- package/lib/commands/produce.js +7 -2
- package/lib/commands/syncfrom.d.ts +37 -0
- package/lib/commands/syncfrom.js +156 -0
- package/lib/commands/syncto.d.ts +48 -0
- package/lib/commands/syncto.js +219 -0
- package/lib/commands/tools/yolk.js +1 -1
- package/lib/components/partitions.js +0 -1
- package/lib/interfaces/i-analyze.d.ts +13 -0
- package/lib/interfaces/i-analyze.js +18 -0
- package/lib/interfaces/i-devices.d.ts +1 -0
- package/lib/lib/cli-autologin.js +8 -3
- package/lib/lib/get_password.js +1 -0
- package/lib/lib/select_installation_mode.js +1 -1
- package/manpages/doc/man/eggs.html +567 -0
- package/manpages/doc/man/eggs.roll.gz +0 -0
- package/oclif.manifest.json +1 -1
- package/package.json +21 -20
- package/scripts/_eggs +276 -0
- package/scripts/eggs.bash +5 -2
- package/scripts/mom-cli.sh +6 -5
- package/scripts/{not-used/pve-live.sh → pve-live.sh} +0 -0
- package/addons/blissos/theme/livecd/README.md +0 -23
- package/addons/blissos/theme/livecd/grub.template.cfg +0 -34
- package/addons/blissos/theme/livecd/grub.theme.cfg +0 -46
- package/addons/blissos/theme/livecd/isolinux.template.cfg +0 -29
- package/addons/blissos/theme/livecd/isolinux.theme.cfg +0 -45
- package/addons/debian/theme/README.md +0 -23
- package/addons/debian/theme/applications/install-debian.desktop +0 -13
- package/addons/debian/theme/artwork/install-debian.png +0 -0
- package/addons/debian/theme/calamares/branding/branding.desc +0 -27
- package/addons/debian/theme/calamares/branding/debian-logo.png +0 -0
- package/addons/debian/theme/calamares/branding/show.qml +0 -51
- package/addons/debian/theme/calamares/branding/slide1.png +0 -0
- package/addons/debian/theme/calamares/branding/welcome.png +0 -0
- package/addons/debian/theme/calamares/modules/partition.yml +0 -233
- package/addons/debian/theme/livecd/README.md +0 -23
- package/addons/debian/theme/livecd/grub.template.cfg +0 -34
- package/addons/debian/theme/livecd/grub.theme.cfg +0 -46
- package/addons/debian/theme/livecd/isolinux.template.cfg +0 -30
- package/addons/debian/theme/livecd/splash.png +0 -0
- package/addons/deblinux/theme/README.md +0 -23
- package/addons/deblinux/theme/applications/install-debian.desktop +0 -13
- package/addons/deblinux/theme/artwork/install-debian.png +0 -0
- package/addons/deblinux/theme/calamares/branding/branding.desc +0 -23
- package/addons/deblinux/theme/calamares/branding/deblinux-logo.png +0 -0
- package/addons/deblinux/theme/calamares/branding/show.qml +0 -46
- package/addons/deblinux/theme/calamares/branding/slide1.png +0 -0
- package/addons/deblinux/theme/calamares/branding/welcome.png +0 -0
- package/addons/deblinux/theme/calamares/modules/partition.yml +0 -233
- package/addons/eggs/theme/calamares/branding/4tation.png +0 -0
- package/addons/eggs/theme/livecd/grub.template.cfg +0 -34
- package/addons/eggs/theme/livecd/isolinux.template.cfg +0 -29
- package/addons/guadalinex/theme/README.md +0 -9
- package/addons/guadalinex/theme/applications/install-debian.desktop +0 -28
- package/addons/guadalinex/theme/artwork/install-debian.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/branding.desc +0 -1
- package/addons/guadalinex/theme/calamares/branding/guadalinex-logo.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/show.qml +0 -85
- package/addons/guadalinex/theme/calamares/branding/slide1.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/slide2.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/slide3.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/slide4.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/slide5.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/slide6.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/slide7.png +0 -0
- package/addons/guadalinex/theme/calamares/branding/welcome.png +0 -0
- package/addons/guadalinex/theme/calamares/modules/partition.yml +0 -233
- package/addons/guadalinex/theme/livecd/README.md +0 -23
- package/addons/guadalinex/theme/livecd/isolinux.template.cfg +0 -63
- package/addons/guadalinex/theme/livecd/splash.png +0 -0
- package/addons/neon/theme/livecd/README.md +0 -23
- package/addons/neon/theme/livecd/grub.template.cfg +0 -34
- package/addons/neon/theme/livecd/splash.pcx +0 -0
- package/addons/openos/theme/applications/Install-OpenOS-Neon_RLTS-Desktop.png +0 -0
- package/addons/openos/theme/applications/install-debian.desktop +0 -24
- package/addons/openos/theme/artwork/install-debian.png +0 -0
- package/addons/openos/theme/calamares/branding/branding.desc +0 -28
- package/addons/openos/theme/calamares/branding/openos-logo.png +0 -0
- package/addons/openos/theme/calamares/branding/show.qml +0 -203
- package/addons/openos/theme/calamares/branding/slide1.png +0 -0
- package/addons/openos/theme/calamares/branding/slide10.png +0 -0
- package/addons/openos/theme/calamares/branding/slide11.png +0 -0
- package/addons/openos/theme/calamares/branding/slide12.png +0 -0
- package/addons/openos/theme/calamares/branding/slide13.png +0 -0
- package/addons/openos/theme/calamares/branding/slide14.png +0 -0
- package/addons/openos/theme/calamares/branding/slide15.png +0 -0
- package/addons/openos/theme/calamares/branding/slide16.png +0 -0
- package/addons/openos/theme/calamares/branding/slide2.png +0 -0
- package/addons/openos/theme/calamares/branding/slide3.png +0 -0
- package/addons/openos/theme/calamares/branding/slide4.png +0 -0
- package/addons/openos/theme/calamares/branding/slide5.png +0 -0
- package/addons/openos/theme/calamares/branding/slide6.png +0 -0
- package/addons/openos/theme/calamares/branding/slide7.png +0 -0
- package/addons/openos/theme/calamares/branding/slide8.png +0 -0
- package/addons/openos/theme/calamares/branding/slide9.png +0 -0
- package/addons/openos/theme/calamares/branding/welcome.png +0 -0
- package/addons/openos/theme/calamares/branding.desc +0 -24
- package/addons/openos/theme/calamares/lang/calamares-default_ar.qm +0 -0
- package/addons/openos/theme/calamares/lang/calamares-default_en.qm +0 -0
- package/addons/openos/theme/calamares/lang/calamares-default_eo.qm +0 -0
- package/addons/openos/theme/calamares/lang/calamares-default_fr.qm +0 -0
- package/addons/openos/theme/calamares/lang/calamares-default_nl.qm +0 -0
- package/addons/openos/theme/calamares/modules/partition.yml +0 -233
- package/addons/openos/theme/livecd/README.md +0 -23
- package/addons/openos/theme/livecd/grub.template.cfg +0 -60
- package/addons/openos/theme/livecd/grub.theme.cfg +0 -42
- package/addons/openos/theme/livecd/isolinux.template.cfg +0 -62
- package/addons/openos/theme/livecd/isolinux.theme.cfg +0 -45
- package/addons/openos/theme/livecd/splash.png +0 -0
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
/**
|
|
5
|
+
* penguins-eggs-v9
|
|
6
|
+
* author: Piero Proietti
|
|
7
|
+
* email: piero.proietti@gmail.com
|
|
8
|
+
* license: MIT
|
|
9
|
+
*/
|
|
10
|
+
const core_1 = require("@oclif/core");
|
|
11
|
+
const fs = require("fs");
|
|
12
|
+
const path = require("path");
|
|
13
|
+
const utils_1 = (0, tslib_1.__importDefault)(require("../classes/utils"));
|
|
14
|
+
const utils_2 = require("../lib/utils");
|
|
15
|
+
// backup
|
|
16
|
+
const promises_1 = require("fs/promises");
|
|
17
|
+
const fs_1 = require("fs");
|
|
18
|
+
const users_1 = (0, tslib_1.__importDefault)(require("../classes/users"));
|
|
19
|
+
class Syncto extends core_1.Command {
|
|
20
|
+
constructor() {
|
|
21
|
+
super(...arguments);
|
|
22
|
+
this.luksName = 'luks-eggs-backup';
|
|
23
|
+
this.luksFile = `/run/live/medium/live/${this.luksName}`;
|
|
24
|
+
this.luksDevice = `/dev/mapper/${this.luksName}`;
|
|
25
|
+
this.luksMountpoint = '/tmp/eggs-backup';
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
*
|
|
29
|
+
*/
|
|
30
|
+
async run() {
|
|
31
|
+
const { flags } = await this.parse(Syncto);
|
|
32
|
+
let verbose = false;
|
|
33
|
+
if (flags.verbose) {
|
|
34
|
+
verbose = true;
|
|
35
|
+
}
|
|
36
|
+
let fileVolume = '';
|
|
37
|
+
if (flags.file) {
|
|
38
|
+
fileVolume = flags.file;
|
|
39
|
+
}
|
|
40
|
+
const echo = utils_1.default.setEcho(verbose);
|
|
41
|
+
if (utils_1.default.isRoot(this.id)) {
|
|
42
|
+
/**
|
|
43
|
+
* restore con file
|
|
44
|
+
*/
|
|
45
|
+
if (fileVolume === '') {
|
|
46
|
+
fileVolume = '/tmp/luks-eggs-backup';
|
|
47
|
+
}
|
|
48
|
+
this.luksName = path.basename(fileVolume);
|
|
49
|
+
this.luksFile = fileVolume;
|
|
50
|
+
this.luksDevice = `/dev/mapper/${this.luksName}`;
|
|
51
|
+
this.luksMountpoint = '/tmp/eggs-backup';
|
|
52
|
+
if (!fs.existsSync(fileVolume)) {
|
|
53
|
+
await this.luksCreate(verbose);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
utils_1.default.warning(`LUKS volume: ${this.luksFile} exist, don't need create`);
|
|
57
|
+
}
|
|
58
|
+
if (fs.existsSync(fileVolume)) {
|
|
59
|
+
await this.luksOpen(verbose);
|
|
60
|
+
await this.backup(verbose);
|
|
61
|
+
await this.luksClose(verbose);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
*
|
|
67
|
+
* @param verbose
|
|
68
|
+
*/
|
|
69
|
+
async backup(verbose = false) {
|
|
70
|
+
const echo = utils_1.default.setEcho(verbose);
|
|
71
|
+
if (verbose) {
|
|
72
|
+
utils_1.default.warning('backup');
|
|
73
|
+
}
|
|
74
|
+
const usersArray = await this.usersFill();
|
|
75
|
+
const cmds = [];
|
|
76
|
+
for (let i = 0; i < usersArray.length; i++) {
|
|
77
|
+
if (usersArray[i].saveIt) {
|
|
78
|
+
if (fs.existsSync(usersArray[i].home)) {
|
|
79
|
+
await (0, utils_2.exec)(`mkdir -p ${this.luksMountpoint}/ROOT${usersArray[i].home}`, echo);
|
|
80
|
+
const source = usersArray[i].home;
|
|
81
|
+
let dest = this.luksMountpoint + '/ROOT' + usersArray[i].home;
|
|
82
|
+
dest = dest.substring(0, dest.lastIndexOf('/'));
|
|
83
|
+
await (0, utils_2.exec)(`rsync --archive ${source} ${dest}`, echo);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
await (0, utils_2.exec)(`mkdir -p ${this.luksMountpoint}/etc`, echo);
|
|
88
|
+
await (0, utils_2.exec)(`cp /etc/passwd ${this.luksMountpoint}/etc`, echo);
|
|
89
|
+
await (0, utils_2.exec)(`cp /etc/shadow ${this.luksMountpoint}/etc`, echo);
|
|
90
|
+
await (0, utils_2.exec)(`cp /etc/group ${this.luksMountpoint}/etc`, echo);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* usersFill
|
|
94
|
+
*/
|
|
95
|
+
async usersFill() {
|
|
96
|
+
const usersArray = [];
|
|
97
|
+
await (0, promises_1.access)('/etc/passwd', fs_1.constants.R_OK | fs_1.constants.W_OK);
|
|
98
|
+
const passwd = fs.readFileSync('/etc/passwd', 'utf-8').split('\n');
|
|
99
|
+
for (let i = 0; i < passwd.length; i++) {
|
|
100
|
+
var line = passwd[i].split(':');
|
|
101
|
+
const users = new users_1.default(line[0], line[1], line[2], line[3], line[4], line[5], line[6]);
|
|
102
|
+
await users.getValues();
|
|
103
|
+
if (users.password !== undefined) {
|
|
104
|
+
usersArray.push(users);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
return usersArray;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
*
|
|
111
|
+
*/
|
|
112
|
+
async luksCreate(verbose = false) {
|
|
113
|
+
const echo = utils_1.default.setEcho(verbose);
|
|
114
|
+
const echoYes = utils_1.default.setEcho(true);
|
|
115
|
+
utils_1.default.warning(`Creating LUKS Volume on ${this.luksFile}`);
|
|
116
|
+
let totalSize = 0;
|
|
117
|
+
console.log(`I will extimate volume size from your private data:`);
|
|
118
|
+
const users = await this.usersFill();
|
|
119
|
+
for (let i = 0; i < users.length; i++) {
|
|
120
|
+
if (users[i].login !== 'root') {
|
|
121
|
+
if (users[i].saveIt) {
|
|
122
|
+
console.log(`user: ${users[i].login} \thome: ${users[i].home.padEnd(16)} \tsize: ${utils_1.default.formatBytes(users[i].size)} \tBytes: ${users[i].size} `);
|
|
123
|
+
totalSize += users[i].size;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
console.log(`Total\t\t\t\t\tSize: ${utils_1.default.formatBytes(totalSize)} \tBytes: ${totalSize}`);
|
|
128
|
+
/**
|
|
129
|
+
* after we get size, we can start building luks-volume
|
|
130
|
+
*/
|
|
131
|
+
const binaryHeaderSize = 4194304;
|
|
132
|
+
let volumeSize = totalSize * 1.2 + binaryHeaderSize;
|
|
133
|
+
// Deciding blockSize and blocks
|
|
134
|
+
let blockSize = 1024;
|
|
135
|
+
let blocks = Math.ceil(volumeSize / blockSize);
|
|
136
|
+
// We need a minimum size of 32 MB
|
|
137
|
+
let minimunSize = 134217728; // 128 * 1024 *1024
|
|
138
|
+
if (totalSize < minimunSize) {
|
|
139
|
+
}
|
|
140
|
+
if (blocks * blockSize < minimunSize) {
|
|
141
|
+
blocks = Math.ceil(minimunSize / blockSize);
|
|
142
|
+
}
|
|
143
|
+
utils_1.default.warning(`Creating an encrypted file ${this.luksFile} blocks=${blocks}, block size: ${blockSize}, size: ${utils_1.default.formatBytes(blocks * blockSize)}`);
|
|
144
|
+
await (0, utils_2.exec)(`dd if=/dev/zero of=${this.luksFile} bs=${blockSize} count=${blocks}`, echo);
|
|
145
|
+
// find first unused device
|
|
146
|
+
let findFirstUnusedDevice = await (0, utils_2.exec)(`losetup -f`, { echo: verbose, ignore: false, capture: true });
|
|
147
|
+
let firstUnusedDevice = '';
|
|
148
|
+
if (findFirstUnusedDevice.code !== 0) {
|
|
149
|
+
utils_1.default.warning(`Error: ${findFirstUnusedDevice.code} ${findFirstUnusedDevice.data}`);
|
|
150
|
+
process.exit(1);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
firstUnusedDevice = findFirstUnusedDevice.data.trim();
|
|
154
|
+
}
|
|
155
|
+
await (0, utils_2.exec)(`losetup ${firstUnusedDevice} ${this.luksFile}`, echo);
|
|
156
|
+
utils_1.default.warning('Enter a large string of random text below to setup the pre-encryption');
|
|
157
|
+
await (0, utils_2.exec)(`cryptsetup -y -v --type luks2 luksFormat ${this.luksFile}`, echoYes);
|
|
158
|
+
utils_1.default.warning(`Enter the desired passphrase for the encrypted ${this.luksName} below`);
|
|
159
|
+
let crytoSetup = await (0, utils_2.exec)(`cryptsetup luksOpen --type luks2 ${this.luksFile} ${this.luksName}`, echoYes);
|
|
160
|
+
if (crytoSetup.code !== 0) {
|
|
161
|
+
utils_1.default.warning(`Error: ${crytoSetup.code} ${crytoSetup.data}`);
|
|
162
|
+
process.exit(1);
|
|
163
|
+
}
|
|
164
|
+
utils_1.default.warning(`Formatting ${this.luksDevice} to ext2`);
|
|
165
|
+
let formatting = await (0, utils_2.exec)(`sudo mkfs.ext2 ${this.luksDevice}`, echo);
|
|
166
|
+
if (formatting.code !== 0) {
|
|
167
|
+
utils_1.default.warning(`Error: ${formatting.code} ${formatting.data}`);
|
|
168
|
+
process.exit(1);
|
|
169
|
+
}
|
|
170
|
+
// this.luksClose()
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
*
|
|
174
|
+
*/
|
|
175
|
+
async luksOpen(verbose = false) {
|
|
176
|
+
const echo = utils_1.default.setEcho(verbose);
|
|
177
|
+
const echoYes = utils_1.default.setEcho(true); // echoYes serve solo per cryptsetup luksOpen
|
|
178
|
+
if (!fs.existsSync(this.luksDevice)) {
|
|
179
|
+
utils_1.default.warning(`LUKS open volume: ${this.luksName}`);
|
|
180
|
+
await (0, utils_2.exec)(`cryptsetup luksOpen --type luks2 ${this.luksFile} ${this.luksName}`, echoYes);
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
utils_1.default.warning(`LUKS volume: ${this.luksName} already open`);
|
|
184
|
+
}
|
|
185
|
+
if (!fs.existsSync(this.luksMountpoint)) {
|
|
186
|
+
await (0, utils_2.exec)(`mkdir -p ${this.luksMountpoint}`, echo);
|
|
187
|
+
}
|
|
188
|
+
if (!utils_1.default.isMountpoint(this.luksMountpoint)) {
|
|
189
|
+
utils_1.default.warning(`mount volume: ${this.luksDevice} on ${this.luksMountpoint}`);
|
|
190
|
+
await (0, utils_2.exec)(`mount ${this.luksDevice} ${this.luksMountpoint}`, echo);
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
utils_1.default.warning(`mount volume: ${this.luksDevice} already mounted on ${this.luksMountpoint}`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
*
|
|
198
|
+
*/
|
|
199
|
+
async luksClose(verbose = false) {
|
|
200
|
+
const echo = utils_1.default.setEcho(verbose);
|
|
201
|
+
if (utils_1.default.isMountpoint(this.luksMountpoint)) {
|
|
202
|
+
await (0, utils_2.exec)(`umount ${this.luksMountpoint}`, echo);
|
|
203
|
+
}
|
|
204
|
+
if (fs.existsSync(this.luksDevice)) {
|
|
205
|
+
utils_1.default.warning(`LUKS close volume: ${this.luksName}`);
|
|
206
|
+
await (0, utils_2.exec)(`cryptsetup luksClose ${this.luksName}`, echo);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
exports.default = Syncto;
|
|
211
|
+
Syncto.description = 'Backup users, server and datas to luks-eggs-backup';
|
|
212
|
+
Syncto.flags = {
|
|
213
|
+
krill: core_1.Flags.boolean({ char: 'k', description: 'krill' }),
|
|
214
|
+
file: core_1.Flags.string({ char: 'f', description: "file LUKS volume encrypted" }),
|
|
215
|
+
help: core_1.Flags.help({ char: 'h' }),
|
|
216
|
+
verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' })
|
|
217
|
+
};
|
|
218
|
+
Syncto.aliases = ['backup'];
|
|
219
|
+
Syncto.examples = ['$ sudo eggs restore'];
|
|
@@ -57,7 +57,6 @@ function Partitions({ installationDevice, installationMode, filesystemType, user
|
|
|
57
57
|
react_1.default.createElement(ink_1.Box, null,
|
|
58
58
|
react_1.default.createElement(ink_1.Text, null, "BIOS: "),
|
|
59
59
|
react_1.default.createElement(ink_1.Text, { color: "cyan" }, bios)),
|
|
60
|
-
react_1.default.createElement(ink_1.Newline, null),
|
|
61
60
|
react_1.default.createElement(ink_1.Box, null,
|
|
62
61
|
react_1.default.createElement(ink_1.Text, null, "Installation device: "),
|
|
63
62
|
react_1.default.createElement(ink_1.Text, { color: "cyan" }, installationDevice)),
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
/**
|
|
4
|
+
* Al momento
|
|
5
|
+
*/
|
|
6
|
+
class IAnalyze {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.login = '';
|
|
9
|
+
this.password = '';
|
|
10
|
+
this.uid = '';
|
|
11
|
+
this.gid = '';
|
|
12
|
+
this.gecos = '';
|
|
13
|
+
this.home = '';
|
|
14
|
+
this.shell = '';
|
|
15
|
+
this.size = 0;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
exports.default = IAnalyze;
|
package/lib/lib/cli-autologin.js
CHANGED
|
@@ -7,7 +7,9 @@ const fs = require("fs");
|
|
|
7
7
|
const path = require("path");
|
|
8
8
|
const utils_1 = (0, tslib_1.__importDefault)(require("../classes/utils"));
|
|
9
9
|
const pacman_1 = (0, tslib_1.__importDefault)(require("../classes/pacman"));
|
|
10
|
-
const
|
|
10
|
+
const chalk_1 = (0, tslib_1.__importDefault)(require("chalk"));
|
|
11
|
+
// libraries
|
|
12
|
+
const utils_2 = require("../lib/utils");
|
|
11
13
|
// Comando per avviare ubiquity: sudo --preserve-env DBUS_SESSION_BUS_ADDRESS, XDG_RUNTIME sh -c 'calamares'
|
|
12
14
|
/**
|
|
13
15
|
*
|
|
@@ -117,10 +119,13 @@ async function addMotd(distro, version, user, userPasswd, rootPasswd, chroot = '
|
|
|
117
119
|
installer = 'startxfce4 to run GUI and launch calamares, or from terminal sudo eggs install -c';
|
|
118
120
|
}
|
|
119
121
|
}
|
|
122
|
+
if (!fs.existsSync(fileMotd)) {
|
|
123
|
+
await (0, utils_2.exec)(`touch ${fileMotd}`);
|
|
124
|
+
}
|
|
120
125
|
msgRemove(fileMotd);
|
|
121
126
|
let eggsMotd = fs.readFileSync(fileMotd, 'utf-8');
|
|
122
127
|
eggsMotd += startMessage + '\n';
|
|
123
|
-
eggsMotd += 'You are logged as: ' +
|
|
128
|
+
eggsMotd += 'You are logged as: ' + chalk_1.default.bold(user) + ' your password is: ' + chalk_1.default.bold(userPasswd) + ', root password: ' + chalk_1.default.bold(rootPasswd) + '\n';
|
|
124
129
|
eggsMotd += `to install the system: ${installer}\n`;
|
|
125
130
|
eggsMotd += stopMessage + '\n';
|
|
126
131
|
fs.writeFileSync(fileMotd, eggsMotd);
|
|
@@ -141,7 +146,7 @@ async function addIssue(distro, version, user, userPasswd, rootPasswd, chroot =
|
|
|
141
146
|
let eggsIssue = fs.readFileSync(fileIssue, 'utf-8');
|
|
142
147
|
eggsIssue += startMessage + '\n';
|
|
143
148
|
eggsIssue += `This is a ${distro}/${version} system created by penguin's eggs.\n`;
|
|
144
|
-
eggsIssue += 'You can login with user: ' +
|
|
149
|
+
eggsIssue += 'You can login with user: ' + chalk_1.default.bold(user) + ' and password: ' + chalk_1.default.bold(userPasswd) + ', root password: ' + chalk_1.default.bold(rootPasswd) + '\n';
|
|
145
150
|
eggsIssue += stopMessage + '\n';
|
|
146
151
|
fs.writeFileSync(fileIssue, eggsIssue);
|
|
147
152
|
}
|
package/lib/lib/get_password.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const inquirer = require("inquirer");
|
|
4
4
|
async function selectInstallationMode() {
|
|
5
|
-
const modes = ['standard', 'full-encrypted'];
|
|
5
|
+
const modes = ['standard', 'full-encrypted', 'lvm2'];
|
|
6
6
|
const questions = [
|
|
7
7
|
{
|
|
8
8
|
type: 'list',
|