penguins-eggs 10.0.7 → 10.0.10
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 +10 -2
- package/README.md +30 -29
- package/conf/custom.yaml +7 -0
- package/conf/distros/buster/calamares/calamares-modules/sources-yolk/sources-yolk.sh +10 -42
- package/dist/classes/daddy.d.ts +9 -1
- package/dist/classes/daddy.js +86 -56
- package/dist/classes/n8.d.ts +2 -1
- package/dist/classes/n8.js +2 -6
- package/dist/classes/network.d.ts +2 -2
- package/dist/classes/ovary.d.ts +1 -6
- package/dist/classes/ovary.js +17 -43
- package/dist/classes/settings.d.ts +1 -1
- package/dist/classes/settings.js +1 -1
- package/dist/commands/calamares.js +1 -1
- package/dist/commands/dad.d.ts +1 -0
- package/dist/commands/dad.js +14 -3
- package/dist/components/install.js +1 -1
- package/dist/components/title.d.ts +0 -1
- package/dist/krill/modules/network-cfg.js +12 -17
- package/dist/krill/prepare.js +1 -0
- package/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +8 -7
- package/package.json +3 -3
- package/scripts/_eggs +2 -1
- package/scripts/eggs.bash +1 -1
- package/scripts/resy +1 -1
package/.oclif.manifest.json
CHANGED
|
@@ -260,7 +260,7 @@
|
|
|
260
260
|
},
|
|
261
261
|
"default": {
|
|
262
262
|
"char": "d",
|
|
263
|
-
"description": "
|
|
263
|
+
"description": "reset to default values",
|
|
264
264
|
"name": "default",
|
|
265
265
|
"allowNo": false,
|
|
266
266
|
"type": "boolean"
|
|
@@ -272,6 +272,14 @@
|
|
|
272
272
|
"allowNo": false,
|
|
273
273
|
"type": "boolean"
|
|
274
274
|
},
|
|
275
|
+
"file": {
|
|
276
|
+
"char": "f",
|
|
277
|
+
"description": "use a file configuration custom",
|
|
278
|
+
"name": "file",
|
|
279
|
+
"hasDynamicHelp": false,
|
|
280
|
+
"multiple": false,
|
|
281
|
+
"type": "option"
|
|
282
|
+
},
|
|
275
283
|
"verbose": {
|
|
276
284
|
"char": "v",
|
|
277
285
|
"name": "verbose",
|
|
@@ -1450,5 +1458,5 @@
|
|
|
1450
1458
|
]
|
|
1451
1459
|
}
|
|
1452
1460
|
},
|
|
1453
|
-
"version": "10.0.
|
|
1461
|
+
"version": "10.0.10"
|
|
1454
1462
|
}
|
package/README.md
CHANGED
|
@@ -466,7 +466,7 @@ EXAMPLES
|
|
|
466
466
|
$ eggs adapt
|
|
467
467
|
```
|
|
468
468
|
|
|
469
|
-
_See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
469
|
+
_See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/adapt.ts)_
|
|
470
470
|
|
|
471
471
|
## `eggs analyze`
|
|
472
472
|
|
|
@@ -487,7 +487,7 @@ EXAMPLES
|
|
|
487
487
|
sudo eggs analyze
|
|
488
488
|
```
|
|
489
489
|
|
|
490
|
-
_See code: [src/commands/analyze.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
490
|
+
_See code: [src/commands/analyze.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/analyze.ts)_
|
|
491
491
|
|
|
492
492
|
## `eggs autocomplete [SHELL]`
|
|
493
493
|
|
|
@@ -551,7 +551,7 @@ EXAMPLES
|
|
|
551
551
|
sudo eggs calamares --remove
|
|
552
552
|
```
|
|
553
553
|
|
|
554
|
-
_See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
554
|
+
_See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/calamares.ts)_
|
|
555
555
|
|
|
556
556
|
## `eggs config`
|
|
557
557
|
|
|
@@ -578,7 +578,7 @@ EXAMPLES
|
|
|
578
578
|
sudo eggs config --clean --nointeractive
|
|
579
579
|
```
|
|
580
580
|
|
|
581
|
-
_See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
581
|
+
_See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/config.ts)_
|
|
582
582
|
|
|
583
583
|
## `eggs cuckoo`
|
|
584
584
|
|
|
@@ -598,7 +598,7 @@ EXAMPLES
|
|
|
598
598
|
sudo eggs cuckoo
|
|
599
599
|
```
|
|
600
600
|
|
|
601
|
-
_See code: [src/commands/cuckoo.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
601
|
+
_See code: [src/commands/cuckoo.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/cuckoo.ts)_
|
|
602
602
|
|
|
603
603
|
## `eggs dad`
|
|
604
604
|
|
|
@@ -606,12 +606,13 @@ ask help from daddy - TUI configuration helper
|
|
|
606
606
|
|
|
607
607
|
```
|
|
608
608
|
USAGE
|
|
609
|
-
$ eggs dad [-c] [-d] [-h] [-v]
|
|
609
|
+
$ eggs dad [-c] [-d] [-h] [-f <value>] [-v]
|
|
610
610
|
|
|
611
611
|
FLAGS
|
|
612
|
-
-c, --clean
|
|
613
|
-
-d, --default
|
|
614
|
-
-
|
|
612
|
+
-c, --clean remove old configuration before to create
|
|
613
|
+
-d, --default reset to default values
|
|
614
|
+
-f, --file=<value> use a file configuration custom
|
|
615
|
+
-h, --help Show CLI help.
|
|
615
616
|
-v, --verbose
|
|
616
617
|
|
|
617
618
|
DESCRIPTION
|
|
@@ -625,7 +626,7 @@ EXAMPLES
|
|
|
625
626
|
sudo dad --default
|
|
626
627
|
```
|
|
627
628
|
|
|
628
|
-
_See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
629
|
+
_See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/dad.ts)_
|
|
629
630
|
|
|
630
631
|
## `eggs export deb`
|
|
631
632
|
|
|
@@ -652,7 +653,7 @@ EXAMPLES
|
|
|
652
653
|
$ eggs export deb --all
|
|
653
654
|
```
|
|
654
655
|
|
|
655
|
-
_See code: [src/commands/export/deb.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
656
|
+
_See code: [src/commands/export/deb.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/export/deb.ts)_
|
|
656
657
|
|
|
657
658
|
## `eggs export iso`
|
|
658
659
|
|
|
@@ -677,7 +678,7 @@ EXAMPLES
|
|
|
677
678
|
$ eggs export iso --clean
|
|
678
679
|
```
|
|
679
680
|
|
|
680
|
-
_See code: [src/commands/export/iso.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
681
|
+
_See code: [src/commands/export/iso.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/export/iso.ts)_
|
|
681
682
|
|
|
682
683
|
## `eggs help [COMMAND]`
|
|
683
684
|
|
|
@@ -738,7 +739,7 @@ EXAMPLES
|
|
|
738
739
|
sudo eggs install --chroot
|
|
739
740
|
```
|
|
740
741
|
|
|
741
|
-
_See code: [src/commands/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
742
|
+
_See code: [src/commands/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/install.ts)_
|
|
742
743
|
|
|
743
744
|
## `eggs kill`
|
|
744
745
|
|
|
@@ -761,7 +762,7 @@ EXAMPLES
|
|
|
761
762
|
sudo eggs kill
|
|
762
763
|
```
|
|
763
764
|
|
|
764
|
-
_See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
765
|
+
_See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/kill.ts)_
|
|
765
766
|
|
|
766
767
|
## `eggs krill`
|
|
767
768
|
|
|
@@ -820,7 +821,7 @@ EXAMPLES
|
|
|
820
821
|
$ eggs mom
|
|
821
822
|
```
|
|
822
823
|
|
|
823
|
-
_See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
824
|
+
_See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/mom.ts)_
|
|
824
825
|
|
|
825
826
|
## `eggs produce`
|
|
826
827
|
|
|
@@ -871,7 +872,7 @@ EXAMPLES
|
|
|
871
872
|
sudo eggs produce --basename=colibri --theme theme --addons adapt
|
|
872
873
|
```
|
|
873
874
|
|
|
874
|
-
_See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
875
|
+
_See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/produce.ts)_
|
|
875
876
|
|
|
876
877
|
## `eggs status`
|
|
877
878
|
|
|
@@ -892,7 +893,7 @@ EXAMPLES
|
|
|
892
893
|
$ eggs status
|
|
893
894
|
```
|
|
894
895
|
|
|
895
|
-
_See code: [src/commands/status.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
896
|
+
_See code: [src/commands/status.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/status.ts)_
|
|
896
897
|
|
|
897
898
|
## `eggs syncfrom`
|
|
898
899
|
|
|
@@ -918,7 +919,7 @@ EXAMPLES
|
|
|
918
919
|
sudo eggs syncfrom --file /path/to/luks-volume
|
|
919
920
|
```
|
|
920
921
|
|
|
921
|
-
_See code: [src/commands/syncfrom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
922
|
+
_See code: [src/commands/syncfrom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/syncfrom.ts)_
|
|
922
923
|
|
|
923
924
|
## `eggs syncto`
|
|
924
925
|
|
|
@@ -945,7 +946,7 @@ EXAMPLES
|
|
|
945
946
|
sudo eggs syncto --excludes
|
|
946
947
|
```
|
|
947
948
|
|
|
948
|
-
_See code: [src/commands/syncto.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
949
|
+
_See code: [src/commands/syncto.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/syncto.ts)_
|
|
949
950
|
|
|
950
951
|
## `eggs tools clean`
|
|
951
952
|
|
|
@@ -967,7 +968,7 @@ EXAMPLES
|
|
|
967
968
|
sudo eggs tools clean
|
|
968
969
|
```
|
|
969
970
|
|
|
970
|
-
_See code: [src/commands/tools/clean.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
971
|
+
_See code: [src/commands/tools/clean.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/tools/clean.ts)_
|
|
971
972
|
|
|
972
973
|
## `eggs tools ppa`
|
|
973
974
|
|
|
@@ -993,7 +994,7 @@ EXAMPLES
|
|
|
993
994
|
sudo eggs tools ppa --remove
|
|
994
995
|
```
|
|
995
996
|
|
|
996
|
-
_See code: [src/commands/tools/ppa.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
997
|
+
_See code: [src/commands/tools/ppa.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/tools/ppa.ts)_
|
|
997
998
|
|
|
998
999
|
## `eggs tools skel`
|
|
999
1000
|
|
|
@@ -1017,7 +1018,7 @@ EXAMPLES
|
|
|
1017
1018
|
sudo eggs tools skel --user user-to-be-copied
|
|
1018
1019
|
```
|
|
1019
1020
|
|
|
1020
|
-
_See code: [src/commands/tools/skel.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
1021
|
+
_See code: [src/commands/tools/skel.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/tools/skel.ts)_
|
|
1021
1022
|
|
|
1022
1023
|
## `eggs tools stat`
|
|
1023
1024
|
|
|
@@ -1043,7 +1044,7 @@ EXAMPLES
|
|
|
1043
1044
|
$ eggs tools stat --year
|
|
1044
1045
|
```
|
|
1045
1046
|
|
|
1046
|
-
_See code: [src/commands/tools/stat.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
1047
|
+
_See code: [src/commands/tools/stat.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/tools/stat.ts)_
|
|
1047
1048
|
|
|
1048
1049
|
## `eggs tools yolk`
|
|
1049
1050
|
|
|
@@ -1064,7 +1065,7 @@ EXAMPLES
|
|
|
1064
1065
|
sudo eggs tools yolk
|
|
1065
1066
|
```
|
|
1066
1067
|
|
|
1067
|
-
_See code: [src/commands/tools/yolk.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
1068
|
+
_See code: [src/commands/tools/yolk.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/tools/yolk.ts)_
|
|
1068
1069
|
|
|
1069
1070
|
## `eggs update`
|
|
1070
1071
|
|
|
@@ -1085,7 +1086,7 @@ EXAMPLES
|
|
|
1085
1086
|
$ eggs update
|
|
1086
1087
|
```
|
|
1087
1088
|
|
|
1088
|
-
_See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
1089
|
+
_See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/update.ts)_
|
|
1089
1090
|
|
|
1090
1091
|
## `eggs version`
|
|
1091
1092
|
|
|
@@ -1131,7 +1132,7 @@ EXAMPLES
|
|
|
1131
1132
|
$ eggs wardrobe get your-wardrobe
|
|
1132
1133
|
```
|
|
1133
1134
|
|
|
1134
|
-
_See code: [src/commands/wardrobe/get.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
1135
|
+
_See code: [src/commands/wardrobe/get.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/wardrobe/get.ts)_
|
|
1135
1136
|
|
|
1136
1137
|
## `eggs wardrobe list [REPO]`
|
|
1137
1138
|
|
|
@@ -1160,7 +1161,7 @@ EXAMPLES
|
|
|
1160
1161
|
$ eggs wardrobe list --distro arch
|
|
1161
1162
|
```
|
|
1162
1163
|
|
|
1163
|
-
_See code: [src/commands/wardrobe/list.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
1164
|
+
_See code: [src/commands/wardrobe/list.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/wardrobe/list.ts)_
|
|
1164
1165
|
|
|
1165
1166
|
## `eggs wardrobe show [REPO]`
|
|
1166
1167
|
|
|
@@ -1190,7 +1191,7 @@ EXAMPLES
|
|
|
1190
1191
|
$ eggs wardrobe show accessories/
|
|
1191
1192
|
```
|
|
1192
1193
|
|
|
1193
|
-
_See code: [src/commands/wardrobe/show.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
1194
|
+
_See code: [src/commands/wardrobe/show.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/wardrobe/show.ts)_
|
|
1194
1195
|
|
|
1195
1196
|
## `eggs wardrobe wear [REPO]`
|
|
1196
1197
|
|
|
@@ -1221,7 +1222,7 @@ EXAMPLES
|
|
|
1221
1222
|
sudo eggs wardrobe wear wagtail/waydroid
|
|
1222
1223
|
```
|
|
1223
1224
|
|
|
1224
|
-
_See code: [src/commands/wardrobe/wear.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.
|
|
1225
|
+
_See code: [src/commands/wardrobe/wear.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/wardrobe/wear.ts)_
|
|
1225
1226
|
<!-- commandsstop -->
|
|
1226
1227
|
|
|
1227
1228
|
# penGUI
|
package/conf/custom.yaml
ADDED
|
@@ -4,66 +4,39 @@
|
|
|
4
4
|
# We use just yolk during installation
|
|
5
5
|
#
|
|
6
6
|
# sources-yolk.sh
|
|
7
|
-
# add yolk
|
|
7
|
+
# add yolk
|
|
8
8
|
#
|
|
9
9
|
# sources-yolk.sh -u
|
|
10
|
-
# remove yolk
|
|
10
|
+
# remove yolk
|
|
11
11
|
|
|
12
12
|
#
|
|
13
13
|
#
|
|
14
14
|
#
|
|
15
15
|
main() {
|
|
16
16
|
if [ "$1" = "-u" ]; then
|
|
17
|
-
|
|
17
|
+
remove
|
|
18
18
|
else
|
|
19
|
-
|
|
20
|
-
yolk
|
|
19
|
+
add
|
|
21
20
|
fi
|
|
22
21
|
sync
|
|
23
22
|
exit 0
|
|
24
23
|
}
|
|
25
24
|
|
|
26
|
-
#
|
|
27
|
-
#
|
|
28
|
-
#
|
|
29
|
-
backup() {
|
|
30
|
-
if [ -f "$BACKUP" ]; then
|
|
31
|
-
rm -f "$BACKUP"
|
|
32
|
-
fi
|
|
33
|
-
|
|
34
|
-
if [ -d "$BACKUP_D" ]; then
|
|
35
|
-
rm -rf "$BACKUP_D"
|
|
36
|
-
fi
|
|
37
|
-
|
|
38
|
-
mv "$LIST" "$BACKUP"
|
|
39
|
-
|
|
40
|
-
mv "$LIST_D" "$BACKUP_D"
|
|
41
|
-
}
|
|
42
25
|
|
|
43
26
|
#
|
|
44
27
|
#
|
|
45
28
|
#
|
|
46
|
-
|
|
47
|
-
if [ -f "$
|
|
48
|
-
rm -f "$
|
|
49
|
-
fi
|
|
50
|
-
|
|
51
|
-
if [ -d "$LIST_D" ]; then
|
|
52
|
-
rm -rf "$LIST_D"
|
|
29
|
+
remove() {
|
|
30
|
+
if [ -f "$YOLK_LIST" ]; then
|
|
31
|
+
rm -f "$YOLK_LIST"
|
|
53
32
|
fi
|
|
54
|
-
|
|
55
|
-
mv "$BACKUP" "$LIST"
|
|
56
|
-
|
|
57
|
-
mv "$BACKUP_D" "$LIST_D"
|
|
58
33
|
}
|
|
59
34
|
|
|
60
35
|
#
|
|
61
36
|
#
|
|
62
37
|
#
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
echo "deb [trusted=yes] file:/var/local/yolk ./" > "$LIST_D/yolk.list"
|
|
66
|
-
touch "$LIST"
|
|
38
|
+
add() {
|
|
39
|
+
echo "deb [trusted=yes] file:/var/local/yolk ./" > "$YOLK_LIST"
|
|
67
40
|
chroot "$CHROOT" apt-get --yes update
|
|
68
41
|
}
|
|
69
42
|
|
|
@@ -71,12 +44,7 @@ yolk() {
|
|
|
71
44
|
# WE START HERE
|
|
72
45
|
#
|
|
73
46
|
CHROOT=$(mount | grep proc | grep calamares | awk '{print $3}' | sed -e "s#/proc##g")
|
|
74
|
-
|
|
75
|
-
LIST="$CHROOT/etc/apt/sources.list"
|
|
76
|
-
BACKUP="$LIST.backup"
|
|
77
|
-
|
|
78
|
-
LIST_D="$LIST.d"
|
|
79
|
-
BACKUP_D="$LIST_D.backup"
|
|
47
|
+
YOLK_LIST="$CHROOT/etc/apt/sources.list.d/yolk.list"
|
|
80
48
|
|
|
81
49
|
main "$1"
|
|
82
50
|
|
package/dist/classes/daddy.d.ts
CHANGED
|
@@ -11,8 +11,16 @@ export default class Daddy {
|
|
|
11
11
|
settings: Settings;
|
|
12
12
|
/**
|
|
13
13
|
*
|
|
14
|
+
* @param reset
|
|
15
|
+
* @param isCustom
|
|
16
|
+
* @param fileCustom
|
|
17
|
+
* @param verbose
|
|
18
|
+
*/
|
|
19
|
+
helpMe(reset?: boolean, isCustom?: boolean, fileCustom?: string, verbose?: boolean): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* editConfif
|
|
14
22
|
* @param c
|
|
23
|
+
* @returns
|
|
15
24
|
*/
|
|
16
25
|
editConfig(c: IEggsConfig): Promise<string>;
|
|
17
|
-
helpMe(loadDefault?: boolean, verbose?: boolean): Promise<void>;
|
|
18
26
|
}
|
package/dist/classes/daddy.js
CHANGED
|
@@ -9,6 +9,8 @@ import chalk from 'chalk';
|
|
|
9
9
|
import inquirer from 'inquirer';
|
|
10
10
|
// _dirname
|
|
11
11
|
import path from 'node:path';
|
|
12
|
+
import fs from 'fs';
|
|
13
|
+
import yaml from 'js-yaml';
|
|
12
14
|
import Pacman from '../classes/pacman.js';
|
|
13
15
|
import Settings from '../classes/settings.js';
|
|
14
16
|
import Utils from '../classes/utils.js';
|
|
@@ -17,9 +19,92 @@ export default class Daddy {
|
|
|
17
19
|
settings = {};
|
|
18
20
|
/**
|
|
19
21
|
*
|
|
22
|
+
* @param reset
|
|
23
|
+
* @param isCustom
|
|
24
|
+
* @param fileCustom
|
|
25
|
+
* @param verbose
|
|
26
|
+
*/
|
|
27
|
+
async helpMe(reset = false, isCustom = false, fileCustom = '', verbose = false) {
|
|
28
|
+
console.log("reset: ", reset);
|
|
29
|
+
console.log("isCustom: ", isCustom);
|
|
30
|
+
if (isCustom) {
|
|
31
|
+
console.log("fileCustom: ", fileCustom);
|
|
32
|
+
}
|
|
33
|
+
// Controllo configurazione
|
|
34
|
+
if (!Pacman.configurationCheck()) {
|
|
35
|
+
console.log('- creating configuration dir...');
|
|
36
|
+
await Pacman.configurationInstall(verbose);
|
|
37
|
+
}
|
|
38
|
+
// Templates
|
|
39
|
+
if (!Pacman.distroTemplateCheck()) {
|
|
40
|
+
console.log('- distro template install...');
|
|
41
|
+
await Pacman.distroTemplateInstall(verbose);
|
|
42
|
+
}
|
|
43
|
+
// show and edit configuration
|
|
44
|
+
this.settings = new Settings();
|
|
45
|
+
let config = {};
|
|
46
|
+
let jsonConf = '';
|
|
47
|
+
if (await this.settings.load()) {
|
|
48
|
+
config = this.settings.config;
|
|
49
|
+
config.compression = 'fast';
|
|
50
|
+
if (reset) {
|
|
51
|
+
// Reset configuration
|
|
52
|
+
if (config.snapshot_prefix === '') {
|
|
53
|
+
config.snapshot_prefix = Utils.snapshotPrefix(this.settings.distro.distroId, this.settings.distro.codenameId);
|
|
54
|
+
}
|
|
55
|
+
jsonConf = JSON.stringify(config);
|
|
56
|
+
console.log("reset");
|
|
57
|
+
}
|
|
58
|
+
else if (isCustom) {
|
|
59
|
+
// Custom configuration
|
|
60
|
+
const conf = fs.readFileSync(fileCustom, 'utf8');
|
|
61
|
+
const confCustom = yaml.load(conf);
|
|
62
|
+
config.snapshot_basename = confCustom.snapshot_basename;
|
|
63
|
+
config.snapshot_prefix = confCustom.snapshot_prefix;
|
|
64
|
+
config.user_opt = confCustom.user_opt;
|
|
65
|
+
config.user_opt_passwd = confCustom.user_opt_passwd;
|
|
66
|
+
config.root_passwd = confCustom.root_passwd;
|
|
67
|
+
config.theme = confCustom.theme;
|
|
68
|
+
jsonConf = JSON.stringify(config);
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
// default configuration
|
|
72
|
+
jsonConf = await this.editConfig(config);
|
|
73
|
+
console.log("edit");
|
|
74
|
+
}
|
|
75
|
+
// Save new configuration
|
|
76
|
+
const confNew = JSON.parse(jsonConf);
|
|
77
|
+
config.snapshot_basename = confNew.snapshot_basename;
|
|
78
|
+
config.snapshot_prefix = confNew.snapshot_prefix;
|
|
79
|
+
config.user_opt = confNew.user_opt;
|
|
80
|
+
config.user_opt_passwd = confNew.user_opt_passwd;
|
|
81
|
+
config.root_passwd = confNew.root_passwd;
|
|
82
|
+
config.theme = confNew.theme;
|
|
83
|
+
await this.settings.save(config);
|
|
84
|
+
}
|
|
85
|
+
console.log();
|
|
86
|
+
console.log(chalk.cyan('Your configuration was saved on: /etc/penguins-eggs.d'));
|
|
87
|
+
console.log();
|
|
88
|
+
console.log(chalk.cyan(`You can create a clean ISO with: `) + chalk.white(`sudo eggs produce`));
|
|
89
|
+
console.log(chalk.cyan(`or a full personal clone: `) + chalk.white(`sudo eggs produce --clone`));
|
|
90
|
+
console.log();
|
|
91
|
+
console.log(chalk.cyan(`If you don't have enough space to remaster, you can mount`));
|
|
92
|
+
console.log(chalk.cyan(`some remote or local space. Follow the samples:`));
|
|
93
|
+
console.log(chalk.cyan(`- first, create an hidden mountpoint under the nest:`));
|
|
94
|
+
console.log(chalk.white(`sudo mkdir /home/eggs/.mnt -p`));
|
|
95
|
+
console.log(chalk.cyan(`- then, mount remote space:`));
|
|
96
|
+
console.log(chalk.white(`sudo sshfs -o allow_other root@192.168.1.2:/zfs/iso /home/eggs/.mnt`));
|
|
97
|
+
console.log(chalk.cyan('- or, mount a local partition:'));
|
|
98
|
+
console.log(chalk.white(`sudo mount /dev/sdx1 /home/eggs/.mnt`));
|
|
99
|
+
console.log();
|
|
100
|
+
console.log(chalk.cyan('More help? ') + chalk.white('eggs mom'));
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* editConfif
|
|
20
104
|
* @param c
|
|
105
|
+
* @returns
|
|
21
106
|
*/
|
|
22
|
-
editConfig(c) {
|
|
107
|
+
async editConfig(c) {
|
|
23
108
|
// Utils.titles('dad')
|
|
24
109
|
console.log(chalk.cyan('Edit and save Live system parameters'));
|
|
25
110
|
console.log();
|
|
@@ -78,59 +163,4 @@ export default class Daddy {
|
|
|
78
163
|
});
|
|
79
164
|
});
|
|
80
165
|
}
|
|
81
|
-
async helpMe(loadDefault = false, verbose = false) {
|
|
82
|
-
// Controllo configurazione
|
|
83
|
-
if (!Pacman.configurationCheck()) {
|
|
84
|
-
console.log('- creating configuration dir...');
|
|
85
|
-
await Pacman.configurationInstall(verbose);
|
|
86
|
-
}
|
|
87
|
-
// Templates
|
|
88
|
-
if (!Pacman.distroTemplateCheck()) {
|
|
89
|
-
console.log('- distro template install...');
|
|
90
|
-
await Pacman.distroTemplateInstall(verbose);
|
|
91
|
-
}
|
|
92
|
-
// show and edit configuration
|
|
93
|
-
this.settings = new Settings();
|
|
94
|
-
let config = {};
|
|
95
|
-
if (await this.settings.load()) {
|
|
96
|
-
config = this.settings.config;
|
|
97
|
-
let jsonConf;
|
|
98
|
-
if (loadDefault) {
|
|
99
|
-
if (config.snapshot_prefix === '') {
|
|
100
|
-
config.snapshot_prefix = Utils.snapshotPrefix(this.settings.distro.distroId, this.settings.distro.codenameId);
|
|
101
|
-
config.compression = 'fast';
|
|
102
|
-
}
|
|
103
|
-
jsonConf = JSON.stringify(config);
|
|
104
|
-
}
|
|
105
|
-
else {
|
|
106
|
-
jsonConf = await this.editConfig(config);
|
|
107
|
-
}
|
|
108
|
-
const newConf = JSON.parse(jsonConf);
|
|
109
|
-
// salvo le modifiche
|
|
110
|
-
config.snapshot_basename = newConf.snapshot_basename;
|
|
111
|
-
config.snapshot_prefix = newConf.snapshot_prefix;
|
|
112
|
-
config.user_opt = newConf.user_opt;
|
|
113
|
-
config.user_opt_passwd = newConf.user_opt_passwd;
|
|
114
|
-
config.root_passwd = newConf.root_passwd;
|
|
115
|
-
config.theme = newConf.theme;
|
|
116
|
-
await this.settings.save(config);
|
|
117
|
-
console.log();
|
|
118
|
-
console.log(chalk.cyan('Your configuration was saved on: /etc/penguins-eggs.d'));
|
|
119
|
-
console.log();
|
|
120
|
-
console.log(chalk.cyan(`You can create a clean ISO with: `) + chalk.white(`sudo eggs produce`));
|
|
121
|
-
console.log(chalk.cyan(`or a full personal clone: `) + chalk.white(`sudo eggs produce --clone`));
|
|
122
|
-
console.log();
|
|
123
|
-
console.log(chalk.cyan(`If you don't have enough space to remaster, you can mount`));
|
|
124
|
-
console.log(chalk.cyan(`some remote or local space. Follow the samples:`));
|
|
125
|
-
console.log(chalk.cyan(`- first, create an hidden mountpoint under the nest:`));
|
|
126
|
-
console.log(chalk.white(`sudo mkdir /home/eggs/.mnt -p`));
|
|
127
|
-
console.log(chalk.cyan(`- then, mount remote space:`));
|
|
128
|
-
console.log(chalk.white(`sudo sshfs -o allow_other root@192.168.1.2:/zfs/iso /home/eggs/.mnt`));
|
|
129
|
-
console.log(chalk.cyan('- or, mount a local partition:'));
|
|
130
|
-
console.log(chalk.white(`sudo mount /dev/sdx1 /home/eggs/.mnt`));
|
|
131
|
-
console.log();
|
|
132
|
-
console.log(chalk.cyan('More help? ') + chalk.white('eggs mom'));
|
|
133
|
-
// await exec(`cat /etc/penguins-eggs.d/eggs.yaml`)
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
166
|
}
|
package/dist/classes/n8.d.ts
CHANGED
package/dist/classes/n8.js
CHANGED
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
import fs from 'node:fs';
|
|
9
9
|
export default class n8 {
|
|
10
10
|
static dirent2string(dir) {
|
|
11
|
+
return dir.name;
|
|
12
|
+
// Removed not needed more node8 is past
|
|
11
13
|
let dirname = '';
|
|
12
14
|
dirname = process.versions.node.split('.')[0] === '8' ? JSON.stringify(dir).replace('"', '').replace('"', '') : dir.name;
|
|
13
15
|
return dirname;
|
|
@@ -17,24 +19,18 @@ export default class n8 {
|
|
|
17
19
|
* @param dirPath
|
|
18
20
|
*/
|
|
19
21
|
static isDirectory(name) {
|
|
20
|
-
// console.log (`isDirectory: ${name}`)
|
|
21
22
|
const path = '/' + name;
|
|
22
23
|
const isDirectory = fs.existsSync(path) && fs.lstatSync(path).isDirectory();
|
|
23
|
-
// console.log(`path: ${path} isDirectory: ${isDirectory}`)
|
|
24
24
|
return isDirectory;
|
|
25
25
|
}
|
|
26
26
|
static isFile(name) {
|
|
27
|
-
// console.log (`isFile: ${name}`)
|
|
28
27
|
const path = '/' + name;
|
|
29
28
|
const isFile = fs.existsSync(path) && fs.lstatSync(path).isFile();
|
|
30
|
-
// console.log(`path: ${path} isFile: ${isFile}`)
|
|
31
29
|
return isFile;
|
|
32
30
|
}
|
|
33
31
|
static isSymbolicLink(name) {
|
|
34
|
-
// console.log (`isSymbolicLink: ${name}`)
|
|
35
32
|
const path = '/' + name;
|
|
36
33
|
const isSymbolicLink = fs.existsSync(path) && fs.lstatSync(path).isSymbolicLink();
|
|
37
|
-
// console.log(`path: ${path} isSymbolicLink: ${isSymbolicLink}`)
|
|
38
34
|
return isSymbolicLink;
|
|
39
35
|
}
|
|
40
36
|
}
|
|
@@ -24,14 +24,14 @@ export default class Network {
|
|
|
24
24
|
base(): string;
|
|
25
25
|
bitmask(): void;
|
|
26
26
|
broadcast(): string;
|
|
27
|
-
contains(): (address: string |
|
|
27
|
+
contains(): (address: string | Netmask | number) => boolean;
|
|
28
28
|
first(): string;
|
|
29
29
|
forEach(): (cb: (ip: string, long: number, index: number) => void) => void;
|
|
30
30
|
hostmask(): string;
|
|
31
31
|
last(): string;
|
|
32
32
|
maskLong(): number;
|
|
33
33
|
netLong(): number;
|
|
34
|
-
next(): (count?: number
|
|
34
|
+
next(): (count?: number) => Netmask;
|
|
35
35
|
size(): number;
|
|
36
36
|
toString(): () => string;
|
|
37
37
|
}
|
package/dist/classes/ovary.d.ts
CHANGED
|
@@ -26,6 +26,7 @@ export default class Ovary {
|
|
|
26
26
|
snapshot_basename: string;
|
|
27
27
|
snapshot_prefix: string;
|
|
28
28
|
theme: string;
|
|
29
|
+
volid: string;
|
|
29
30
|
toNull: string;
|
|
30
31
|
verbose: boolean;
|
|
31
32
|
/**
|
|
@@ -50,12 +51,6 @@ export default class Ovary {
|
|
|
50
51
|
* @param verbose
|
|
51
52
|
*/
|
|
52
53
|
cleanUsersAccounts(): Promise<void>;
|
|
53
|
-
/**
|
|
54
|
-
* copyBoot
|
|
55
|
-
*
|
|
56
|
-
* necessario: prima era merged
|
|
57
|
-
*/
|
|
58
|
-
copyBoot(): Promise<void>;
|
|
59
54
|
/**
|
|
60
55
|
* list degli utenti: grep -E 1[0-9]{3} /etc/passwd | sed s/:/\ / | awk '{print $1}'
|
|
61
56
|
* create la home per user_opt
|
package/dist/classes/ovary.js
CHANGED
|
@@ -50,6 +50,7 @@ export default class Ovary {
|
|
|
50
50
|
snapshot_basename = '';
|
|
51
51
|
snapshot_prefix = '';
|
|
52
52
|
theme = '';
|
|
53
|
+
volid = '';
|
|
53
54
|
toNull = '';
|
|
54
55
|
verbose = false;
|
|
55
56
|
/**
|
|
@@ -89,7 +90,7 @@ export default class Ovary {
|
|
|
89
90
|
* fs.readdirSync('/', { withFileTypes: true })
|
|
90
91
|
* viene ignorato da Node8, ma da problemi da Node10 in poi
|
|
91
92
|
*/
|
|
92
|
-
const dirs = fs.readdirSync('/');
|
|
93
|
+
const dirs = fs.readdirSync('/');
|
|
93
94
|
const startLine = '#############################################################';
|
|
94
95
|
const titleLine = '# -----------------------------------------------------------';
|
|
95
96
|
const endLine = '# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n';
|
|
@@ -101,6 +102,10 @@ export default class Ovary {
|
|
|
101
102
|
for (const dir of dirs) {
|
|
102
103
|
cmds.push(startLine);
|
|
103
104
|
if (N8.isDirectory(dir)) {
|
|
105
|
+
if (dir === 'boot') {
|
|
106
|
+
cmds.push(`# /boot is copied actually`);
|
|
107
|
+
cmds.push(await rexec(`cp -r /boot ${this.settings.config.snapshot_mnt}filesystem.squashfs`, this.verbose));
|
|
108
|
+
}
|
|
104
109
|
if (dir !== 'boot' && dir !== 'lost+found') {
|
|
105
110
|
cmd = `# /${dir} is a directory`;
|
|
106
111
|
if (this.mergedAndOverlay(dir)) {
|
|
@@ -197,17 +202,6 @@ export default class Ovary {
|
|
|
197
202
|
cmds.push(await rexec(`chroot ${this.settings.work_dir.merged} userdel ${users[i]}`, this.verbose));
|
|
198
203
|
}
|
|
199
204
|
}
|
|
200
|
-
/**
|
|
201
|
-
* copyBoot
|
|
202
|
-
*
|
|
203
|
-
* necessario: prima era merged
|
|
204
|
-
*/
|
|
205
|
-
async copyBoot() {
|
|
206
|
-
if (this.verbose) {
|
|
207
|
-
console.log('Ovary: copyBoot');
|
|
208
|
-
}
|
|
209
|
-
await rexec(`cp -r /boot ${this.settings.config.snapshot_mnt}filesystem.squashfs`, this.verbose);
|
|
210
|
-
}
|
|
211
205
|
/**
|
|
212
206
|
* list degli utenti: grep -E 1[0-9]{3} /etc/passwd | sed s/:/\ / | awk '{print $1}'
|
|
213
207
|
* create la home per user_opt
|
|
@@ -639,6 +633,8 @@ export default class Ovary {
|
|
|
639
633
|
async fertilization(snapshot_prefix = '', snapshot_basename = '', theme = '', compression = '', nointeratctive = false) {
|
|
640
634
|
this.settings = new Settings();
|
|
641
635
|
if (await this.settings.load()) {
|
|
636
|
+
await this.settings.loadRemix(this.theme);
|
|
637
|
+
this.volid = Utils.getVolid(this.settings.remix.name);
|
|
642
638
|
this.familyId = this.settings.distro.familyId;
|
|
643
639
|
this.nest = this.settings.config.snapshot_mnt;
|
|
644
640
|
if (snapshot_prefix !== '') {
|
|
@@ -817,8 +813,7 @@ export default class Ovary {
|
|
|
817
813
|
const { distroId } = this.settings.distro;
|
|
818
814
|
let kp = `boot=live components locales=${process.env.LANG}`;
|
|
819
815
|
if (this.familyId === 'archlinux') {
|
|
820
|
-
|
|
821
|
-
kp += isMiso(distroId) ? ` misobasedir=manjaro misolabel=${volid}` : ` archisobasedir=arch archisolabel=${volid}`;
|
|
816
|
+
kp += isMiso(distroId) ? ` misobasedir=manjaro misolabel=${this.volid}` : ` archisobasedir=arch archisolabel=${this.volid}`;
|
|
822
817
|
}
|
|
823
818
|
kp += ` cow_spacesize=4G`;
|
|
824
819
|
return kp;
|
|
@@ -1100,6 +1095,10 @@ export default class Ovary {
|
|
|
1100
1095
|
console.log('Ovary: makeIso');
|
|
1101
1096
|
}
|
|
1102
1097
|
Utils.writeX(`${this.settings.work_dir.ovarium}mkisofs`, cmd);
|
|
1098
|
+
// Create link to iso ALLWAYES
|
|
1099
|
+
const src = this.settings.config.snapshot_mnt + this.settings.isoFilename;
|
|
1100
|
+
const dest = this.settings.config.snapshot_dir + this.settings.isoFilename;
|
|
1101
|
+
await exec(`ln -s ${src} ${dest}`);
|
|
1103
1102
|
if (!scriptOnly) {
|
|
1104
1103
|
const test = (await exec(cmd, Utils.setEcho(true))).code;
|
|
1105
1104
|
if (test !== 0) {
|
|
@@ -1297,7 +1296,6 @@ export default class Ovary {
|
|
|
1297
1296
|
if (!fs.existsSync(this.settings.config.snapshot_dir)) {
|
|
1298
1297
|
shx.mkdir('-p', this.settings.config.snapshot_dir);
|
|
1299
1298
|
}
|
|
1300
|
-
await this.settings.loadRemix(this.snapshot_basename, this.theme);
|
|
1301
1299
|
if (Utils.isLive()) {
|
|
1302
1300
|
console.log(chalk.red('>>> eggs: This is a live system! An egg cannot be produced from an egg!'));
|
|
1303
1301
|
}
|
|
@@ -1422,7 +1420,6 @@ export default class Ovary {
|
|
|
1422
1420
|
await this.makeEfi(this.theme);
|
|
1423
1421
|
}
|
|
1424
1422
|
await this.bindLiveFs();
|
|
1425
|
-
await this.copyBoot();
|
|
1426
1423
|
if (!this.clone) {
|
|
1427
1424
|
/**
|
|
1428
1425
|
* ANCHE per cryptedclone
|
|
@@ -1459,8 +1456,7 @@ export default class Ovary {
|
|
|
1459
1456
|
await exec(`mv ${luksFile} ${this.nest}iso/live`, this.echo);
|
|
1460
1457
|
}
|
|
1461
1458
|
const mkIsofsCmd = this.xorrisoCommand(clone, cryptedclone).replaceAll(/\s\s+/g, ' ');
|
|
1462
|
-
|
|
1463
|
-
this.makeDotDisk(info, mksquashfsCmd, mkIsofsCmd);
|
|
1459
|
+
this.makeDotDisk(this.volid, mksquashfsCmd, mkIsofsCmd);
|
|
1464
1460
|
/**
|
|
1465
1461
|
* AntiX/MX LINUX
|
|
1466
1462
|
*/
|
|
@@ -1644,7 +1640,6 @@ export default class Ovary {
|
|
|
1644
1640
|
if (this.verbose) {
|
|
1645
1641
|
console.log('Ovary: xorrisoCommand');
|
|
1646
1642
|
}
|
|
1647
|
-
const volid = Utils.getVolid(this.settings.remix.name);
|
|
1648
1643
|
const prefix = this.settings.config.snapshot_prefix;
|
|
1649
1644
|
let typology = '';
|
|
1650
1645
|
// typology is applied only with standard egg-of
|
|
@@ -1660,7 +1655,7 @@ export default class Ovary {
|
|
|
1660
1655
|
}
|
|
1661
1656
|
}
|
|
1662
1657
|
const postfix = Utils.getPostfix();
|
|
1663
|
-
this.settings.isoFilename = prefix + volid + '_' + Utils.uefiArch() + typology + postfix;
|
|
1658
|
+
this.settings.isoFilename = prefix + this.volid + '_' + Utils.uefiArch() + typology + postfix;
|
|
1664
1659
|
//
|
|
1665
1660
|
const output = this.settings.config.snapshot_mnt + this.settings.isoFilename;
|
|
1666
1661
|
let command = '';
|
|
@@ -1688,28 +1683,7 @@ export default class Ovary {
|
|
|
1688
1683
|
uefi_isohybridGptBasdat = '-isohybrid-gpt-basdat';
|
|
1689
1684
|
uefi_noEmulBoot = '-no-emul-boot';
|
|
1690
1685
|
}
|
|
1691
|
-
//
|
|
1692
|
-
if (Pacman.packageIsInstalled('genisoimage')) {
|
|
1693
|
-
command = `genisoimage \
|
|
1694
|
-
-iso-level 3 \
|
|
1695
|
-
-allow-limited-size \
|
|
1696
|
-
-joliet-long \
|
|
1697
|
-
-r \
|
|
1698
|
-
-V "-V3.0" \
|
|
1699
|
-
-cache-inodes \
|
|
1700
|
-
-J \
|
|
1701
|
-
-l \
|
|
1702
|
-
-b isolinux/isolinux.bin \
|
|
1703
|
-
-c isolinux/boot.cat \
|
|
1704
|
-
-no-emul-boot \
|
|
1705
|
-
-boot-load-size 4 \
|
|
1706
|
-
-boot-info-table \
|
|
1707
|
-
-eltorito-alt-boot \
|
|
1708
|
-
-e boot/grub/efiboot.img \
|
|
1709
|
-
-o ${output} ${this.settings.iso_work}`;
|
|
1710
|
-
return command;
|
|
1711
|
-
}
|
|
1712
|
-
// xorriso from Piero
|
|
1686
|
+
// xorriso
|
|
1713
1687
|
command = `xorriso -as mkisofs \
|
|
1714
1688
|
-J \
|
|
1715
1689
|
-joliet-long \
|
|
@@ -1717,7 +1691,7 @@ export default class Ovary {
|
|
|
1717
1691
|
-iso-level 3 \
|
|
1718
1692
|
${isoHybridMbr} \
|
|
1719
1693
|
-partition_offset 16 \
|
|
1720
|
-
-V ${volid} \
|
|
1694
|
+
-V ${this.volid} \
|
|
1721
1695
|
-b isolinux/isolinux.bin \
|
|
1722
1696
|
-c isolinux/boot.cat \
|
|
1723
1697
|
-no-emul-boot \
|
package/dist/classes/settings.js
CHANGED
|
@@ -164,7 +164,7 @@ export default class Settings {
|
|
|
164
164
|
* @param basename
|
|
165
165
|
* @param theme
|
|
166
166
|
*/
|
|
167
|
-
async loadRemix(
|
|
167
|
+
async loadRemix(theme = '') {
|
|
168
168
|
this.remix.versionNumber = Utils.getPackageVersion();
|
|
169
169
|
this.remix.kernel = Utils.kernelVersion();
|
|
170
170
|
this.remix.branding = theme === '' ? 'eggs' : (this.remix.branding = theme.slice(Math.max(0, theme.lastIndexOf('/') + 1)));
|
|
@@ -92,7 +92,7 @@ export default class Calamares extends Command {
|
|
|
92
92
|
*/
|
|
93
93
|
if (await this.settings.load()) {
|
|
94
94
|
Utils.warning(`Configuring ${installer}`);
|
|
95
|
-
await this.settings.loadRemix(
|
|
95
|
+
await this.settings.loadRemix(theme);
|
|
96
96
|
const isClone = false;
|
|
97
97
|
this.incubator = new Incubator(this.settings.remix, this.settings.distro, this.settings.config.user_opt, theme, isClone, verbose);
|
|
98
98
|
await this.incubator.config(release);
|
package/dist/commands/dad.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export default class Dad extends Command {
|
|
|
13
13
|
clean: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
14
14
|
default: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
15
15
|
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
16
|
+
file: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
16
17
|
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
17
18
|
};
|
|
18
19
|
run(): Promise<void>;
|
package/dist/commands/dad.js
CHANGED
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
*/
|
|
8
8
|
import { Command, Flags } from '@oclif/core';
|
|
9
9
|
import chalk from 'chalk';
|
|
10
|
+
import fs from 'fs';
|
|
10
11
|
import Daddy from '../classes/daddy.js';
|
|
11
12
|
import Utils from '../classes/utils.js';
|
|
12
13
|
import { exec } from '../lib/utils.js';
|
|
@@ -15,20 +16,30 @@ export default class Dad extends Command {
|
|
|
15
16
|
static examples = ['sudo dad', 'sudo dad --clean', 'sudo dad --default'];
|
|
16
17
|
static flags = {
|
|
17
18
|
clean: Flags.boolean({ char: 'c', description: 'remove old configuration before to create' }),
|
|
18
|
-
default: Flags.boolean({ char: 'd', description: '
|
|
19
|
+
default: Flags.boolean({ char: 'd', description: 'reset to default values' }),
|
|
19
20
|
help: Flags.help({ char: 'h' }),
|
|
21
|
+
file: Flags.string({ char: 'f', description: 'use a file configuration custom' }),
|
|
20
22
|
verbose: Flags.boolean({ char: 'v' })
|
|
21
23
|
};
|
|
22
24
|
async run() {
|
|
23
25
|
Utils.titles(this.id + ' ' + this.argv);
|
|
24
26
|
console.log(chalk.cyan('Daddy, what else did you leave for me?'));
|
|
25
27
|
const { flags } = await this.parse(Dad);
|
|
28
|
+
const fileCustom = flags.file;
|
|
29
|
+
const isCustom = fileCustom !== undefined && fileCustom !== '';
|
|
30
|
+
const reset = flags.default;
|
|
26
31
|
if (Utils.isRoot(this.id)) {
|
|
27
|
-
if (flags.clean || flags.default) {
|
|
32
|
+
if (flags.clean || flags.default || flags.mine) {
|
|
28
33
|
await exec('rm /etc/penguins-eggs.d -rf');
|
|
29
34
|
}
|
|
35
|
+
if (isCustom) {
|
|
36
|
+
if (!fs.existsSync(fileCustom)) {
|
|
37
|
+
console.log(chalk.red(`Custom configuration file: ${flags.custom} not found!`));
|
|
38
|
+
process.exit(1);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
30
41
|
const daddy = new Daddy();
|
|
31
|
-
daddy.helpMe(
|
|
42
|
+
daddy.helpMe(reset, isCustom, fileCustom, flags.verbose);
|
|
32
43
|
}
|
|
33
44
|
else {
|
|
34
45
|
Utils.useRoot(this.id);
|
|
@@ -39,7 +39,7 @@ export default function Install({ message = "Install", percent = 0, spinner = fa
|
|
|
39
39
|
React.createElement(Box, { width: 74, height: 11, borderStyle: "round", flexDirection: "column" },
|
|
40
40
|
React.createElement(Box, { flexDirection: "column" },
|
|
41
41
|
React.createElement(Box, { flexDirection: "row" },
|
|
42
|
-
React.createElement(Steps, { step:
|
|
42
|
+
React.createElement(Steps, { step: 8 }),
|
|
43
43
|
React.createElement(Box, { flexDirection: "column" },
|
|
44
44
|
React.createElement(Box, { flexDirection: "row" },
|
|
45
45
|
React.createElement(Text, null, "Installing: "),
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
* license: MIT
|
|
7
7
|
* https://stackoverflow.com/questions/23876782/how-do-i-split-a-typescript-class-into-multiple-files
|
|
8
8
|
*/
|
|
9
|
+
import fs from 'fs';
|
|
9
10
|
import Pacman from '../../classes/pacman.js';
|
|
10
11
|
import Systemctl from '../../classes/systemctl.js';
|
|
11
12
|
import Utils from '../../classes/utils.js';
|
|
@@ -37,10 +38,6 @@ export default async function networkCfg() {
|
|
|
37
38
|
content += ' gateway ' + this.network.gateway + '\n';
|
|
38
39
|
}
|
|
39
40
|
Utils.write(file, content);
|
|
40
|
-
// trixie
|
|
41
|
-
// if (await systemdCtl.isActive('systemd-networkd.service')) {
|
|
42
|
-
// await exec (`rm ${file}`)
|
|
43
|
-
// }
|
|
44
41
|
}
|
|
45
42
|
else if (this.distro.familyId === 'debian' && Pacman.packageIsInstalled('netplan.io')) {
|
|
46
43
|
// netplan: to do
|
|
@@ -51,19 +48,17 @@ export default async function networkCfg() {
|
|
|
51
48
|
/**
|
|
52
49
|
* resolv.conf
|
|
53
50
|
*/
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
content += 'nameserver ' + element + '\n';
|
|
65
|
-
}
|
|
66
|
-
Utils.write(file, content);
|
|
51
|
+
const resolvFile = this.installTarget + '/etc/resolv.conf';
|
|
52
|
+
await exec(`rm -f ${resolvFile}`);
|
|
53
|
+
if (fs.existsSync('/run/systemd/resolve/resolv.conf')) {
|
|
54
|
+
await exec(`ln -s /run/systemd/resolve/resolv.conf ${resolvFile}`);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
let content = '# created by eggs\n\n';
|
|
58
|
+
content += 'domain ' + this.network.domain + '\n';
|
|
59
|
+
for (const element of this.network.dns) {
|
|
60
|
+
content += 'nameserver ' + element + '\n';
|
|
67
61
|
}
|
|
62
|
+
Utils.write(resolvFile, content);
|
|
68
63
|
}
|
|
69
64
|
}
|
package/dist/krill/prepare.js
CHANGED
|
@@ -72,6 +72,7 @@ import Keyboard from '../components/keyboard.js';
|
|
|
72
72
|
import Users from '../components/users.js';
|
|
73
73
|
import Network from '../components/network.js';
|
|
74
74
|
import Summary from '../components/summary.js';
|
|
75
|
+
//import Install from '../components/install.js'
|
|
75
76
|
import selectLanguages from '../lib/select_languages.js';
|
|
76
77
|
import selectRegions from '../lib/select_regions.js';
|
|
77
78
|
import selectZones from '../lib/select_zones.js';
|
|
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.10</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.10-1_i386.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.10
|
|
34
34
|
$ eggs --help [COMMAND]
|
|
35
35
|
|
|
36
36
|
USAGE
|
|
@@ -204,12 +204,13 @@ EXAMPLES
|
|
|
204
204
|
<h2><code>eggs dad</code></h2>
|
|
205
205
|
<p>ask help from daddy - TUI configuration helper</p>
|
|
206
206
|
<pre><code>USAGE
|
|
207
|
-
$ eggs dad [-c] [-d] [-h] [-v]
|
|
207
|
+
$ eggs dad [-c] [-d] [-h] [-f <value>] [-v]
|
|
208
208
|
|
|
209
209
|
FLAGS
|
|
210
|
-
-c, --clean
|
|
211
|
-
-d, --default
|
|
212
|
-
-
|
|
210
|
+
-c, --clean remove old configuration before to create
|
|
211
|
+
-d, --default reset to default values
|
|
212
|
+
-f, --file=<value> use a file configuration custom
|
|
213
|
+
-h, --help Show CLI help.
|
|
213
214
|
-v, --verbose
|
|
214
215
|
|
|
215
216
|
DESCRIPTION
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
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.10",
|
|
6
6
|
"author": "Piero Proietti",
|
|
7
7
|
"bin": {
|
|
8
8
|
"eggs": "./bin/run.js"
|
|
@@ -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.7",
|
|
41
41
|
"@types/node-static": "^0.7.11",
|
|
42
42
|
"@types/react": "^18.3.3",
|
|
43
43
|
"@types/shelljs": "^0.8.15",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"prettier": "^3.3.2",
|
|
53
53
|
"shx": "^0.3.4",
|
|
54
54
|
"ts-node": "^10.9.2",
|
|
55
|
-
"typescript": "^5.
|
|
55
|
+
"typescript": "^5.5.2"
|
|
56
56
|
},
|
|
57
57
|
"engines": {
|
|
58
58
|
"node": ">=16.0.0"
|
package/scripts/_eggs
CHANGED
|
@@ -246,8 +246,9 @@ _arguments -S \
|
|
|
246
246
|
dad)
|
|
247
247
|
_arguments -S \
|
|
248
248
|
"(-c --clean)"{-c,--clean}"[remove old configuration before to create]" \
|
|
249
|
-
"(-d --default)"{-d,--default}"[
|
|
249
|
+
"(-d --default)"{-d,--default}"[reset to default values]" \
|
|
250
250
|
"(-h --help)"{-h,--help}"[Show CLI help.]" \
|
|
251
|
+
"(-f --file)"{-f,--file}"[use a file configuration custom]:file:_files" \
|
|
251
252
|
"(-v --verbose)"{-v,--verbose}"[]" \
|
|
252
253
|
--help"[Show help for command]" \
|
|
253
254
|
"*: :_files" ;;
|
package/scripts/eggs.bash
CHANGED
|
@@ -16,7 +16,7 @@ analyze --help --verbose
|
|
|
16
16
|
calamares --help --install --nointeractive --policies --release --remove --theme --verbose
|
|
17
17
|
config --clean --help --nointeractive --verbose
|
|
18
18
|
cuckoo --help
|
|
19
|
-
dad --clean --default --help --verbose
|
|
19
|
+
dad --clean --default --help --file --verbose
|
|
20
20
|
export:deb --all --clean --help --verbose
|
|
21
21
|
export:iso --checksum --clean --help --verbose
|
|
22
22
|
install --btrfs --chroot --crypted --domain --halt --help --ip --nointeractive --none --pve --random --small --suspend --unattended --verbose
|
package/scripts/resy
CHANGED