penguins-eggs 10.0.10 → 10.0.12

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.
@@ -524,13 +524,16 @@
524
524
  "args": {},
525
525
  "description": "produce a live image from your system whithout your data",
526
526
  "examples": [
527
- "sudo eggs produce",
528
- "sudo eggs produce --max",
529
- "sudo eggs produce --pendrive",
530
- "sudo eggs produce --clone",
531
- "sudo eggs produce --cryptedclone",
527
+ "sudo eggs produce # fast compression",
528
+ "sudo eggs produce --max # max compression",
529
+ "sudo eggs produce --pendrive # compression optomized pendrive",
530
+ "sudo eggs produce --clone # clone",
531
+ "sudo eggs produce --cryptedclone # crypted clone",
532
532
  "sudo eggs produce --basename=colibri",
533
- "sudo eggs produce --basename=colibri --theme theme --addons adapt"
533
+ "sudo eggs produce --theme lastos",
534
+ "sudo eggs produce --excludes static # you can customize it",
535
+ "sudo eggs produce --excludes homes # exclude /home/*",
536
+ "sudo eggs produce --excludes home # exclude ~/*"
534
537
  ],
535
538
  "flags": {
536
539
  "addons": {
@@ -562,7 +565,7 @@
562
565
  "type": "boolean"
563
566
  },
564
567
  "excludes": {
565
- "description": "use: custom, home, mine, usr, var",
568
+ "description": "use: static, homes, home",
566
569
  "name": "excludes",
567
570
  "hasDynamicHelp": false,
568
571
  "multiple": true,
@@ -631,6 +634,13 @@
631
634
  "allowNo": false,
632
635
  "type": "boolean"
633
636
  },
637
+ "sidecar": {
638
+ "description": "add a sidecar folder on your ISO with arbitrary contents",
639
+ "name": "sidecar",
640
+ "hasDynamicHelp": false,
641
+ "multiple": false,
642
+ "type": "option"
643
+ },
634
644
  "standard": {
635
645
  "char": "f",
636
646
  "description": "standard compression: xz -b 1M",
@@ -1458,5 +1468,5 @@
1458
1468
  ]
1459
1469
  }
1460
1470
  },
1461
- "version": "10.0.10"
1471
+ "version": "10.0.12"
1462
1472
  }
package/README.md CHANGED
@@ -27,7 +27,7 @@ penguins-eggs
27
27
  <!-- tocstop -->
28
28
 
29
29
  ## Links
30
- * [Changelog](https://github.com/pieroproietti/penguins-eggs/blob/master/CHANGELOG.md)
30
+ * [Changelog](https://github.com/pieroproietti/penguins-eggs/blob/master/CHANGELOG.md#changelog)
31
31
  * [penguins' eggs user guide](https://penguins-eggs.net/docs/Tutorial/eggs-users-guide)
32
32
  * [Cook eggs in 5 minutes!](https://penguins-eggs.net/docs/Tutorial/eggs5)
33
33
  * [Wardrobe users' guide](https://penguins-eggs.net/docs/Tutorial/wardrobe-users-guide)
@@ -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.10/src/commands/adapt.ts)_
469
+ _See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/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.10/src/commands/analyze.ts)_
490
+ _See code: [src/commands/analyze.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/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.10/src/commands/calamares.ts)_
554
+ _See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/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.10/src/commands/config.ts)_
581
+ _See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/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.10/src/commands/cuckoo.ts)_
601
+ _See code: [src/commands/cuckoo.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/cuckoo.ts)_
602
602
 
603
603
  ## `eggs dad`
604
604
 
@@ -626,7 +626,7 @@ EXAMPLES
626
626
  sudo dad --default
627
627
  ```
628
628
 
629
- _See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/dad.ts)_
629
+ _See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/dad.ts)_
630
630
 
631
631
  ## `eggs export deb`
632
632
 
@@ -653,7 +653,7 @@ EXAMPLES
653
653
  $ eggs export deb --all
654
654
  ```
655
655
 
656
- _See code: [src/commands/export/deb.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/export/deb.ts)_
656
+ _See code: [src/commands/export/deb.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/export/deb.ts)_
657
657
 
658
658
  ## `eggs export iso`
659
659
 
@@ -678,7 +678,7 @@ EXAMPLES
678
678
  $ eggs export iso --clean
679
679
  ```
680
680
 
681
- _See code: [src/commands/export/iso.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/export/iso.ts)_
681
+ _See code: [src/commands/export/iso.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/export/iso.ts)_
682
682
 
683
683
  ## `eggs help [COMMAND]`
684
684
 
@@ -739,7 +739,7 @@ EXAMPLES
739
739
  sudo eggs install --chroot
740
740
  ```
741
741
 
742
- _See code: [src/commands/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/install.ts)_
742
+ _See code: [src/commands/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/install.ts)_
743
743
 
744
744
  ## `eggs kill`
745
745
 
@@ -762,7 +762,7 @@ EXAMPLES
762
762
  sudo eggs kill
763
763
  ```
764
764
 
765
- _See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/kill.ts)_
765
+ _See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/kill.ts)_
766
766
 
767
767
  ## `eggs krill`
768
768
 
@@ -821,7 +821,7 @@ EXAMPLES
821
821
  $ eggs mom
822
822
  ```
823
823
 
824
- _See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/mom.ts)_
824
+ _See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/mom.ts)_
825
825
 
