penguins-eggs 25.7.22 → 25.8.6

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.
@@ -28,7 +28,7 @@
28
28
  ids:
29
29
  - kali-rolling # kali
30
30
  - faye # LMDE 6
31
- - Sparky # SparkyLinux 7
31
+ - orion-belt # SparkyLinux 7
32
32
  - ara # Parrot ara
33
33
 
34
34
  # trixie
@@ -118,6 +118,7 @@
118
118
  - xia # Linuxmint 22.1
119
119
  - zara # Linuxmint 22.2
120
120
  - nexalinux # Nexa LInux
121
+ - crimson # Deepin 25 crimson
121
122
 
122
123
  - id:
123
124
  #
@@ -132,9 +133,5 @@
132
133
  # BluestarLinux
133
134
  - bluestarlinux
134
135
 
135
- # Garuda
136
- - spizaetus
137
-
138
136
  # Manjaro
139
- - yonada
140
- # Zetar
137
+ - zetar
@@ -45,7 +45,7 @@ export async function xorrisoCommand(clone = false, cryptedclone = false) {
45
45
  // const preparer = '-preparer "prepared by eggs <https://penguins-eggs.net>" '
46
46
  let isoHybridMbr = '';
47
47
  if (this.settings.config.make_isohybrid) {
48
- const isolinuxFile = this.settings.distro.syslinuxPath + '/isohdpfx.bin';
48
+ const isolinuxFile = path.resolve(__dirname, `../../../bootloaders/syslinux/isohdpfx.bin`);
49
49
  if (fs.existsSync(isolinuxFile)) {
50
50
  isoHybridMbr = `-isohybrid-mbr ${isolinuxFile}`;
51
51
  }
@@ -9,6 +9,7 @@ import path from 'path';
9
9
  import Distro from '../distro.js';
10
10
  import Diversions from '../diversions.js';
11
11
  import Utils from '../utils.js';
12
+ import { execSync } from 'node:child_process';
12
13
  /**
13
14
  * Kernel utilities for managing vmlinuz and initramfs paths
14
15
  */
@@ -45,11 +46,15 @@ export default class Kernel {
45
46
  const distro = new Distro();
46
47
  let initramfs = '';
47
48
  if (kernel === '') {
48
- // Auto-detection
49
- const kernelModulesPath = this.getKernelModulesPath();
50
- const kernels = this.getAvailableKernels(kernelModulesPath);
51
- const latestKernel = kernels[kernels.length - 1];
52
- kernel = latestKernel;
49
+ if (!Utils.isContainer()) {
50
+ kernel = execSync('uname -r').toString().trim();
51
+ }
52
+ else {
53
+ const kernelModulesPath = this.getKernelModulesPath();
54
+ const kernels = this.getAvailableKernels(kernelModulesPath);
55
+ const latestKernel = kernels[kernels.length - 1];
56
+ kernel = latestKernel;
57
+ }
53
58
  }
54
59
  if (distro.familyId === "archlinux") {
55
60
  initramfs = this.getArchInitramfs(kernel, distro);
@@ -58,12 +63,12 @@ export default class Kernel {
58
63
  initramfs = '/boot/initramfs-lts';
59
64
  }
60
65
  else {
61
- // Debian/Ubuntu/derivatives
66
+ // Gestione generica per le altre distro (Debian, Fedora, SUSE, ecc.)
62
67
  const possiblePaths = [
63
- `/boot/initrd.img-${kernel}`,
64
- `/boot/initramfs-${kernel}.img`,
65
- `/boot/initramfs-${kernel}`,
66
- `/boot/initrd-${kernel}` // opensuse
68
+ `/boot/initrd.img-${kernel}`, // Debian, Ubuntu e derivate
69
+ `/boot/initramfs-${kernel}.img`, // Fedora, RHEL, CentOS e derivate
70
+ `/boot/initrd-${kernel}`, // openSUSE
71
+ `/boot/initramfs-${kernel}` // fallback generico
67
72
  ];
68
73
  for (const path of possiblePaths) {
69
74
  if (fs.existsSync(path)) {
@@ -55,17 +55,7 @@ export default class ExportPkg extends Command {
55
55
  let localPath = '';
56
56
  let remotePath = '';
57
57
  let filter = '';
58
- /**
59
- * aldos
60
- */
61
- if (familyId === 'aldos') {
62
- Utils.warning("aldos rpm");
63
- process.exit();
64
- /**
65
- * alpine
66
- */
67
- }
68
- else if (familyId === 'alpine') {
58
+ if (familyId === 'alpine') {
69
59
  let arch = 'x86_64';
70
60
  if (process.arch === 'ia32') {
71
61
  arch = 'i386';
@@ -117,8 +107,14 @@ export default class ExportPkg extends Command {
117
107
  else if (familyId === 'fedora') {
118
108
  Utils.warning("fedora rpm packages");
119
109
  localPath = `/home/${this.user}/rpmbuild/RPMS/x86_64`;
120
- remotePath = this.Tu.config.remotePathPackages + "/fedora";
121
- filter = `penguins-eggs-[0-9][0-9].@([0-9]|[0-1][0-9]).@([0-9]|[0-3][0-9])-*fedora.*.rpm`;
110
+ if (distroId === 'fedora') {
111
+ remotePath = this.Tu.config.remotePathPackages + "/fedora";
112
+ filter = `penguins-eggs-[0-9][0-9].[0-9]*.[0-9]*-*.fc??.x86_64.rpm`;
113
+ }
114
+ else {
115
+ remotePath = this.Tu.config.remotePathPackages + "/el9";
116
+ filter = `penguins-eggs-[0-9][0-9].[0-9]*.[0-9]*-*.el?.x86_64.rpm`;
117
+ }
122
118
  /**
123
119
  * openmamba
124
120
  */
@@ -134,7 +130,9 @@ export default class ExportPkg extends Command {
134
130
  }
135
131
  else if (familyId === 'opensuse') {
136
132
  Utils.warning("opensuse rpm packages");
137
- process.exit();
133
+ localPath = `/home/${this.user}/rpmbuild/RPMS/x86_64`;
134
+ remotePath = this.Tu.config.remotePathPackages + "/opensuse";
135
+ filter = `penguins-eggs-[0-9][0-9].[0-9]*.[0-9]*-*.opensuse.x86_64.rpm`;
138
136
  /**
139
137
  * voidlinux
140
138
  */
@@ -148,6 +146,7 @@ export default class ExportPkg extends Command {
148
146
  cmd += 'shopt -s extglob\n';
149
147
  cmd += `mkdir ${remoteMountpoint}\n`;
150
148
  cmd += `sshfs ${this.Tu.config.remoteUser}@${this.Tu.config.remoteHost}:${remotePath} ${remoteMountpoint}\n`;
149
+ let archDest = 'x86_64';
151
150
  if (this.clean) {
152
151
  let archDest = '';
153
152
  if (distro.familyId === 'alpine') {
@@ -52,13 +52,13 @@ export default class ExportTarballs extends Command {
52
52
  const remoteMountpoint = `/tmp/eggs-${(Math.random() + 1).toString(36).slice(7)}`;
53
53
  const localPath = `/home/${this.user}/penguins-eggs/dist/`;
54
54
  const remotePath = `${this.Tu.config.remotePathPackages}/tarballs/`;
55
- const tarNamePattern = `penguins-eggs_${pjson.version}-*-linux-x64.tar.gz`;
55
+ const tarNamePattern = `penguins-eggs_[0-9][0-9].[0-9]*.[0-9]*-*-linux-x64.tar.gz`;
56
56
  const searchPattern = path.join(localPath, tarNamePattern);
57
57
  const matchingFiles = globSync(searchPattern);
58
58
  if (matchingFiles.length === 0) {
59
59
  console.log(`No ${searchPattern} exists!`);
60
60
  console.log(`Create it using: pnpm tarballs`);
61
- process.exit(1);
61
+ // process.exit(1)
62
62
  }
63
63
  let cmd = `mkdir ${remoteMountpoint}\n`;
64
64
  cmd += `sshfs ${this.Tu.config.remoteUser}@${this.Tu.config.remoteHost}:${remotePath} ${remoteMountpoint}\n`;
@@ -35,8 +35,8 @@ export default class Love extends Command {
35
35
  let nointeractive = false;
36
36
  let flagNointeractive = '';
37
37
  if (flags.nointeractive) {
38
- nointeractive = true;
39
38
  flagNointeractive = '--nointeractive';
39
+ nointeractive = true;
40
40
  }
41
41
  const echo = Utils.setEcho(verbose);
42
42
  Utils.titles(this.id + ' ' + this.argv);
@@ -115,25 +115,17 @@ export default class Update extends Command {
115
115
  async getPkgFromLan() {
116
116
  const Tu = new Tools();
117
117
  await Tu.loadSettings();
118
- Utils.warning('import from lan');
119
- if (this.distro.familyId === "debian") {
120
- const filterDeb = `penguins-eggs_10.?.*-*_${Utils.uefiArch()}.deb`;
121
- const cmd = `scp ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathPackages}/debs/${filterDeb} /tmp`;
122
- await exec(cmd, { capture: true, echo: true });
123
- if (await Utils.customConfirm(`Want to install ${filterDeb}`)) {
124
- await exec(`dpkg -i /tmp/${filterDeb}`);
125
- }
126
- }
127
- else if (this.distro.familyId === 'archlinux') {
118
+ Utils.warning('Update from LAN');
119
+ if (this.distro.familyId === 'archlinux') {
128
120
  let repo = "aur";
129
121
  if (Diversions.isManjaroBased(this.distro.distroId)) {
130
122
  repo = 'manjaro';
131
123
  }
132
- const filterAur = `penguins-eggs-10.?.*-?-any.pkg.tar.zst`;
133
- const cmd = `scp ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathPackages}/${repo}/${filterAur} /tmp`;
124
+ const filter = `penguins-eggs-25.*.*-?-any.pkg.tar.zst`;
125
+ const cmd = `scp ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathPackages}/${repo}/${filter} /tmp`;
134
126
  await exec(cmd, { capture: true, echo: true });
135
- if (await Utils.customConfirm(`Want to install ${filterAur}`)) {
136
- await exec(`pacman -U /tmp/${filterAur}`);
127
+ if (await Utils.customConfirm(`Want to install ${filter}`)) {
128
+ await exec(`pacman -U /tmp/${filter}`);
137
129
  }
138
130
  }
139
131
  else if (this.distro.familyId === 'alpine') {
@@ -141,13 +133,21 @@ export default class Update extends Command {
141
133
  if (process.arch === 'ia32') {
142
134
  arch = 'i386';
143
135
  }
144
- const filter = `penguins-eggs*10.?.*-r*.apk`;
136
+ const filter = `penguins-eggs-25.*.*-r*.apk`;
145
137
  const cmd = `scp ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathPackages}/alpine/${filter} /tmp`;
146
138
  await exec(cmd, { capture: true, echo: true });
147
139
  if (await Utils.customConfirm(`Want to install ${filter}`)) {
148
140
  await exec(`apk add /tmp/${filter}`);
149
141
  }
150
142
  }
143
+ else if (this.distro.familyId === "debian") {
144
+ const filter = `penguins-eggs_25.*.*-*_${Utils.uefiArch()}.deb`;
145
+ const cmd = `scp ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathPackages}/debs/${filter} /tmp`;
146
+ await exec(cmd, { capture: true, echo: true });
147
+ if (await Utils.customConfirm(`Want to install ${filter}`)) {
148
+ await exec(`dpkg -i /tmp/${filter}`);
149
+ }
150
+ }
151
151
  }
152
152
  /**
153
153
  *
@@ -157,13 +157,7 @@ export default class Update extends Command {
157
157
  let cmd = '';
158
158
  let url = 'https://sourceforge.net/projects/penguins-eggs/files/Packages';
159
159
  let filter = `penguins-eggs`;
160
- if (this.distro.familyId === "debian") {
161
- repo = "debs";
162
- url = `${url}/${repo}/${Utils.uefiArch()}`;
163
- filter = `penguins-eggs_10.?.*-?_${Utils.uefiArch()}.deb`;
164
- cmd = `sudo dpkg -i ${filter}`;
165
- }
166
- else if (this.distro.familyId === 'archlinux') {
160
+ if (this.distro.familyId === 'archlinux') {
167
161
  repo = "aur";
168
162
  filter = `penguins-eggs-10.?.*-?-any.pkg.tar.zst`;
169
163
  cmd = `sudo pacman -U ${filter}`;
@@ -172,13 +166,27 @@ export default class Update extends Command {
172
166
  }
173
167
  url = `${url}/${repo}`;
174
168
  }
175
- let command = `Open your browser at:\n`;
176
- command += `${url}\n`;
177
- command += `select and download the package: ${filter},\n`;
178
- command += `then type the command:\n`;
179
- command += `${cmd}`;
169
+ else if (this.distro.familyId === "alpine") {
170
+ let arch = 'x86_64';
171
+ if (process.arch === 'ia32') {
172
+ arch = 'i386';
173
+ }
174
+ repo = "alpine";
175
+ url = `${url}/${repo}/$arch/${Utils.uefiArch()}`;
176
+ const filter = `penguins-eggs-25.*.*-r*.apk`;
177
+ cmd = `doas apk add ${filter}`;
178
+ }
179
+ else if (this.distro.familyId === "debian") {
180
+ repo = "debs";
181
+ url = `${url}/${repo}`;
182
+ filter = `penguins-eggs_25.*.*-*_${Utils.uefiArch()}.deb`;
183
+ cmd = `sudo apt-get install ./${filter}`;
184
+ }
185
+ let command = `- open your browser at ${url}\n`;
186
+ command += `- select and download last package: ${filter}\n`;
187
+ command += `- ${cmd}\n`;
180
188
  console.log(command);
181
- await this.show(url);
189
+ this.show(url);
182
190
  }
183
191
  /**
184
192
  *
@@ -0,0 +1 @@
1
+ d6be195e25201a33b16cdf000255b20497fc5aca8222a0df9754703504db7c00 penguins-eggs_25.8.6-bionic-1_amd64.deb
package/package.json CHANGED
@@ -2,28 +2,28 @@
2
2
  "name": "penguins-eggs",
3
3
  "shortName": "eggs",
4
4
  "description": "A remaster system tool, compatible with Arch, Debian, Devuan, Ubuntu and others",
5
- "version": "25.7.22",
5
+ "version": "25.8.6",
6
6
  "author": "Piero Proietti",
7
7
  "bin": {
8
8
  "eggs": "./bin/run.js"
9
9
  },
10
10
  "bugs": "https://github.com/pieroproietti/penguins-eggs/issues",
11
11
  "dependencies": {
12
- "@oclif/core": "^4.5.1",
13
- "@oclif/plugin-autocomplete": "^3.2.32",
14
- "@oclif/plugin-help": "^6.2.30",
15
- "@oclif/plugin-version": "^2.2.31",
12
+ "@oclif/core": "^4.5.2",
13
+ "@oclif/plugin-autocomplete": "^3.2.34",
14
+ "@oclif/plugin-help": "^6.2.32",
15
+ "@oclif/plugin-version": "^2.2.32",
16
16
  "@types/express": "^5.0.3",
17
17
  "ansis": "^4.1.0",
18
18
  "axios": "^1.11.0",
19
- "chalk": "^5.4.0",
19
+ "chalk": "^5.5.0",
20
20
  "cli-cursor": "^5.0.0",
21
21
  "debug": "^4.4.1",
22
22
  "express": "^5.1.0",
23
23
  "ink": "^5",
24
24
  "ink-progress-bar": "^3.0.0",
25
25
  "ink-spinner": "^5.0.0",
26
- "inquirer": "^12.8.2",
26
+ "inquirer": "^12.9.0",
27
27
  "js-yaml": "^4.1.0",
28
28
  "mustache": "^4.2.0",
29
29
  "netmask": "^2.0.2",
@@ -51,18 +51,18 @@
51
51
  "@types/shelljs": "^0.8.17",
52
52
  "@types/ws": "^8.18.1",
53
53
  "chai": "^5.2.1",
54
- "eslint": "^9.30.1",
55
- "eslint-config-oclif": "^6.0.87",
54
+ "eslint": "^9.32.0",
55
+ "eslint-config-oclif": "^6.0.90",
56
56
  "eslint-config-prettier": "^10.1.8",
57
57
  "glob": "^11.0.3",
58
58
  "mocha": "^11.7.0",
59
- "oclif": "^4.22.0",
59
+ "oclif": "^4.22.6",
60
60
  "perrisbrewery": "^10",
61
61
  "prettier": "^3.6.2",
62
62
  "shx": "^0.4.0",
63
63
  "ts-node": "10.9.2",
64
64
  "ts-prune": "^0.10.3",
65
- "typescript": "^5.7.3"
65
+ "typescript": "^5.9.2"
66
66
  },
67
67
  "engines": {
68
68
  "node": ">=16.0.0"