penguins-eggs 25.10.30 → 25.11.12
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 +4 -4
- package/README.md +3 -3
- package/addons/eggs/adapt/applications/eggs-adapt.desktop +0 -0
- package/addons/eggs/pve/applications/eggs-pve.desktop +0 -0
- package/addons/eggs/rsupport/applications/eggs-rsupport.desktop +0 -0
- package/addons/eggs/theme/applications/install-system.desktop +0 -0
- package/assets/calamares/install-system.sh +0 -0
- package/assets/penguins-eggs.desktop +0 -0
- package/assets/penguins-krill.desktop +0 -0
- package/assets/penguins-links-add.desktop +0 -0
- package/assets/penguins-live-installer.desktop +0 -0
- package/bin/dev.js +0 -0
- package/conf/distros/alpine/calamares/calamares-modules/machineid-openrc/machineid-openrc.sh +0 -0
- package/conf/distros/alpine/calamares/modules/packages.mustache +1 -0
- package/conf/distros/alpine/calamares/modules/removeuser.mustache +2 -14
- package/conf/distros/alpine/calamares/modules/unpackfs.mustache +2 -2
- package/conf/distros/archlinux/calamares/modules/bootloader.yml +1 -1
- package/conf/distros/archlinux/calamares/modules/partition.yml +385 -8
- package/conf/distros/buster/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
- package/conf/distros/buster/calamares/calamares-modules/dpkg-unsafe-io/dpkg-unsafe-io.sh +0 -0
- package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
- package/conf/distros/buster/calamares/modules/shellprocess@boot_deploy.yml +1 -16
- package/conf/distros/fedora/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +0 -0
- package/conf/distros/noble/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
- package/conf/distros/noble/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
- package/conf/distros/noble/calamares/libexec/calamares-aptsources.sh +0 -0
- package/conf/distros/noble/calamares/libexec/calamares-l10n-helper.sh +0 -0
- package/conf/distros/noble/calamares/libexec/calamares-logs-helper.sh +1 -1
- package/conf/distros/noble/calamares/libexec/calamares-nomodeset.sh +0 -0
- package/conf/distros/noble/calamares/modules/shellprocess@boot_deploy.yml +1 -11
- package/conf/distros/noble/calamares/modules/shellprocess@logs.yml +1 -1
- package/conf/distros/opensuse/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +0 -0
- package/conf/distros/opensuse/calamares/settings.yml +0 -0
- package/conf/distros/opensuse/calamares/zstd2lzo.sh +0 -0
- package/conf/distros/trixie/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
- package/conf/distros/trixie/calamares/calamares-modules/dpkg-unsafe-io/dpkg-unsafe-io.sh +0 -0
- package/conf/distros/trixie/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
- package/conf/distros/trixie/calamares/modules/shellprocess@boot_deploy.yml +2 -10
- package/conf/init/unattended.sh +0 -0
- package/dist/classes/cli-autologin.d.ts +1 -39
- package/dist/classes/cli-autologin.js +85 -110
- package/dist/classes/daddy.d.ts +30 -12
- package/dist/classes/daddy.js +166 -137
- package/dist/classes/distro.js +11 -27
- package/dist/classes/diversions.d.ts +3 -37
- package/dist/classes/diversions.js +72 -103
- package/dist/classes/incubation/customize/customize-partitions.js +8 -1
- package/dist/classes/incubation/fisherman-helper/packages.js +1 -1
- package/dist/classes/incubation/fisherman.d.ts +5 -0
- package/dist/classes/incubation/fisherman.js +21 -1
- package/dist/classes/incubation/incubator.d/noble.js +6 -2
- package/dist/classes/incubation/incubator.js +4 -5
- package/dist/classes/keyboards.d.ts +11 -30
- package/dist/classes/keyboards.js +100 -251
- package/dist/classes/ovary.d/initrd.js +2 -7
- package/dist/classes/pacman.d/archlinux.js +5 -5
- package/dist/classes/pacman.d/debian.js +0 -2
- package/dist/classes/pacman.d/opensuse.js +2 -2
- package/dist/classes/pacman.js +7 -9
- package/dist/commands/tools/repo.js +198 -31
- package/dist/krill/classes/sequence.d/unpackfs.js +3 -2
- package/dracut/create-symlink +0 -0
- package/dracut/export +0 -0
- package/dracut/export-dracut-analysis +0 -0
- package/dracut/export-dracut-log +0 -0
- package/dracut/mkisofs +0 -0
- package/dracut/modules.d/00debug-shell/debug-hook.sh +0 -0
- package/dracut/modules.d/00debug-shell/module-setup.sh +0 -0
- package/dracut/modules.d/90block/block-cmdline.sh +0 -0
- package/dracut/modules.d/90block/module-setup.sh +0 -0
- package/dracut/modules.d/95iso-scan/iso-scan-fallback.sh +0 -0
- package/dracut/modules.d/95iso-scan/iso-scan.sh +0 -0
- package/dracut/modules.d/95iso-scan/module-setup.sh +0 -0
- package/dracut/modules.d/95luks-loop/luks-loop.sh +0 -0
- package/dracut/modules.d/95luks-loop/module-setup.sh +0 -0
- package/dracut/renew-initramfs +0 -0
- package/dracut/sbin2bin +0 -0
- package/dracut/update-dracut-conf-d +0 -0
- package/dracut/update-dracut-modules +0 -0
- package/eui/eui-autostart-cinnamon.desktop +0 -0
- package/eui/eui-autostart-xfce.desktop +0 -0
- package/eui/eui-create-image.sh +0 -0
- package/eui/eui-start.sh +0 -0
- package/package.json +130 -124
- package/perrisbrewery/scripts/postinst +0 -0
- package/perrisbrewery/scripts/postrm +0 -0
- package/perrisbrewery/scripts/preinst +0 -0
- package/perrisbrewery/scripts/prerm +0 -0
- package/perrisbrewery/template/dependencies.yaml +7 -6
- package/scripts/99clean +0 -0
- package/scripts/adapt.sh +0 -0
- package/scripts/boot-encrypted-root.sh +0 -0
- package/scripts/bros/waydroid-helper.sh +0 -0
- package/scripts/lsb_release +0 -0
- package/scripts/mom.sh +0 -0
- package/scripts/mount-encrypted-home.sh +0 -0
- package/scripts/pve-live.service +0 -0
- package/scripts/pve-live.sh +0 -0
- package/scripts/resy +0 -0
- package/conf/distros/focal/calamares/calamares-modules/.keepit +0 -0
- package/conf/distros/focal/calamares/calamares-modules/cleanup/cleanup.sh +0 -20
- package/conf/distros/focal/calamares/calamares-modules/cleanup/module.yml +0 -9
- package/conf/distros/focal/calamares/calamares-modules/sources-yolk/module.yml +0 -8
- package/conf/distros/focal/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -50
- package/conf/distros/focal/calamares/calamares-modules/sources-yolk-undo/module.yml +0 -8
- package/conf/distros/focal/calamares/modules/after_bootloader_context.yml +0 -19
- package/conf/distros/focal/calamares/modules/automirror.yml +0 -6
- package/conf/distros/focal/calamares/modules/before_bootloader_context.yml +0 -19
- package/conf/distros/focal/calamares/modules/before_bootloader_mkdirs_context.yml +0 -11
- package/conf/distros/focal/calamares/modules/bootloader.yml +0 -34
- package/conf/distros/focal/calamares/modules/displaymanager.yml +0 -12
- package/conf/distros/focal/calamares/modules/finished.yml +0 -4
- package/conf/distros/focal/calamares/modules/fstab.yml +0 -13
- package/conf/distros/focal/calamares/modules/grubcfg.yml +0 -5
- package/conf/distros/focal/calamares/modules/locale.yml +0 -9
- package/conf/distros/focal/calamares/modules/machineid.yml +0 -9
- package/conf/distros/focal/calamares/modules/mount.yml +0 -41
- package/conf/distros/focal/calamares/modules/packages.mustache +0 -5
- package/conf/distros/focal/calamares/modules/partition.yml +0 -10
- package/conf/distros/focal/calamares/modules/removeuser.mustache +0 -3
- package/conf/distros/focal/calamares/modules/shellprocess_add386arch.yml +0 -6
- package/conf/distros/focal/calamares/modules/shellprocess_bug-LP#1829805.yml +0 -5
- package/conf/distros/focal/calamares/modules/shellprocess_logs.yml +0 -6
- package/conf/distros/focal/calamares/modules/unpackfs.mustache +0 -6
- package/conf/distros/focal/calamares/modules/users.yml +0 -19
- package/conf/distros/focal/calamares/modules/welcome.yml +0 -26
- package/conf/distros/focal/calamares/settings.yml +0 -72
- package/dist/classes/incubation/incubator.d/bionic.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/bionic.js +0 -83
- package/dist/classes/incubation/incubator.d/focal.d.ts +0 -32
- package/dist/classes/incubation/incubator.d/focal.js +0 -85
|
@@ -17,21 +17,36 @@ import Distro from '../../classes/distro.js';
|
|
|
17
17
|
import Utils from '../../classes/utils.js';
|
|
18
18
|
import { exec } from '../../lib/utils.js';
|
|
19
19
|
import Diversions from '../../classes/diversions.js';
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
const repoUrl = `https://penguins-eggs.net/repos`; // no slash at end
|
|
21
|
+
const repoKeyUrl = repoUrl + '/KEY.asc';
|
|
22
|
+
let repoPath = '/etc/apt/sources.list.d/penguins-repos'; // Base path without extension
|
|
23
|
+
const repoKeyPath = '/usr/share/keyrings/penguins-repos.gpg';
|
|
24
|
+
// RPM (Fedora/EL)
|
|
25
|
+
const rpmKeyUrl = repoUrl + '/rpm/RPM-GPG-KEY-penguins-eggs';
|
|
26
|
+
const rpmKeyOwner = 'piero.proietti@gmail.com'; // Per cercare e rimuovere la chiave
|
|
27
|
+
const rpmRepoFilePath = '/etc/yum.repos.d/penguins-eggs.repo'; // Percorso di destinazione
|
|
28
|
+
const rpmRepoFedoraUrl = repoUrl + '/rpm/fedora/penguins-eggs.repo';
|
|
29
|
+
const rpmRepoEl9Url = repoUrl + '/rpm/el9/penguins-eggs.repo';
|
|
30
|
+
// openSUSE
|
|
31
|
+
const opensuseRepoUrl = repoUrl + '/rpm/opensuse/penguins-eggs.repo';
|
|
32
|
+
const opensuseRepoName = 'penguins-eggs'; // Dal file .repo
|
|
33
|
+
// Alpine
|
|
34
|
+
const alpineRepoUrl = repoUrl + '/alpine/';
|
|
35
|
+
const alpineKeyName = 'piero.proietti@gmail.com-662b958c';
|
|
36
|
+
const alpineKeyUrl = repoUrl + `/alpine/${alpineKeyName}.rsa.pub`;
|
|
37
|
+
const alpineKeyPath = `/etc/apk/keys/${alpineKeyName}.rsa.pub`;
|
|
38
|
+
const alpineRepoFile = '/etc/apk/repositories';
|
|
24
39
|
/**
|
|
25
40
|
*
|
|
26
41
|
*/
|
|
27
42
|
export default class Repo extends Command {
|
|
28
|
-
static description = 'add/remove penguins-
|
|
43
|
+
static description = 'add/remove penguins-repos';
|
|
29
44
|
static examples = ['sudo eggs tools repo --add', 'sudo eggs tools repo --remove'];
|
|
30
45
|
static flags = {
|
|
31
|
-
add: Flags.boolean({ char: 'a', description: 'add penguins-
|
|
46
|
+
add: Flags.boolean({ char: 'a', description: 'add penguins-repos' }),
|
|
32
47
|
help: Flags.help({ char: 'h' }),
|
|
33
48
|
nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
34
|
-
remove: Flags.boolean({ char: 'r', description: 'remove penguins-
|
|
49
|
+
remove: Flags.boolean({ char: 'r', description: 'remove penguins-repos' }),
|
|
35
50
|
verbose: Flags.boolean({ char: 'v', description: 'verbose' })
|
|
36
51
|
};
|
|
37
52
|
/**
|
|
@@ -43,15 +58,33 @@ export default class Repo extends Command {
|
|
|
43
58
|
const { nointeractive } = flags;
|
|
44
59
|
if (Utils.isRoot()) {
|
|
45
60
|
const distro = new Distro();
|
|
46
|
-
if (distro.familyId === '
|
|
61
|
+
if (distro.familyId === 'alpine') {
|
|
62
|
+
/**
|
|
63
|
+
* Alpine
|
|
64
|
+
*/
|
|
65
|
+
if (flags.add) {
|
|
66
|
+
Utils.warning(`Sei sicuro di voler aggiungere penguins-repos ai tuoi repository?`);
|
|
67
|
+
if (nointeractive || (await Utils.customConfirm('Seleziona sì per continuare...'))) {
|
|
68
|
+
await alpineRepoAdd();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else if (flags.remove) {
|
|
72
|
+
Utils.warning(`Sei sicuro di voler rimuovere penguins-repos dai tuoi repository?`);
|
|
73
|
+
if (nointeractive || (await Utils.customConfirm('Seleziona sì per continuare...'))) {
|
|
74
|
+
await alpineRepoRemove();
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
await exec('apk update');
|
|
78
|
+
}
|
|
79
|
+
else if (distro.familyId === 'archlinux') {
|
|
47
80
|
if (flags.add) {
|
|
48
|
-
Utils.warning(`Are you sure to add penguins-
|
|
81
|
+
Utils.warning(`Are you sure to add penguins-repos to your repositories?`);
|
|
49
82
|
if (await Utils.customConfirm('Select yes to continue...')) {
|
|
50
83
|
await archlinuxRepoAdd(distro.distroId);
|
|
51
84
|
}
|
|
52
85
|
}
|
|
53
86
|
else if (flags.remove) {
|
|
54
|
-
Utils.warning(`Are you sure to remove penguins-
|
|
87
|
+
Utils.warning(`Are you sure to remove penguins-repos to your repositories?`);
|
|
55
88
|
if (await Utils.customConfirm('Select yes to continue...')) {
|
|
56
89
|
await archlinuxRepoRemove(distro.distroId);
|
|
57
90
|
}
|
|
@@ -78,31 +111,54 @@ export default class Repo extends Command {
|
|
|
78
111
|
if (nointeractive || (await Utils.customConfirm('Select yes to continue...'))) {
|
|
79
112
|
await debianRemove();
|
|
80
113
|
}
|
|
114
|
+
await exec('apt-get update');
|
|
81
115
|
}
|
|
82
|
-
await exec('apt-get update');
|
|
83
116
|
}
|
|
84
117
|
else if (distro.familyId === 'fedora') {
|
|
118
|
+
/**
|
|
119
|
+
* RPM (Fedora/EL)
|
|
120
|
+
*/
|
|
121
|
+
let repoUrl = rpmRepoFedoraUrl;
|
|
85
122
|
if (distro.distroId !== 'Fedora') {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
123
|
+
repoUrl = rpmRepoEl9Url; // Supponiamo che non-Fedora in questa famiglia sia EL
|
|
124
|
+
Utils.warning(`Rilevato ${distro.distroId}. Utilizzo del repository EL9.`);
|
|
125
|
+
}
|
|
126
|
+
if (flags.add) {
|
|
127
|
+
Utils.warning(`Sei sicuro di voler aggiungere penguins-repos ai tuoi repository?`);
|
|
128
|
+
if (nointeractive || (await Utils.customConfirm('Seleziona sì per continuare...'))) {
|
|
129
|
+
await rpmRepoAdd(repoUrl, rpmKeyUrl);
|
|
130
|
+
}
|
|
89
131
|
}
|
|
90
|
-
else {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
132
|
+
else if (flags.remove) {
|
|
133
|
+
Utils.warning(`Sei sicuro di voler rimuovere penguins-repos dai tuoi repository?`);
|
|
134
|
+
if (nointeractive || (await Utils.customConfirm('Seleziona sì per continuare...'))) {
|
|
135
|
+
await rpmRepoRemove(rpmRepoFilePath, rpmKeyOwner);
|
|
136
|
+
}
|
|
94
137
|
}
|
|
138
|
+
await exec('dnf check-update');
|
|
95
139
|
}
|
|
96
140
|
else if (distro.familyId === 'opensuse') {
|
|
97
|
-
console.log("You can find the step-by-step instructions at this link:");
|
|
98
|
-
console.log("https://github.com/pieroproietti/penguins-eggs/blob/master/DOCS/INSTALL-OPENSUSE.md");
|
|
99
|
-
console.log();
|
|
100
141
|
/**
|
|
101
|
-
*
|
|
142
|
+
* openSUSE
|
|
102
143
|
*/
|
|
144
|
+
if (flags.add) {
|
|
145
|
+
Utils.warning(`Sei sicuro di voler aggiungere penguins-repos ai tuoi repository?`);
|
|
146
|
+
if (nointeractive || (await Utils.customConfirm('Seleziona sì per continuare...'))) {
|
|
147
|
+
await opensuseRepoAdd(opensuseRepoUrl);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
else if (flags.remove) {
|
|
151
|
+
Utils.warning(`Sei sicuro di voler rimuovere penguins-repos dai tuoi repository?`);
|
|
152
|
+
if (nointeractive || (await Utils.customConfirm('Seleziona sì per continuare...'))) {
|
|
153
|
+
await opensuseRepoRemove(opensuseRepoName);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
103
156
|
}
|
|
104
157
|
else {
|
|
105
|
-
|
|
158
|
+
/**
|
|
159
|
+
* All the others
|
|
160
|
+
*/
|
|
161
|
+
Utils.warning(`Distro: ${distro.distroId}/${distro.codenameId}, cannot use penguins-repo nor chaotic-aur!`);
|
|
106
162
|
}
|
|
107
163
|
}
|
|
108
164
|
}
|
|
@@ -112,13 +168,13 @@ export default class Repo extends Command {
|
|
|
112
168
|
*/
|
|
113
169
|
// archlinuxRepoAdd
|
|
114
170
|
async function archlinuxRepoAdd(distroId = "Arch") {
|
|
115
|
-
console.log(`Adding penguins-
|
|
116
|
-
const repoBlockIdentifier = '#
|
|
171
|
+
console.log(`Adding penguins-repos for ${distroId}`);
|
|
172
|
+
const repoBlockIdentifier = '# penguins-repos';
|
|
117
173
|
const repoName = '[penguins-eggs]';
|
|
118
174
|
const keyId = 'F6773EA7D2F309BA3E5DE08A45B10F271525403F';
|
|
119
|
-
let serverUrl = '
|
|
175
|
+
let serverUrl = repoUrl + '/arch';
|
|
120
176
|
if (Diversions.isManjaroBased(distroId)) {
|
|
121
|
-
serverUrl = '
|
|
177
|
+
serverUrl = repoUrl + '/manjaro';
|
|
122
178
|
}
|
|
123
179
|
const pacmanConfPath = '/etc/pacman.conf';
|
|
124
180
|
const echo = Utils.setEcho(true);
|
|
@@ -145,12 +201,12 @@ async function archlinuxRepoAdd(distroId = "Arch") {
|
|
|
145
201
|
}
|
|
146
202
|
// archlinuxRepoRemove
|
|
147
203
|
async function archlinuxRepoRemove(distroId = 'Arch') {
|
|
148
|
-
console.log(`Removing penguins-
|
|
149
|
-
const repoBlockIdentifier = '#
|
|
204
|
+
console.log(`Removing penguins-repos for ${distroId}`);
|
|
205
|
+
const repoBlockIdentifier = '# penguins-repos';
|
|
150
206
|
const repoName = '[penguins-eggs]';
|
|
151
|
-
let serverUrl = '
|
|
207
|
+
let serverUrl = repoUrl + '/arch';
|
|
152
208
|
if (Diversions.isManjaroBased(distroId)) {
|
|
153
|
-
serverUrl = '
|
|
209
|
+
serverUrl = repoUrl + '/manjaro';
|
|
154
210
|
}
|
|
155
211
|
const pacmanConfPath = '/etc/pacman.conf';
|
|
156
212
|
let pacmanConfContent = fs.readFileSync(pacmanConfPath, 'utf8');
|
|
@@ -244,3 +300,114 @@ async function debianAdd822() {
|
|
|
244
300
|
content += `Signed-By: ${repoKeyPath}\n`;
|
|
245
301
|
fs.writeFileSync(`${repoPath}.sources`, content);
|
|
246
302
|
}
|
|
303
|
+
// ... [funzioni DEBIAN esistenti] ...
|
|
304
|
+
/**
|
|
305
|
+
* ALPINE
|
|
306
|
+
*/
|
|
307
|
+
async function alpineRepoAdd() {
|
|
308
|
+
console.log('Aggiunta repository Alpine...');
|
|
309
|
+
const echo = Utils.setEcho(true);
|
|
310
|
+
if (fs.existsSync(alpineKeyPath)) {
|
|
311
|
+
console.log('Chiave già esistente.');
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
await exec(`curl -fsSL ${alpineKeyUrl} -o ${alpineKeyPath}`, echo);
|
|
315
|
+
}
|
|
316
|
+
const repoFileContent = fs.readFileSync(alpineRepoFile, 'utf8');
|
|
317
|
+
if (repoFileContent.includes(alpineRepoUrl)) {
|
|
318
|
+
console.log('La linea del repository è già presente in /etc/apk/repositories.');
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
fs.appendFileSync(alpineRepoFile, `\n${alpineRepoUrl}\n`);
|
|
322
|
+
console.log('Repository aggiunto.');
|
|
323
|
+
}
|
|
324
|
+
console.log('Esegui "apk update" per aggiornare i repository.');
|
|
325
|
+
}
|
|
326
|
+
async function alpineRepoRemove() {
|
|
327
|
+
console.log('Rimozione repository Alpine...');
|
|
328
|
+
const echo = Utils.setEcho(true);
|
|
329
|
+
// Rimuovi chiave
|
|
330
|
+
if (fs.existsSync(alpineKeyPath)) {
|
|
331
|
+
await exec(`rm -f ${alpineKeyPath}`, echo);
|
|
332
|
+
console.log('Chiave del repository rimossa.');
|
|
333
|
+
}
|
|
334
|
+
else {
|
|
335
|
+
console.log('Chiave del repository non trovata.');
|
|
336
|
+
}
|
|
337
|
+
// Rimuovi da /etc/apk/repositories
|
|
338
|
+
if (fs.existsSync(alpineRepoFile)) {
|
|
339
|
+
let content = fs.readFileSync(alpineRepoFile, 'utf8');
|
|
340
|
+
if (content.includes(alpineRepoUrl)) {
|
|
341
|
+
const newLines = content.split('\n').filter(line => line.trim() !== alpineRepoUrl);
|
|
342
|
+
fs.writeFileSync(alpineRepoFile, newLines.join('\n'));
|
|
343
|
+
console.log('Linea del repository rimossa da /etc/apk/repositories.');
|
|
344
|
+
}
|
|
345
|
+
else {
|
|
346
|
+
console.log('Linea del repository non trovata in /etc/apk/repositories.');
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
console.log('Esegui "apk update" per aggiornare i repository.');
|
|
350
|
+
}
|
|
351
|
+
/**
|
|
352
|
+
* RPM (Fedora/EL)
|
|
353
|
+
*/
|
|
354
|
+
async function rpmRepoAdd(repoUrl, keyUrl) {
|
|
355
|
+
console.log(`Aggiunta repository RPM da ${repoUrl}...`);
|
|
356
|
+
const echo = Utils.setEcho(true);
|
|
357
|
+
// Assicura che dnf-plugins-core sia installato
|
|
358
|
+
await exec('dnf install dnf-plugins-core -y', echo);
|
|
359
|
+
// Aggiungi repo
|
|
360
|
+
await exec(`dnf config-manager --add-repo ${repoUrl}`, echo);
|
|
361
|
+
// Importa chiave
|
|
362
|
+
await exec(`rpm --import ${keyUrl}`, echo);
|
|
363
|
+
console.log('Repository aggiunto. Esegui "dnf check-update" per aggiornare.');
|
|
364
|
+
}
|
|
365
|
+
async function rpmRepoRemove(repoFilePath, keyOwner) {
|
|
366
|
+
console.log('Rimozione repository RPM...');
|
|
367
|
+
const echo = Utils.setEcho(true);
|
|
368
|
+
// Rimuovi file .repo
|
|
369
|
+
if (fs.existsSync(repoFilePath)) {
|
|
370
|
+
await exec(`rm -f ${repoFilePath}`, echo);
|
|
371
|
+
console.log(`Rimosso ${repoFilePath}.`);
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
console.log(`File repository ${repoFilePath} non trovato.`);
|
|
375
|
+
}
|
|
376
|
+
// Rimuovi chiave GPG
|
|
377
|
+
const findKeyCmd = `rpm -q gpg-pubkey --qf '%{name}-%{version}-%{release} %{summary}\n' | grep '${keyOwner}' | cut -d' ' -f1`;
|
|
378
|
+
const keyNameResult = await exec(findKeyCmd, { capture: true, echo: false });
|
|
379
|
+
if (keyNameResult.code === 0 && keyNameResult.data.trim() !== '') {
|
|
380
|
+
const keyNames = keyNameResult.data.trim().split('\n');
|
|
381
|
+
for (const keyName of keyNames) {
|
|
382
|
+
if (keyName) {
|
|
383
|
+
console.log(`Rimozione chiave GPG ${keyName}...`);
|
|
384
|
+
await exec(`rpm -e ${keyName}`, echo);
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
else {
|
|
389
|
+
console.log('Nessuna chiave GPG corrispondente da rimuovere.');
|
|
390
|
+
}
|
|
391
|
+
console.log('Repository rimosso. Esegui "dnf check-update" per aggiornare.');
|
|
392
|
+
}
|
|
393
|
+
/**
|
|
394
|
+
* openSUSE
|
|
395
|
+
*/
|
|
396
|
+
async function opensuseRepoAdd(repoUrl) {
|
|
397
|
+
console.log(`Aggiunta repository openSUSE da ${repoUrl}...`);
|
|
398
|
+
const echo = Utils.setEcho(true);
|
|
399
|
+
// zypper ar <url>
|
|
400
|
+
await exec(`zypper addrepo ${repoUrl}`, echo);
|
|
401
|
+
// Refresh e importa chiave
|
|
402
|
+
await exec(`zypper --gpg-auto-import-keys refresh`, echo);
|
|
403
|
+
console.log('Repository aggiunto.');
|
|
404
|
+
}
|
|
405
|
+
async function opensuseRepoRemove(repoName) {
|
|
406
|
+
console.log(`Rimozione repository openSUSE: ${repoName}...`);
|
|
407
|
+
const echo = Utils.setEcho(true);
|
|
408
|
+
// zypper rr <name>
|
|
409
|
+
await exec(`zypper removerepo ${repoName}`, echo);
|
|
410
|
+
// Refresh
|
|
411
|
+
await exec(`zypper refresh`, echo);
|
|
412
|
+
console.log('Repository rimosso.');
|
|
413
|
+
}
|
|
@@ -8,12 +8,13 @@
|
|
|
8
8
|
*/
|
|
9
9
|
import Utils from '../../../classes/utils.js';
|
|
10
10
|
import { exec } from '../../../lib/utils.js';
|
|
11
|
+
import path from 'path';
|
|
11
12
|
/**
|
|
12
13
|
* unpackfs
|
|
13
14
|
*/
|
|
14
15
|
export default async function unpackfs() {
|
|
15
|
-
|
|
16
|
-
const cmd = `unsquashfs -d ${this.installTarget} -f ${
|
|
16
|
+
const squafsPath = path.join(this.distro.liveMediumPath, this.distro.squashfs);
|
|
17
|
+
const cmd = `unsquashfs -d ${this.installTarget} -f ${squafsPath} ${this.toNull}`;
|
|
17
18
|
const echoYes = Utils.setEcho(true);
|
|
18
19
|
const echoNo = Utils.setEcho(false);
|
|
19
20
|
await exec(cmd, echoNo);
|
package/dracut/create-symlink
CHANGED
|
File without changes
|
package/dracut/export
CHANGED
|
File without changes
|
|
File without changes
|
package/dracut/export-dracut-log
CHANGED
|
File without changes
|
package/dracut/mkisofs
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/dracut/renew-initramfs
CHANGED
|
File without changes
|
package/dracut/sbin2bin
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/eui/eui-create-image.sh
CHANGED
|
File without changes
|
package/eui/eui-start.sh
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
@@ -1,127 +1,133 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
],
|
|
86
|
-
"homepage": "https://penguins-eggs.net",
|
|
87
|
-
"keywords": [
|
|
88
|
-
"oclif",
|
|
89
|
-
"remaster",
|
|
90
|
-
"system"
|
|
91
|
-
],
|
|
92
|
-
"license": "MIT",
|
|
93
|
-
"main": "dist/index.js",
|
|
94
|
-
"type": "module",
|
|
95
|
-
"oclif": {
|
|
96
|
-
"bin": "eggs",
|
|
97
|
-
"dirname": "penguins-eggs",
|
|
98
|
-
"commands": "./dist/commands",
|
|
99
|
-
"plugins": [
|
|
100
|
-
"@oclif/plugin-help",
|
|
101
|
-
"@oclif/plugin-autocomplete",
|
|
102
|
-
"@oclif/plugin-version"
|
|
2
|
+
"name": "penguins-eggs",
|
|
3
|
+
"shortName": "eggs",
|
|
4
|
+
"description": "A remaster system tool, compatible with Arch, Debian, Devuan, Ubuntu and others",
|
|
5
|
+
"version": "25.11.12",
|
|
6
|
+
"author": "Piero Proietti",
|
|
7
|
+
"bin": {
|
|
8
|
+
"eggs": "./bin/run.js"
|
|
9
|
+
},
|
|
10
|
+
"bugs": "https://github.com/pieroproietti/penguins-eggs/issues",
|
|
11
|
+
"dependencies": {
|
|
12
|
+
"@oclif/core": "^4.8.0",
|
|
13
|
+
"@oclif/plugin-autocomplete": "^3.2.39",
|
|
14
|
+
"@oclif/plugin-help": "^6.2.35",
|
|
15
|
+
"@oclif/plugin-version": "^2.2.36",
|
|
16
|
+
"@types/express": "^5.0.5",
|
|
17
|
+
"ansis": "^4.2.0",
|
|
18
|
+
"axios": "^1.13.2",
|
|
19
|
+
"chalk": "^5.6.2",
|
|
20
|
+
"cli-cursor": "^5.0.0",
|
|
21
|
+
"debug": "^4.4.3",
|
|
22
|
+
"express": "^5.1.0",
|
|
23
|
+
"ink": "^5",
|
|
24
|
+
"ink-progress-bar": "^3.0.0",
|
|
25
|
+
"ink-spinner": "^5.0.0",
|
|
26
|
+
"inquirer": "^12.11.0",
|
|
27
|
+
"js-yaml": "^4.1.1",
|
|
28
|
+
"mustache": "^4.2.0",
|
|
29
|
+
"netmask": "^2.0.2",
|
|
30
|
+
"react": "^18.3.1",
|
|
31
|
+
"read": "^4.1.0",
|
|
32
|
+
"shelljs": "^0.10.0",
|
|
33
|
+
"systeminformation": "^5.27.11",
|
|
34
|
+
"tftp": "^0.1.2",
|
|
35
|
+
"ws": "^8.18.3"
|
|
36
|
+
},
|
|
37
|
+
"devDependencies": {
|
|
38
|
+
"@oclif/prettier-config": "^0.2.1",
|
|
39
|
+
"@oclif/test": "^4.1.14",
|
|
40
|
+
"@types/chai": "^5.2.3",
|
|
41
|
+
"@types/debug": "^4.1.12",
|
|
42
|
+
"@types/glob": "^9.0.0",
|
|
43
|
+
"@types/inquirer": "^9.0.9",
|
|
44
|
+
"@types/js-yaml": "^4.0.9",
|
|
45
|
+
"@types/mocha": "^10.0.8",
|
|
46
|
+
"@types/mustache": "^4.2.6",
|
|
47
|
+
"@types/netmask": "^2.0.5",
|
|
48
|
+
"@types/node": "^22.15.30",
|
|
49
|
+
"@types/react": "^18.3.18",
|
|
50
|
+
"@types/read": "^0.0.32",
|
|
51
|
+
"@types/shelljs": "^0.8.17",
|
|
52
|
+
"@types/ws": "^8.18.1",
|
|
53
|
+
"chai": "^6.2.1",
|
|
54
|
+
"eslint": "^9.39.1",
|
|
55
|
+
"eslint-config-oclif": "^6.0.116",
|
|
56
|
+
"eslint-config-prettier": "^10.1.8",
|
|
57
|
+
"glob": "^11.0.3",
|
|
58
|
+
"mocha": "^11.7.5",
|
|
59
|
+
"oclif": "^4.22.44",
|
|
60
|
+
"perrisbrewery": "^25.9.16",
|
|
61
|
+
"prettier": "^3.6.2",
|
|
62
|
+
"shx": "^0.4.0",
|
|
63
|
+
"ts-node": "10.9.2",
|
|
64
|
+
"ts-prune": "^0.10.3",
|
|
65
|
+
"typescript": "^5.9.3"
|
|
66
|
+
},
|
|
67
|
+
"engines": {
|
|
68
|
+
"node": ">=16.0.0"
|
|
69
|
+
},
|
|
70
|
+
"files": [
|
|
71
|
+
".oclif.manifest.json",
|
|
72
|
+
"/addons",
|
|
73
|
+
"/assets",
|
|
74
|
+
"/bin",
|
|
75
|
+
"/conf",
|
|
76
|
+
"/dist",
|
|
77
|
+
"/dracut",
|
|
78
|
+
"/eui",
|
|
79
|
+
"/initramfs-tools",
|
|
80
|
+
"/manpages",
|
|
81
|
+
"/mkinitcpio",
|
|
82
|
+
"/mkinitfs",
|
|
83
|
+
"/perrisbrewery",
|
|
84
|
+
"/scripts"
|
|
103
85
|
],
|
|
104
|
-
"
|
|
105
|
-
"
|
|
106
|
-
|
|
107
|
-
"
|
|
108
|
-
|
|
86
|
+
"homepage": "https://penguins-eggs.net",
|
|
87
|
+
"keywords": [
|
|
88
|
+
"oclif",
|
|
89
|
+
"remaster",
|
|
90
|
+
"system"
|
|
91
|
+
],
|
|
92
|
+
"license": "MIT",
|
|
93
|
+
"main": "dist/index.js",
|
|
94
|
+
"type": "module",
|
|
95
|
+
"oclif": {
|
|
96
|
+
"bin": "eggs",
|
|
97
|
+
"dirname": "penguins-eggs",
|
|
98
|
+
"commands": "./dist/commands",
|
|
99
|
+
"plugins": [
|
|
100
|
+
"@oclif/plugin-help",
|
|
101
|
+
"@oclif/plugin-autocomplete",
|
|
102
|
+
"@oclif/plugin-version"
|
|
103
|
+
],
|
|
104
|
+
"topicSeparator": " ",
|
|
105
|
+
"topics": {
|
|
106
|
+
"hello": {
|
|
107
|
+
"description": "Say hello to the world and others"
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
"repository": "pieroproietti/penguins-eggs",
|
|
112
|
+
"scripts": {
|
|
113
|
+
"_postpack": "shx rm -f oclif.manifest.json",
|
|
114
|
+
"_prepack": "oclif manifest && ocl -t linux-x64",
|
|
115
|
+
"build": "shx rm -rf dist && tsc -b",
|
|
116
|
+
"deb": "shx rm -rf dist && tsc -p . && oclif manifest && pb deb --release $(cat ./release)",
|
|
117
|
+
"format": "prettier --write \"+(src|test)/**/*.+(ts|js|json)\"",
|
|
118
|
+
"lint": "eslint . --ext .ts",
|
|
119
|
+
"manifest": "oclif manifest",
|
|
120
|
+
"posttest": "pnpm run lint",
|
|
121
|
+
"tarballs": "shx rm -rf dist && tsc -p . && oclif manifest && oclif pack tarballs -t linux-x64 --no-xz -r . && pb tarballs --release $(cat ./release)",
|
|
122
|
+
"test": "mocha --forbid-only \"test/**/*.test.ts\"",
|
|
123
|
+
"unused": "ts-prune",
|
|
124
|
+
"version": "oclif readme && git add README.md"
|
|
125
|
+
},
|
|
126
|
+
"types": "dist/index.d.ts",
|
|
127
|
+
"pnpm": {
|
|
128
|
+
"overrides": {
|
|
129
|
+
"react": "^18.3.1",
|
|
130
|
+
"@types/react": "^18.3.18"
|
|
131
|
+
}
|
|
109
132
|
}
|
|
110
|
-
|
|
111
|
-
"repository": "pieroproietti/penguins-eggs",
|
|
112
|
-
"types": "dist/index.d.ts",
|
|
113
|
-
"scripts": {
|
|
114
|
-
"_postpack": "shx rm -f oclif.manifest.json",
|
|
115
|
-
"_prepack": "oclif manifest && ocl -t linux-x64",
|
|
116
|
-
"build": "shx rm -rf dist && tsc -b",
|
|
117
|
-
"deb": "shx rm -rf dist && tsc -p . && oclif manifest && pb deb --release $(cat ./release)",
|
|
118
|
-
"format": "prettier --write \"+(src|test)/**/*.+(ts|js|json)\"",
|
|
119
|
-
"lint": "eslint . --ext .ts",
|
|
120
|
-
"manifest": "oclif manifest",
|
|
121
|
-
"posttest": "pnpm run lint",
|
|
122
|
-
"tarballs": "shx rm -rf dist && tsc -p . && oclif manifest && oclif pack tarballs -t linux-x64 --no-xz -r . && pb tarballs --release $(cat ./release)",
|
|
123
|
-
"test": "mocha --forbid-only \"test/**/*.test.ts\"",
|
|
124
|
-
"unused": "ts-prune",
|
|
125
|
-
"version": "oclif readme && git add README.md"
|
|
126
|
-
}
|
|
127
|
-
}
|
|
133
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|