826
826
  ## `eggs produce`
827
827
 
@@ -830,7 +830,8 @@ produce a live image from your system whithout your data
830
830
  ```
831
831
  USAGE
832
832
  $ eggs produce [--addons <value>...] [--basename <value>] [-c] [-C] [--excludes <value>...] [-h] [--links
833
- <value>...] [-m] [-N] [-n] [-p] [-P <value>] [--release] [-s] [-f] [--theme <value>] [-u] [-v] [-y]
833
+ <value>...] [-m] [-N] [-n] [-p] [-P <value>] [--release] [-s] [--sidecar <value>] [-f] [--theme <value>] [-u] [-v]
834
+ [-y]
834
835
 
835
836
  FLAGS
836
837
  -C, --cryptedclone crypted clone
@@ -848,31 +849,38 @@ FLAGS
848
849
  -y, --yolk force yolk renew
849
850
  --addons=<value>... addons to be used: adapt, ichoice, pve, rsupport
850
851
  --basename=<value> basename
851
- --excludes=<value>... use: custom, home, mine, usr, var
852
+ --excludes=<value>... use: static, homes, home
852
853
  --links=<value>... desktop links
853
854
  --release release: remove penguins-eggs, calamares and dependencies after installation
855
+ --sidecar=<value> add a sidecar folder on your ISO with arbitrary contents
854
856
  --theme=<value> theme for livecd, calamares branding and partitions
855
857
 
856
858
  DESCRIPTION
857
859
  produce a live image from your system whithout your data
858
860
 
859
861
  EXAMPLES
860
- sudo eggs produce
862
+ sudo eggs produce # fast compression
861
863
 
862
- sudo eggs produce --max
864
+ sudo eggs produce --max # max compression
863
865
 
864
- sudo eggs produce --pendrive
866
+ sudo eggs produce --pendrive # compression optomized pendrive
865
867
 
866
- sudo eggs produce --clone
868
+ sudo eggs produce --clone # clone
867
869
 
868
- sudo eggs produce --cryptedclone
870
+ sudo eggs produce --cryptedclone # crypted clone
869
871
 
870
872
  sudo eggs produce --basename=colibri
871
873
 
872
- sudo eggs produce --basename=colibri --theme theme --addons adapt
874
+ sudo eggs produce --theme lastos
875
+
876
+ sudo eggs produce --excludes static # you can customize it
877
+
878
+ sudo eggs produce --excludes homes # exclude /home/*
879
+
880
+ sudo eggs produce --excludes home # exclude ~/*
873
881
  ```
874
882
 
875
- _See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/produce.ts)_
883
+ _See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/produce.ts)_
876
884
 
877
885
  ## `eggs status`
878
886
 
@@ -893,7 +901,7 @@ EXAMPLES
893
901
  $ eggs status
894
902
  ```
895
903
 
896
- _See code: [src/commands/status.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/status.ts)_
904
+ _See code: [src/commands/status.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/status.ts)_
897
905
 
898
906
  ## `eggs syncfrom`
899
907
 
@@ -919,7 +927,7 @@ EXAMPLES
919
927
  sudo eggs syncfrom --file /path/to/luks-volume
920
928
  ```
921
929
 
922
- _See code: [src/commands/syncfrom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/syncfrom.ts)_
930
+ _See code: [src/commands/syncfrom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/syncfrom.ts)_
923
931
 
924
932
  ## `eggs syncto`
925
933
 
@@ -946,7 +954,7 @@ EXAMPLES
946
954
  sudo eggs syncto --excludes
947
955
  ```
948
956
 
949
- _See code: [src/commands/syncto.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/syncto.ts)_
957
+ _See code: [src/commands/syncto.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/syncto.ts)_
950
958
 
951
959
  ## `eggs tools clean`
952
960
 
@@ -968,7 +976,7 @@ EXAMPLES
968
976
  sudo eggs tools clean
969
977
  ```
