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.
Files changed (131) hide show
  1. package/.oclif.manifest.json +4 -4
  2. package/README.md +3 -3
  3. package/addons/eggs/adapt/applications/eggs-adapt.desktop +0 -0
  4. package/addons/eggs/pve/applications/eggs-pve.desktop +0 -0
  5. package/addons/eggs/rsupport/applications/eggs-rsupport.desktop +0 -0
  6. package/addons/eggs/theme/applications/install-system.desktop +0 -0
  7. package/assets/calamares/install-system.sh +0 -0
  8. package/assets/penguins-eggs.desktop +0 -0
  9. package/assets/penguins-krill.desktop +0 -0
  10. package/assets/penguins-links-add.desktop +0 -0
  11. package/assets/penguins-live-installer.desktop +0 -0
  12. package/bin/dev.js +0 -0
  13. package/conf/distros/alpine/calamares/calamares-modules/machineid-openrc/machineid-openrc.sh +0 -0
  14. package/conf/distros/alpine/calamares/modules/packages.mustache +1 -0
  15. package/conf/distros/alpine/calamares/modules/removeuser.mustache +2 -14
  16. package/conf/distros/alpine/calamares/modules/unpackfs.mustache +2 -2
  17. package/conf/distros/archlinux/calamares/modules/bootloader.yml +1 -1
  18. package/conf/distros/archlinux/calamares/modules/partition.yml +385 -8
  19. package/conf/distros/buster/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
  20. package/conf/distros/buster/calamares/calamares-modules/dpkg-unsafe-io/dpkg-unsafe-io.sh +0 -0
  21. package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
  22. package/conf/distros/buster/calamares/modules/shellprocess@boot_deploy.yml +1 -16
  23. package/conf/distros/fedora/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +0 -0
  24. package/conf/distros/noble/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
  25. package/conf/distros/noble/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
  26. package/conf/distros/noble/calamares/libexec/calamares-aptsources.sh +0 -0
  27. package/conf/distros/noble/calamares/libexec/calamares-l10n-helper.sh +0 -0
  28. package/conf/distros/noble/calamares/libexec/calamares-logs-helper.sh +1 -1
  29. package/conf/distros/noble/calamares/libexec/calamares-nomodeset.sh +0 -0
  30. package/conf/distros/noble/calamares/modules/shellprocess@boot_deploy.yml +1 -11
  31. package/conf/distros/noble/calamares/modules/shellprocess@logs.yml +1 -1
  32. package/conf/distros/opensuse/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +0 -0
  33. package/conf/distros/opensuse/calamares/settings.yml +0 -0
  34. package/conf/distros/opensuse/calamares/zstd2lzo.sh +0 -0
  35. package/conf/distros/trixie/calamares/calamares-modules/cleanup/cleanup.sh +0 -0
  36. package/conf/distros/trixie/calamares/calamares-modules/dpkg-unsafe-io/dpkg-unsafe-io.sh +0 -0
  37. package/conf/distros/trixie/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -0
  38. package/conf/distros/trixie/calamares/modules/shellprocess@boot_deploy.yml +2 -10
  39. package/conf/init/unattended.sh +0 -0
  40. package/dist/classes/cli-autologin.d.ts +1 -39
  41. package/dist/classes/cli-autologin.js +85 -110
  42. package/dist/classes/daddy.d.ts +30 -12
  43. package/dist/classes/daddy.js +166 -137
  44. package/dist/classes/distro.js +11 -27
  45. package/dist/classes/diversions.d.ts +3 -37
  46. package/dist/classes/diversions.js +72 -103
  47. package/dist/classes/incubation/customize/customize-partitions.js +8 -1
  48. package/dist/classes/incubation/fisherman-helper/packages.js +1 -1
  49. package/dist/classes/incubation/fisherman.d.ts +5 -0
  50. package/dist/classes/incubation/fisherman.js +21 -1
  51. package/dist/classes/incubation/incubator.d/noble.js +6 -2
  52. package/dist/classes/incubation/incubator.js +4 -5
  53. package/dist/classes/keyboards.d.ts +11 -30
  54. package/dist/classes/keyboards.js +100 -251
  55. package/dist/classes/ovary.d/initrd.js +2 -7
  56. package/dist/classes/pacman.d/archlinux.js +5 -5
  57. package/dist/classes/pacman.d/debian.js +0 -2
  58. package/dist/classes/pacman.d/opensuse.js +2 -2
  59. package/dist/classes/pacman.js +7 -9
  60. package/dist/commands/tools/repo.js +198 -31
  61. package/dist/krill/classes/sequence.d/unpackfs.js +3 -2
  62. package/dracut/create-symlink +0 -0
  63. package/dracut/export +0 -0
  64. package/dracut/export-dracut-analysis +0 -0
  65. package/dracut/export-dracut-log +0 -0
  66. package/dracut/mkisofs +0 -0
  67. package/dracut/modules.d/00debug-shell/debug-hook.sh +0 -0
  68. package/dracut/modules.d/00debug-shell/module-setup.sh +0 -0
  69. package/dracut/modules.d/90block/block-cmdline.sh +0 -0
  70. package/dracut/modules.d/90block/module-setup.sh +0 -0
  71. package/dracut/modules.d/95iso-scan/iso-scan-fallback.sh +0 -0
  72. package/dracut/modules.d/95iso-scan/iso-scan.sh +0 -0
  73. package/dracut/modules.d/95iso-scan/module-setup.sh +0 -0
  74. package/dracut/modules.d/95luks-loop/luks-loop.sh +0 -0
  75. package/dracut/modules.d/95luks-loop/module-setup.sh +0 -0
  76. package/dracut/renew-initramfs +0 -0
  77. package/dracut/sbin2bin +0 -0
  78. package/dracut/update-dracut-conf-d +0 -0
  79. package/dracut/update-dracut-modules +0 -0
  80. package/eui/eui-autostart-cinnamon.desktop +0 -0
  81. package/eui/eui-autostart-xfce.desktop +0 -0
  82. package/eui/eui-create-image.sh +0 -0
  83. package/eui/eui-start.sh +0 -0
  84. package/package.json +130 -124
  85. package/perrisbrewery/scripts/postinst +0 -0
  86. package/perrisbrewery/scripts/postrm +0 -0
  87. package/perrisbrewery/scripts/preinst +0 -0
  88. package/perrisbrewery/scripts/prerm +0 -0
  89. package/perrisbrewery/template/dependencies.yaml +7 -6
  90. package/scripts/99clean +0 -0
  91. package/scripts/adapt.sh +0 -0
  92. package/scripts/boot-encrypted-root.sh +0 -0
  93. package/scripts/bros/waydroid-helper.sh +0 -0
  94. package/scripts/lsb_release +0 -0
  95. package/scripts/mom.sh +0 -0
  96. package/scripts/mount-encrypted-home.sh +0 -0
  97. package/scripts/pve-live.service +0 -0
  98. package/scripts/pve-live.sh +0 -0
  99. package/scripts/resy +0 -0
  100. package/conf/distros/focal/calamares/calamares-modules/.keepit +0 -0
  101. package/conf/distros/focal/calamares/calamares-modules/cleanup/cleanup.sh +0 -20
  102. package/conf/distros/focal/calamares/calamares-modules/cleanup/module.yml +0 -9
  103. package/conf/distros/focal/calamares/calamares-modules/sources-yolk/module.yml +0 -8
  104. package/conf/distros/focal/calamares/calamares-modules/sources-yolk/sources-yolk.sh +0 -50
  105. package/conf/distros/focal/calamares/calamares-modules/sources-yolk-undo/module.yml +0 -8
  106. package/conf/distros/focal/calamares/modules/after_bootloader_context.yml +0 -19
  107. package/conf/distros/focal/calamares/modules/automirror.yml +0 -6
  108. package/conf/distros/focal/calamares/modules/before_bootloader_context.yml +0 -19
  109. package/conf/distros/focal/calamares/modules/before_bootloader_mkdirs_context.yml +0 -11
  110. package/conf/distros/focal/calamares/modules/bootloader.yml +0 -34
  111. package/conf/distros/focal/calamares/modules/displaymanager.yml +0 -12
  112. package/conf/distros/focal/calamares/modules/finished.yml +0 -4
  113. package/conf/distros/focal/calamares/modules/fstab.yml +0 -13
  114. package/conf/distros/focal/calamares/modules/grubcfg.yml +0 -5
  115. package/conf/distros/focal/calamares/modules/locale.yml +0 -9
  116. package/conf/distros/focal/calamares/modules/machineid.yml +0 -9
  117. package/conf/distros/focal/calamares/modules/mount.yml +0 -41
  118. package/conf/distros/focal/calamares/modules/packages.mustache +0 -5
  119. package/conf/distros/focal/calamares/modules/partition.yml +0 -10
  120. package/conf/distros/focal/calamares/modules/removeuser.mustache +0 -3
  121. package/conf/distros/focal/calamares/modules/shellprocess_add386arch.yml +0 -6
  122. package/conf/distros/focal/calamares/modules/shellprocess_bug-LP#1829805.yml +0 -5
  123. package/conf/distros/focal/calamares/modules/shellprocess_logs.yml +0 -6
  124. package/conf/distros/focal/calamares/modules/unpackfs.mustache +0 -6
  125. package/conf/distros/focal/calamares/modules/users.yml +0 -19
  126. package/conf/distros/focal/calamares/modules/welcome.yml +0 -26
  127. package/conf/distros/focal/calamares/settings.yml +0 -72
  128. package/dist/classes/incubation/incubator.d/bionic.d.ts +0 -32
  129. package/dist/classes/incubation/incubator.d/bionic.js +0 -83
  130. package/dist/classes/incubation/incubator.d/focal.d.ts +0 -32
  131. 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 repoKeyUrl = 'https://pieroproietti.github.io/penguins-eggs-repo/KEY.asc';
