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.
- package/.oclif.manifest.json +1 -1
- package/README.md +28 -28
- package/dist/classes/distro.js +30 -7
- package/dist/classes/families/alpine.d.ts +55 -0
- package/dist/classes/families/alpine.js +108 -0
- package/dist/classes/families/archlinux.js +2 -1
- package/dist/classes/ovary.d.ts +5 -0
- package/dist/classes/ovary.js +33 -6
- package/dist/classes/pacman.js +21 -21
- package/dist/classes/utils.js +8 -1
- package/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +3 -3
- package/package.json +11 -11
package/.oclif.manifest.json
CHANGED
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
package/dist/classes/distro.js
CHANGED
|
@@ -203,13 +203,24 @@ class Distro {
|
|
|
203
203
|
case 'Spizaetus':
|
|
204
204
|
case 'n/a':
|
|
205
205
|
case 'rolling': {
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
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'
|
|
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);
|
package/dist/classes/ovary.d.ts
CHANGED
|
@@ -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
|
package/dist/classes/ovary.js
CHANGED
|
@@ -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}
|
|
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
|
-
|
|
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
|
package/dist/classes/pacman.js
CHANGED
|
@@ -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
|
|
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 === '
|
|
83
|
-
await
|
|
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 === '
|
|
105
|
-
await
|
|
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 === '
|
|
123
|
-
retVal = await
|
|
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
|
-
*
|
|
457
|
+
* Alpine
|
|
458
458
|
**********************************************************************************/
|
|
459
|
-
/**
|
|
460
|
-
* openSUSE tumbleweed: eredita da tumbleweed
|
|
461
|
-
*/
|
|
462
459
|
}
|
|
463
|
-
else if (this.distro().codenameLikeId === '
|
|
464
|
-
const dest = '/etc/penguins-eggs.d/distros/
|
|
465
|
-
const
|
|
466
|
-
await exec(`cp -r ${
|
|
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 === '
|
|
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 === '
|
|
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 === '
|
|
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 === '
|
|
662
|
-
installed =
|
|
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 === '
|
|
690
|
+
else if (this.distro().familyId === 'alpine') {
|
|
691
691
|
grubInstalled = 'grub2';
|
|
692
692
|
}
|
|
693
693
|
return grubInstalled;
|
package/dist/classes/utils.js
CHANGED
|
@@ -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 +
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
13
|
-
"@oclif/plugin-autocomplete": "^3.1.
|
|
14
|
-
"@oclif/plugin-help": "^6.2.
|
|
15
|
-
"@oclif/plugin-version": "^2.2.
|
|
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.
|
|
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.
|
|
50
|
-
"oclif": "^4.
|
|
51
|
-
"perrisbrewery": "^10",
|
|
52
|
-
"prettier": "^3.3.
|
|
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.
|
|
55
|
+
"typescript": "^5.5.3"
|
|
56
56
|
},
|
|
57
57
|
"engines": {
|
|
58
58
|
"node": ">=16.0.0"
|