970
978
 
971
- _See code: [src/commands/tools/clean.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/tools/clean.ts)_
979
+ _See code: [src/commands/tools/clean.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/tools/clean.ts)_
972
980
 
973
981
  ## `eggs tools ppa`
974
982
 
@@ -994,7 +1002,7 @@ EXAMPLES
994
1002
  sudo eggs tools ppa --remove
995
1003
  ```
996
1004
 
997
- _See code: [src/commands/tools/ppa.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/tools/ppa.ts)_
1005
+ _See code: [src/commands/tools/ppa.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/tools/ppa.ts)_
998
1006
 
999
1007
  ## `eggs tools skel`
1000
1008
 
@@ -1018,7 +1026,7 @@ EXAMPLES
1018
1026
  sudo eggs tools skel --user user-to-be-copied
1019
1027
  ```
1020
1028
 
1021
- _See code: [src/commands/tools/skel.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/tools/skel.ts)_
1029
+ _See code: [src/commands/tools/skel.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/tools/skel.ts)_
1022
1030
 
1023
1031
  ## `eggs tools stat`
1024
1032
 
@@ -1044,7 +1052,7 @@ EXAMPLES
1044
1052
  $ eggs tools stat --year
1045
1053
  ```
1046
1054
 
1047
- _See code: [src/commands/tools/stat.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/tools/stat.ts)_
1055
+ _See code: [src/commands/tools/stat.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/tools/stat.ts)_
1048
1056
 
1049
1057
  ## `eggs tools yolk`
1050
1058
 
@@ -1065,7 +1073,7 @@ EXAMPLES
1065
1073
  sudo eggs tools yolk
1066
1074
  ```
1067
1075
 
1068
- _See code: [src/commands/tools/yolk.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/tools/yolk.ts)_
1076
+ _See code: [src/commands/tools/yolk.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/tools/yolk.ts)_
1069
1077
 
1070
1078
  ## `eggs update`
1071
1079
 
@@ -1086,7 +1094,7 @@ EXAMPLES
1086
1094
  $ eggs update
1087
1095
  ```
1088
1096
 
1089
- _See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/update.ts)_
1097
+ _See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/update.ts)_
1090
1098
 
1091
1099
  ## `eggs version`
1092
1100
 
@@ -1132,7 +1140,7 @@ EXAMPLES
1132
1140
  $ eggs wardrobe get your-wardrobe
1133
1141
  ```
1134
1142
 
1135
- _See code: [src/commands/wardrobe/get.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/wardrobe/get.ts)_
1143
+ _See code: [src/commands/wardrobe/get.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/wardrobe/get.ts)_
1136
1144
 
1137
1145
  ## `eggs wardrobe list [REPO]`
1138
1146
 
@@ -1161,7 +1169,7 @@ EXAMPLES
1161
1169
  $ eggs wardrobe list --distro arch
1162
1170
  ```
1163
1171
 
1164
- _See code: [src/commands/wardrobe/list.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/wardrobe/list.ts)_
1172
+ _See code: [src/commands/wardrobe/list.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/wardrobe/list.ts)_
1165
1173
 
1166
1174
  ## `eggs wardrobe show [REPO]`
1167
1175
 
@@ -1191,7 +1199,7 @@ EXAMPLES
1191
1199
  $ eggs wardrobe show accessories/
1192
1200
  ```
1193
1201
 
1194
- _See code: [src/commands/wardrobe/show.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/wardrobe/show.ts)_
1202
+ _See code: [src/commands/wardrobe/show.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/wardrobe/show.ts)_
1195
1203
 
1196
1204
  ## `eggs wardrobe wear [REPO]`
1197
1205
 
@@ -1222,7 +1230,7 @@ EXAMPLES
1222
1230
  sudo eggs wardrobe wear wagtail/waydroid
