penguins-eggs 25.9.8 → 25.9.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.oclif.manifest.json +1 -1
- package/LICENSE +123 -0
- package/README.md +33 -31
- package/README.pdf +2625 -2497
- 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/bionic/calamares/calamares-modules/after-bootloader/after-bootloader.sh +0 -0
- package/conf/distros/bionic/calamares/calamares-modules/before-bootloader/before-bootloader.sh +0 -0
- package/conf/distros/bionic/calamares/calamares-modules/before-bootloader-mkdirs/before-bootloader-mkdirs.sh +0 -0
- package/conf/distros/bionic/calamares/calamares-modules/bug/bug.sh +0 -0
- package/conf/distros/bionic/calamares/calamares-modules/grubcfg/main.py +0 -0
- 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/fedora/calamares/calamares-modules/bootloaderspecification/bootloaderspecification.sh +0 -0
- 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/init/unattended.sh +0 -0
- package/dist/classes/ovary.d/live-create-structure.js +35 -52
- package/dist/classes/ovary.d/produce.js +4 -0
- package/dist/classes/ovary.d.ts +5 -1
- package/dist/classes/ovary.js +4 -1
- package/dist/commands/export/pkg.js +1 -1
- package/dist/commands/tools/ppa.d.ts +1 -2
- package/dist/commands/tools/ppa.js +51 -60
- 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 +131 -125
- 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/pods/almalinux.sh +0 -0
- package/pods/archlinux.sh +0 -0
- package/pods/ci/kernel-overlay-install.sh +0 -0
- package/pods/ci/minimal/almalinux-container2host.sh +0 -0
- package/pods/ci/minimal/archlinux-container2host.sh +0 -0
- package/pods/ci/minimal/debian-container2host.sh +0 -0
- package/pods/ci/minimal/fedora-container2host.sh +0 -0
- package/pods/ci/minimal/manjaro-container2host.sh +0 -0
- package/pods/ci/minimal/opensuse-container2host.sh +0 -0
- package/pods/ci/penguins-eggs-execute.sh +0 -0
- package/pods/ci/penguins-eggs-install.sh +0 -0
- package/pods/ci/run +0 -0
- package/pods/ci/run-on-almalinux.sh +0 -0
- package/pods/ci/run-on-archlinux.sh +0 -0
- package/pods/ci/run-on-debian.sh +0 -0
- package/pods/ci/run-on-devuan.sh +0 -0
- package/pods/ci/run-on-fedora.sh +0 -0
- package/pods/ci/run-on-manjaro.sh +0 -0
- package/pods/ci/run-on-opensuse.sh +0 -0
- package/pods/ci/run-on-rockylinux.sh +0 -0
- package/pods/ci/run-on-ubuntu.sh +0 -0
- package/pods/debian.sh +0 -0
- package/pods/devuan.sh +0 -0
- package/pods/fedora.sh +0 -0
- package/pods/lmde.sh +0 -0
- package/pods/manjaro.sh +0 -0
- package/pods/opensuse.sh +0 -0
- package/pods/podman.command.sh +0 -0
- package/pods/rocky.sh +0 -0
- package/pods/run-build-packages-debs.sh +0 -0
- package/pods/run-create-debs.sh +0 -0
- package/pods/ubuntu.sh +0 -0
- package/scripts/99clean +0 -0
- package/scripts/adapt.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/pve-live.service +0 -0
- package/scripts/pve-live.sh +0 -0
- package/scripts/resy +0 -0
- package/dist/penguins-eggs_25.9.8-1_amd64.deb +0 -0
- package/dist/penguins-eggs_25.9.8-1_amd64.deb.sha256 +0 -1
- package/dist/penguins-eggs_25.9.8-1_arm64.deb +0 -0
- package/dist/penguins-eggs_25.9.8-1_arm64.deb.sha256 +0 -1
- package/dist/penguins-eggs_25.9.8-1_i386.deb +0 -0
- package/dist/penguins-eggs_25.9.8-1_i386.deb.sha256 +0 -1
- package/perrisbrewery/template/dependencies-bionic.yaml +0 -37
|
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/bin/dev.js
CHANGED
|
File without changes
|
package/conf/distros/alpine/calamares/calamares-modules/machineid-openrc/machineid-openrc.sh
CHANGED
|
File without changes
|
package/conf/distros/bionic/calamares/calamares-modules/after-bootloader/after-bootloader.sh
CHANGED
|
File without changes
|
package/conf/distros/bionic/calamares/calamares-modules/before-bootloader/before-bootloader.sh
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/conf/init/unattended.sh
CHANGED
|
File without changes
|
|
@@ -5,8 +5,6 @@
|
|
|
5
5
|
* email: piero.proietti@gmail.com
|
|
6
6
|
* license: MIT
|
|
7
7
|
*/
|
|
8
|
-
// packages
|
|
9
|
-
import fs from 'node:fs';
|
|
10
8
|
import path from 'path';
|
|
11
9
|
// interfaces
|
|
12
10
|
// libraries
|
|
@@ -22,53 +20,40 @@ export async function liveCreateStructure() {
|
|
|
22
20
|
if (this.verbose) {
|
|
23
21
|
console.log('Ovary: liveCreateStructure');
|
|
24
22
|
}
|
|
25
|
-
Utils.warning(`creating egg in ${this.
|
|
26
|
-
let cmd;
|
|
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
|
-
if (!fs.existsSync(this.settings.iso_work)) {
|
|
60
|
-
cmd = `mkdir -p ${this.settings.iso_work}boot/grub/${Utils.uefiFormat()}`;
|
|
61
|
-
tryCatch(cmd, this.verbose);
|
|
62
|
-
cmd = `mkdir -p ${this.settings.iso_work}isolinux`;
|
|
63
|
-
tryCatch(cmd, this.verbose);
|
|
64
|
-
cmd = `mkdir -p ${this.settings.iso_work}live`;
|
|
65
|
-
tryCatch(cmd, this.verbose);
|
|
66
|
-
}
|
|
67
|
-
// ln iso
|
|
68
|
-
cmd = `ln -s ${this.settings.iso_work} ${this.settings.config.snapshot_dir}/iso`;
|
|
69
|
-
tryCatch(cmd, this.verbose);
|
|
70
|
-
// ln livefs
|
|
71
|
-
cmd = `ln -s ${this.settings.work_dir.merged} ${this.settings.config.snapshot_dir}/livefs`;
|
|
23
|
+
Utils.warning(`creating egg in ${this.nest}`);
|
|
24
|
+
let cmd = '';
|
|
25
|
+
cmd = `# create nest\n`;
|
|
26
|
+
cmd += `mkdir -p ${this.nest}\n`;
|
|
27
|
+
cmd += `# README.md\n`;
|
|
28
|
+
cmd += `cp ${path.resolve(__dirname, '../../../conf/README.md')} ${this.nest}README.md\n`;
|
|
29
|
+
cmd += `# cleaning dotMnt\n`;
|
|
30
|
+
cmd += `rm -rf ${this.dotMnt}efi\n`;
|
|
31
|
+
cmd += `rm -rf ${this.dotMnt}filesystem.squashfs\n`;
|
|
32
|
+
cmd += `rm -rf ${this.dotMnt}/iso\n`;
|
|
33
|
+
cmd += `mkdir -p ${this.dotMnt}/iso/live\n`;
|
|
34
|
+
cmd += `mkdir -p ${this.dotMnt}/iso/boot/grub/${Utils.uefiFormat()}\n`;
|
|
35
|
+
cmd += `mkdir -p ${this.dotMnt}/iso/isolinux\n`;
|
|
36
|
+
cmd += `# cleaning (nest).overlay\n`;
|
|
37
|
+
cmd += `umount ${this.dotLivefs}/* > /dev/null 2>&1\n`;
|
|
38
|
+
cmd += `umount ${this.dotOverlay.lowerdir}/* > /dev/null 2>&1\n`;
|
|
39
|
+
cmd += `umount ${this.dotOverlay.upperdir}/* > /dev/null 2>&1\n`;
|
|
40
|
+
cmd += `umount ${this.dotOverlay.workdir}/* > /dev/null 2>&1\n`;
|
|
41
|
+
cmd += `rm -rf ${this.nest}.overlay\n`;
|
|
42
|
+
cmd += `mkdir -p ${this.dotOverlay.lowerdir}\n`;
|
|
43
|
+
cmd += `mkdir -p ${this.dotOverlay.upperdir}\n`;
|
|
44
|
+
cmd += `mkdir -p ${this.dotOverlay.workdir}\n`;
|
|
45
|
+
cmd += `sleep 1\n`;
|
|
46
|
+
cmd += `# cleaning dotLivefs\n`;
|
|
47
|
+
cmd += `rm -rf ${this.dotLivefs}\n`;
|
|
48
|
+
cmd += `mkdir -p ${this.dotLivefs}\n`;
|
|
49
|
+
cmd += `# cleaning (nest)/ovarium\n`;
|
|
50
|
+
cmd += `rm -rf ${this.nest}ovarium\n`;
|
|
51
|
+
cmd += `mkdir -p ${this.nest}ovarium\n`;
|
|
52
|
+
cmd += `# cleaning (nest)/links\n`;
|
|
53
|
+
cmd += `rm -f ${this.nest}iso\n`;
|
|
54
|
+
cmd += `ln -s ${this.nest}.mnt/iso ${this.nest}/iso\n`;
|
|
55
|
+
cmd += `rm -f ${this.nest}livefs\n`;
|
|
56
|
+
cmd += `ln -s ${this.dotLivefs} ${this.nest}livefs\n`;
|
|
72
57
|
tryCatch(cmd, this.verbose);
|
|
73
58
|
}
|
|
74
59
|
/**
|
|
@@ -78,9 +63,7 @@ export async function liveCreateStructure() {
|
|
|
78
63
|
async function tryCatch(cmd = '', verbose = false) {
|
|
79
64
|
try {
|
|
80
65
|
let echo = Utils.setEcho(verbose);
|
|
81
|
-
|
|
82
|
-
console.log(cmd);
|
|
83
|
-
}
|
|
66
|
+
// console.log(cmd)
|
|
84
67
|
await exec(cmd, echo);
|
|
85
68
|
}
|
|
86
69
|
catch (error) {
|
|
@@ -47,6 +47,10 @@ export async function produce(kernel = '', clone = false, cryptedclone = false,
|
|
|
47
47
|
this.cryptedclone = cryptedclone;
|
|
48
48
|
const luksName = 'luks-volume';
|
|
49
49
|
const luksFile = `/tmp/${luksName}`;
|
|
50
|
+
this.nest = this.settings.config.snapshot_dir;
|
|
51
|
+
this.dotMnt = `${this.nest}.mnt`;
|
|
52
|
+
this.dotOverlay = this.settings.work_dir;
|
|
53
|
+
this.dotLivefs = this.settings.work_dir.merged;
|
|
50
54
|
/**
|
|
51
55
|
* define kernel
|
|
52
56
|
*/
|
package/dist/classes/ovary.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* email: piero.proietti@gmail.com
|
|
6
6
|
* license: MIT
|
|
7
7
|
*/
|
|
8
|
+
import { IWorkDir } from '../interfaces/index.js';
|
|
8
9
|
import CliAutologin from './cli-autologin.js';
|
|
9
10
|
import Incubator from './incubation/incubator.js';
|
|
10
11
|
import Settings from './settings.js';
|
|
@@ -41,7 +42,6 @@ export default class Ovary {
|
|
|
41
42
|
distroLike: string;
|
|
42
43
|
genisoimage: boolean;
|
|
43
44
|
incubator: Incubator;
|
|
44
|
-
nest: string;
|
|
45
45
|
settings: Settings;
|
|
46
46
|
snapshot_basename: string;
|
|
47
47
|
snapshot_prefix: string;
|
|
@@ -53,6 +53,10 @@ export default class Ovary {
|
|
|
53
53
|
kernel: string;
|
|
54
54
|
initrd: string;
|
|
55
55
|
vmlinuz: string;
|
|
56
|
+
nest: string;
|
|
57
|
+
dotMnt: string;
|
|
58
|
+
dotOverlay: IWorkDir;
|
|
59
|
+
dotLivefs: string;
|
|
56
60
|
fertilization: typeof fertilization;
|
|
57
61
|
produce: typeof produce;
|
|
58
62
|
bindLiveFs: typeof bindLiveFs;
|
package/dist/classes/ovary.js
CHANGED
|
@@ -43,7 +43,6 @@ export default class Ovary {
|
|
|
43
43
|
distroLike = '';
|
|
44
44
|
genisoimage = false;
|
|
45
45
|
incubator = {};
|
|
46
|
-
nest = '';
|
|
47
46
|
settings = {};
|
|
48
47
|
snapshot_basename = '';
|
|
49
48
|
snapshot_prefix = '';
|
|
@@ -55,6 +54,10 @@ export default class Ovary {
|
|
|
55
54
|
kernel = '';
|
|
56
55
|
initrd = '';
|
|
57
56
|
vmlinuz = '';
|
|
57
|
+
nest = '';
|
|
58
|
+
dotMnt = '';
|
|
59
|
+
dotOverlay = {};
|
|
60
|
+
dotLivefs = '';
|
|
58
61
|
// I put all methods on ovary.d
|
|
59
62
|
fertilization = fertilization;
|
|
60
63
|
produce = produce;
|
|
@@ -93,7 +93,7 @@ export default class ExportPkg extends Command {
|
|
|
93
93
|
}
|
|
94
94
|
else if (familyId === "debian") {
|
|
95
95
|
Utils.warning(`exporting Devuan/Debian/Ubuntu DEB packages`);
|
|
96
|
-
localPath = `/home/${this.user}/penguins-eggs/
|
|
96
|
+
localPath = `/home/${this.user}/penguins-eggs/releases`;
|
|
97
97
|
remotePath = this.Tu.config.remotePathPackages + "/debs";
|
|
98
98
|
let arch = Utils.uefiArch();
|
|
99
99
|
if (this.all) {
|
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
9
|
* Debian 13 trixe, Ubuntu 24.04 noble usano il formato deb822
|
|
10
|
-
*
|
|
11
|
-
* esiste un comando per modernizzare le sorgenti:
|
|
10
|
+
* * esiste un comando per modernizzare le sorgenti:
|
|
12
11
|
* sudo apt modernize-sources
|
|
13
12
|
*/
|
|
14
13
|
import { Command } from '@oclif/core';
|
|
@@ -7,8 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
9
|
* Debian 13 trixe, Ubuntu 24.04 noble usano il formato deb822
|
|
10
|
-
*
|
|
11
|
-
* esiste un comando per modernizzare le sorgenti:
|
|
10
|
+
* * esiste un comando per modernizzare le sorgenti:
|
|
12
11
|
* sudo apt modernize-sources
|
|
13
12
|
*/
|
|
14
13
|
import { Command, Flags } from '@oclif/core';
|
|
@@ -18,11 +17,9 @@ import Distro from '../../classes/distro.js';
|
|
|
18
17
|
import Utils from '../../classes/utils.js';
|
|
19
18
|
import { exec } from '../../lib/utils.js';
|
|
20
19
|
import Diversions from '../../classes/diversions.js';
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
const
|
|
24
|
-
const ppaList = ppaName + '.list';
|
|
25
|
-
const ppaSources = ppaName + '.sources';
|
|
20
|
+
const ppaKeyUrl = 'https://pieroproietti.github.io/penguins-eggs/deb/key.asc';
|
|
21
|
+
const ppaKeyPath = '/usr/share/keyrings/penguins-eggs.gpg';
|
|
22
|
+
const ppaSourcesPath = '/etc/apt/sources.list.d/penguins-eggs'; // Base path without extension
|
|
26
23
|
/**
|
|
27
24
|
*
|
|
28
25
|
*/
|
|
@@ -42,24 +39,34 @@ export default class Ppa extends Command {
|
|
|
42
39
|
async run() {
|
|
43
40
|
const { flags } = await this.parse(Ppa);
|
|
44
41
|
Utils.titles(this.id + ' ' + this.argv);
|
|
45
|
-
let verbose = false;
|
|
46
|
-
if (flags.verbose) {
|
|
47
|
-
verbose = true;
|
|
48
|
-
}
|
|
49
42
|
const { nointeractive } = flags;
|
|
50
43
|
if (Utils.isRoot()) {
|
|
51
44
|
const distro = new Distro();
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
45
|
+
if (distro.familyId === 'archlinux' && !Diversions.isManjaroBased(distro.distroId)) {
|
|
46
|
+
if (flags.add) {
|
|
47
|
+
Utils.warning(`Are you sure to add Chaotic-AUR to your repositories?`);
|
|
48
|
+
if (await Utils.customConfirm('Select yes to continue...')) {
|
|
49
|
+
await archAdd();
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
else if (flags.remove) {
|
|
53
|
+
Utils.warning(`Are you sure to remove Chaotic-AUR to your repositories?`);
|
|
54
|
+
if (await Utils.customConfirm('Select yes to continue...')) {
|
|
55
|
+
await archRemove();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
else if (distro.familyId === 'debian') {
|
|
60
|
+
/**
|
|
61
|
+
* Debian
|
|
62
|
+
*/
|
|
56
63
|
if (flags.add) {
|
|
57
|
-
Utils.warning(`Are you sure to add source ${path.basename(
|
|
64
|
+
Utils.warning(`Are you sure to add source ${path.basename(ppaSourcesPath)} to your repositories?`);
|
|
58
65
|
if (nointeractive || (await Utils.customConfirm('Select yes to continue...'))) {
|
|
59
|
-
//
|
|
60
|
-
debianRemove();
|
|
66
|
+
// Rimuove sempre le vecchie configurazioni per uno stato pulito
|
|
67
|
+
await debianRemove();
|
|
61
68
|
if (await is822()) {
|
|
62
|
-
debianAdd822();
|
|
69
|
+
await debianAdd822();
|
|
63
70
|
}
|
|
64
71
|
else {
|
|
65
72
|
await debianAdd();
|
|
@@ -67,35 +74,18 @@ export default class Ppa extends Command {
|
|
|
67
74
|
}
|
|
68
75
|
}
|
|
69
76
|
else if (flags.remove) {
|
|
70
|
-
Utils.warning(`Are you sure to remove source ${path.basename(
|
|
77
|
+
Utils.warning(`Are you sure to remove source ${path.basename(ppaSourcesPath)} to your repositories?`);
|
|
71
78
|
if (nointeractive || (await Utils.customConfirm('Select yes to continue...'))) {
|
|
72
79
|
await debianRemove();
|
|
73
80
|
}
|
|
74
81
|
}
|
|
75
82
|
await exec('apt-get update');
|
|
76
|
-
/**
|
|
77
|
-
* Arch and only Arch! no Manjaro...
|
|
78
|
-
*/
|
|
79
|
-
}
|
|
80
|
-
else if (distro.familyId === 'archlinux' && !Diversions.isManjaroBased(distro.distroId)) {
|
|
81
|
-
if (flags.add) {
|
|
82
|
-
Utils.warning(`Are you sure to add Chaotic-AUR to your repositories?`);
|
|
83
|
-
if (await Utils.customConfirm('Select yes to continue...')) {
|
|
84
|
-
await archAdd();
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
else if (flags.remove) {
|
|
88
|
-
Utils.warning(`Are you sure to remove Chaotic-AUR to your repositories?`);
|
|
89
|
-
if (await Utils.customConfirm('Select yes to continue...')) {
|
|
90
|
-
await archRemove();
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
83
|
/**
|
|
94
84
|
* Alle the others
|
|
95
85
|
*/
|
|
96
86
|
}
|
|
97
87
|
else {
|
|
98
|
-
Utils.warning(`Distro: ${distro.distroId}/${distro.codenameId}, cannot use penguins-eggs-
|
|
88
|
+
Utils.warning(`Distro: ${distro.distroId}/${distro.codenameId}, cannot use penguins-eggs-repo nor chaotic-aur!`);
|
|
99
89
|
}
|
|
100
90
|
}
|
|
101
91
|
}
|
|
@@ -127,7 +117,6 @@ async function archRemove() {
|
|
|
127
117
|
const path = '/var/cache/pacman/pkg/';
|
|
128
118
|
const keyring = 'chaotic-keyring.pkg.tar.zst';
|
|
129
119
|
const mirrorlist = 'chaotic-mirrorlist.pkg.tar.zst';
|
|
130
|
-
const echo = Utils.setEcho(true);
|
|
131
120
|
if (fs.existsSync(path + keyring) && fs.existsSync(path + mirrorlist)) {
|
|
132
121
|
console.log('to remove chaotic-aur:\n');
|
|
133
122
|
console.log(`sudo rm ${path}${keyring}`);
|
|
@@ -139,47 +128,49 @@ async function archRemove() {
|
|
|
139
128
|
}
|
|
140
129
|
}
|
|
141
130
|
/**
|
|
142
|
-
* debianAdd822
|
|
131
|
+
* debianAdd822 - For modern Debian/Ubuntu with .sources files
|
|
143
132
|
*/
|
|
144
133
|
async function debianAdd822() {
|
|
145
|
-
|
|
134
|
+
// --- FIX: Correct GPG key URL ---
|
|
135
|
+
await exec(`curl -fsSL ${ppaKeyUrl} | gpg --dearmor -o ${ppaKeyPath}`);
|
|
146
136
|
let content = '';
|
|
147
137
|
content += 'Types: deb\n';
|
|
148
|
-
content += 'URIs: https://pieroproietti.github.io/penguins-eggs
|
|
149
|
-
content += 'Suites:
|
|
150
|
-
content += '
|
|
151
|
-
|
|
152
|
-
//
|
|
153
|
-
|
|
138
|
+
content += 'URIs: https://pieroproietti.github.io/penguins-eggs/deb\n'; // Correct URI for packages
|
|
139
|
+
content += 'Suites: stable\n'; // It's better to be specific
|
|
140
|
+
content += 'Components: main\n';
|
|
141
|
+
content += `Signed-By: ${ppaKeyPath}\n`;
|
|
142
|
+
// --- IMPROVEMENT: Use the standard .sources extension ---
|
|
143
|
+
fs.writeFileSync(`${ppaSourcesPath}.sources`, content);
|
|
144
|
+
// --- IMPROVEMENT: Removed unnecessary `touch` command ---
|
|
154
145
|
}
|
|
155
146
|
/**
|
|
156
|
-
* debianAdd
|
|
147
|
+
* debianAdd - For traditional Debian/Ubuntu with .list files
|
|
157
148
|
*/
|
|
158
149
|
async function debianAdd() {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
150
|
+
// --- FIX: Correct GPG key URL and remove redundant sudo ---
|
|
151
|
+
await exec(`curl -fsSL ${ppaKeyUrl} | gpg --dearmor -o ${ppaKeyPath}`);
|
|
152
|
+
const content = `deb [signed-by=${ppaKeyPath}] https://pieroproietti.github.io/penguins-eggs/deb stable main\n`;
|
|
153
|
+
fs.writeFileSync(`${ppaSourcesPath}.list`, content);
|
|
162
154
|
}
|
|
163
155
|
/**
|
|
164
|
-
* is822 (
|
|
156
|
+
* is822 (checks if the system uses the deb822 format)
|
|
165
157
|
*/
|
|
166
158
|
async function is822() {
|
|
167
|
-
await exec(`curl -sS https://pieroproietti.github.io/penguins-eggs-ppa/KEY.gpg| gpg --dearmor | sudo tee ${ppaKey} > /dev/null`);
|
|
168
159
|
let retval = false;
|
|
169
160
|
const test = `([ -f /etc/apt/sources.list.d/ubuntu.sources ] || [ -f /etc/apt/sources.list.d/debian.sources ]) && echo "1" || echo "0"`;
|
|
170
|
-
const
|
|
171
|
-
if (
|
|
172
|
-
if (
|
|
161
|
+
const is822Result = (await exec(test, { capture: true, echo: false }));
|
|
162
|
+
if (is822Result.code === 0) {
|
|
163
|
+
if (is822Result.data.trim() === '1') {
|
|
173
164
|
retval = true;
|
|
174
165
|
}
|
|
175
166
|
}
|
|
176
167
|
return retval;
|
|
177
168
|
}
|
|
178
169
|
/**
|
|
179
|
-
* debianRemove
|
|
170
|
+
* debianRemove - Cleans up all related PPA files
|
|
180
171
|
*/
|
|
181
172
|
async function debianRemove() {
|
|
182
|
-
|
|
183
|
-
await exec(`rm -f ${
|
|
184
|
-
await exec(`rm -f ${
|
|
173
|
+
// The script runs as root, so sudo inside exec is not needed here
|
|
174
|
+
await exec(`rm -f ${ppaKeyPath}`);
|
|
175
|
+
await exec(`rm -f ${ppaSourcesPath}*`);
|
|
185
176
|
}
|
|
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
|