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.
@@ -260,7 +260,7 @@
260
260
  },
261
261
  "default": {
262
262
  "char": "d",
263
- "description": "remove old configuration and force default",
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.7"
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.7/src/commands/adapt.ts)_
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.7/src/commands/analyze.ts)_
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.7/src/commands/calamares.ts)_
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.7/src/commands/config.ts)_
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.7/src/commands/cuckoo.ts)_
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 remove old configuration before to create
613
- -d, --default remove old configuration and force default
614
- -h, --help Show CLI help.
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.7/src/commands/dad.ts)_
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.7/src/commands/export/deb.ts)_
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.7/src/commands/export/iso.ts)_
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.7/src/commands/install.ts)_
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.7/src/commands/kill.ts)_
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.7/src/commands/mom.ts)_
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.7/src/commands/produce.ts)_
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.7/src/commands/status.ts)_
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.7/src/commands/syncfrom.ts)_
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.7/src/commands/syncto.ts)_
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.7/src/commands/tools/clean.ts)_
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.7/src/commands/tools/ppa.ts)_
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.7/src/commands/tools/skel.ts)_
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.7/src/commands/tools/stat.ts)_
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.7/src/commands/tools/yolk.ts)_
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.7/src/commands/update.ts)_
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.7/src/commands/wardrobe/get.ts)_
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.7/src/commands/wardrobe/list.ts)_
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.7/src/commands/wardrobe/show.ts)_
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.7/src/commands/wardrobe/wear.ts)_
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
@@ -0,0 +1,7 @@
1
+ # custom.yaml
2
+ ---
3
+ root_passwd: secret
4
+ snapshot_basename: columbus
5
+ snapshot_prefix: '' # none
6
+ user_opt_passwd: secret
7
+ user_opt: user
@@ -4,66 +4,39 @@
4
4
  # We use just yolk during installation
5
5
  #
6
6
  # sources-yolk.sh
7
- # add yolk, rimuove LIST, LIST.d ed esegue apt non autenticato
7
+ # add yolk
8
8
  #
9
9
  # sources-yolk.sh -u
10
- # remove yolk, restore LIST, LIST.d ed esegue apt non autenticato
10
+ # remove yolk
11
11
 
12
12
  #
13
13
  #
14
14
  #
15
15
  main() {
16
16
  if [ "$1" = "-u" ]; then
17
- restore
17
+ remove
18
18
  else
19
- backup
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
- restore() {
47
- if [ -f "$LIST" ]; then
48
- rm -f "$LIST"
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
- yolk() {
64
- mkdir -p "$LIST_D"
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
 
@@ -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
  }
@@ -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
  }
@@ -5,8 +5,9 @@
5
5
  * email: piero.proietti@gmail.com
6
6
  * license: MIT
7
7
  */
8
+ import { Dirent } from 'node:fs';
8
9
  export default class n8 {
9
- static dirent2string(dir: any): string;
10
+ static dirent2string(dir: Dirent): string;
10
11
  /**
11
12
  *
12
13
  * @param dirPath
@@ -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 | number | Netmask) => boolean;
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 | undefined) => Netmask;
34
+ next(): (count?: number) => Netmask;
35
35
  size(): number;
36
36
  toString(): () => string;
37
37
  }
@@ -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
@@ -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('/'); // we must remove boot and
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
- const volid = Utils.getVolid(this.settings.remix.name);
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
- const info = Utils.getVolid(this.settings.remix.name);
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
- // geniisoimage from Hosein
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 \
@@ -44,7 +44,7 @@ export default class Settings {
44
44
  * @param basename
45
45
  * @param theme
46
46
  */
47
- loadRemix(basename?: string, theme?: string): Promise<void>;
47
+ loadRemix(theme?: string): Promise<void>;
48
48
  /**
49
49
  *
50
50
  * @param config
@@ -164,7 +164,7 @@ export default class Settings {
164
164
  * @param basename
165
165
  * @param theme
166
166
  */
167
- async loadRemix(basename = '', theme = '') {
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(this.settings.config.snapshot_basename, theme);
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);
@@ -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>;
@@ -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: 'remove old configuration and force default' }),
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(flags.default, flags.verbose);
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: 9 }),
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: "),
@@ -5,7 +5,6 @@
5
5
  * email: piero.proietti@gmail.com
6
6
  * license: MIT
7
7
  */
8
- /// <reference types="react" />
9
8
  export default function Title({ title, version }: {
10
9
  title?: string | undefined;
11
10
  version?: string | undefined;
@@ -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
- if (this.network.addressType === 'dhcp') {
55
- if (await systemdCtl.isActive('resolvconf.service')) {
56
- await exec(`rm ${this.installTarget}/etc/resolv.conf`);
57
- await exec(`ln -s usr/lib/systemd/resolv.conf /etc/resolv.conf`);
58
- }
59
- else {
60
- const file = this.installTarget + '/etc/resolv.conf';
61
- let content = '# created by eggs\n\n';
62
- content += 'domain ' + this.network.domain + '\n';
63
- for (const element of this.network.dns) {
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
  }
@@ -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.7</h1>
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.7-bionic-1_amd64.deb
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.7
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 &#x3C;value>] [-v]
208
208
 
209
209
  FLAGS
210
- -c, --clean remove old configuration before to create
211
- -d, --default remove old configuration and force default
212
- -h, --help Show CLI help.
210
+ -c, --clean remove old configuration before to create
211
+ -d, --default reset to default values
212
+ -f, --file=&#x3C;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.7",
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.2",
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.4.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}"[remove old configuration and force 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
@@ -7,7 +7,7 @@ clear
7
7
  echo ">>> Re-install penguis-Eggs Saving Yolk"
8
8
  tmpDir=$(mktemp -d)
9
9
  mv /var/local/yolk "${tmpDir}"
10
- apt -y purge penguins-eggs
10
+ apt-get -y purge penguins-eggs
11
11
  dpkg -i /tmp/penguins-eggs*.deb
12
12
  mv "${tmpDir}/yolk" /var/local
13
13
  eggs dad -d