1223
1231
  ```
1224
1232
 
1225
- _See code: [src/commands/wardrobe/wear.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.10/src/commands/wardrobe/wear.ts)_
1233
+ _See code: [src/commands/wardrobe/wear.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.12/src/commands/wardrobe/wear.ts)_
1226
1234
  <!-- commandsstop -->
1227
1235
 
1228
1236
  # penGUI
@@ -1,5 +1,5 @@
1
1
  ######################################################################################################
2
- # home: will be used just on:
2
+ # homes: will be used just on:
3
3
  # * --clone included in exclude.list
4
4
  # * --cryptedclone used by syncto --excludes (automatically passed from ovary)
5
5
  #
@@ -78,12 +78,11 @@ lost+found
78
78
  swap/*
79
79
  swapfile
80
80
 
81
- {{{custom_list}}}
81
+ {{{usr_list}}}
82
82
 
83
- {{{home_list}}}
83
+ {{{var_list}}}
84
84
 
85
- {{{mine_list}}}
85
+ {{{homes_list}}}
86
86
 
87
- {{{usr_list}}}
87
+ {{{home_list}}}
88
88
 
89
- {{{var_list}}}
@@ -3,9 +3,18 @@
3
3
  var/backups/*
4
4
  var/cache/*
5
5
  var/lib/aide/*
6
+
7
+ # look here for apt problem!
6
8
  var/lib/apt/*~
7
9
  var/lib/apt/cdroms.list
8
- var/lib/apt/lists/*
10
+ var/lib/apt/daily_lock
11
+ var/lib/apt/extended_states
12
+ var/lib/apt/listchanges.db
13
+ var/lib/apt/lists/
14
+ var/lib/apt/mirrors/
15
+ var/lib/apt/periodic/
16
+ var/lib/apt/cache/*
17
+ ##
9
18
  var/lib/aptitude/*.old
10
19
  var/lib/cache/*
11
20
  var/lib/dbus/machine-id
@@ -28,6 +28,7 @@ export default class Ovary {
28
28
  theme: string;
29
29
  volid: string;
30
30
  toNull: string;
31
+ sidecar: string;
31
32
  verbose: boolean;
32
33
  /**
33
34
  * Add or remove exclusion
@@ -158,7 +159,7 @@ export default class Ovary {
158
159
  * @param unsecure
159
160
  * @param verbose
160
161
  */
161
- produce(clone: boolean | undefined, cryptedclone: boolean | undefined, scriptOnly: boolean | undefined, yolkRenew: boolean | undefined, release: boolean | undefined, myAddons: IAddons, myLinks: string[], excludes: IExcludes, nointeractive?: boolean, noicons?: boolean, unsecure?: boolean, verbose?: boolean): Promise<void>;
162
+ produce(clone: boolean | undefined, cryptedclone: boolean | undefined, scriptOnly: boolean | undefined, yolkRenew: boolean | undefined, release: boolean | undefined, myAddons: IAddons, myLinks: string[], excludes: IExcludes, nointeractive?: boolean, noicons?: boolean, unsecure?: boolean, sidecar?: string, verbose?: boolean): Promise<void>;
162
163
  /**
163
164
  * syslinux
164
165
  */
@@ -190,7 +191,7 @@ export default class Ovary {
190
191
  * @param cryptedclone
191
192
  * @returns cmd 4 mkiso
192
193
  */
193
- xorrisoCommand(clone?: boolean, cryptedclone?: boolean): string;
194
+ xorrisoCommand(clone?: boolean, cryptedclone?: boolean): Promise<string>;
194
195
  /**
195
196
  * Creazione link desktop per lxde
196
197
  * @param name
@@ -52,6 +52,7 @@ export default class Ovary {
52
52
  theme = '';
53
53
  volid = '';
54
54
  toNull = '';
55
+ sidecar = '';
55
56
  verbose = false;
56
57
  /**
57
58
  * Add or remove exclusion
@@ -340,7 +341,10 @@ export default class Ovary {
340
341
  let text = '';
341
342
  text += '#!/bin/sh\n';
342
343
  text += 'DESKTOP=$(xdg-user-dir DESKTOP)\n';
343
- text += 'test -d "$DESKTOP" && mkdir -p "$DESKTOP"\n';
344
+ text += 'while [ ! -d "$DESKTOP" ]; do\n';
345
+ text += ' DESKTOP=$(xdg-user-dir DESKTOP)\n';
346
+ text += ' sleep 1\n';
347
+ text += 'done\n';
344
348
  text += `cp /usr/share/applications/${installerUrl} "$DESKTOP"\n`;
345
349
  if (Pacman.packageIsInstalled('lxde-core')) {
346
350
  if (!noicons) {
@@ -835,6 +839,14 @@ export default class Ovary {
835
839
  cmd = `cp ${path.resolve(__dirname, '../../conf/README.md')} ${this.settings.config.snapshot_dir}README.md`;
836
840
  this.tryCatch(cmd);
837
841
  }
842
+ // sidecar
843
+ if (this.sidecar !== '') {
844
+ this.sidecar = path.resolve(this.sidecar);
845
+ cmd = `mkdir -p ${this.settings.iso_work}sidecar`;
846
+ this.tryCatch(cmd);
847
+ cmd = `cp ${this.sidecar}/* ${this.settings.iso_work}sidecar -R`;
848
+ this.tryCatch(cmd);
849
+ }
838
850
  // Ovarium
839
851
  if (!fs.existsSync(this.settings.work_dir.ovarium)) {
840
852
  cmd = `mkdir -p ${this.settings.work_dir.ovarium}`;
@@ -1268,7 +1280,8 @@ export default class Ovary {
1268
1280
  * @param unsecure
1269
1281
  * @param verbose
1270
1282
  */