21
- const repoKeyPath = '/usr/share/keyrings/penguins-eggs-repo.gpg';
22
- const repoUrl = `https://pieroproietti.github.io/penguins-eggs-repo`;
23
- let repoPath = '/etc/apt/sources.list.d/penguins-eggs-repo'; // Base path without extension
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-eggs-repo';
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-eggs-repo' }),
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-eggs-repo' }),
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 === 'archlinux') {
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-eggs repo to your repositories?`);
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-eggs repo to your repositories?`);
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
- console.log("You can find the step-by-step instructions at this link:");
87
- console.log("https://github.com/pieroproietti/penguins-eggs/blob/master/DOCS/INSTALL-ENTERPRISE-LINUX.md");
88
- console.log();
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
- console.log("You can find the step-by-step instructions at this link:");
92
- console.log("https://github.com/pieroproietti/penguins-eggs/blob/master/DOCS/INSTALL-FEDORA.md");
93
- console.log();
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
- * All the others
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
- Utils.warning(`Distro: ${distro.distroId}/${distro.codenameId}, cannot use penguins-eggs-repo nor chaotic-aur!`);
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-eggs repo for ${distroId}`);
116
- const repoBlockIdentifier = '# Penguins-eggs repository';
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 = 'https://pieroproietti.github.io/penguins-eggs-repo/arch';
175
+ let serverUrl = repoUrl + '/arch';
120
176
  if (Diversions.isManjaroBased(distroId)) {
121
- serverUrl = 'https://pieroproietti.github.io/penguins-eggs-repo/manjaro';
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-eggs repo for ${distroId}`);
149
- const repoBlockIdentifier = '# Penguins-eggs repository';
204
+ console.log(`Removing penguins-repos for ${distroId}`);
205
+ const repoBlockIdentifier = '# penguins-repos';
150
206
  const repoName = '[penguins-eggs]';
