penguins-eggs 10.0.18 → 10.0.19

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.
@@ -1461,5 +1461,5 @@
1461
1461
  ]
1462
1462
  }
1463
1463
  },
1464
- "version": "10.0.18"
1464
+ "version": "10.0.19"
1465
1465
  }
package/README.md CHANGED
@@ -486,7 +486,7 @@ EXAMPLES
486
486
  $ eggs adapt
487
487
  ```
488
488
 
489
- _See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/adapt.ts)_
489
+ _See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/adapt.ts)_
490
490
 
491
491
  ## `eggs analyze`
492
492
 
@@ -507,7 +507,7 @@ EXAMPLES
507
507
  sudo eggs analyze
508
508
  ```
509
509
 
510
- _See code: [src/commands/analyze.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/analyze.ts)_
510
+ _See code: [src/commands/analyze.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/analyze.ts)_
511
511
 
512
512
  ## `eggs autocomplete [SHELL]`
513
513
 
@@ -538,7 +538,7 @@ EXAMPLES
538
538
  $ eggs autocomplete --refresh-cache
539
539
  ```
540
540
 
541
- _See code: [@oclif/plugin-autocomplete](https://github.com/oclif/plugin-autocomplete/blob/v3.1.4/src/commands/autocomplete/index.ts)_
541
+ _See code: [@oclif/plugin-autocomplete](https://github.com/oclif/plugin-autocomplete/blob/v3.1.7/src/commands/autocomplete/index.ts)_
542
542
 
543
543
  ## `eggs calamares`
544
544
 
@@ -571,7 +571,7 @@ EXAMPLES
571
571
  sudo eggs calamares --remove
572
572
  ```
573
573
 
574
- _See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/calamares.ts)_
574
+ _See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/calamares.ts)_
575
575
 
576
576
  ## `eggs config`
577
577
 
@@ -598,7 +598,7 @@ EXAMPLES
598
598
  sudo eggs config --clean --nointeractive
599
599
  ```
600
600
 
601
- _See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/config.ts)_
601
+ _See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/config.ts)_
602
602
 
603
603
  ## `eggs cuckoo`
604
604
 
@@ -618,7 +618,7 @@ EXAMPLES
618
618
  sudo eggs cuckoo
619
619
  ```
620
620
 
621
- _See code: [src/commands/cuckoo.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/cuckoo.ts)_
621
+ _See code: [src/commands/cuckoo.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/cuckoo.ts)_
622
622
 
623
623
  ## `eggs dad`
624
624
 
@@ -646,7 +646,7 @@ EXAMPLES
646
646
  sudo dad --default
647
647
  ```
648
648
 
649
- _See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/dad.ts)_
649
+ _See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/dad.ts)_
650
650
 
651
651
  ## `eggs export deb`
652
652
 
@@ -673,7 +673,7 @@ EXAMPLES
673
673
  $ eggs export deb --all
674
674
  ```
675
675
 
676
- _See code: [src/commands/export/deb.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/export/deb.ts)_
676
+ _See code: [src/commands/export/deb.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/export/deb.ts)_
677
677
 
678
678
  ## `eggs export iso`
679
679
 
@@ -698,7 +698,7 @@ EXAMPLES
698
698
  $ eggs export iso --clean
699
699
  ```
700
700
 
701
- _See code: [src/commands/export/iso.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/export/iso.ts)_
701
+ _See code: [src/commands/export/iso.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/export/iso.ts)_
702
702
 
703
703
  ## `eggs help [COMMAND]`
704
704
 
@@ -718,7 +718,7 @@ DESCRIPTION
718
718
  Display help for eggs.
719
719
  ```
720
720
 
721
- _See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v6.2.3/src/commands/help.ts)_
721
+ _See code: [@oclif/plugin-help](https://github.com/oclif/plugin-help/blob/v6.2.6/src/commands/help.ts)_
722
722
 
723
723
  ## `eggs install`
724
724
 
@@ -759,7 +759,7 @@ EXAMPLES
759
759
  sudo eggs install --chroot
760
760
  ```
761
761
 
762
- _See code: [src/commands/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/install.ts)_
762
+ _See code: [src/commands/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/install.ts)_
763
763
 
764
764
  ## `eggs kill`
765
765
 
@@ -782,7 +782,7 @@ EXAMPLES
782
782
  sudo eggs kill
783
783
  ```
784
784
 
785
- _See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/kill.ts)_
785
+ _See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/kill.ts)_
786
786
 
787
787
  ## `eggs krill`
