penguins-eggs 9.5.22 → 9.5.24
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 +1 -1
- package/dist/classes/bleach.js +4 -3
- package/dist/classes/compressors.js +6 -1
- package/dist/classes/daddy.js +24 -63
- package/dist/classes/distro.js +4 -3
- package/dist/classes/family/archlinux.js +3 -1
- package/dist/classes/family/debian.js +2 -1
- package/dist/classes/family/fedora.js +2 -1
- package/dist/classes/family/suse.js +2 -1
- package/dist/classes/incubation/distros/bionic.js +4 -2
- package/dist/classes/incubation/distros/buster.js +7 -5
- package/dist/classes/incubation/distros/focal.js +7 -0
- package/dist/classes/incubation/distros/jessie.js +4 -5
- package/dist/classes/incubation/distros/rolling.js +5 -1
- package/dist/classes/initrd.js +4 -3
- package/dist/classes/keyboards.js +7 -0
- package/dist/classes/locales.js +7 -0
- package/dist/classes/n8.js +2 -1
- package/dist/classes/network.js +2 -1
- package/dist/classes/ovary.js +123 -85
- package/dist/classes/pacman.js +2 -1
- package/dist/classes/pve-live.js +2 -2
- package/dist/classes/pxe.js +6 -4
- package/dist/classes/settings.js +4 -56
- package/dist/classes/sources_list.js +4 -3
- package/dist/classes/systemctl.js +4 -3
- package/dist/classes/tailor.js +7 -6
- package/dist/classes/tools.js +2 -1
- package/dist/classes/users.js +7 -0
- package/dist/classes/utils.js +3 -2
- package/dist/classes/xdg.js +2 -1
- package/dist/classes/yolk.js +4 -3
- package/dist/commands/adapt.js +2 -1
- package/dist/commands/analyze.js +2 -1
- package/dist/commands/calamares.js +2 -1
- package/dist/commands/config.js +2 -1
- package/dist/commands/cuckoo.js +7 -3
- package/dist/commands/dad.js +2 -1
- package/dist/commands/export/deb.js +7 -0
- package/dist/commands/export/iso.js +5 -1
- package/dist/commands/install.js +4 -3
- package/dist/commands/kill.js +1 -0
- package/dist/commands/mom.js +2 -1
- package/dist/commands/produce.js +2 -1
- package/dist/commands/status.js +7 -3
- package/dist/commands/syncfrom.js +2 -1
- package/dist/commands/syncto.js +2 -1
- package/dist/commands/tools/clean.js +2 -1
- package/dist/commands/tools/ppa.js +2 -1
- package/dist/commands/tools/skel.js +2 -1
- package/dist/commands/tools/stat.js +7 -0
- package/dist/commands/tools/yolk.js +2 -1
- package/dist/commands/update.js +2 -1
- package/dist/commands/wardrobe/get.js +4 -3
- package/dist/commands/wardrobe/list.js +4 -3
- package/dist/commands/wardrobe/show.js +7 -3
- package/dist/commands/wardrobe/wear.js +2 -1
- package/dist/components/elements/information.js +7 -0
- package/dist/components/elements/steps.js +7 -0
- package/dist/components/elements/title.js +7 -0
- package/dist/components/finished.js +5 -1
- package/dist/components/install.js +5 -1
- package/dist/components/keyboard.js +5 -1
- package/dist/components/location.js +7 -3
- package/dist/components/network.js +5 -1
- package/dist/components/partitions.js +5 -1
- package/dist/components/summary.js +5 -1
- package/dist/components/users.js +7 -3
- package/dist/components/welcome.js +5 -1
- package/dist/interfaces/i-addons.js +0 -5
- package/dist/interfaces/i-analyze.js +5 -1
- package/dist/interfaces/i-calamares-partition.js +7 -0
- package/dist/interfaces/i-devices.js +0 -5
- package/dist/interfaces/i-distro.js +7 -0
- package/dist/interfaces/i-drive-list.js +5 -1
- package/dist/interfaces/i-eggs-config.js +7 -0
- package/dist/interfaces/i-exec.js +7 -0
- package/dist/interfaces/i-initrd.js +0 -5
- package/dist/interfaces/i-install.js +0 -5
- package/dist/interfaces/i-krill-config.js +7 -0
- package/dist/interfaces/i-packages.js +7 -0
- package/dist/interfaces/i-remix.js +7 -0
- package/dist/interfaces/i-settings.js +0 -4
- package/dist/interfaces/index.js +7 -0
- package/dist/krill/krill-prepare.js +9 -7
- package/dist/krill/krill-sequence.js +5 -4
- package/dist/krill/modules/add-user.js +5 -0
- package/dist/krill/modules/bootloader-config-ubuntu.js +0 -3
- package/dist/krill/modules/bootloader-config.js +5 -0
- package/dist/krill/modules/bootloader.js +5 -0
- package/dist/krill/modules/change-password.js +5 -0
- package/dist/krill/modules/del-live-user.js +5 -0
- package/dist/krill/modules/fstab.js +4 -4
- package/dist/krill/modules/grubcfg.js +4 -4
- package/dist/krill/modules/hostname.js +4 -4
- package/dist/krill/modules/initramfs-cfg.js +4 -4
- package/dist/krill/modules/initramfs.js +4 -4
- package/dist/krill/modules/locale-cfg.js +4 -4
- package/dist/krill/modules/locale.js +4 -4
- package/dist/krill/modules/m-keyboard.js +4 -4
- package/dist/krill/modules/m-timezone.js +4 -4
- package/dist/krill/modules/machine-id.js +4 -4
- package/dist/krill/modules/mkfs.js +4 -4
- package/dist/krill/modules/mount-fs.js +4 -4
- package/dist/krill/modules/mount-vfs.js +4 -4
- package/dist/krill/modules/network-cfg.js +4 -4
- package/dist/krill/modules/packages.js +4 -4
- package/dist/krill/modules/partition.js +4 -4
- package/dist/krill/modules/remove-installer-link.js +4 -4
- package/dist/krill/modules/umount.js +4 -4
- package/dist/krill/modules/unpackfs.js +4 -4
- package/dist/lib/cli-autologin.js +7 -0
- package/dist/lib/dependencies.js +9 -2
- package/dist/lib/get_address.js +7 -0
- package/dist/lib/get_dns.js +7 -0
- package/dist/lib/get_domain.js +7 -0
- package/dist/lib/get_gateway.js +7 -0
- package/dist/lib/get_hostname.js +7 -0
- package/dist/lib/get_netmask.js +7 -0
- package/dist/lib/get_password.js +7 -0
- package/dist/lib/get_root_password.js +7 -0
- package/dist/lib/get_userfullname.js +7 -0
- package/dist/lib/get_username.js +7 -0
- package/dist/lib/kill_me_softly.js +24 -11
- package/dist/lib/select_address_type.js +5 -1
- package/dist/lib/select_filesystem_type.js +7 -0
- package/dist/lib/select_installation_device.js +7 -0
- package/dist/lib/select_installation_mode.js +7 -0
- package/dist/lib/select_interface.js +5 -1
- package/dist/lib/select_keyboard_layout.js +3 -1
- package/dist/lib/select_keyboard_model.js +5 -3
- package/dist/lib/select_keyboard_option.js +3 -1
- package/dist/lib/select_keyboard_variant.js +3 -1
- package/dist/lib/select_languages.js +5 -1
- package/dist/lib/select_regions.js +7 -0
- package/dist/lib/select_user_swap_choice.js +7 -0
- package/dist/lib/select_zones.js +7 -0
- package/dist/lib/utils.js +5 -14
- package/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +3 -3
- package/package.json +1 -1
- package/scripts/mom.sh +1 -1
- package/scripts/addaur.sh +0 -32
package/dist/classes/ovary.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* penguins-eggs
|
|
3
|
+
* penguins-eggs
|
|
4
|
+
* class: ovary.ts
|
|
4
5
|
* author: Piero Proietti
|
|
5
|
-
*
|
|
6
|
-
*
|
|
6
|
+
* email: piero.proietti@gmail.com
|
|
7
|
+
* license: MIT
|
|
7
8
|
*/
|
|
8
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
10
|
const tslib_1 = require("tslib");
|
|
@@ -166,6 +167,7 @@ class Ovary {
|
|
|
166
167
|
* put reCreate = true in release
|
|
167
168
|
*/
|
|
168
169
|
const reCreate = true;
|
|
170
|
+
let mksquashfsCmd = '';
|
|
169
171
|
if (reCreate) { // start pre-clone
|
|
170
172
|
/**
|
|
171
173
|
* installer
|
|
@@ -213,7 +215,7 @@ class Ovary {
|
|
|
213
215
|
this.cliAutologin.addAutologin(this.settings.distro.distroId, this.settings.distro.codenameId, this.settings.config.user_opt, this.settings.config.user_opt_passwd, this.settings.config.root_passwd, this.settings.work_dir.merged);
|
|
214
216
|
}
|
|
215
217
|
await this.editLiveFs(clone, cryptedclone);
|
|
216
|
-
await this.makeSquashfs(scriptOnly);
|
|
218
|
+
mksquashfsCmd = await this.makeSquashfs(scriptOnly);
|
|
217
219
|
await this.uBindLiveFs(); // Lo smonto prima della fase di backup
|
|
218
220
|
}
|
|
219
221
|
if (cryptedclone) {
|
|
@@ -223,38 +225,37 @@ class Ovary {
|
|
|
223
225
|
utils_2.default.warning(`moving ${luksFile} in ${this.ovarium}iso/live`);
|
|
224
226
|
await (0, utils_1.exec)(`mv ${luksFile} ${this.ovarium}iso/live`, this.echo);
|
|
225
227
|
}
|
|
226
|
-
const
|
|
228
|
+
const mkIsofsCmd = this.xorrisoCommand(clone, cryptedclone).replace(/\s\s+/g, ' ');
|
|
229
|
+
const info = utils_2.default.getVolid(this.settings.remix.name);
|
|
230
|
+
this.makeDotDisk(info, mksquashfsCmd, mkIsofsCmd);
|
|
227
231
|
/**
|
|
228
232
|
* patch to emulate miso/archiso on archilinux
|
|
229
233
|
*/
|
|
230
234
|
if (this.familyId === 'archlinux') {
|
|
235
|
+
let pathName = `arch/x86_64/airootfs`;
|
|
236
|
+
let hashCmd = 'sha512sum';
|
|
237
|
+
let hashExt = '.sha512';
|
|
231
238
|
if (this.settings.distro.distroId === 'ManjaroLinux') {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
}
|
|
236
|
-
else if (this.settings.distro.distroId === 'Arch' ||
|
|
237
|
-
this.settings.distro.distroId === 'blendOS' ||
|
|
238
|
-
this.settings.distro.distroId === 'Garuda' ||
|
|
239
|
-
this.settings.distro.distroId === 'phyOS' ||
|
|
240
|
-
this.settings.distro.distroId === 'RebornOS' ||
|
|
241
|
-
this.settings.distro.distroId === 'EndeavourOS') {
|
|
242
|
-
await (0, utils_1.exec)(`mkdir ${this.settings.iso_work}arch/x86_64 -p`, this.echo);
|
|
243
|
-
await (0, utils_1.exec)(`ln ${this.settings.iso_work}live/filesystem.squashfs ${this.settings.iso_work}arch/x86_64/airootfs.sfs`, this.echo);
|
|
244
|
-
await (0, utils_1.exec)(`sha512sum ${this.settings.iso_work}live/filesystem.squashfs > ${this.settings.iso_work}arch/x86_64/airootfs.sha512`, this.echo);
|
|
239
|
+
pathName = `manjaro/x86_64/livefs`;
|
|
240
|
+
hashCmd = `md5sum`;
|
|
241
|
+
hashExt = '.md5';
|
|
245
242
|
}
|
|
243
|
+
await (0, utils_1.exec)(`mkdir ${this.settings.iso_work}${pathName}/x86_64 -p`, this.echo);
|
|
244
|
+
// await exec(`ln -s ${this.settings.iso_work}live/filesystem.squashfs ${this.settings.iso_work}${pathName}.sfs`, this.echo)
|
|
245
|
+
await (0, utils_1.exec)(`mv ${this.settings.iso_work}live/filesystem.squashfs ${this.settings.iso_work}${pathName}.sfs`, this.echo);
|
|
246
|
+
await (0, utils_1.exec)(`${hashCmd} ${this.settings.iso_work}${pathName}.sfs > ${this.settings.iso_work}${pathName}${hashExt}`, this.echo);
|
|
246
247
|
}
|
|
247
|
-
await this.makeIso(
|
|
248
|
+
await this.makeIso(mkIsofsCmd, scriptOnly);
|
|
248
249
|
}
|
|
249
250
|
}
|
|
250
251
|
/**
|
|
251
252
|
* Crea la struttura della workdir
|
|
252
253
|
*/
|
|
253
254
|
async liveCreateStructure() {
|
|
254
|
-
// efi-work iso memdiskDir sotto mountpoint
|
|
255
255
|
if (this.verbose) {
|
|
256
256
|
console.log('Ovary: liveCreateStructure');
|
|
257
257
|
}
|
|
258
|
+
// efi-work iso memdiskDir sotto mountpoint
|
|
258
259
|
utils_2.default.warning(`Creating egg in ${this.settings.config.snapshot_dir}`);
|
|
259
260
|
let cmd;
|
|
260
261
|
if (!fs_1.default.existsSync(this.settings.config.snapshot_dir)) {
|
|
@@ -285,11 +286,11 @@ class Ovary {
|
|
|
285
286
|
* Creo le directory di destinazione per boot, efi, isolinux e live
|
|
286
287
|
*/
|
|
287
288
|
if (!fs_1.default.existsSync(this.settings.iso_work)) {
|
|
288
|
-
cmd = `mkdir -p ${this.settings.iso_work}
|
|
289
|
+
cmd = `mkdir -p ${this.settings.iso_work}boot/grub/${utils_2.default.machineUEFI()}`;
|
|
289
290
|
this.tryCatch(cmd);
|
|
290
|
-
cmd = `mkdir -p ${this.settings.iso_work}
|
|
291
|
+
cmd = `mkdir -p ${this.settings.iso_work}efi/boot`;
|
|
291
292
|
this.tryCatch(cmd);
|
|
292
|
-
cmd = `mkdir -p ${this.settings.iso_work}
|
|
293
|
+
cmd = `mkdir -p ${this.settings.iso_work}isolinux`;
|
|
293
294
|
this.tryCatch(cmd);
|
|
294
295
|
cmd = `mkdir -p ${this.settings.iso_work}live`;
|
|
295
296
|
this.tryCatch(cmd);
|
|
@@ -300,6 +301,9 @@ class Ovary {
|
|
|
300
301
|
* @param cmd
|
|
301
302
|
*/
|
|
302
303
|
async tryCatch(cmd = '') {
|
|
304
|
+
if (this.verbose) {
|
|
305
|
+
console.log('Ovary: tryCatch');
|
|
306
|
+
}
|
|
303
307
|
try {
|
|
304
308
|
await (0, utils_1.exec)(cmd, this.echo);
|
|
305
309
|
}
|
|
@@ -320,7 +324,7 @@ class Ovary {
|
|
|
320
324
|
*/
|
|
321
325
|
async editLiveFs(clone = false, cryptedclone = false) {
|
|
322
326
|
if (this.verbose) {
|
|
323
|
-
console.log('
|
|
327
|
+
console.log('Ovary: editLiveFs');
|
|
324
328
|
}
|
|
325
329
|
/**
|
|
326
330
|
* /etc/penguins-eggs.d/is_clone file created on live
|
|
@@ -528,8 +532,7 @@ class Ovary {
|
|
|
528
532
|
*/
|
|
529
533
|
async syslinux() {
|
|
530
534
|
if (this.verbose) {
|
|
531
|
-
console.log('
|
|
532
|
-
console.log('syslinux path: ' + this.settings.distro.syslinuxPath);
|
|
535
|
+
console.log('Ovary: syslinux');
|
|
533
536
|
}
|
|
534
537
|
await (0, utils_1.exec)(`cp ${this.settings.distro.syslinuxPath}/vesamenu.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
|
|
535
538
|
await (0, utils_1.exec)(`cp ${this.settings.distro.syslinuxPath}/chain.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
|
|
@@ -549,7 +552,7 @@ class Ovary {
|
|
|
549
552
|
*/
|
|
550
553
|
async isolinux(theme = 'eggs') {
|
|
551
554
|
if (this.verbose) {
|
|
552
|
-
console.log('
|
|
555
|
+
console.log('Ovary: isolinux');
|
|
553
556
|
}
|
|
554
557
|
/**
|
|
555
558
|
* isolinux.bin
|
|
@@ -606,6 +609,9 @@ class Ovary {
|
|
|
606
609
|
* @returns kernelParameters
|
|
607
610
|
*/
|
|
608
611
|
kernelParameters() {
|
|
612
|
+
if (this.verbose) {
|
|
613
|
+
console.log('Ovary: kernelParameters');
|
|
614
|
+
}
|
|
609
615
|
const distroId = this.settings.distro.distroId;
|
|
610
616
|
let kp = `boot=live components locales=${process.env.LANG}`;
|
|
611
617
|
if (this.familyId === 'archlinux') {
|
|
@@ -630,11 +636,11 @@ class Ovary {
|
|
|
630
636
|
*/
|
|
631
637
|
async kernelCopy() {
|
|
632
638
|
if (this.verbose) {
|
|
633
|
-
console.log('
|
|
639
|
+
console.log('Ovary: kernelCopy');
|
|
634
640
|
}
|
|
635
641
|
let lackVmlinuzImage = false;
|
|
636
642
|
if (fs_1.default.existsSync(this.settings.kernel_image)) {
|
|
637
|
-
await (0, utils_1.exec)(`cp ${this.settings.kernel_image} ${this.settings.iso_work}
|
|
643
|
+
await (0, utils_1.exec)(`cp ${this.settings.kernel_image} ${this.settings.iso_work}live/`, this.echo);
|
|
638
644
|
}
|
|
639
645
|
else {
|
|
640
646
|
utils_2.default.error(`Cannot find ${this.settings.kernel_image}`);
|
|
@@ -650,9 +656,12 @@ class Ovary {
|
|
|
650
656
|
* necessita di echoYes
|
|
651
657
|
*/
|
|
652
658
|
async initrdCreate() {
|
|
659
|
+
if (this.verbose) {
|
|
660
|
+
console.log('Ovary: initrdCreate');
|
|
661
|
+
}
|
|
653
662
|
let initrdImg = utils_2.default.initrdImg();
|
|
654
663
|
initrdImg = initrdImg.slice(Math.max(0, initrdImg.lastIndexOf('/') + 1));
|
|
655
|
-
utils_2.default.warning(`Creating ${initrdImg} in ${this.settings.iso_work}
|
|
664
|
+
utils_2.default.warning(`Creating ${initrdImg} in ${this.settings.iso_work}live/`);
|
|
656
665
|
const distroId = this.settings.distro.distroId;
|
|
657
666
|
let fileConf = 'archlinux';
|
|
658
667
|
if (distroId === 'Arch' ||
|
|
@@ -673,13 +682,16 @@ class Ovary {
|
|
|
673
682
|
fileConf = distroId.toLowerCase();
|
|
674
683
|
}
|
|
675
684
|
let pathConf = node_path_1.default.resolve(__dirname, `../../mkinitcpio/${fileConf}/live.conf`);
|
|
676
|
-
await (0, utils_1.exec)(`mkinitcpio -c ${pathConf} -g ${this.settings.iso_work}
|
|
685
|
+
await (0, utils_1.exec)(`mkinitcpio -c ${pathConf} -g ${this.settings.iso_work}live/${initrdImg}`, utils_2.default.setEcho(true));
|
|
677
686
|
}
|
|
678
687
|
/**
|
|
679
688
|
* We must upgrade to initrdCreate for Debian/Ubuntu
|
|
680
689
|
* @returns
|
|
681
690
|
*/
|
|
682
691
|
async initrdCopy(verbose = false) {
|
|
692
|
+
if (this.verbose) {
|
|
693
|
+
console.log('Ovary: initrdCopy');
|
|
694
|
+
}
|
|
683
695
|
let isCrypted = false;
|
|
684
696
|
utils_2.default.warning('initrdCreate');
|
|
685
697
|
if (fs_1.default.existsSync('/etc/crypttab')) {
|
|
@@ -716,7 +728,7 @@ class Ovary {
|
|
|
716
728
|
*/
|
|
717
729
|
async makeSquashfs(scriptOnly = false) {
|
|
718
730
|
if (this.verbose) {
|
|
719
|
-
console.log('
|
|
731
|
+
console.log('Ovary: makeSquashfs');
|
|
720
732
|
}
|
|
721
733
|
/**
|
|
722
734
|
* exclude all the accurence of cryptdisks in rc0.d, etc
|
|
@@ -764,6 +776,7 @@ class Ovary {
|
|
|
764
776
|
process.exit();
|
|
765
777
|
}
|
|
766
778
|
}
|
|
779
|
+
return cmd;
|
|
767
780
|
}
|
|
768
781
|
/**
|
|
769
782
|
* Restituisce true per le direcory da montare con overlay
|
|
@@ -776,7 +789,10 @@ class Ovary {
|
|
|
776
789
|
*
|
|
777
790
|
* @param dir
|
|
778
791
|
*/
|
|
779
|
-
|
|
792
|
+
mergedAndOverlay(dir) {
|
|
793
|
+
if (this.verbose) {
|
|
794
|
+
console.log('Ovary: mergedAndOverlay');
|
|
795
|
+
}
|
|
780
796
|
const mountDirs = ['boot', 'etc', 'usr', 'var'];
|
|
781
797
|
let mountDir = '';
|
|
782
798
|
let overlay = false;
|
|
@@ -798,6 +814,9 @@ class Ovary {
|
|
|
798
814
|
* - copied: creazione directory e copia
|
|
799
815
|
*/
|
|
800
816
|
merged(dir) {
|
|
817
|
+
if (this.verbose) {
|
|
818
|
+
console.log('Ovary: merged');
|
|
819
|
+
}
|
|
801
820
|
let merged = true;
|
|
802
821
|
if (dir === 'home') {
|
|
803
822
|
merged = this.clone;
|
|
@@ -833,7 +852,7 @@ class Ovary {
|
|
|
833
852
|
*/
|
|
834
853
|
async bindLiveFs() {
|
|
835
854
|
if (this.verbose) {
|
|
836
|
-
console.log('
|
|
855
|
+
console.log('Ovary: bindLiveFs');
|
|
837
856
|
}
|
|
838
857
|
/**
|
|
839
858
|
* Attenzione:
|
|
@@ -855,7 +874,7 @@ class Ovary {
|
|
|
855
874
|
if (dir !== 'boot') {
|
|
856
875
|
if (dir !== 'lost+found') {
|
|
857
876
|
cmd = `# /${dir} is a directory`;
|
|
858
|
-
if (this.
|
|
877
|
+
if (this.mergedAndOverlay(dir)) {
|
|
859
878
|
/**
|
|
860
879
|
* mergedAndOverlay creazione directory, overlay e mount rw
|
|
861
880
|
*/
|
|
@@ -921,9 +940,8 @@ class Ovary {
|
|
|
921
940
|
*/
|
|
922
941
|
async copyBoot() {
|
|
923
942
|
if (this.verbose) {
|
|
924
|
-
console.log('
|
|
943
|
+
console.log('Ovary: copyBoot');
|
|
925
944
|
}
|
|
926
|
-
console.log('ovary: copyBoot');
|
|
927
945
|
await rexec(`cp -r /boot ${this.settings.config.snapshot_mnt}filesystem.squashfs`, this.verbose);
|
|
928
946
|
}
|
|
929
947
|
/**
|
|
@@ -932,7 +950,7 @@ class Ovary {
|
|
|
932
950
|
*/
|
|
933
951
|
async uBindLiveFs() {
|
|
934
952
|
if (this.verbose) {
|
|
935
|
-
console.log('
|
|
953
|
+
console.log('Ovary: uBindLiveFs');
|
|
936
954
|
}
|
|
937
955
|
const cmds = [];
|
|
938
956
|
cmds.push('# NOTE: home, cdrom, dev, live, media, mnt, proc, run, sys and tmp', `# need just to be removed in ${this.settings.work_dir.merged}`);
|
|
@@ -946,7 +964,7 @@ class Ovary {
|
|
|
946
964
|
cmds.push('#############################################################');
|
|
947
965
|
if (n8_1.default.isDirectory(dirname)) {
|
|
948
966
|
cmds.push(`\n# directory: ${dirname}`);
|
|
949
|
-
if (this.
|
|
967
|
+
if (this.mergedAndOverlay(dirname)) {
|
|
950
968
|
cmds.push(`\n# ${dirname} has overlay`, `\n# First, umount it from ${this.settings.config.snapshot_dir}`);
|
|
951
969
|
cmds.push(await rexec(`umount ${this.settings.work_dir.merged}/${dirname}`, this.verbose), `\n# Second, umount it from ${this.settings.work_dir.lowerdir}`);
|
|
952
970
|
cmds.push(await rexec(`umount ${this.settings.work_dir.lowerdir}/${dirname}`, this.verbose));
|
|
@@ -983,6 +1001,9 @@ class Ovary {
|
|
|
983
1001
|
* bind dei virtual file system
|
|
984
1002
|
*/
|
|
985
1003
|
async bindVfs() {
|
|
1004
|
+
if (this.verbose) {
|
|
1005
|
+
console.log('Ovary: bindVfs');
|
|
1006
|
+
}
|
|
986
1007
|
const cmds = [];
|
|
987
1008
|
cmds.push(`mount -o bind /dev ${this.settings.work_dir.merged}/dev`, `mount -o bind /dev/pts ${this.settings.work_dir.merged}/dev/pts`, `mount -o bind /proc ${this.settings.work_dir.merged}/proc`, `mount -o bind /sys ${this.settings.work_dir.merged}/sys`, `mount -o bind /run ${this.settings.work_dir.merged}/run`);
|
|
988
1009
|
// Utils.writeXs(`${this.settings.config.snapshot_dir}bindvfs`, cmds)
|
|
@@ -993,6 +1014,9 @@ class Ovary {
|
|
|
993
1014
|
* @param verbose
|
|
994
1015
|
*/
|
|
995
1016
|
async ubindVfs() {
|
|
1017
|
+
if (this.verbose) {
|
|
1018
|
+
console.log('Ovary: ubindVfs');
|
|
1019
|
+
}
|
|
996
1020
|
const cmds = [];
|
|
997
1021
|
cmds.push(`umount ${this.settings.work_dir.merged}/dev/pts`, `umount ${this.settings.work_dir.merged}/dev`, `umount ${this.settings.work_dir.merged}/proc`, `umount ${this.settings.work_dir.merged}/run`, `umount ${this.settings.work_dir.merged}/sys`);
|
|
998
1022
|
// Utils.writeXs(`${this.settings.config.snapshot_dir}ubindvfs`, cmds)
|
|
@@ -1003,6 +1027,9 @@ class Ovary {
|
|
|
1003
1027
|
* @param verbose
|
|
1004
1028
|
*/
|
|
1005
1029
|
async cleanUsersAccounts() {
|
|
1030
|
+
if (this.verbose) {
|
|
1031
|
+
console.log('Ovary: cleanUsersAccounts');
|
|
1032
|
+
}
|
|
1006
1033
|
/**
|
|
1007
1034
|
* delete all user in chroot
|
|
1008
1035
|
*/
|
|
@@ -1026,13 +1053,14 @@ class Ovary {
|
|
|
1026
1053
|
*/
|
|
1027
1054
|
async createUserLive() {
|
|
1028
1055
|
if (this.verbose) {
|
|
1029
|
-
console.log('
|
|
1056
|
+
console.log('Ovary: createUserLive');
|
|
1030
1057
|
}
|
|
1031
1058
|
const cmds = [];
|
|
1032
1059
|
cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' rm /home/' + this.settings.config.user_opt + ' -rf', this.verbose));
|
|
1033
1060
|
cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' mkdir /home/' + this.settings.config.user_opt, this.verbose));
|
|
1034
1061
|
cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' useradd ' + this.settings.config.user_opt + ' --home-dir /home/' + this.settings.config.user_opt + ' --shell /bin/bash ', this.verbose));
|
|
1035
1062
|
cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' cp /etc/skel/. /home/' + this.settings.config.user_opt + ' -R', this.verbose));
|
|
1063
|
+
// da problemi con il mount sshfs
|
|
1036
1064
|
cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' chown ' + this.settings.config.user_opt + ':users' + ' /home/' + this.settings.config.user_opt + ' -R', this.verbose));
|
|
1037
1065
|
// live password
|
|
1038
1066
|
cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' echo ' + this.settings.config.user_opt + ':' + this.settings.config.user_opt_passwd + '| chroot ' + this.settings.work_dir.merged + ' chpasswd', this.verbose));
|
|
@@ -1067,7 +1095,7 @@ class Ovary {
|
|
|
1067
1095
|
*/
|
|
1068
1096
|
async createXdgAutostart(theme = 'eggs', myAddons, noicons = false) {
|
|
1069
1097
|
if (this.verbose) {
|
|
1070
|
-
console.log('
|
|
1098
|
+
console.log('Ovary: createXdgAutostart');
|
|
1071
1099
|
}
|
|
1072
1100
|
const pathHomeLive = `/home/${this.settings.config.user_opt}`;
|
|
1073
1101
|
if (noicons) { // NO icone
|
|
@@ -1204,6 +1232,9 @@ class Ovary {
|
|
|
1204
1232
|
* @param icon
|
|
1205
1233
|
*/
|
|
1206
1234
|
lxdeLink(file, name, icon) {
|
|
1235
|
+
if (this.verbose) {
|
|
1236
|
+
console.log('Ovary: lxdeLink');
|
|
1237
|
+
}
|
|
1207
1238
|
const lnk = `lnk-${file}`;
|
|
1208
1239
|
let text = '';
|
|
1209
1240
|
text += `echo "[Desktop Entry]" >$DESKTOP/${lnk}\n`;
|
|
@@ -1219,6 +1250,9 @@ class Ovary {
|
|
|
1219
1250
|
* @param exclusion {atring} path to add/remove
|
|
1220
1251
|
*/
|
|
1221
1252
|
addRemoveExclusion(add, exclusion) {
|
|
1253
|
+
if (this.verbose) {
|
|
1254
|
+
console.log('Ovary: addRemoveExclusion');
|
|
1255
|
+
}
|
|
1222
1256
|
if (exclusion.startsWith('/')) {
|
|
1223
1257
|
exclusion = exclusion.slice(1); // remove / initial Non compatible with rsync
|
|
1224
1258
|
}
|
|
@@ -1239,11 +1273,8 @@ class Ovary {
|
|
|
1239
1273
|
// #######################################################################################
|
|
1240
1274
|
async makeEfi(theme = 'eggs') {
|
|
1241
1275
|
if (this.verbose) {
|
|
1242
|
-
console.log('
|
|
1276
|
+
console.log('Ovary: makeEfi');
|
|
1243
1277
|
}
|
|
1244
|
-
// const memdiskDir = this.settings.work_dir.path + 'memdiskDir'
|
|
1245
|
-
// const efiWorkDir = this.settings.efi_work
|
|
1246
|
-
// const isoDir = this.settings.iso_work
|
|
1247
1278
|
const memdiskDir = this.settings.config.snapshot_mnt + 'memdiskDir';
|
|
1248
1279
|
const efiWorkDir = this.settings.efi_work;
|
|
1249
1280
|
const isoDir = this.settings.iso_work;
|
|
@@ -1283,15 +1314,15 @@ class Ovary {
|
|
|
1283
1314
|
}
|
|
1284
1315
|
utils_2.default.warning('creating efiWordDir: ' + efiWorkDir);
|
|
1285
1316
|
await (0, utils_1.exec)(`mkdir ${efiWorkDir}`, this.echo);
|
|
1286
|
-
await (0, utils_1.exec)(`mkdir ${efiWorkDir}
|
|
1287
|
-
await (0, utils_1.exec)(`mkdir ${efiWorkDir}
|
|
1288
|
-
await (0, utils_1.exec)(`mkdir ${efiWorkDir}
|
|
1289
|
-
await (0, utils_1.exec)(`mkdir ${efiWorkDir}
|
|
1290
|
-
await (0, utils_1.exec)(`mkdir ${efiWorkDir}
|
|
1317
|
+
await (0, utils_1.exec)(`mkdir ${efiWorkDir}boot`, this.echo);
|
|
1318
|
+
await (0, utils_1.exec)(`mkdir ${efiWorkDir}boot/grub`, this.echo);
|
|
1319
|
+
await (0, utils_1.exec)(`mkdir ${efiWorkDir}boot/grub/${utils_2.default.machineUEFI()}`, this.echo);
|
|
1320
|
+
await (0, utils_1.exec)(`mkdir ${efiWorkDir}efi`, this.echo);
|
|
1321
|
+
await (0, utils_1.exec)(`mkdir ${efiWorkDir}efi/boot`, this.echo);
|
|
1291
1322
|
/**
|
|
1292
1323
|
* copy splash to efiWorkDir
|
|
1293
1324
|
*/
|
|
1294
|
-
const splashDest = `${efiWorkDir}
|
|
1325
|
+
const splashDest = `${efiWorkDir}boot/grub/splash.png`;
|
|
1295
1326
|
let splashSrc = node_path_1.default.resolve(__dirname, `../../addons/${theme}/theme/livecd/splash.png`);
|
|
1296
1327
|
if (this.theme.includes('/')) {
|
|
1297
1328
|
splashSrc = `${theme}/theme/livecd/splash.png`;
|
|
@@ -1304,7 +1335,7 @@ class Ovary {
|
|
|
1304
1335
|
/**
|
|
1305
1336
|
* copy theme
|
|
1306
1337
|
*/
|
|
1307
|
-
const themeDest = `${efiWorkDir}
|
|
1338
|
+
const themeDest = `${efiWorkDir}boot/grub/theme.cfg`;
|
|
1308
1339
|
let themeSrc = node_path_1.default.resolve(__dirname, `../../addons/${theme}/theme/livecd/grub.theme.cfg`);
|
|
1309
1340
|
if (this.theme.includes('/')) {
|
|
1310
1341
|
themeSrc = `${theme}/theme/livecd/grub.theme.cfg`;
|
|
@@ -1320,10 +1351,10 @@ class Ovary {
|
|
|
1320
1351
|
// for i in $(ls /usr/lib/grub/x86_64-efi |grep part_|grep \.mod|sed 's/.mod//'); do echo "insmod $i" >> boot/grub/x86_64-efi/grub.cfg; done
|
|
1321
1352
|
let cmd = `for i in $(ls /usr/lib/grub/${utils_2.default.machineUEFI()}|grep part_|grep \.mod|sed 's/.mod//'); do echo "insmod $i" >> ${efiWorkDir}boot/grub/${utils_2.default.machineUEFI()}/grub.cfg; done`;
|
|
1322
1353
|
await (0, utils_1.exec)(cmd, this.echo);
|
|
1323
|
-
//
|
|
1324
|
-
cmd = `for i in efi_gop efi_uga ieee1275_fb vbe vga video_bochs video_cirrus jpeg png gfxterm ; do echo "insmod $i" >> ${efiWorkDir}
|
|
1354
|
+
//cmd = `for i in efi_gop efi_uga ieee1275_fb vbe vga video_bochs video_cirrus jpeg png gfxterm ; do echo "insmod $i" >> ${efiWorkDir}boot/grub/${Utils.machineUEFI()}/grub.cfg ; done`
|
|
1355
|
+
cmd = `for i in efi_gop efi_uga ieee1275_fb vbe vga video_bochs video_cirrus jpeg png gfxterm ; do echo "insmod $i" >> ${efiWorkDir}boot/grub/${utils_2.default.machineUEFI()}/grub.cfg ; done`;
|
|
1325
1356
|
await (0, utils_1.exec)(cmd, this.echo);
|
|
1326
|
-
await (0, utils_1.exec)(`echo "source /boot/grub/grub.cfg" >> ${efiWorkDir}
|
|
1357
|
+
await (0, utils_1.exec)(`echo "source /boot/grub/grub.cfg" >> ${efiWorkDir}boot/grub/${utils_2.default.machineUEFI()}/grub.cfg`, this.echo);
|
|
1327
1358
|
/**
|
|
1328
1359
|
* andiamo in memdiskDir
|
|
1329
1360
|
*/
|
|
@@ -1346,41 +1377,41 @@ class Ovary {
|
|
|
1346
1377
|
await (0, utils_1.exec)(`${grubName}-mkimage -O "${utils_2.default.machineUEFI()}" -m "${memdiskDir}/memdisk" -o "${memdiskDir}/bootx64.efi" -p '(memdisk)/boot/grub' search iso9660 configfile normal memdisk tar cat part_msdos part_gpt fat ext2 ntfs ntfscomp hfsplus chain boot linux`, this.echo);
|
|
1347
1378
|
// popd torna in efiWorkDir
|
|
1348
1379
|
// copy the grub image to efi/boot (to go later in the device's root)
|
|
1349
|
-
await (0, utils_1.exec)(`cp ${memdiskDir}/bootx64.efi ${efiWorkDir}
|
|
1380
|
+
await (0, utils_1.exec)(`cp ${memdiskDir}/bootx64.efi ${efiWorkDir}efi/boot`, this.echo);
|
|
1350
1381
|
// #######################
|
|
1351
1382
|
// Do the boot image "boot/grub/efiboot.img"
|
|
1352
|
-
await (0, utils_1.exec)(`dd if=/dev/zero of=${efiWorkDir}
|
|
1353
|
-
await (0, utils_1.exec)(`/sbin/mkdosfs -F 12 ${efiWorkDir}
|
|
1354
|
-
await (0, utils_1.exec)(`mkdir ${efiWorkDir}
|
|
1355
|
-
await (0, utils_1.exec)(`mount -o loop ${efiWorkDir}
|
|
1356
|
-
await (0, utils_1.exec)(`mkdir ${efiWorkDir}
|
|
1357
|
-
await (0, utils_1.exec)(`mkdir ${efiWorkDir}
|
|
1383
|
+
await (0, utils_1.exec)(`dd if=/dev/zero of=${efiWorkDir}boot/grub/efiboot.img bs=1K count=1440`, this.echo);
|
|
1384
|
+
await (0, utils_1.exec)(`/sbin/mkdosfs -F 12 ${efiWorkDir}boot/grub/efiboot.img`, this.echo);
|
|
1385
|
+
await (0, utils_1.exec)(`mkdir ${efiWorkDir}img-mnt`, this.echo);
|
|
1386
|
+
await (0, utils_1.exec)(`mount -o loop ${efiWorkDir}boot/grub/efiboot.img ${efiWorkDir}img-mnt`, this.echo);
|
|
1387
|
+
await (0, utils_1.exec)(`mkdir ${efiWorkDir}img-mnt/efi`, this.echo);
|
|
1388
|
+
await (0, utils_1.exec)(`mkdir ${efiWorkDir}img-mnt/efi/boot`, this.echo);
|
|
1358
1389
|
// era cp -r
|
|
1359
|
-
await (0, utils_1.exec)(`cp ${memdiskDir}/bootx64.efi ${efiWorkDir}
|
|
1390
|
+
await (0, utils_1.exec)(`cp ${memdiskDir}/bootx64.efi ${efiWorkDir}img-mnt/efi/boot`, this.echo);
|
|
1360
1391
|
// #######################
|
|
1361
1392
|
// copy modules and font
|
|
1362
|
-
await (0, utils_1.exec)(`cp -r /usr/lib/grub/${utils_2.default.machineUEFI()}/* ${efiWorkDir}
|
|
1393
|
+
await (0, utils_1.exec)(`cp -r /usr/lib/grub/${utils_2.default.machineUEFI()}/* ${efiWorkDir}boot/grub/${utils_2.default.machineUEFI()}/`, this.echo);
|
|
1363
1394
|
// if this doesn't work try another font from the same place (grub's default, unicode.pf2, is much larger)
|
|
1364
1395
|
// Either of these will work, and they look the same to me. Unicode seems to work with qemu. -fsr
|
|
1365
1396
|
if (fs_1.default.existsSync('/usr/share/grub/font.pf2')) {
|
|
1366
|
-
await (0, utils_1.exec)(`cp /usr/share/grub/font.pf2 ${efiWorkDir}
|
|
1397
|
+
await (0, utils_1.exec)(`cp /usr/share/grub/font.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
|
|
1367
1398
|
}
|
|
1368
1399
|
else if (fs_1.default.existsSync('/usr/share/grub/unicode.pf2')) {
|
|
1369
|
-
await (0, utils_1.exec)(`cp /usr/share/grub/unicode.pf2 ${efiWorkDir}
|
|
1400
|
+
await (0, utils_1.exec)(`cp /usr/share/grub/unicode.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
|
|
1370
1401
|
}
|
|
1371
1402
|
else if (fs_1.default.existsSync('/usr/share/grub/ascii.pf2')) {
|
|
1372
|
-
await (0, utils_1.exec)(`cp /usr/share/grub/ascii.pf2 ${efiWorkDir}
|
|
1403
|
+
await (0, utils_1.exec)(`cp /usr/share/grub/ascii.pf2 ${efiWorkDir}boot/grub/font.pf2`, this.echo);
|
|
1373
1404
|
}
|
|
1374
1405
|
// doesn't need to be root-owned
|
|
1375
1406
|
// chown -R 1000:1000 $(pwd) 2>/dev/null
|
|
1376
1407
|
// Cleanup efi temps
|
|
1377
|
-
await (0, utils_1.exec)(`umount ${efiWorkDir}
|
|
1378
|
-
await (0, utils_1.exec)(`rmdir ${efiWorkDir}
|
|
1408
|
+
await (0, utils_1.exec)(`umount ${efiWorkDir}img-mnt`, this.echo);
|
|
1409
|
+
await (0, utils_1.exec)(`rmdir ${efiWorkDir}img-mnt`, this.echo);
|
|
1379
1410
|
await (0, utils_1.exec)(`rm ${memdiskDir}/img-mnt -rf`, this.echo);
|
|
1380
1411
|
// popd
|
|
1381
1412
|
// Copy efi files to iso
|
|
1382
|
-
await (0, utils_1.exec)(`rsync -avx ${efiWorkDir}
|
|
1383
|
-
await (0, utils_1.exec)(`rsync -avx ${efiWorkDir}
|
|
1413
|
+
await (0, utils_1.exec)(`rsync -avx ${efiWorkDir}boot ${isoDir}/`, this.echo);
|
|
1414
|
+
await (0, utils_1.exec)(`rsync -avx ${efiWorkDir}efi ${isoDir}/`, this.echo);
|
|
1384
1415
|
// Do the main grub.cfg (which gets loaded last):
|
|
1385
1416
|
// grub.theme.cfg
|
|
1386
1417
|
let grubThemeSrc = node_path_1.default.resolve(__dirname, `../../addons/${theme}/theme/livecd/grub.theme.cfg`);
|
|
@@ -1420,26 +1451,24 @@ class Ovary {
|
|
|
1420
1451
|
// #######################################################################################
|
|
1421
1452
|
/**
|
|
1422
1453
|
* makeDotDisk
|
|
1423
|
-
* create .disk/info, .disk/mksquashfs, .disk/mkiso
|
|
1424
|
-
* return mkiso
|
|
1425
1454
|
*/
|
|
1426
|
-
makeDotDisk(
|
|
1427
|
-
|
|
1455
|
+
makeDotDisk(info = '', mksquashfs = '', mkisofs = '') {
|
|
1456
|
+
if (this.verbose) {
|
|
1457
|
+
console.log('Ovary: makeDotDisk');
|
|
1458
|
+
}
|
|
1459
|
+
const dotDisk = this.settings.iso_work + '.disk';
|
|
1428
1460
|
if (fs_1.default.existsSync(dotDisk)) {
|
|
1429
1461
|
shelljs_1.default.rm('-rf', dotDisk);
|
|
1430
1462
|
}
|
|
1431
1463
|
shelljs_1.default.mkdir('-p', dotDisk);
|
|
1464
|
+
let text = `# Created at: ${utils_2.default.formatDate(new Date())}\n`;
|
|
1465
|
+
text += `# penguins_eggs v. ${utils_2.default.getPackageVersion()}\n`;
|
|
1432
1466
|
// .disk/info
|
|
1433
|
-
|
|
1434
|
-
let content = utils_2.default.getVolid(this.settings.remix.name);
|
|
1435
|
-
fs_1.default.writeFileSync(file, content, 'utf-8');
|
|
1467
|
+
fs_1.default.writeFileSync(dotDisk + '/info', info, 'utf-8');
|
|
1436
1468
|
// .disk/mksquashfs
|
|
1437
|
-
|
|
1469
|
+
fs_1.default.writeFileSync(dotDisk + '/mksquashfs', text + mksquashfs, 'utf-8');
|
|
1438
1470
|
// .disk/mkisofs
|
|
1439
|
-
|
|
1440
|
-
file = dotDisk + '/mkisofs';
|
|
1441
|
-
fs_1.default.writeFileSync(file, content, 'utf-8');
|
|
1442
|
-
return content;
|
|
1471
|
+
fs_1.default.writeFileSync(dotDisk + '/mkisofs', text + mkisofs, 'utf-8');
|
|
1443
1472
|
}
|
|
1444
1473
|
/**
|
|
1445
1474
|
*
|
|
@@ -1447,6 +1476,9 @@ class Ovary {
|
|
|
1447
1476
|
* @returns cmd 4 mkiso
|
|
1448
1477
|
*/
|
|
1449
1478
|
xorrisoCommand(clone = false, cryptedclone = false) {
|
|
1479
|
+
if (this.verbose) {
|
|
1480
|
+
console.log('Ovary: xorrisoCommand');
|
|
1481
|
+
}
|
|
1450
1482
|
const volid = utils_2.default.getVolid(this.settings.remix.name);
|
|
1451
1483
|
let prefix = this.settings.config.snapshot_prefix;
|
|
1452
1484
|
if (prefix.endsWith('rolling-')) {
|
|
@@ -1600,7 +1632,7 @@ class Ovary {
|
|
|
1600
1632
|
async makeIso(cmd, scriptOnly = false) {
|
|
1601
1633
|
// echo = { echo: true, ignore: false }
|
|
1602
1634
|
if (this.verbose) {
|
|
1603
|
-
console.log('
|
|
1635
|
+
console.log('Ovary: makeIso');
|
|
1604
1636
|
}
|
|
1605
1637
|
//Utils.writeX(`${this.settings.config.snapshot_dir}mkisofs`, cmd)
|
|
1606
1638
|
utils_2.default.writeX(`${this.settings.work_dir.ovarium}mkisofs`, cmd);
|
|
@@ -1644,6 +1676,9 @@ class Ovary {
|
|
|
1644
1676
|
* fill
|
|
1645
1677
|
*/
|
|
1646
1678
|
async usersFill() {
|
|
1679
|
+
if (this.verbose) {
|
|
1680
|
+
console.log('Ovary: usersFill');
|
|
1681
|
+
}
|
|
1647
1682
|
const usersArray = [];
|
|
1648
1683
|
await (0, promises_1.access)('/etc/passwd', fs_2.constants.R_OK | fs_2.constants.W_OK);
|
|
1649
1684
|
const passwd = fs_1.default.readFileSync('/etc/passwd', 'utf-8').split('\n');
|
|
@@ -1665,7 +1700,7 @@ exports.default = Ovary;
|
|
|
1665
1700
|
*/
|
|
1666
1701
|
async function makeIfNotExist(path, verbose = false) {
|
|
1667
1702
|
if (verbose) {
|
|
1668
|
-
console.log(`
|
|
1703
|
+
console.log(`Ovary: makeIfNotExist(${path})`);
|
|
1669
1704
|
}
|
|
1670
1705
|
const echo = utils_2.default.setEcho(verbose);
|
|
1671
1706
|
let cmd = `# ${path} alreasy exist`;
|
|
@@ -1681,6 +1716,9 @@ async function makeIfNotExist(path, verbose = false) {
|
|
|
1681
1716
|
* @param echo
|
|
1682
1717
|
*/
|
|
1683
1718
|
async function rexec(cmd, verbose = false) {
|
|
1719
|
+
if (verbose) {
|
|
1720
|
+
console.log(`Ovary: rexec(${cmd})`);
|
|
1721
|
+
}
|
|
1684
1722
|
const echo = utils_2.default.setEcho(verbose);
|
|
1685
1723
|
const check = await (0, utils_1.exec)(cmd, echo);
|
|
1686
1724
|
if (!cmd.startsWith('umount')) { // skip umount errors
|
package/dist/classes/pacman.js
CHANGED
package/dist/classes/pve-live.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* penguins-
|
|
3
|
+
* penguins-eggs
|
|
4
|
+
* class: pve.ts
|
|
4
5
|
* author: Piero Proietti
|
|
5
6
|
* email: piero.proietti@gmail.com
|
|
6
7
|
* license: MIT
|
|
7
|
-
* pve-live
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
10
|
const tslib_1 = require("tslib");
|
package/dist/classes/pxe.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const tslib_1 = require("tslib");
|
|
4
2
|
/**
|
|
5
|
-
* penguins-eggs
|
|
3
|
+
* penguins-eggs
|
|
4
|
+
* class: pxe.ts
|
|
6
5
|
* author: Piero Proietti
|
|
7
|
-
*
|
|
6
|
+
* email: piero.proietti@gmail.com
|
|
7
|
+
* license: MIT
|
|
8
8
|
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
const tslib_1 = require("tslib");
|
|
9
11
|
const utils_1 = require("../lib/utils");
|
|
10
12
|
const distro_1 = tslib_1.__importDefault(require("./distro"));
|
|
11
13
|
const fs_1 = tslib_1.__importDefault(require("fs"));
|
package/dist/classes/settings.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/**
|
|
3
|
-
* penguins-eggs
|
|
3
|
+
* penguins-eggs
|
|
4
|
+
* class: settings.ts
|
|
4
5
|
* author: Piero Proietti
|
|
5
|
-
*
|
|
6
|
-
*
|
|
6
|
+
* email: piero.proietti@gmail.com
|
|
7
|
+
* license: MIT
|
|
7
8
|
*/
|
|
8
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
10
|
const tslib_1 = require("tslib");
|
|
@@ -178,58 +179,5 @@ class Settings {
|
|
|
178
179
|
this.remix.fullname = name;
|
|
179
180
|
this.remix.versionName = name.toUpperCase();
|
|
180
181
|
}
|
|
181
|
-
/**
|
|
182
|
-
* show NOT USED MORE
|
|
183
|
-
*/
|
|
184
|
-
async show_not_used_more() {
|
|
185
|
-
console.log(`application_name: ${this.app.name} ${this.app.version}`);
|
|
186
|
-
// console.log(`config_file: ${config_file}`)
|
|
187
|
-
console.log(`snapshot_dir: ${this.config.snapshot_dir}`);
|
|
188
|
-
if (this.config.snapshot_prefix === '') {
|
|
189
|
-
console.log('snapshot_prefix: ' + chalk_1.default.bgYellow('no value') + ' run ' + chalk_1.default.cyan('sudo eggs dad') + ' or edit ' + chalk_1.default.cyan('/etc/penguins-eggs.d/eggs.yaml'));
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
console.log('snapshot_prefix: ' + chalk_1.default.green(this.config.snapshot_prefix));
|
|
193
|
-
}
|
|
194
|
-
console.log(`snapshot_basename: ${this.config.snapshot_basename}`);
|
|
195
|
-
// console.log(`snapshot_excludes: ${this.config.snapshot_excludes}`)
|
|
196
|
-
if (node_fs_1.default.existsSync(this.kernel_image)) {
|
|
197
|
-
console.log('kernel_image: ' + chalk_1.default.green(this.kernel_image));
|
|
198
|
-
}
|
|
199
|
-
else {
|
|
200
|
-
console.log('kernel_image: ' + chalk_1.default.red(this.kernel_image) + ' not found! Please edit /etc/penguins-eggs.d/eggs.yaml');
|
|
201
|
-
}
|
|
202
|
-
if (node_fs_1.default.existsSync(this.initrd_image)) {
|
|
203
|
-
console.log('initrd_image: ' + chalk_1.default.green(this.initrd_image));
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
console.log('initrd_image: ' + chalk_1.default.red(this.initrd_image) + ' not found! Please edit /etc/penguins-eggs.d/eggs.yaml');
|
|
207
|
-
}
|
|
208
|
-
console.log(`snapshot_dir: ${this.config.snapshot_dir}`);
|
|
209
|
-
// console.log(`efi_work: ${this.efi_work}`)
|
|
210
|
-
// console.log(`make_efi: ${this.config.make_efi}`)
|
|
211
|
-
// console.log(`make_md5sum: ${this.config.make_md5sum}`)
|
|
212
|
-
// console.log(`make_isohybrid: ${this.config.make_isohybrid}`)
|
|
213
|
-
console.log(`compression: ${this.config.compression}`);
|
|
214
|
-
// console.log(`force_installer: ${this.config.force_installer}`)
|
|
215
|
-
console.log(`user_opt: ${this.config.user_opt}`);
|
|
216
|
-
console.log(`locales: ${this.config.locales}`);
|
|
217
|
-
console.log(`locale default: ${this.config.locales_default}`);
|
|
218
|
-
// console.log(`ssh_pass: ${this.config.ssh_pass}`)
|
|
219
|
-
if (this.config.make_efi) {
|
|
220
|
-
if (!pacman_1.default.isUefi()) {
|
|
221
|
-
utils_1.default.error('You choose to create an UEFI image, but miss to install grub-efi-amd64-bin package.');
|
|
222
|
-
utils_1.default.error('Please install it before to create an UEFI image:');
|
|
223
|
-
utils_1.default.warning('sudo apt install grub-efi-amd64-bin');
|
|
224
|
-
this.config.make_efi = false;
|
|
225
|
-
}
|
|
226
|
-
else if (!pacman_1.default.packageIsInstalled('dosfstools')) {
|
|
227
|
-
utils_1.default.error('You choose to create an UEFI image, but miss to install dosfstools package.');
|
|
228
|
-
utils_1.default.error('Please install it before to create an UEFI image:');
|
|
229
|
-
utils_1.default.warning('sudo apt install dosfstools');
|
|
230
|
-
this.config.make_efi = false;
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
182
|
}
|
|
235
183
|
exports.default = Settings;
|