151
- let serverUrl = 'https://pieroproietti.github.io/penguins-eggs-repo/arch';
207
+ let serverUrl = repoUrl + '/arch';
152
208
  if (Diversions.isManjaroBased(distroId)) {
153
- serverUrl = 'https://pieroproietti.github.io/penguins-eggs-repo/manjaro';
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
- // const cmd = `unsquashfs -d ${this.installTarget} -f ${this.distro.liveMediumPath}`
16
- const cmd = `unsquashfs -d ${this.installTarget} -f ${this.distro.liveMediumPath}${this.distro.squashfs} ${this.toNull}`;
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);
File without changes
package/dracut/export CHANGED
File without changes
File without changes
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
File without changes
package/dracut/sbin2bin CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/eui/eui-start.sh CHANGED
File without changes
package/package.json CHANGED
@@ -1,127 +1,133 @@
1
1
  {
2
- "name": "penguins-eggs",
3
- "shortName": "eggs",
4
- "description": "A remaster system tool, compatible with Arch, Debian, Devuan, Ubuntu and others",
5
- "version": "25.10.30",
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.38",
14
- "@oclif/plugin-help": "^6.2.34",
15
- "@oclif/plugin-version": "^2.2.35",
16
- "@types/express": "^5.0.5",
17
- "ansis": "^4.2.0",
18
- "axios": "^1.13.1",
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.10.0",
27
- "js-yaml": "^4.1.0",
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.8",
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.0",
54
- "eslint": "^9.38.0",
55
- "eslint-config-oclif": "^6.0.114",
56
- "eslint-config-prettier": "^10.1.8",
57
- "glob": "^11.0.3",
58
- "mocha": "^11.7.4",
59
- "oclif": "^4.22.38",
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"
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
- "topicSeparator": " ",
105
- "topics": {
106
- "hello": {
107
- "description": "Say hello to the world and others"
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