788
788
 
@@ -841,7 +841,7 @@ EXAMPLES
841
841
  $ eggs mom
842
842
  ```
843
843
 
844
- _See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/mom.ts)_
844
+ _See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/mom.ts)_
845
845
 
846
846
  ## `eggs produce`
847
847
 
@@ -898,7 +898,7 @@ EXAMPLES
898
898
  sudo eggs produce --excludes home # exclude ~/*
899
899
  ```
900
900
 
901
- _See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/produce.ts)_
901
+ _See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/produce.ts)_
902
902
 
903
903
  ## `eggs status`
904
904
 
@@ -919,7 +919,7 @@ EXAMPLES
919
919
  $ eggs status
920
920
  ```
921
921
 
922
- _See code: [src/commands/status.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/status.ts)_
922
+ _See code: [src/commands/status.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/status.ts)_
923
923
 
924
924
  ## `eggs syncfrom`
925
925
 
@@ -945,7 +945,7 @@ EXAMPLES
945
945
  sudo eggs syncfrom --file /path/to/luks-volume
946
946
  ```
947
947
 
948
- _See code: [src/commands/syncfrom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/syncfrom.ts)_
948
+ _See code: [src/commands/syncfrom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/syncfrom.ts)_
949
949
 
950
950
  ## `eggs syncto`
951
951
 
@@ -972,7 +972,7 @@ EXAMPLES
972
972
  sudo eggs syncto --excludes
973
973
  ```
974
974
 
975
- _See code: [src/commands/syncto.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/syncto.ts)_
975
+ _See code: [src/commands/syncto.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/syncto.ts)_
976
976
 
977
977
  ## `eggs tools clean`
978
978
 
@@ -994,7 +994,7 @@ EXAMPLES
994
994
  sudo eggs tools clean
995
995
  ```
996
996
 
997
- _See code: [src/commands/tools/clean.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/tools/clean.ts)_
997
+ _See code: [src/commands/tools/clean.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/tools/clean.ts)_
998
998
 
999
999
  ## `eggs tools ppa`
1000
1000
 
@@ -1020,7 +1020,7 @@ EXAMPLES
1020
1020
  sudo eggs tools ppa --remove
1021
1021
  ```
1022
1022
 
1023
- _See code: [src/commands/tools/ppa.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/tools/ppa.ts)_
1023
+ _See code: [src/commands/tools/ppa.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/tools/ppa.ts)_
1024
1024
 
1025
1025
  ## `eggs tools skel`
1026
1026
 
@@ -1044,7 +1044,7 @@ EXAMPLES
1044
1044
  sudo eggs tools skel --user user-to-be-copied
1045
1045
  ```
1046
1046
 
1047
- _See code: [src/commands/tools/skel.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/tools/skel.ts)_
1047
+ _See code: [src/commands/tools/skel.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/tools/skel.ts)_
1048
1048
 
1049
1049
  ## `eggs tools stat`
1050
1050
 
@@ -1070,7 +1070,7 @@ EXAMPLES
1070
1070
  $ eggs tools stat --year
1071
1071
  ```
1072
1072
 
1073
- _See code: [src/commands/tools/stat.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/tools/stat.ts)_
1073
+ _See code: [src/commands/tools/stat.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/tools/stat.ts)_
1074
1074
 
1075
1075
  ## `eggs tools yolk`
1076
1076
 
@@ -1091,7 +1091,7 @@ EXAMPLES
1091
1091
  sudo eggs tools yolk
1092
1092
  ```
1093
1093
 
1094
- _See code: [src/commands/tools/yolk.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/tools/yolk.ts)_
1094
+ _See code: [src/commands/tools/yolk.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/tools/yolk.ts)_
1095
1095
 
1096
1096
  ## `eggs update`
1097
1097
 
@@ -1112,7 +1112,7 @@ EXAMPLES
1112
1112
  $ eggs update
1113
1113
  ```
1114
1114
 
1115
- _See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/update.ts)_
1115
+ _See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/update.ts)_
1116
1116
 
1117
1117
  ## `eggs version`
1118
1118
 
@@ -1132,7 +1132,7 @@ FLAG DESCRIPTIONS
1132
1132
  Additionally shows the architecture, node version, operating system, and versions of plugins that the CLI is using.
1133
1133
  ```
1134
1134
 
