penguins-eggs 10.0.60 → 10.1.1
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 +62 -1
- package/README.md +145 -75
- package/addons/eggs/theme/calamares/modules/{_users.yml → users.yml} +3 -3
- package/addons/eggs/theme/livecd/grub.main.full.cfg +1 -1
- package/addons/eggs/theme/livecd/grub.main.simple.cfg +1 -1
- package/conf/derivatives.yaml +4 -3
- package/conf/derivatives_fedora.yaml +6 -0
- package/conf/distros/alpine/calamares/modules/users.yml +3 -3
- package/conf/distros/bionic/calamares/calamares-modules/grubcfg/grubcfg.yml +1 -1
- package/conf/distros/bionic/calamares/modules/users.yml +3 -3
- package/conf/distros/buster/calamares/modules/users.yml +4 -3
- package/conf/distros/fedora/calamares/modules/users.yml +3 -3
- package/conf/distros/noble/calamares/modules/focal-jammy/users.yml +3 -3
- package/conf/distros/noble/calamares/modules/users.yml +1 -0
- package/conf/distros/opensuse/calamares/modules/users.yml +3 -3
- package/conf/distros/rolling/calamares/modules/users.yml +3 -3
- package/conf/eggs.yaml +1 -1
- package/conf/love.yaml +4 -4
- package/dist/classes/compressors.js +1 -1
- package/dist/classes/distro.d.ts +27 -3
- package/dist/classes/distro.js +361 -289
- package/dist/classes/ovary.d/bind-live-fs.js +22 -30
- package/dist/classes/ovary.d/edit-live-fs.d.ts +1 -0
- package/dist/classes/ovary.d/edit-live-fs.js +9 -13
- package/dist/classes/ovary.d/fertilization.js +6 -1
- package/dist/classes/ovary.d/initrd.js +11 -15
- package/dist/classes/ovary.d/kernel-copy.js +2 -16
- package/dist/classes/ovary.d/make-efi.js +8 -5
- package/dist/classes/ovary.d/make-squashfs.d.ts +1 -1
- package/dist/classes/ovary.d/make-squashfs.js +17 -24
- package/dist/classes/ovary.d/merged.d.ts +9 -13
- package/dist/classes/ovary.d/merged.js +38 -48
- package/dist/classes/ovary.d/produce.d.ts +1 -1
- package/dist/classes/ovary.d/produce.js +38 -32
- package/dist/classes/ovary.d/syslinux.js +4 -4
- package/dist/classes/ovary.d/user-create-live.js +12 -5
- package/dist/classes/ovary.d.ts +8 -3
- package/dist/classes/ovary.js +8 -3
- package/dist/classes/pacman.d/archlinux.js +1 -5
- package/dist/classes/pacman.js +2 -1
- package/dist/classes/systemctl.d.ts +1 -1
- package/dist/classes/systemctl.js +1 -1
- package/dist/classes/tailor.js +2 -1
- package/dist/classes/utils.d/architecture.d.ts +41 -0
- package/dist/classes/utils.d/architecture.js +87 -0
- package/dist/classes/utils.d/console-output.d.ts +26 -0
- package/dist/classes/utils.d/console-output.js +46 -0
- package/dist/classes/utils.d/filesystem.d.ts +53 -0
- package/dist/classes/utils.d/filesystem.js +152 -0
- package/dist/classes/utils.d/formatters.d.ts +32 -0
- package/dist/classes/utils.d/formatters.js +64 -0
- package/dist/classes/utils.d/kernel.d.ts +83 -0
- package/dist/classes/utils.d/kernel.js +288 -0
- package/dist/classes/utils.d/network.d.ts +43 -0
- package/dist/classes/utils.d/network.js +133 -0
- package/dist/classes/utils.d/package-info.d.ts +55 -0
- package/dist/classes/utils.d/package-info.js +137 -0
- package/dist/classes/utils.d/snapshot.d.ts +44 -0
- package/dist/classes/utils.d/snapshot.js +102 -0
- package/dist/classes/utils.d/system.d.ts +63 -0
- package/dist/classes/utils.d/system.js +200 -0
- package/dist/classes/utils.d/user-interaction.d.ts +39 -0
- package/dist/classes/utils.d/user-interaction.js +104 -0
- package/dist/classes/utils.d.ts +90 -322
- package/dist/classes/utils.js +105 -1013
- package/dist/commands/dad.d.ts +1 -0
- package/dist/commands/dad.js +1 -0
- package/dist/commands/export/pkg.js +6 -6
- package/dist/commands/export/tarballs.js +11 -16
- package/dist/commands/kill.js +1 -1
- package/dist/commands/love.d.ts +1 -0
- package/dist/commands/love.js +21 -7
- package/dist/commands/pods.d.ts +22 -0
- package/dist/commands/pods.js +92 -0
- package/dist/commands/produce.d.ts +1 -0
- package/dist/commands/produce.js +21 -1
- package/dist/commands/update.js +2 -2
- package/dist/index.d.ts +6 -52
- package/dist/index.js +6 -145
- package/dist/krill/classes/krill_enums.d.ts +14 -1
- package/dist/krill/classes/krill_enums.js +16 -1
- package/dist/krill/classes/prepare.d/partitions.js +3 -3
- package/dist/krill/classes/prepare.d.ts +46 -21
- package/dist/krill/classes/prepare.js +187 -187
- package/dist/krill/classes/sequence.d/add_user.js +21 -3
- package/dist/krill/classes/sequence.d/partition.js +2 -2
- package/dist/krill/classes/sequence.d.ts +18 -21
- package/dist/krill/classes/sequence.js +156 -423
- package/dist/krill/components/information.js +13 -7
- package/dist/{krill/lib → lib}/kill_me_softly.js +2 -2
- package/dist/penguins-eggs_10.1.1-0_amd64.deb +0 -0
- package/dist/penguins-eggs_10.1.1-0_amd64.deb.sha256 +1 -0
- package/package.json +32 -27
- package/perrisbrewery/scripts/postinst +98 -0
- package/perrisbrewery/scripts/postrm +82 -0
- package/perrisbrewery/scripts/preinst +40 -0
- package/perrisbrewery/scripts/prerm +47 -0
- package/perrisbrewery/template/control.template +17 -0
- package/perrisbrewery/template/dependencies-bionic.yaml +33 -0
- package/perrisbrewery/template/dependencies.yaml +37 -0
- package/perrisbrewery/template/man.template.md +110 -0
- package/pods/README.md +14 -0
- package/pods/almalinux.sh +10 -0
- package/pods/archlinux.sh +10 -0
- package/pods/ci/README.md +5 -0
- package/pods/ci/kernel-overlay-install.sh +114 -0
- package/pods/ci/minimal/almalinux-container2host.sh +165 -0
- package/pods/ci/minimal/archlinux-container2host.sh +125 -0
- package/pods/ci/minimal/debian-container2host.sh +173 -0
- package/pods/ci/minimal/fedora-container2host.sh +170 -0
- package/pods/ci/minimal/manjaro-container2host.sh +123 -0
- package/pods/ci/minimal/opensuse-container2host.sh +143 -0
- package/pods/ci/penguins-eggs-execute.sh +22 -0
- package/pods/ci/penguins-eggs-install.sh +115 -0
- package/pods/ci/run +34 -0
- package/pods/ci/run-on-almalinux.sh +50 -0
- package/pods/ci/run-on-archlinux.sh +64 -0
- package/pods/ci/run-on-debian.sh +51 -0
- package/pods/ci/run-on-devuan.sh +48 -0
- package/pods/ci/run-on-fedora.sh +51 -0
- package/pods/ci/run-on-manjaro.sh +61 -0
- package/pods/ci/run-on-opensuse.sh +58 -0
- package/pods/ci/run-on-rockylinux.sh +51 -0
- package/pods/ci/run-on-ubuntu.sh +52 -0
- package/pods/debian.sh +23 -0
- package/pods/devuan.sh +26 -0
- package/pods/fedora.sh +12 -0
- package/pods/lmde.sh +22 -0
- package/pods/manjaro.sh +10 -0
- package/pods/opensuse.sh +12 -0
- package/pods/podman.command.sh +85 -0
- package/pods/rocky.sh +12 -0
- package/pods/run-build-packages-debs.sh +45 -0
- package/pods/run-create-debs.sh +23 -0
- package/pods/ubuntu.sh +24 -0
- package/scripts/_eggs +14 -5
- package/scripts/eggs.bash +5 -4
- /package/dist/{krill/lib → lib}/kill_me_softly.d.ts +0 -0
|
@@ -36,16 +36,50 @@ const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
|
36
36
|
* @param unsecure
|
|
37
37
|
* @param verbose
|
|
38
38
|
*/
|
|
39
|
-
export async function produce(clone = false, cryptedclone = false, scriptOnly = false, yolkRenew = false, release = false, myAddons, myLinks, excludes, nointeractive = false, noicons = false, unsecure = false, verbose = false) {
|
|
39
|
+
export async function produce(kernel = '', clone = false, cryptedclone = false, scriptOnly = false, yolkRenew = false, release = false, myAddons, myLinks, excludes, nointeractive = false, noicons = false, unsecure = false, verbose = false) {
|
|
40
40
|
this.verbose = verbose;
|
|
41
41
|
this.echo = Utils.setEcho(verbose);
|
|
42
42
|
if (this.verbose) {
|
|
43
43
|
this.toNull = ' > /dev/null 2>&1';
|
|
44
44
|
}
|
|
45
|
+
this.kernel = kernel;
|
|
45
46
|
this.clone = clone;
|
|
46
47
|
this.cryptedclone = cryptedclone;
|
|
47
48
|
const luksName = 'luks-volume';
|
|
48
49
|
const luksFile = `/tmp/${luksName}`;
|
|
50
|
+
/**
|
|
51
|
+
* define kernel
|
|
52
|
+
*/
|
|
53
|
+
if (this.kernel === '') {
|
|
54
|
+
if (this.familyId === 'alpine') {
|
|
55
|
+
// to do
|
|
56
|
+
}
|
|
57
|
+
else if (this.familyId === 'archlinux') {
|
|
58
|
+
const moduleDirs = fs.readdirSync('/usr/lib/modules');
|
|
59
|
+
this.kernel = moduleDirs[0];
|
|
60
|
+
/**
|
|
61
|
+
* no need more
|
|
62
|
+
*/
|
|
63
|
+
if (Diversions.isManjaroBased(this.distroId)) {
|
|
64
|
+
// this.kernel += '-MANJARO'
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
else { // debian, fedora, openmamba, opensuse, voidlinux
|
|
68
|
+
let vmlinuz = path.basename(Utils.vmlinuz());
|
|
69
|
+
this.kernel = vmlinuz.substring(vmlinuz.indexOf('-') + 1);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* define this.vmlinuz
|
|
74
|
+
*/
|
|
75
|
+
this.vmlinuz = Utils.vmlinuz();
|
|
76
|
+
/**
|
|
77
|
+
* define this.initrd
|
|
78
|
+
*/
|
|
79
|
+
this.initrd = Utils.initrdImg(this.kernel);
|
|
80
|
+
/**
|
|
81
|
+
* yolk
|
|
82
|
+
*/
|
|
49
83
|
if (this.familyId === 'debian' && Utils.uefiArch() === 'amd64') {
|
|
50
84
|
const yolk = new Repo();
|
|
51
85
|
if (!yolk.exists()) {
|
|
@@ -69,7 +103,7 @@ export async function produce(clone = false, cryptedclone = false, scriptOnly =
|
|
|
69
103
|
}
|
|
70
104
|
else {
|
|
71
105
|
await this.liveCreateStructure();
|
|
72
|
-
// Carica calamares
|
|
106
|
+
// Carica calamares solo se le icone sono accettate
|
|
73
107
|
if (!noicons && // se VOGLIO le icone
|
|
74
108
|
!nointeractive &&
|
|
75
109
|
this.settings.distro.isCalamaresAvailable &&
|
|
@@ -86,29 +120,10 @@ export async function produce(clone = false, cryptedclone = false, scriptOnly =
|
|
|
86
120
|
* cryptedclone
|
|
87
121
|
*/
|
|
88
122
|
console.log("eggs will SAVE users and users' data ENCRYPTED");
|
|
89
|
-
/*
|
|
90
|
-
const users = await this.usersFill()
|
|
91
|
-
for (const user of users) {
|
|
92
|
-
if (user.saveIt) {
|
|
93
|
-
let utype = 'user '
|
|
94
|
-
if (Number.parseInt(user.uid) < 1000) {
|
|
95
|
-
utype = 'service'
|
|
96
|
-
}
|
|
97
|
-
//console.log(`- ${utype}: ${user.login.padEnd(16)} \thome: ${user.home}`)
|
|
98
|
-
if (user.login !== 'root') {
|
|
99
|
-
this.addRemoveExclusion(true, user.home)
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
*/
|
|
104
123
|
}
|
|
105
124
|
else if (this.clone) {
|
|
106
125
|
/**
|
|
107
126
|
* clone
|
|
108
|
-
*
|
|
109
|
-
* users tend to set user_opt as
|
|
110
|
-
* real user when create a clone,
|
|
111
|
-
* this is WRONG here we correct
|
|
112
127
|
*/
|
|
113
128
|
this.settings.config.user_opt = 'live'; // patch for humans
|
|
114
129
|
this.settings.config.user_opt_passwd = 'evolution';
|
|
@@ -172,10 +187,9 @@ export async function produce(clone = false, cryptedclone = false, scriptOnly =
|
|
|
172
187
|
this.incubator = new Incubator(this.settings.remix, this.settings.distro, this.settings.config.user_opt, this.theme, this.clone, verbose);
|
|
173
188
|
await this.incubator.config(release);
|
|
174
189
|
await this.syslinux(this.theme);
|
|
175
|
-
//await this.isolinux(this.theme)
|
|
176
190
|
await this.kernelCopy();
|
|
177
191
|
/**
|
|
178
|
-
* differents
|
|
192
|
+
* differents initrd for different families
|
|
179
193
|
*/
|
|
180
194
|
if (this.familyId === 'alpine') {
|
|
181
195
|
await this.initrdAlpine();
|
|
@@ -186,8 +200,7 @@ export async function produce(clone = false, cryptedclone = false, scriptOnly =
|
|
|
186
200
|
else if (this.familyId === 'debian') {
|
|
187
201
|
await this.initrdDebian();
|
|
188
202
|
}
|
|
189
|
-
else if (this.familyId === '
|
|
190
|
-
this.familyId === 'fedora' ||
|
|
203
|
+
else if (this.familyId === 'fedora' ||
|
|
191
204
|
this.familyId === 'openmamba' ||
|
|
192
205
|
this.familyId === 'opensuse' ||
|
|
193
206
|
this.familyId === 'voidlinux') {
|
|
@@ -275,13 +288,6 @@ export async function produce(clone = false, cryptedclone = false, scriptOnly =
|
|
|
275
288
|
await exec(`mkdir ${this.settings.iso_work}${pathName}/x86_64 -p`, this.echo);
|
|
276
289
|
fs.linkSync(`${this.settings.iso_work}live/filesystem.squashfs`, `${this.settings.iso_work}${pathName}.sfs`);
|
|
277
290
|
}
|
|
278
|
-
/**
|
|
279
|
-
* patch per aldos
|
|
280
|
-
if (this.familyId === 'aldos') {
|
|
281
|
-
await exec(`mkdir ${this.settings.iso_work}LiveOS -p`, this.echo)
|
|
282
|
-
fs.linkSync(`${this.settings.iso_work}live/filesystem.squashfs`, `${this.settings.iso_work}LiveOS/squashfs.img`)
|
|
283
|
-
}
|
|
284
|
-
*/
|
|
285
291
|
await this.makeIso(mkIsofsCmd, scriptOnly);
|
|
286
292
|
}
|
|
287
293
|
}
|
|
@@ -53,14 +53,14 @@ export async function syslinux(theme = 'eggs') {
|
|
|
53
53
|
Utils.warning('Cannot find: ' + isolinuxTemplate);
|
|
54
54
|
process.exit();
|
|
55
55
|
}
|
|
56
|
-
const kernel_parameters = Diversions.kernelParameters(this.familyId, this.volid);
|
|
56
|
+
const kernel_parameters = Diversions.kernelParameters(this.familyId, this.volid);
|
|
57
57
|
const template = fs.readFileSync(isolinuxTemplate, 'utf8');
|
|
58
58
|
const view = {
|
|
59
59
|
fullname: this.settings.remix.fullname.toUpperCase(),
|
|
60
|
-
initrdImg: `/live
|
|
61
|
-
kernel:
|
|
60
|
+
initrdImg: `/live/${path.basename(this.initrd)}`,
|
|
61
|
+
kernel: this.kernel,
|
|
62
62
|
kernel_parameters,
|
|
63
|
-
vmlinuz: `/live
|
|
63
|
+
vmlinuz: `/live/${path.basename(this.vmlinuz)}`
|
|
64
64
|
};
|
|
65
65
|
fs.writeFileSync(isolinuxDest, mustache.render(template, view));
|
|
66
66
|
/**
|
|
@@ -11,6 +11,7 @@ import path from 'node:path';
|
|
|
11
11
|
import yaml from 'js-yaml';
|
|
12
12
|
// functions
|
|
13
13
|
import rexec from './rexec.js';
|
|
14
|
+
import Utils from '../utils.js';
|
|
14
15
|
// _dirname
|
|
15
16
|
const __dirname = path.dirname(new URL(import.meta.url).pathname);
|
|
16
17
|
/**
|
|
@@ -37,6 +38,9 @@ export async function userCreateLive() {
|
|
|
37
38
|
}
|
|
38
39
|
// da problemi con il mount sshfs
|
|
39
40
|
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));
|
|
41
|
+
/**
|
|
42
|
+
*
|
|
43
|
+
*/
|
|
40
44
|
switch (this.familyId) {
|
|
41
45
|
case 'debian': {
|
|
42
46
|
cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG sudo ${this.settings.config.user_opt}`, this.verbose));
|
|
@@ -70,12 +74,11 @@ export async function userCreateLive() {
|
|
|
70
74
|
// No default
|
|
71
75
|
}
|
|
72
76
|
/**
|
|
73
|
-
*
|
|
74
|
-
* users.yml
|
|
77
|
+
* look to calamares/modules/users.yml for groups
|
|
75
78
|
*/
|
|
76
|
-
let usersConf =
|
|
77
|
-
if (
|
|
78
|
-
usersConf =
|
|
79
|
+
let usersConf = '/etc/calamares/modules/users.conf';
|
|
80
|
+
if (!fs.existsSync(usersConf)) {
|
|
81
|
+
usersConf = '/etc/penguins-eggs.d/krill/modules/users.conf';
|
|
79
82
|
}
|
|
80
83
|
if (fs.existsSync(usersConf)) {
|
|
81
84
|
const o = yaml.load(fs.readFileSync(usersConf, 'utf8'));
|
|
@@ -83,4 +86,8 @@ export async function userCreateLive() {
|
|
|
83
86
|
cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG ${group} ${this.settings.config.user_opt}`, this.verbose));
|
|
84
87
|
}
|
|
85
88
|
}
|
|
89
|
+
else {
|
|
90
|
+
console.log(`il file ${usersConf} non esiste!`);
|
|
91
|
+
await Utils.pressKeyToExit();
|
|
92
|
+
}
|
|
86
93
|
}
|
package/dist/classes/ovary.d.ts
CHANGED
|
@@ -13,11 +13,11 @@ import { produce } from './ovary.d/produce.js';
|
|
|
13
13
|
import { bindLiveFs, uBindLiveFs } from './ovary.d/bind-live-fs.js';
|
|
14
14
|
import { bindVfs, ubindVfs } from './ovary.d/bind-vfs.js';
|
|
15
15
|
import { editLiveFs } from './ovary.d/edit-live-fs.js';
|
|
16
|
-
import { makeSquashfs,
|
|
16
|
+
import { makeSquashfs, addExclusion } from './ovary.d/make-squashfs.js';
|
|
17
17
|
import { makeEfi } from './ovary.d/make-efi.js';
|
|
18
18
|
import { xorrisoCommand } from './ovary.d/xorriso-commend.js';
|
|
19
19
|
import { createXdgAutostart } from './ovary.d/create-xdg-autostart.js';
|
|
20
|
-
import { merged, mergedAndOverlay } from './ovary.d/merged.js';
|
|
20
|
+
import { copied, merged, mergedAndOverlay } from './ovary.d/merged.js';
|
|
21
21
|
import { makeIso } from './ovary.d/make-iso.js';
|
|
22
22
|
import { initrdAlpine, initrdArch, initrdDebian, initrdDracut } from './ovary.d/initrd.js';
|
|
23
23
|
import { userCreateLive } from './ovary.d/user-create-live.js';
|
|
@@ -37,6 +37,7 @@ export default class Ovary {
|
|
|
37
37
|
cryptedclone: boolean;
|
|
38
38
|
echo: {};
|
|
39
39
|
familyId: string;
|
|
40
|
+
distroId: string;
|
|
40
41
|
genisoimage: boolean;
|
|
41
42
|
incubator: Incubator;
|
|
42
43
|
nest: string;
|
|
@@ -48,6 +49,9 @@ export default class Ovary {
|
|
|
48
49
|
verbose: boolean;
|
|
49
50
|
volid: string;
|
|
50
51
|
uuid: string;
|
|
52
|
+
kernel: string;
|
|
53
|
+
initrd: string;
|
|
54
|
+
vmlinuz: string;
|
|
51
55
|
fertilization: typeof fertilization;
|
|
52
56
|
produce: typeof produce;
|
|
53
57
|
bindLiveFs: typeof bindLiveFs;
|
|
@@ -55,9 +59,10 @@ export default class Ovary {
|
|
|
55
59
|
editLiveFs: typeof editLiveFs;
|
|
56
60
|
makeEfi: typeof makeEfi;
|
|
57
61
|
makeSquashfs: typeof makeSquashfs;
|
|
58
|
-
|
|
62
|
+
addExclusion: typeof addExclusion;
|
|
59
63
|
xorrisoCommand: typeof xorrisoCommand;
|
|
60
64
|
createXdgAutostart: typeof createXdgAutostart;
|
|
65
|
+
copied: typeof copied;
|
|
61
66
|
merged: typeof merged;
|
|
62
67
|
mergedAndOverlay: typeof mergedAndOverlay;
|
|
63
68
|
makeIso: typeof makeIso;
|
package/dist/classes/ovary.js
CHANGED
|
@@ -13,11 +13,11 @@ import { produce } from './ovary.d/produce.js';
|
|
|
13
13
|
import { bindLiveFs, uBindLiveFs } from './ovary.d/bind-live-fs.js';
|
|
14
14
|
import { bindVfs, ubindVfs } from './ovary.d/bind-vfs.js';
|
|
15
15
|
import { editLiveFs } from './ovary.d/edit-live-fs.js';
|
|
16
|
-
import { makeSquashfs,
|
|
16
|
+
import { makeSquashfs, addExclusion } from './ovary.d/make-squashfs.js';
|
|
17
17
|
import { makeEfi } from './ovary.d/make-efi.js';
|
|
18
18
|
import { xorrisoCommand } from './ovary.d/xorriso-commend.js';
|
|
19
19
|
import { createXdgAutostart } from './ovary.d/create-xdg-autostart.js';
|
|
20
|
-
import { merged, mergedAndOverlay } from './ovary.d/merged.js';
|
|
20
|
+
import { copied, merged, mergedAndOverlay } from './ovary.d/merged.js';
|
|
21
21
|
import { makeIso } from './ovary.d/make-iso.js';
|
|
22
22
|
import { initrdAlpine, initrdArch, initrdDebian, initrdDracut } from './ovary.d/initrd.js';
|
|
23
23
|
import { userCreateLive } from './ovary.d/user-create-live.js';
|
|
@@ -39,6 +39,7 @@ export default class Ovary {
|
|
|
39
39
|
cryptedclone = false;
|
|
40
40
|
echo = {};
|
|
41
41
|
familyId = '';
|
|
42
|
+
distroId = '';
|
|
42
43
|
genisoimage = false;
|
|
43
44
|
incubator = {};
|
|
44
45
|
nest = '';
|
|
@@ -50,6 +51,9 @@ export default class Ovary {
|
|
|
50
51
|
verbose = false;
|
|
51
52
|
volid = '';
|
|
52
53
|
uuid = '';
|
|
54
|
+
kernel = '';
|
|
55
|
+
initrd = '';
|
|
56
|
+
vmlinuz = '';
|
|
53
57
|
// I put all methods on ovary.d
|
|
54
58
|
fertilization = fertilization;
|
|
55
59
|
produce = produce;
|
|
@@ -59,9 +63,10 @@ export default class Ovary {
|
|
|
59
63
|
editLiveFs = editLiveFs;
|
|
60
64
|
makeEfi = makeEfi;
|
|
61
65
|
makeSquashfs = makeSquashfs;
|
|
62
|
-
|
|
66
|
+
addExclusion = addExclusion;
|
|
63
67
|
xorrisoCommand = xorrisoCommand;
|
|
64
68
|
createXdgAutostart = createXdgAutostart;
|
|
69
|
+
copied = copied;
|
|
65
70
|
merged = merged;
|
|
66
71
|
mergedAndOverlay = mergedAndOverlay;
|
|
67
72
|
makeIso = makeIso;
|
|
@@ -21,11 +21,7 @@ export default class Archlinux {
|
|
|
21
21
|
static async calamaresInstall(verbose = false) {
|
|
22
22
|
verbose = true; // serve per pacman
|
|
23
23
|
const echo = Utils.setEcho(verbose);
|
|
24
|
-
|
|
25
|
-
// const cal_eggs = 'calamares-eggs-3.3.10-1-x86_64.pkg.tar.zst' // 24/10/2024
|
|
26
|
-
// const cal_eggs = 'calamares-eggs-3.3.12-2-x86_64.pkg.tar.zst' // 17/12/2024
|
|
27
|
-
//let cmd = `wget -O /tmp/${cal_eggs} https://sourceforge.net/projects/penguins-eggs/files/packages/aur/${cal_eggs}/download`
|
|
28
|
-
const cal_eggs = 'calamares-eggs-3.3.14-1-x86_64.pkg.tar.zst'; // 17/12/2024
|
|
24
|
+
const cal_eggs = 'calamares-eggs-3.3.14-2-x86_64.pkg.tar.zst'; // 11/05/2025
|
|
29
25
|
let cmd = `wget -O /tmp/${cal_eggs} https://penguins-eggs.net/basket/packages/aur/${cal_eggs}`; // 21/12/2024
|
|
30
26
|
try {
|
|
31
27
|
await exec(cmd, echo);
|
package/dist/classes/pacman.js
CHANGED
|
@@ -193,7 +193,7 @@ export default class Pacman {
|
|
|
193
193
|
config.make_isohybrid = true;
|
|
194
194
|
config.compression = 'xz';
|
|
195
195
|
config.ssh_pass = false;
|
|
196
|
-
config.timezone = '
|
|
196
|
+
config.timezone = 'America/New_York';
|
|
197
197
|
config.pmount_fixed = false;
|
|
198
198
|
if (!this.calamaresExists()) {
|
|
199
199
|
config.force_installer = false;
|
|
@@ -245,6 +245,7 @@ export default class Pacman {
|
|
|
245
245
|
shx.ln('-s', path.resolve(__dirname, '../../addons'), addons);
|
|
246
246
|
shx.cp(path.resolve(__dirname, '../../conf/README.md'), confRoot);
|
|
247
247
|
shx.cp(path.resolve(__dirname, '../../conf/derivatives.yaml'), confRoot);
|
|
248
|
+
shx.cp(path.resolve(__dirname, '../../conf/derivatives_fedora.yaml'), confRoot);
|
|
248
249
|
shx.cp(path.resolve(__dirname, '../../conf/krill.yaml'), confRoot);
|
|
249
250
|
shx.cp(path.resolve(__dirname, '../../conf/love.yaml'), confRoot);
|
|
250
251
|
shx.cp(path.resolve(__dirname, '../../conf/tools.yaml'), config_tools);
|
package/dist/classes/tailor.js
CHANGED
|
@@ -426,7 +426,8 @@ export default class Tailor {
|
|
|
426
426
|
const distro = new Distro();
|
|
427
427
|
let cmd = "";
|
|
428
428
|
if (distro.familyId === "debian") {
|
|
429
|
-
cmd
|
|
429
|
+
// cmd=`apt-cache --no-generate pkgnames`
|
|
430
|
+
cmd = `apt-cache pkgnames`;
|
|
430
431
|
}
|
|
431
432
|
else if (distro.familyId === "archlinux") {
|
|
432
433
|
cmd = `pacman -S --list | awk '{print $2}'`;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/utils.d/architecture.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* Architecture detection utilities - UEFI, arch-specific paths
|
|
5
|
+
* author: Piero Proietti
|
|
6
|
+
* email: piero.proietti@gmail.com
|
|
7
|
+
* license: MIT
|
|
8
|
+
*/
|
|
9
|
+
export default class Architecture {
|
|
10
|
+
/**
|
|
11
|
+
* Return true if i686 architecture
|
|
12
|
+
* @remarks to move in Utils
|
|
13
|
+
* @returns {boolean} true se l'architettura è i686
|
|
14
|
+
*/
|
|
15
|
+
static isi686(): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* uefiArch
|
|
18
|
+
* @returns arch
|
|
19
|
+
*/
|
|
20
|
+
static uefiArch(): string;
|
|
21
|
+
/**
|
|
22
|
+
* i386-pc,
|
|
23
|
+
* i386-efi,
|
|
24
|
+
* x86_64-efi,
|
|
25
|
+
* arm64-efi,
|
|
26
|
+
*
|
|
27
|
+
* ATTEMZIONE: install efibootmgr
|
|
28
|
+
*
|
|
29
|
+
* Fedora/RHEL have i386-pc
|
|
30
|
+
*/
|
|
31
|
+
static uefiFormat(): string;
|
|
32
|
+
/**
|
|
33
|
+
*
|
|
34
|
+
* @returns
|
|
35
|
+
*/
|
|
36
|
+
static usrLibPath(): string;
|
|
37
|
+
/**
|
|
38
|
+
* get the kernel version
|
|
39
|
+
*/
|
|
40
|
+
static kernelVersion(): string;
|
|
41
|
+
}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/utils.d/architecture.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* Architecture detection utilities - UEFI, arch-specific paths
|
|
5
|
+
* author: Piero Proietti
|
|
6
|
+
* email: piero.proietti@gmail.com
|
|
7
|
+
* license: MIT
|
|
8
|
+
*/
|
|
9
|
+
import shx from 'shelljs';
|
|
10
|
+
import os from 'os';
|
|
11
|
+
export default class Architecture {
|
|
12
|
+
/**
|
|
13
|
+
* Return true if i686 architecture
|
|
14
|
+
* @remarks to move in Utils
|
|
15
|
+
* @returns {boolean} true se l'architettura è i686
|
|
16
|
+
*/
|
|
17
|
+
static isi686() {
|
|
18
|
+
return process.arch === 'ia32';
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* uefiArch
|
|
22
|
+
* @returns arch
|
|
23
|
+
*/
|
|
24
|
+
static uefiArch() {
|
|
25
|
+
let arch = '';
|
|
26
|
+
if (process.arch === 'ia32') {
|
|
27
|
+
arch = 'i386';
|
|
28
|
+
//
|
|
29
|
+
if (shx.exec('uname -m', { silent: true }).stdout.trim() === 'x86_64') {
|
|
30
|
+
arch = 'amd64';
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else if (process.arch === 'x64') {
|
|
34
|
+
arch = 'amd64';
|
|
35
|
+
}
|
|
36
|
+
else if (process.arch === 'arm64') {
|
|
37
|
+
arch = 'arm64';
|
|
38
|
+
}
|
|
39
|
+
return arch;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* i386-pc,
|
|
43
|
+
* i386-efi,
|
|
44
|
+
* x86_64-efi,
|
|
45
|
+
* arm64-efi,
|
|
46
|
+
*
|
|
47
|
+
* ATTEMZIONE: install efibootmgr
|
|
48
|
+
*
|
|
49
|
+
* Fedora/RHEL have i386-pc
|
|
50
|
+
*/
|
|
51
|
+
static uefiFormat() {
|
|
52
|
+
let format = '';
|
|
53
|
+
if (process.arch === 'ia32') {
|
|
54
|
+
format = 'i386-efi';
|
|
55
|
+
if (shx.exec('uname -m', { silent: true }).stdout.trim() === 'x86_64') {
|
|
56
|
+
format = 'x86_64-efi';
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else if (process.arch === 'x64') {
|
|
60
|
+
format = 'x86_64-efi';
|
|
61
|
+
}
|
|
62
|
+
else if (process.arch === 'arm64') {
|
|
63
|
+
format = 'arm64-efi';
|
|
64
|
+
}
|
|
65
|
+
return format;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
*
|
|
69
|
+
* @returns
|
|
70
|
+
*/
|
|
71
|
+
static usrLibPath() {
|
|
72
|
+
let path = '';
|
|
73
|
+
if (process.arch === 'x64') {
|
|
74
|
+
path = 'x86_64-linux-gnu';
|
|
75
|
+
}
|
|
76
|
+
else if (process.arch === 'arm64') {
|
|
77
|
+
path = 'aarch64-linux-gnu';
|
|
78
|
+
}
|
|
79
|
+
return path;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* get the kernel version
|
|
83
|
+
*/
|
|
84
|
+
static kernelVersion() {
|
|
85
|
+
return os.release();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/utils.d/console-output.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* Console output utilities - colored output, titles, warnings, errors
|
|
5
|
+
* author: Piero Proietti
|
|
6
|
+
* email: piero.proietti@gmail.com
|
|
7
|
+
* license: MIT
|
|
8
|
+
*/
|
|
9
|
+
export default class ConsoleOutput {
|
|
10
|
+
/**
|
|
11
|
+
*
|
|
12
|
+
* @param msg
|
|
13
|
+
*/
|
|
14
|
+
static warning(msg?: string): void;
|
|
15
|
+
static error(msg?: string): void;
|
|
16
|
+
/**
|
|
17
|
+
* titles
|
|
18
|
+
* Penguin's are gettings alive!
|
|
19
|
+
*/
|
|
20
|
+
static titles(command?: string): void;
|
|
21
|
+
/**
|
|
22
|
+
*
|
|
23
|
+
* @returns flag
|
|
24
|
+
*/
|
|
25
|
+
static flag(): string;
|
|
26
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/utils.d/console-output.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* Console output utilities - colored output, titles, warnings, errors
|
|
5
|
+
* author: Piero Proietti
|
|
6
|
+
* email: piero.proietti@gmail.com
|
|
7
|
+
* license: MIT
|
|
8
|
+
*/
|
|
9
|
+
import chalk from 'chalk';
|
|
10
|
+
// pjson
|
|
11
|
+
import { createRequire } from 'module';
|
|
12
|
+
const require = createRequire(import.meta.url);
|
|
13
|
+
const pjson = require('../../../package.json');
|
|
14
|
+
export default class ConsoleOutput {
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* @param msg
|
|
18
|
+
*/
|
|
19
|
+
static warning(msg = '') {
|
|
20
|
+
console.log(pjson.shortName + ' >>> ' + chalk.cyanBright(msg) + '.');
|
|
21
|
+
}
|
|
22
|
+
static error(msg = '') {
|
|
23
|
+
console.error(pjson.shortName + ' >>> ' + chalk.bgMagentaBright(chalk.whiteBright(msg)) + '.');
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* titles
|
|
27
|
+
* Penguin's are gettings alive!
|
|
28
|
+
*/
|
|
29
|
+
static titles(command = '') {
|
|
30
|
+
console.clear();
|
|
31
|
+
console.log('');
|
|
32
|
+
console.log(' E G G S: the reproductive system of penguins');
|
|
33
|
+
console.log('');
|
|
34
|
+
console.log(ConsoleOutput.flag());
|
|
35
|
+
console.log('command: ' + chalk.bgBlack.white(command) + '\n');
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
*
|
|
39
|
+
* @returns flag
|
|
40
|
+
*/
|
|
41
|
+
static flag() {
|
|
42
|
+
return chalk.bgGreen.whiteBright(' ' + pjson.name + ' ') +
|
|
43
|
+
chalk.bgWhite.blue(" Perri's Brewery edition ") +
|
|
44
|
+
chalk.bgRed.whiteBright(' ver. ' + pjson.version + ' ');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/classes/utils.d/filesystem.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* Filesystem operations utilities - files, UUID, disk space
|
|
5
|
+
* author: Piero Proietti
|
|
6
|
+
* email: piero.proietti@gmail.com
|
|
7
|
+
* license: MIT
|
|
8
|
+
*/
|
|
9
|
+
import IOsRelease from '../../interfaces/i-os-release.js';
|
|
10
|
+
export default class Filesystem {
|
|
11
|
+
/**
|
|
12
|
+
*
|
|
13
|
+
* @param file
|
|
14
|
+
* @param search
|
|
15
|
+
* @returns value
|
|
16
|
+
*/
|
|
17
|
+
static searchOnFile(file?: string, search?: string): string;
|
|
18
|
+
/**
|
|
19
|
+
* restituisce uuid
|
|
20
|
+
* @param device
|
|
21
|
+
*/
|
|
22
|
+
static uuid(device: string): string;
|
|
23
|
+
/**
|
|
24
|
+
*
|
|
25
|
+
* @param device
|
|
26
|
+
* @returns
|
|
27
|
+
*/
|
|
28
|
+
static uuidGen(): string;
|
|
29
|
+
/**
|
|
30
|
+
* Calculate the space used on the disk
|
|
31
|
+
* @return {void}
|
|
32
|
+
*/
|
|
33
|
+
static getUsedSpace(): number;
|
|
34
|
+
/**
|
|
35
|
+
* write a file
|
|
36
|
+
* @param file
|
|
37
|
+
* @param text
|
|
38
|
+
*/
|
|
39
|
+
static write(file: string, text: string): void;
|
|
40
|
+
/**
|
|
41
|
+
*
|
|
42
|
+
* @param file
|
|
43
|
+
* @param cmd
|
|
44
|
+
*/
|
|
45
|
+
static writeX(file: string, cmd: string): void;
|
|
46
|
+
/**
|
|
47
|
+
*
|
|
48
|
+
* @param file
|
|
49
|
+
* @param cmd
|
|
50
|
+
*/
|
|
51
|
+
static writeXs(file: string, cmds: string[]): void;
|
|
52
|
+
static getOsRelease(): IOsRelease;
|
|
53
|
+
}
|