1271
- async produce(clone = false, cryptedclone = false, scriptOnly = false, yolkRenew = false, release = false, myAddons, myLinks, excludes, nointeractive = false, noicons = false, unsecure = false, verbose = false) {
1283
+ async produce(clone = false, cryptedclone = false, scriptOnly = false, yolkRenew = false, release = false, myAddons, myLinks, excludes, nointeractive = false, noicons = false, unsecure = false, sidecar = '', verbose = false) {
1284
+ this.sidecar = sidecar;
1272
1285
  this.verbose = verbose;
1273
1286
  this.echo = Utils.setEcho(verbose);
1274
1287
  if (this.verbose) {
@@ -1354,39 +1367,44 @@ export default class Ovary {
1354
1367
  Utils.warning("eggs will REMOVE users and users' data from live");
1355
1368
  }
1356
1369
  /**
1357
- * create exclude.list in not exists or static
1370
+ * exclude.list
1358
1371
  */
1359
- if (!fs.existsSync('/etc/penguins-eggs/exclude.list') || excludes.static) {
1360
- const excludeListTemplateDir = '/etc/penguins-eggs.d/exclude.list.d/';
1361
- const excludeListTemplate = excludeListTemplateDir + 'master.list';
1362
- if (!fs.existsSync(excludeListTemplate)) {
1363
- Utils.warning('Cannot find: ' + excludeListTemplate);
1364
- process.exit(1);
1365
- }
1366
- let excludeHome = '';
1367
- let excludeMine = '';
1368
- let excludeUsr = '';
1369
- let excludeVar = '';
1370
- if (excludes.mine) {
1371
- excludeMine = `home/${await Utils.getPrimaryUser()}/*`;
1372
- }
1373
- if (excludes.home) {
1374
- excludeHome = fs.readFileSync(`${excludeListTemplateDir}home.list`, 'utf8');
1375
- }
1376
- if (excludes.usr) {
1377
- excludeUsr = fs.readFileSync(`${excludeListTemplateDir}usr.list`, 'utf8');
1378
- }
1379
- if (excludes.var) {
1380
- excludeVar = fs.readFileSync(`${excludeListTemplateDir}var.list`, 'utf8');
1372
+ if (!excludes.static) {
1373
+ /**
1374
+ * create exclude.list if not exists
1375
+ */
1376
+ if (!fs.existsSync('/etc/penguins-eggs/exclude.list')) {
1377
+ const excludeListTemplateDir = '/etc/penguins-eggs.d/exclude.list.d/';
1378
+ const excludeListTemplate = excludeListTemplateDir + 'master.list';
1379
+ if (!fs.existsSync(excludeListTemplate)) {
1380
+ Utils.warning('Cannot find: ' + excludeListTemplate);
1381
+ process.exit(1);
1382
+ }
1383
+ let excludeUsr = '';
1384
+ let excludeVar = '';
1385
+ let excludeHomes = '';
1386
+ let excludeHome = '';
1387
+ if (excludes.usr) {
1388
+ excludeUsr = fs.readFileSync(`${excludeListTemplateDir}usr.list`, 'utf8');
1389
+ }
1390
+ if (excludes.var) {
1391
+ excludeVar = fs.readFileSync(`${excludeListTemplateDir}var.list`, 'utf8');
1392
+ }
1393
+ if (excludes.homes) {
1394
+ excludeHomes = fs.readFileSync(`${excludeListTemplateDir}homes.list`, 'utf8');
1395
+ }
1396
+ if (excludes.home) {
1397
+ excludeHome = `home/${await Utils.getPrimaryUser()}/*`;
1398
+ }
1399
+ const view = {
1400
+ usr_list: excludeUsr,
1401
+ var_list: excludeVar,
1402
+ homes_list: excludeHomes,
1403
+ home_list: excludeHome,
1404
+ };
1405
+ const template = fs.readFileSync(excludeListTemplate, 'utf8');
1406
+ fs.writeFileSync(this.settings.config.snapshot_excludes, mustache.render(template, view));
1381
1407
  }
1382
- const view = {
1383
- home_list: excludeHome,
1384
- mine_list: excludeMine,
1385
- usr_list: excludeUsr,
1386
- var_list: excludeVar
1387
- };
1388
- const template = fs.readFileSync(excludeListTemplate, 'utf8');
1389
- fs.writeFileSync(this.settings.config.snapshot_excludes, mustache.render(template, view));
1390
1408
  }
1391
1409
  /**
1392
1410
  * NOTE: reCreate = false
@@ -1455,7 +1473,7 @@ export default class Ovary {
1455
1473
  Utils.warning(`moving ${luksFile} in ${this.nest}iso/live`);
1456
1474
  await exec(`mv ${luksFile} ${this.nest}iso/live`, this.echo);
1457
1475
  }
1458
- const mkIsofsCmd = this.xorrisoCommand(clone, cryptedclone).replaceAll(/\s\s+/g, ' ');
1476
+ const mkIsofsCmd = (await this.xorrisoCommand(clone, cryptedclone)).replaceAll(/\s\s+/g, ' ');
1459
1477
  this.makeDotDisk(this.volid, mksquashfsCmd, mkIsofsCmd);
1460
1478
  /**
1461
1479
  * AntiX/MX LINUX
@@ -1636,7 +1654,7 @@ export default class Ovary {
1636
1654
  * @param cryptedclone
1637
1655
  * @returns cmd 4 mkiso
1638
1656
  */
1639
- xorrisoCommand(clone = false, cryptedclone = false) {
1657
+ async xorrisoCommand(clone = false, cryptedclone = false) {
1640
1658
  if (this.verbose) {
1641
1659
  console.log('Ovary: xorrisoCommand');
1642
1660
  }
@@ -24,6 +24,7 @@ export default class Produce extends Command {
24
24
  prefix: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
25
25
  release: import("@oclif/core/interfaces").BooleanFlag<boolean>;
26
26
  script: import("@oclif/core/interfaces").BooleanFlag<boolean>;
27
+ sidecar: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
27
28
  standard: import("@oclif/core/interfaces").BooleanFlag<boolean>;
28
29
  theme: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
29
30
  unsecure: import("@oclif/core/interfaces").BooleanFlag<boolean>;
@@ -18,20 +18,23 @@ const __dirname = path.dirname(new URL(import.meta.url).pathname);
18
18
  export default class Produce extends Command {
19
19
  static description = 'produce a live image from your system whithout your data';
20
20
  static examples = [
21
- 'sudo eggs produce',
22
- 'sudo eggs produce --max',
23
- 'sudo eggs produce --pendrive',
24
- 'sudo eggs produce --clone',
25
- 'sudo eggs produce --cryptedclone',
21
+ 'sudo eggs produce # fast compression',
22
+ 'sudo eggs produce --max # max compression',
23
+ 'sudo eggs produce --pendrive # compression optomized pendrive',
24
+ 'sudo eggs produce --clone # clone',
25
+ 'sudo eggs produce --cryptedclone # crypted clone',
26
26
  'sudo eggs produce --basename=colibri',
27
- 'sudo eggs produce --basename=colibri --theme theme --addons adapt',
27
+ 'sudo eggs produce --theme lastos',
28
+ 'sudo eggs produce --excludes static # you can customize it',
29
+ 'sudo eggs produce --excludes homes # exclude /home/*',
30
+ 'sudo eggs produce --excludes home # exclude ~/*',
28
31
  ];
29
32
  static flags = {
30
33
  addons: Flags.string({ description: 'addons to be used: adapt, ichoice, pve, rsupport', multiple: true }),
31
34
  basename: Flags.string({ description: 'basename' }),
32
35
  clone: Flags.boolean({ char: 'c', description: 'clone' }),
33
36
  cryptedclone: Flags.boolean({ char: 'C', description: 'crypted clone' }),
34
- excludes: Flags.string({ description: 'use: custom, home, mine, usr, var', multiple: true }),
37
+ excludes: Flags.string({ description: 'use: static, homes, home', multiple: true }),
35
38
  help: Flags.help({ char: 'h' }),
36
39
  links: Flags.string({ description: 'desktop links', multiple: true }),
37
40
  max: Flags.boolean({ char: 'm', description: 'max compression: xz -Xbcj ...' }),
@@ -41,6 +44,7 @@ export default class Produce extends Command {
41
44
  prefix: Flags.string({ char: 'P', description: 'prefix' }),
42
45
  release: Flags.boolean({ description: 'release: remove penguins-eggs, calamares and dependencies after installation' }),
43
46
  script: Flags.boolean({ char: 's', description: 'script mode. Generate scripts to manage iso build' }),
47
+ sidecar: Flags.string({ description: 'add a sidecar folder on your ISO with arbitrary contents' }),
44
48
  standard: Flags.boolean({ char: 'f', description: 'standard compression: xz -b 1M' }),
45
49
  theme: Flags.string({ description: 'theme for livecd, calamares branding and partitions' }),
46
50
  unsecure: Flags.boolean({ char: 'u', description: '/root contents are included on live' }),
@@ -95,27 +99,21 @@ export default class Produce extends Command {
95
99
  */
96
100
  // excludes
97
101
  const excludes = {};
102
+ excludes.usr = true;
103
+ excludes.var = true;
98
104
  excludes.static = false;
105
+ excludes.homes = false;
99
106
  excludes.home = false;
100
- excludes.mine = false;
101
- excludes.usr = false;
102
- excludes.var = false;
103
107
  if (flags.excludes) {
104
108
  if (flags.excludes.includes('static')) {
105
109
  excludes.static = true;
106
110
  }
111
+ if (flags.excludes.includes('homes')) {
112
+ excludes.homes = true;
113
+ }
107
114
  if (flags.excludes.includes('home')) {
108
115
  excludes.home = true;
109
116
  }
110
- if (flags.excludes.includes('mine')) {
111
- excludes.mine = true;
112
- }
113
- if (flags.excludes.includes('usr')) {
114
- excludes.usr = true;
115
- }
116
- if (flags.excludes.includes('var')) {
117
- excludes.var = true;
118
- }
119
117
  }
120
118
  let prefix = '';
121
119
  if (flags.prefix !== undefined) {
@@ -145,6 +143,13 @@ export default class Produce extends Command {
145
143
  const yolkRenew = flags.yolk;
146
144
  const { nointeractive } = flags;
147
145
  const { noicon } = flags;
146
+ const { sidecar } = flags;
147
+ if (sidecar !== undefined) {
148
+ if (!fs.existsSync(sidecar)) {
149
+ Utils.warning('sidecar: ' + chalk.white(sidecar) + ' not found!');
150
+ process.exit();
151
+ }
152
+ }
148
153
  // if clone or cryptedclone unsecure = true
149
154
  const unsecure = flags.unsecure || clone || cryptedclone;
150
155
  /**
@@ -191,7 +196,7 @@ export default class Produce extends Command {
191
196
  const ovary = new Ovary();
192
197
  Utils.warning('Produce an egg...');
193
198
  if (await ovary.fertilization(prefix, basename, theme, compression, !nointeractive)) {
194
- await ovary.produce(clone, cryptedclone, scriptOnly, yolkRenew, release, myAddons, myLinks, excludes, nointeractive, noicon, unsecure, verbose);
199
+ await ovary.produce(clone, cryptedclone, scriptOnly, yolkRenew, release, myAddons, myLinks, excludes, nointeractive, noicon, unsecure, sidecar, verbose);
195
200
  ovary.finished(scriptOnly);
196
201
  }
197
202
  }
@@ -6,9 +6,9 @@
6
6
  * license: MIT
7
7
  */
8
8
  export interface IExcludes {
9
- home: boolean;
10
- mine: boolean;
11
9
  static: boolean;
10
+ homes: boolean;
11
+ home: boolean;
12
12
  usr: boolean;
13
13
  var: boolean;
14
14
  }
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.10</h1>
9
+ <h1>eggs(1) -- the reproductive system of penguins: eggs v10.0.12</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.10-1_i386.deb
12
+ <pre><code>$ sudo dpkg -i penguins-eggs_10.0.12-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.10
33
+ penguins-eggs/10.0.12
34
34
  $ eggs --help [COMMAND]
35
35
 
36
36
  USAGE
@@ -382,7 +382,8 @@ EXAMPLES
382
382
  <p>produce a live image from your system whithout your data</p>
383
383
  <pre><code>USAGE
384
384
  $ eggs produce [--addons &#x3C;value>...] [--basename &#x3C;value>] [-c] [-C] [--excludes &#x3C;value>...] [-h] [--links
385
- &#x3C;value>...] [-m] [-N] [-n] [-p] [-P &#x3C;value>] [--release] [-s] [-f] [--theme &#x3C;value>] [-u] [-v] [-y]
385
+ &#x3C;value>...] [-m] [-N] [-n] [-p] [-P &#x3C;value>] [--release] [-s] [--sidecar &#x3C;value>] [-f] [--theme &#x3C;value>] [-u] [-v]
386
+ [-y]
386
387
 
387
388
  FLAGS
388
389
  -C, --cryptedclone crypted clone
@@ -400,28 +401,35 @@ FLAGS
400
401
  -y, --yolk force yolk renew
401
402
  --addons=&#x3C;value>... addons to be used: adapt, ichoice, pve, rsupport
402
403
  --basename=&#x3C;value> basename
403
- --excludes=&#x3C;value>... use: custom, home, mine, usr, var
404
+ --excludes=&#x3C;value>... use: static, homes, home
404
405
  --links=&#x3C;value>... desktop links
405
406
  --release release: remove penguins-eggs, calamares and dependencies after installation
407
+ --sidecar=&#x3C;value> add a sidecar folder on your ISO with arbitrary contents
406
408
  --theme=&#x3C;value> theme for livecd, calamares branding and partitions
407
409
 
408
410
  DESCRIPTION
409
411
  produce a live image from your system whithout your data
410
412
 
411
413
  EXAMPLES
412
- sudo eggs produce
414
+ sudo eggs produce # fast compression
413
415
 
414
- sudo eggs produce --max
416
+ sudo eggs produce --max # max compression
415
417
 
416
- sudo eggs produce --pendrive
418
+ sudo eggs produce --pendrive # compression optomized pendrive
417
419
 
418
- sudo eggs produce --clone
420
+ sudo eggs produce --clone # clone
419
421
 
420
- sudo eggs produce --cryptedclone
422
+ sudo eggs produce --cryptedclone # crypted clone
421
423
 
422
424
  sudo eggs produce --basename=colibri
423
425
 
424
- sudo eggs produce --basename=colibri --theme theme --addons adapt
426
+ sudo eggs produce --theme lastos
427
+
428
+ sudo eggs produce --excludes static # you can customize it
429
+
430
+ sudo eggs produce --excludes homes # exclude /home/*
431
+
432
+ sudo eggs produce --excludes home # exclude ~/*
425
433
  </code></pre>
426
434
  <h2><code>eggs status</code></h2>
427
435
  <p>informations about eggs status</p>
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.10",
5
+ "version": "10.0.12",
6
6
  "author": "Piero Proietti",
7
7
  "bin": {
8
8
  "eggs": "./bin/run.js"
@@ -48,7 +48,7 @@
48
48
  "eslint-config-prettier": "^9.1.0",
49
49
  "mocha": "^10.4.0",
50
50
  "oclif": "^4.13.8",
51
- "perrisbrewery": "^9.8.6",
51
+ "perrisbrewery": "^10",
52
52
  "prettier": "^3.3.2",
53
53
  "shx": "^0.3.4",
54
54
  "ts-node": "^10.9.2",
package/scripts/_eggs CHANGED
@@ -309,7 +309,7 @@ _arguments -S \
309
309
  --basename"[basename]:file:_files" \
310
310
  "(-c --clone)"{-c,--clone}"[clone]" \
311
311
  "(-C --cryptedclone)"{-C,--cryptedclone}"[crypted clone]" \
312
- "*"--excludes"[use: custom, home, mine, usr, var]:file:_files" \
312
+ "*"--excludes"[use: static, homes, home]:file:_files" \
313
313
  "(-h --help)"{-h,--help}"[Show CLI help.]" \
314
314
  "*"--links"[desktop links]:file:_files" \
315
315
  "(-m --max)"{-m,--max}"[max compression: xz -Xbcj ...]" \
@@ -319,6 +319,7 @@ _arguments -S \
319
319
  "(-P --prefix)"{-P,--prefix}"[prefix]:file:_files" \
320
320
  --release"[release: remove penguins-eggs, calamares and dependencies after installation]" \
321
321
  "(-s --script)"{-s,--script}"[script mode. Generate scripts to manage iso build]" \
322
+ --sidecar"[add a sidecar folder on your ISO with arbitrary contents]:file:_files" \
322
323
  "(-f --standard)"{-f,--standard}"[standard compression: xz -b 1M]" \
323
324
  --theme"[theme for livecd, calamares branding and partitions]:file:_files" \
324
325
  "(-u --unsecure)"{-u,--unsecure}"[/root contents are included on live]" \
package/scripts/eggs.bash CHANGED
@@ -23,7 +23,7 @@ install --btrfs --chroot --crypted --domain --halt --help --ip --nointeractive -
23
23
  krill --btrfs --chroot --crypted --domain --halt --help --ip --nointeractive --none --pve --random --small --suspend --unattended --verbose
24
24
  kill --help --isos --nointeractive --verbose
25
25
  mom --help
26
- produce --addons --basename --clone --cryptedclone --excludes --help --links --max --noicon --nointeractive --pendrive --prefix --release --script --standard --theme --unsecure --verbose --yolk
26
+ produce --addons --basename --clone --cryptedclone --excludes --help --links --max --noicon --nointeractive --pendrive --prefix --release --script --sidecar --standard --theme --unsecure --verbose --yolk
27
27
  status --help --verbose
28
28
  syncfrom --delete --file --help --rootdir --verbose
29
29
  syncto --excludes --file --help --verbose