1135
- _See code: [@oclif/plugin-version](https://github.com/oclif/plugin-version/blob/v2.2.4/src/commands/version.ts)_
1135
+ _See code: [@oclif/plugin-version](https://github.com/oclif/plugin-version/blob/v2.2.8/src/commands/version.ts)_
1136
1136
 
1137
1137
  ## `eggs wardrobe get [REPO]`
1138
1138
 
@@ -1158,7 +1158,7 @@ EXAMPLES
1158
1158
  $ eggs wardrobe get your-wardrobe
1159
1159
  ```
1160
1160
 
1161
- _See code: [src/commands/wardrobe/get.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/wardrobe/get.ts)_
1161
+ _See code: [src/commands/wardrobe/get.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/wardrobe/get.ts)_
1162
1162
 
1163
1163
  ## `eggs wardrobe list [REPO]`
1164
1164
 
@@ -1187,7 +1187,7 @@ EXAMPLES
1187
1187
  $ eggs wardrobe list --distro arch
1188
1188
  ```
1189
1189
 
1190
- _See code: [src/commands/wardrobe/list.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/wardrobe/list.ts)_
1190
+ _See code: [src/commands/wardrobe/list.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/wardrobe/list.ts)_
1191
1191
 
1192
1192
  ## `eggs wardrobe show [REPO]`
1193
1193
 
@@ -1217,7 +1217,7 @@ EXAMPLES
1217
1217
  $ eggs wardrobe show accessories/
1218
1218
  ```
1219
1219
 
1220
- _See code: [src/commands/wardrobe/show.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/wardrobe/show.ts)_
1220
+ _See code: [src/commands/wardrobe/show.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/wardrobe/show.ts)_
1221
1221
 
1222
1222
  ## `eggs wardrobe wear [REPO]`
1223
1223
 
@@ -1248,7 +1248,7 @@ EXAMPLES
1248
1248
  sudo eggs wardrobe wear wagtail/waydroid
1249
1249
  ```
1250
1250
 
1251
- _See code: [src/commands/wardrobe/wear.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.18/src/commands/wardrobe/wear.ts)_
1251
+ _See code: [src/commands/wardrobe/wear.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.19/src/commands/wardrobe/wear.ts)_
1252
1252
  <!-- commandsstop -->
1253
1253
 
1254
1254
  # penGUI
@@ -203,13 +203,24 @@ class Distro {
203
203
  case 'Spizaetus':
204
204
  case 'n/a':
205
205
  case 'rolling': {
206
- // Arch, ArcoLinux, BlendOS, EndeavourOS, Garuda, RebornOS
207
- this.familyId = 'archlinux';
208
- this.distroLike = 'Arch';
209
- this.codenameId = 'rolling';
210
- this.codenameLikeId = 'rolling';
211
- this.liveMediumPath = '/run/archiso/bootmnt/';
212
- this.squashfs = `arch/x86_64/airootfs.sfs`;
206
+ if (this.distroId === "Alpine") {
207
+ // Alpine
208
+ this.familyId = 'alpine';
209
+ this.distroLike = 'Alpine';
210
+ this.codenameId = 'rolling'; // questo viene rimosso dal nome
211
+ this.codenameLikeId = 'alpine-rolling';
212
+ this.liveMediumPath = '/.modloop/'; // ? è il mount della root su cd di installatione
213
+ this.squashfs = `to/define/filestem.squashfs`;
214
+ }
215
+ else {
216
+ // Arch, ArcoLinux, BlendOS, EndeavourOS, Garuda, RebornOS
217
+ this.familyId = 'archlinux';
218
+ this.distroLike = 'Arch';
219
+ this.codenameId = 'rolling';
220
+ this.codenameLikeId = 'rolling';
221
+ this.liveMediumPath = '/run/archiso/bootmnt/';
222
+ this.squashfs = `arch/x86_64/airootfs.sfs`;
223
+ }
213
224
  break;
214
225
  }
215
226
  default: {
@@ -266,6 +277,14 @@ class Distro {
266
277
  this.isolinuxPath = this.syslinuxPath;
267
278
  break;
268
279
  }
280
+ case 'alpine': {
281
+ this.syslinuxPath = '/usr/share/syslinux/'; //correct
282
+ this.pxelinuxPath = this.syslinuxPath;
283
+ this.usrLibPath = '/usr/lib/';
284
+ this.memdiskPath = this.syslinuxPath;
285
+ this.isolinuxPath = this.syslinuxPath;
286
+ break;
287
+ }
269
288
  // No default
270
289
  } // Fine analisi codenameId
271
290
  /**
@@ -275,6 +294,10 @@ class Distro {
275
294
  if (fs.existsSync(lsbConfig)) {
276
295
  this.distroId = Utils.searchOnFile(lsbConfig, `DISTRIB_ID`);
277
296
  this.codenameId = Utils.searchOnFile(lsbConfig, `DISTRIB_CODENAME`);
297
+ // patch for BigLinux
298
+ if (this.distroId.toLowerCase().includes('biglinux')) {
299
+ this.distroId = 'biglinux';
300
+ }
278
301
  }
279
302
  /**
280
303
  * ManjaroLinux and BigLinux
@@ -0,0 +1,55 @@
1
+ /**
2
+ * ./src/classes/families/alpine.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ /**
9
+ * Alpine
10
+ * @remarks all the utilities
11
+ */
12
+ export default class Alpine {
13
+ static packs4calamares: string[];
14
+ /**
15
+ * Alpine: calamaresInstall
16
+ */
17
+ static calamaresInstall(verbose?: boolean): Promise<void>;
18
+ /**
19
+ * Alpine: calamaresPolicies
20
+ */
21
+ static calamaresPolicies(): Promise<void>;
22
+ /**
23
+ * Alpine: calamaresRemove
24
+ */
25
+ static calamaresRemove(verbose?: boolean): Promise<boolean>;
26
+ /**
27
+ * Alpine: isInstalledWayland
28
+ * @returns true if wayland is installed
29
+ */
30
+ static isInstalledWayland(): boolean;
31
+ /**
32
+ * Alpine: isInstalledXorg
33
+ * @returns true if xorg is installed
34
+ */
35
+ static isInstalledXorg(): boolean;
36
+ /**
37
+ * Alpine: packageInstall
38
+ * Install the package packageName
39
+ * @param packageName {string} Pacchetto Debian da installare
40
+ * @returns {boolean} True if success
41
+ */
42
+ static packageInstall(packageName: string): Promise<boolean>;
43
+ /**
44
+ * Alpine: packageIsInstalled OK
45
+ * restuisce VERO se il pacchetto è installato
46
+ * @param packageName
47
+ */
48
+ static packageIsInstalled(packageName: string): boolean;
49
+ /**
50
+ * Alpine: packagePacmanAvailable
51
+ * restuisce VERO se il pacchetto è installato
52
+ * @param packageName
53
+ */
54
+ static packagePacmanAvailable(packageName: string): Promise<boolean>;
55
+ }
@@ -0,0 +1,108 @@
1
+ /**
2
+ * ./src/classes/families/alpine.ts
3
+ * penguins-eggs v.10.0.0 / ecmascript 2020
4
+ * author: Piero Proietti
5
+ * email: piero.proietti@gmail.com
6
+ * license: MIT
7
+ */
8
+ import shx from 'shelljs';
9
+ import { exec } from '../../lib/utils.js';
10
+ import Utils from '../utils.js';
11
+ /**
12
+ * Alpine
13
+ * @remarks all the utilities
14
+ */
15
+ export default class Alpine {
16
+ static packs4calamares = ['calamares'];
17
+ /**
18
+ * Alpine: calamaresInstall
19
+ */
20
+ static async calamaresInstall(verbose = false) {
21
+ const echo = Utils.setEcho(verbose);
22
+ try {
23
+ let cmd = `apk add ${this.packs4calamares}`;
24
+ try {
25
+ await exec(cmd, echo);
26
+ }
27
+ catch {
28
+ Utils.error(`Cannot install ${this.packs4calamares}`); // + e.error)
29
+ }
30
+ }
31
+ catch {
32
+ Utils.error(`Cannot download ${this.packs4calamares}`); // + e.error)
33
+ }
34
+ }
35
+ /**
36
+ * Alpine: calamaresPolicies
37
+ */
38
+ static async calamaresPolicies() {
39
+ const policyFile = '/usr/share/polkit-1/actions/com.github.calamares.calamares.policy';
40
+ await exec(`sed -i 's/auth_admin/yes/' ${policyFile}`);
41
+ }
42
+ /**
43
+ * Alpine: calamaresRemove
44
+ */
45
+ static async calamaresRemove(verbose = true) {
46
+ verbose = true; // serve per pacman
47
+ let removed = true;
48
+ const echo = Utils.setEcho(verbose);
49
+ await exec(`apk del ${this.packs4calamares}`);
50
+ await exec('rm /etc/calamares -rf', echo);
51
+ return removed;
52
+ }
53
+ /**
54
+ * Alpine: isInstalledWayland
55
+ * @returns true if wayland is installed
56
+ */
57
+ static isInstalledWayland() {
58
+ return this.packageIsInstalled('xwayland');
59
+ }
60
+ /**
61
+ * Alpine: isInstalledXorg
62
+ * @returns true if xorg is installed
63
+ */
64
+ static isInstalledXorg() {
65
+ return this.packageIsInstalled('xorg-server-common');
66
+ }
67
+ /**
68
+ * Alpine: packageInstall
69
+ * Install the package packageName
70
+ * @param packageName {string} Pacchetto Debian da installare
71
+ * @returns {boolean} True if success
72
+ */
73
+ static async packageInstall(packageName) {
74
+ let retVal = false;
75
+ if (shx.exec(`/sbin/apk add ${packageName}`, { silent: true }) === '0') {
76
+ retVal = true;
77
+ }
78
+ return retVal;
79
+ }
80
+ /**
81
+ * Alpine: packageIsInstalled OK
82
+ * restuisce VERO se il pacchetto è installato
83
+ * @param packageName
84
+ */
85
+ static packageIsInstalled(packageName) {
86
+ let installed = false;
87
+ const cmd = `/sbin/apk info -e ${packageName}`;
88
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
89
+ if (stdout.includes(packageName)) {
90
+ installed = true;
91
+ }
92
+ return installed;
93
+ }
94
+ /**
95
+ * Alpine: packagePacmanAvailable
96
+ * restuisce VERO se il pacchetto è installato
97
+ * @param packageName
98
+ */
99
+ static async packagePacmanAvailable(packageName) {
100
+ let available = false;
101
+ const cmd = `/sbin/apk search ${packageName} | awk '{ print $1 }'`;
102
+ const stdout = shx.exec(cmd, { silent: true }).stdout.trim();
103
+ if (stdout == packageName) {
104
+ available = true;
105
+ }
106
+ return available;
107
+ }
108
+ }
@@ -24,7 +24,8 @@ export default class Archlinux {
24
24
  // const cal_eggs = 'arco-calamares-3.3.2-02-x86_64.pkg.tar.zst' // 2024-02-10
25
25
  // const cal_eggs = 'arco-calamares-3.3.5-02-x86_64.pkg.tar.zst' // 2024-03-10
26
26
  // const cal_eggs = 'calamares-garuda-3.3.5.r19.g10acebff4-1-x86_64.pkg.tar.zst' // 2024-03-10
27
- const cal_eggs = 'arco-calamares-3.3.6-06-x86_64.pkg.tar.zst'; // 24/04/27
27
+ // const cal_eggs = 'arco-calamares-3.3.6-06-x86_64.pkg.tar.zst' // 24/04/27
28
+ const cal_eggs = 'calamares-eggs-3.3.8.r39.g80ef430-1-x86_64.pkg.tar.zst'; // 12/07/24
28
29
  let cmd = `wget -O /tmp/${cal_eggs} https://sourceforge.net/projects/penguins-eggs/files/PKGBUILD/${cal_eggs}/download`;
29
30
  try {
30
31
  await exec(cmd, echo);
@@ -87,6 +87,11 @@ export default class Ovary {
87
87
  * necessita di echoYes
88
88
  */
89
89
  initrdArch(): Promise<void>;
90
+ /**
91
+ * initrdArch()
92
+ * necessita di echoYes
93
+ */
94
+ initrdAlpine(): Promise<void>;
90
95
  /**
91
96
  * We must upgrade to initrdCreate for Debian/Ubuntu
92
97
  * @returns
@@ -198,9 +198,14 @@ export default class Ovary {
198
198
  ignore: false
199
199
  });
200
200
  const users = result.data.split('\n');
201
+ let cmdUserDel = `userdel`;
202
+ if (this.familyId === 'alpine') {
203
+ // On Alpine we have just deluser
204
+ cmdUserDel = "deluser";
205
+ }
201
206
  for (let i = 0; i < users.length - 1; i++) {
202
207
  // cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} deluser ${users[i]}`, verbose))
203
- cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} userdel ${users[i]}`, this.verbose));
208
+ cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} ${cmdUserDel} ${users[i]}`, this.verbose));
204
209
  }
205
210
  }
206
211
  /**
@@ -215,14 +220,21 @@ export default class Ovary {
215
220
  const cmds = [];
216
221
  cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' rm /home/' + this.settings.config.user_opt + ' -rf', this.verbose));
217
222
  cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' mkdir /home/' + this.settings.config.user_opt, this.verbose));
218
- cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' useradd ' + this.settings.config.user_opt + ' --home-dir /home/' + this.settings.config.user_opt + ' --shell /bin/bash ', this.verbose));
223
+ if (this.familyId === 'alpine') {
224
+ // Create user using adduser
225
+ cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' adduser -D -h /home/' + this.settings.config.user_opt + ' -s /bin/bash ' + this.settings.config.user_opt, this.verbose));
226
+ }
227
+ else {
228
+ // Create user using useradd
229
+ cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' useradd ' + this.settings.config.user_opt + ' --home-dir /home/' + this.settings.config.user_opt + ' --shell /bin/bash ', this.verbose));
230
+ }
231
+ // live password
232
+ cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' echo ' + this.settings.config.user_opt + ':' + this.settings.config.user_opt_passwd + ' | chroot ' + this.settings.work_dir.merged + ' chpasswd', this.verbose));
233
+ // root password
234
+ cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' echo root:' + this.settings.config.root_passwd + ' | chroot ' + this.settings.work_dir.merged + ' chpasswd', this.verbose));
219
235
  cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' cp /etc/skel/. /home/' + this.settings.config.user_opt + ' -R', this.verbose));
220
236
  // da problemi con il mount sshfs
221
237
  cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' chown ' + this.settings.config.user_opt + ':users' + ' /home/' + this.settings.config.user_opt + ' -R', this.verbose));
222
- // live password
223
- cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' echo ' + this.settings.config.user_opt + ':' + this.settings.config.user_opt_passwd + '| chroot ' + this.settings.work_dir.merged + ' chpasswd', this.verbose));
224
- // root password
225
- cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' echo root:' + this.settings.config.root_passwd + '| chroot ' + this.settings.work_dir.merged + ' chpasswd', this.verbose));
226
238
  if (this.familyId === 'debian') {
227
239
  cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} usermod -aG sudo ${this.settings.config.user_opt}`, this.verbose));
228
240
  }
@@ -711,6 +723,21 @@ export default class Ovary {
711
723
  const pathConf = path.resolve(__dirname, `../../mkinitcpio/${fileConf}/live.conf`);
712
724
  await exec(`mkinitcpio -c ${pathConf} -g ${this.settings.iso_work}live/${initrdImg}`, Utils.setEcho(true));
713
725
  }
726
+ /**
727
+ * initrdArch()
728
+ * necessita di echoYes
729
+ */
730
+ async initrdAlpine() {
731
+ Utils.warning(`creating ${path.basename(this.settings.initrdImg)} on ISO/live`);
732
+ let initrdImg = Utils.initrdImg();
733
+ //initrdImg = initrdImg.slice(Math.max(0, initrdImg.lastIndexOf('/') + 1))
734
+ Utils.warning(`Creating ${initrdImg} in ${this.settings.iso_work}live/`);
735
+ const { distroId } = this.settings.distro;
736
+ // da cambiare ...
737
+ let fileConf = 'arch';
738
+ const pathConf = path.resolve(__dirname, `../../mkinitcpio/${fileConf}/live.conf`);
739
+ await exec(`mkinitcpio -c ${pathConf} -g ${this.settings.iso_work}live/${initrdImg}`, Utils.setEcho(true));
740
+ }
714
741
  /**
715
742
  * We must upgrade to initrdCreate for Debian/Ubuntu
716
743
  * @returns
@@ -15,7 +15,7 @@ import Distro from './distro.js';
15
15
  import Archlinux from './families/archlinux.js';
16
16
  import Debian from './families/debian.js';
17
17
  import Fedora from './families/fedora.js';
18
- import Suse from './families/suse.js';
18
+ import Alpine from './families/alpine.js';
19
19
  import Settings from './settings.js';
20
20
  import Utils from './utils.js';
21
21
  const __dirname = path.dirname(new URL(import.meta.url).pathname);
@@ -79,8 +79,8 @@ export default class Pacman {
79
79
  await Archlinux.calamaresInstall(verbose);
80
80
  }
81
81
  }
82
- else if (this.distro().familyId === 'suse') {
83
- await Suse.calamaresInstall(verbose);
82
+ else if (this.distro().familyId === 'alpine') {
83
+ await Alpine.calamaresInstall(verbose);
84
84
  }
85
85
  // remove others calamares links
86
86
  await exec('rm -f /usr/share/applications/calamares-eggs-debugging.desktop');
@@ -101,8 +101,8 @@ export default class Pacman {
101
101
  else if (this.distro().familyId === 'archlinux') {
102
102
  await Archlinux.calamaresPolicies();
103
103
  }
104
- else if (this.distro().familyId === 'suse') {
105
- await Suse.calamaresPolicies();
104
+ else if (this.distro().familyId === 'alpine') {
105
+ await Alpine.calamaresPolicies();
106
106
  }
107
107
  }
108
108
  /**
@@ -119,8 +119,8 @@ export default class Pacman {
119
119
  else if (this.distro().familyId === 'archlinux') {
120
120
  retVal = await Archlinux.calamaresRemove(verbose);
121
121
  }
122
- else if (this.distro().familyId === 'suse') {
123
- retVal = await Suse.calamaresRemove(verbose);
122
+ else if (this.distro().familyId === 'alpine') {
123
+ retVal = await Alpine.calamaresRemove(verbose);
124
124
  }
125
125
  return retVal;
126
126
  }
@@ -454,16 +454,13 @@ export default class Pacman {
454
454
  const rolling = `${rootPen}/conf/distros/rolling/*`;
455
455
  await exec(`cp -r ${rolling} ${dest}`, echo);
456
456
  /***********************************************************************************
457
- * openSuse
457
+ * Alpine
458
458
  **********************************************************************************/
459
- /**
460
- * openSUSE tumbleweed: eredita da tumbleweed
461
- */
462
459
  }
463
- else if (this.distro().codenameLikeId === 'tumbleweed') {
464
- const dest = '/etc/penguins-eggs.d/distros/tumbleweed/';
465
- const tumbleweed = `${rootPen}/conf/distros/tumbleweed/*`;
466
- await exec(`cp -r ${tumbleweed} ${dest}`, echo);
460
+ else if (this.distro().codenameLikeId === 'alpine-rolling') {
461
+ const dest = '/etc/penguins-eggs.d/distros/alpine-rolling/';
462
+ const alpine = `${rootPen}/conf/distros/alpine-rolling/*`;
463
+ await exec(`cp -r ${alpine} ${dest}`, echo);
467
464
  }
468
465
  }
469
466
  /**
@@ -505,7 +502,7 @@ export default class Pacman {
505
502
  installed = true;
506
503
  }
507
504
  }
508
- else if (this.distro().familyId === 'suse' && Suse.packageIsInstalled('xwayland*')) {
505
+ else if (this.distro().familyId === 'alpine' && Alpine.packageIsInstalled('xwayland*')) {
509
506
  installed = true;
510
507
  }
511
508
  return installed;
@@ -531,7 +528,7 @@ export default class Pacman {
531
528
  installed = true;
532
529
  }
533
530
  }
534
- else if (this.distro().familyId === 'suse' && Suse.packageIsInstalled('xorg-x11-server')) {
531
+ else if (this.distro().familyId === 'alpine' && Alpine.packageIsInstalled('xorg-x11-server')) {
535
532
  installed = true;
536
533
  }
537
534
  return installed;
@@ -577,7 +574,7 @@ export default class Pacman {
577
574
  else if (Pacman.distro().familyId === 'archlinux') {
578
575
  isUefi = true;
579
576
  }
580
- else if (Pacman.distro().familyId === 'suse') {
577
+ else if (Pacman.distro().familyId === 'alpine') {
581
578
  isUefi = true;
582
579
  }
583
580
  return isUefi;
@@ -641,6 +638,9 @@ export default class Pacman {
641
638
  else if (this.distro().familyId === 'fedora') {
642
639
  retVal = await Fedora.packageInstall(packageName);
643
640
  }
641
+ else if (this.distro().familyId === 'alpine') {
642
+ retVal = await Alpine.packageInstall(packageName);
643
+ }
644
644
  return retVal;
645
645
  }
646
646
  /**
@@ -658,8 +658,8 @@ export default class Pacman {
658
658
  else if (this.distro().familyId === 'archlinux') {
659
659
  installed = Archlinux.packageIsInstalled(packageName);
660
660
  }
661
- else if (this.distro().familyId === 'suse') {
662
- installed = Suse.packageIsInstalled(packageName);
661
+ else if (this.distro().familyId === 'alpine') {
662
+ installed = Alpine.packageIsInstalled(packageName);
663
663
  }
664
664
  return installed;
665
665
  }
@@ -687,7 +687,7 @@ export default class Pacman {
687
687
  grubInstalled = 'grub';
688
688
  }
689
689
  }
690
- else if (this.distro().familyId === 'suse' && this.packageIsInstalled('grub2')) {
690
+ else if (this.distro().familyId === 'alpine') {
691
691
  grubInstalled = 'grub2';
692
692
  }
693
693
  return grubInstalled;
@@ -172,6 +172,7 @@ export default class Utils {
172
172
  * ricava path per initrdImg
173
173
  */
174
174
  static initrdImg() {
175
+ let separator = "-";
175
176
  const vmlinuz = Utils.vmlinuz();
176
177
  const path = vmlinuz.substring(0, vmlinuz.lastIndexOf('/')) + '/';
177
178
  let initrd = 'initrd.img';
@@ -185,10 +186,16 @@ export default class Utils {
185
186
  initrd = 'initramfs';
186
187
  suffix = '.img';
187
188
  }
189
+ else if (distro.familyId === 'alpine') {
190
+ initrd = 'initramfs';
191
+ separator = '-';
192
+ version = 'lts';
193
+ suffix = '';
194
+ }
188
195
  if (distro.distroId === 'Manjaro') {
189
196
  version = vmlinuz.substring(vmlinuz.indexOf('-') + 1);
190
197
  }
191
- initrd = path + initrd + '-' + version + suffix;
198
+ initrd = path + initrd + separator + version + suffix;
192
199
  return initrd;
193
200
  }
194
201
  /**
Binary file
@@ -6,10 +6,10 @@
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1">
7
7
  </head>
8
8
  <body>
9
- <h1>eggs(1) -- the reproductive system of penguins: eggs v10.0.18</h1>
9
+ <h1>eggs(1) -- the reproductive system of penguins: eggs v10.0.19</h1>
10
10
  <h1>SYNOPSIS</h1>
11
11
  <p>Install Debian families (debian/devuan/ubuntu)</p>
12
- <pre><code>$ sudo dpkg -i penguins-eggs_10.0.18-bionic-1_amd64.deb
12
+ <pre><code>$ sudo dpkg -i penguins-eggs_10.0.19-bionic-1_amd64.deb
13
13
  </code></pre>
14
14
  <p>Install Arch families (Arch, manjaro Linux)</p>
15
15
  <p>Arch from AUR</p>
@@ -30,7 +30,7 @@ $ makepkg -si
30
30
  <h1>USAGE</h1>
31
31
  <pre><code>$ eggs (-v|--version|version)
32
32
 
33
- penguins-eggs/10.0.18
33
+ penguins-eggs/10.0.19
34
34
  $ eggs --help [COMMAND]
35
35
 
36
36
  USAGE
package/package.json CHANGED
@@ -2,17 +2,17 @@
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": "10.0.18",
5
+ "version": "10.0.19",
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.0.6",
13
- "@oclif/plugin-autocomplete": "^3.1.4",
14
- "@oclif/plugin-help": "^6.2.3",
15
- "@oclif/plugin-version": "^2.2.4",
12
+ "@oclif/core": "^4.0.12",
13
+ "@oclif/plugin-autocomplete": "^3.1.7",
14
+ "@oclif/plugin-help": "^6.2.6",
15
+ "@oclif/plugin-version": "^2.2.8",
16
16
  "axios": "^1.7.2",
17
17
  "chalk": "^5.3.0",
18
18
  "cli-cursor": "^4.0.0",
@@ -37,7 +37,7 @@
37
37
  "@types/mocha": "^10.0.6",
38
38
  "@types/mustache": "^4.2.5",
39
39
  "@types/netmask": "^2.0.5",
40
- "@types/node": "^20.14.7",
40
+ "@types/node": "^20.14.11",
41
41
  "@types/node-static": "^0.7.11",
42
42
  "@types/react": "^18.3.3",
43
43
  "@types/shelljs": "^0.8.15",
@@ -46,13 +46,13 @@
46
46
  "eslint-config-oclif": "^5.2.0",
47
47
  "eslint-config-oclif-typescript": "^3.1.8",
48
48
  "eslint-config-prettier": "^9.1.0",
49
- "mocha": "^10.4.0",
50
- "oclif": "^4.13.8",
51
- "perrisbrewery": "^10",
52
- "prettier": "^3.3.2",
49
+ "mocha": "^10.6.0",
50
+ "oclif": "^4.14.6",
51
+ "perrisbrewery": "^10.0.1",
52
+ "prettier": "^3.3.3",
53
53
  "shx": "^0.3.4",
54
54
  "ts-node": "^10.9.2",
55
- "typescript": "^5.5.2"
55
+ "typescript": "^5.5.3"
56
56
  },
57
57
  "engines": {
58
58
  "node": ">=16.0.0"