penguins-eggs 10.0.48 → 10.0.50

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.
@@ -1498,5 +1498,5 @@
1498
1498
  ]
1499
1499
  }
1500
1500
  },
1501
- "version": "10.0.48"
1501
+ "version": "10.0.50"
1502
1502
  }
package/README.md CHANGED
@@ -490,7 +490,7 @@ EXAMPLES
490
490
  $ eggs adapt
491
491
  ```
492
492
 
493
- _See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/adapt.ts)_
493
+ _See code: [src/commands/adapt.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/adapt.ts)_
494
494
 
495
495
  ## `eggs analyze`
496
496
 
@@ -511,7 +511,7 @@ EXAMPLES
511
511
  sudo eggs analyze
512
512
  ```
513
513
 
514
- _See code: [src/commands/analyze.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/analyze.ts)_
514
+ _See code: [src/commands/analyze.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/analyze.ts)_
515
515
 
516
516
  ## `eggs autocomplete [SHELL]`
517
517
 
@@ -542,7 +542,7 @@ EXAMPLES
542
542
  $ eggs autocomplete --refresh-cache
543
543
  ```
544
544
 
545
- _See code: [@oclif/plugin-autocomplete](https://github.com/oclif/plugin-autocomplete/blob/v3.2.7/src/commands/autocomplete/index.ts)_
545
+ _See code: [@oclif/plugin-autocomplete](https://github.com/oclif/plugin-autocomplete/blob/v3.2.8/src/commands/autocomplete/index.ts)_
546
546
 
547
547
  ## `eggs calamares`
548
548
 
@@ -575,7 +575,7 @@ EXAMPLES
575
575
  sudo eggs calamares --remove
576
576
  ```
577
577
 
578
- _See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/calamares.ts)_
578
+ _See code: [src/commands/calamares.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/calamares.ts)_
579
579
 
580
580
  ## `eggs config`
581
581
 
@@ -602,7 +602,7 @@ EXAMPLES
602
602
  sudo eggs config --clean --nointeractive
603
603
  ```
604
604
 
605
- _See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/config.ts)_
605
+ _See code: [src/commands/config.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/config.ts)_
606
606
 
607
607
  ## `eggs cuckoo`
608
608
 
@@ -622,7 +622,7 @@ EXAMPLES
622
622
  sudo eggs cuckoo
623
623
  ```
624
624
 
625
- _See code: [src/commands/cuckoo.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/cuckoo.ts)_
625
+ _See code: [src/commands/cuckoo.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/cuckoo.ts)_
626
626
 
627
627
  ## `eggs dad`
628
628
 
@@ -650,7 +650,7 @@ EXAMPLES
650
650
  sudo dad --default
651
651
  ```
652
652
 
653
- _See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/dad.ts)_
653
+ _See code: [src/commands/dad.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/dad.ts)_
654
654
 
655
655
  ## `eggs export iso`
656
656
 
@@ -675,7 +675,7 @@ EXAMPLES
675
675
  $ eggs export iso --clean
676
676
  ```
677
677
 
678
- _See code: [src/commands/export/iso.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/export/iso.ts)_
678
+ _See code: [src/commands/export/iso.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/export/iso.ts)_
679
679
 
680
680
  ## `eggs export pkg`
681
681
 
@@ -702,7 +702,7 @@ EXAMPLES
702
702
  $ eggs export pkg --all
703
703
  ```
704
704
 
705
- _See code: [src/commands/export/pkg.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/export/pkg.ts)_
705
+ _See code: [src/commands/export/pkg.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/export/pkg.ts)_
706
706
 
707
707
  ## `eggs help [COMMAND]`
708
708
 
@@ -763,7 +763,7 @@ EXAMPLES
763
763
  sudo eggs install --chroot
764
764
  ```
765
765
 
766
- _See code: [src/commands/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/install.ts)_
766
+ _See code: [src/commands/install.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/install.ts)_
767
767
 
768
768
  ## `eggs kill`
769
769
 
@@ -786,7 +786,7 @@ EXAMPLES
786
786
  sudo eggs kill
787
787
  ```
788
788
 
789
- _See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/kill.ts)_
789
+ _See code: [src/commands/kill.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/kill.ts)_
790
790
 
791
791
  ## `eggs krill`
792
792
 
@@ -846,7 +846,7 @@ EXAMPLES
846
846
  $ eggs auto
847
847
  ```
848
848
 
849
- _See code: [src/commands/love.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/love.ts)_
849
+ _See code: [src/commands/love.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/love.ts)_
850
850
 
851
851
  ## `eggs mom`
852
852
 
@@ -866,7 +866,7 @@ EXAMPLES
866
866
  $ eggs mom
867
867
  ```
868
868
 
869
- _See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/mom.ts)_
869
+ _See code: [src/commands/mom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/mom.ts)_
870
870
 
871
871
  ## `eggs produce`
872
872
 
@@ -923,7 +923,7 @@ EXAMPLES
923
923
  sudo eggs produce --excludes home # exclude ~/*
924
924
  ```
925
925
 
926
- _See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/produce.ts)_
926
+ _See code: [src/commands/produce.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/produce.ts)_
927
927
 
928
928
  ## `eggs status`
929
929
 
@@ -944,7 +944,7 @@ EXAMPLES
944
944
  $ eggs status
945
945
  ```
946
946
 
947
- _See code: [src/commands/status.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/status.ts)_
947
+ _See code: [src/commands/status.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/status.ts)_
948
948
 
949
949
  ## `eggs syncfrom`
950
950
 
@@ -970,7 +970,7 @@ EXAMPLES
970
970
  sudo eggs syncfrom --file /path/to/luks-volume
971
971
  ```
972
972
 
973
- _See code: [src/commands/syncfrom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/syncfrom.ts)_
973
+ _See code: [src/commands/syncfrom.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/syncfrom.ts)_
974
974
 
975
975
  ## `eggs syncto`
976
976
 
@@ -997,7 +997,7 @@ EXAMPLES
997
997
  sudo eggs syncto --excludes
998
998
  ```
999
999
 
1000
- _See code: [src/commands/syncto.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/syncto.ts)_
1000
+ _See code: [src/commands/syncto.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/syncto.ts)_
1001
1001
 
1002
1002
  ## `eggs tools clean`
1003
1003
 
@@ -1019,7 +1019,7 @@ EXAMPLES
1019
1019
  sudo eggs tools clean
1020
1020
  ```
1021
1021
 
1022
- _See code: [src/commands/tools/clean.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/tools/clean.ts)_
1022
+ _See code: [src/commands/tools/clean.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/tools/clean.ts)_
1023
1023
 
1024
1024
  ## `eggs tools ppa`
1025
1025
 
@@ -1045,7 +1045,7 @@ EXAMPLES
1045
1045
  sudo eggs tools ppa --remove
1046
1046
  ```
1047
1047
 
1048
- _See code: [src/commands/tools/ppa.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/tools/ppa.ts)_
1048
+ _See code: [src/commands/tools/ppa.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/tools/ppa.ts)_
1049
1049
 
1050
1050
  ## `eggs tools skel`
1051
1051
 
@@ -1069,7 +1069,7 @@ EXAMPLES
1069
1069
  sudo eggs tools skel --user user-to-be-copied
1070
1070
  ```
1071
1071
 
1072
- _See code: [src/commands/tools/skel.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/tools/skel.ts)_
1072
+ _See code: [src/commands/tools/skel.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/tools/skel.ts)_
1073
1073
 
1074
1074
  ## `eggs tools stat`
1075
1075
 
@@ -1095,7 +1095,7 @@ EXAMPLES
1095
1095
  $ eggs tools stat --year
1096
1096
  ```
1097
1097
 
1098
- _See code: [src/commands/tools/stat.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/tools/stat.ts)_
1098
+ _See code: [src/commands/tools/stat.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/tools/stat.ts)_
1099
1099
 
1100
1100
  ## `eggs tools yolk`
1101
1101
 
@@ -1116,7 +1116,7 @@ EXAMPLES
1116
1116
  sudo eggs tools yolk
1117
1117
  ```
1118
1118
 
1119
- _See code: [src/commands/tools/yolk.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/tools/yolk.ts)_
1119
+ _See code: [src/commands/tools/yolk.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/tools/yolk.ts)_
1120
1120
 
1121
1121
  ## `eggs update`
1122
1122
 
@@ -1137,7 +1137,7 @@ EXAMPLES
1137
1137
  $ eggs update
1138
1138
  ```
1139
1139
 
1140
- _See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/update.ts)_
1140
+ _See code: [src/commands/update.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/update.ts)_
1141
1141
 
1142
1142
  ## `eggs version`
1143
1143
 
@@ -1183,7 +1183,7 @@ EXAMPLES
1183
1183
  $ eggs wardrobe get your-wardrobe
1184
1184
  ```
1185
1185
 
1186
- _See code: [src/commands/wardrobe/get.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/wardrobe/get.ts)_
1186
+ _See code: [src/commands/wardrobe/get.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/wardrobe/get.ts)_
1187
1187
 
1188
1188
  ## `eggs wardrobe list [REPO]`
1189
1189
 
@@ -1212,7 +1212,7 @@ EXAMPLES
1212
1212
  $ eggs wardrobe list --distro arch
1213
1213
  ```
1214
1214
 
1215
- _See code: [src/commands/wardrobe/list.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/wardrobe/list.ts)_
1215
+ _See code: [src/commands/wardrobe/list.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/wardrobe/list.ts)_
1216
1216
 
1217
1217
  ## `eggs wardrobe show [REPO]`
1218
1218
 
@@ -1242,7 +1242,7 @@ EXAMPLES
1242
1242
  $ eggs wardrobe show accessories/
1243
1243
  ```
1244
1244
 
1245
- _See code: [src/commands/wardrobe/show.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/wardrobe/show.ts)_
1245
+ _See code: [src/commands/wardrobe/show.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/wardrobe/show.ts)_
1246
1246
 
1247
1247
  ## `eggs wardrobe wear [REPO]`
1248
1248
 
@@ -1273,7 +1273,7 @@ EXAMPLES
1273
1273
  sudo eggs wardrobe wear wagtail/waydroid
1274
1274
  ```
1275
1275
 
1276
- _See code: [src/commands/wardrobe/wear.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.48/src/commands/wardrobe/wear.ts)_
1276
+ _See code: [src/commands/wardrobe/wear.ts](https://github.com/pieroproietti/penguins-eggs/blob/v10.0.50/src/commands/wardrobe/wear.ts)_
1277
1277
  <!-- commandsstop -->
1278
1278
 
1279
1279
  # penGUI
@@ -55,9 +55,9 @@ class Distro {
55
55
  * lsb_release -is per distribuzione
56
56
  * lsb_release -rs per release
57
57
  */
58
- this.codenameId = shell.exec('lsb_release -cs', { silent: true }).stdout.toString().trim();
59
- this.releaseId = shell.exec('lsb_release -rs', { silent: true }).stdout.toString().trim();
60
- this.distroId = shell.exec('lsb_release -is', { silent: true }).stdout.toString().trim();
58
+ this.codenameId = shell.exec(`lsb_release -cs`, { silent: true }).stdout.toString().trim();
59
+ this.releaseId = shell.exec(`lsb_release -rs`, { silent: true }).stdout.toString().trim();
60
+ this.distroId = shell.exec(`lsb_release -is`, { silent: true }).stdout.toString().trim();
61
61
  if (this.distroId === 'Debian' && this.codenameId === 'sid') {
62
62
  this.codenameId = 'trixie';
63
63
  }
@@ -85,10 +85,11 @@ class Distro {
85
85
  /**
86
86
  * Fedora compatible
87
87
  */
88
- case 'NobaraLinux':
88
+ case 'AlmaLinux':
89
+ case 'RockyLinux':
89
90
  case 'Fedora': {
90
91
  this.familyId = 'fedora';
91
- this.distroLike = this.distroId;
92
+ this.distroLike = 'Fedora';
92
93
  this.codenameId = 'rolling'; // viene rimosso dal nome
93
94
  this.codenameLikeId = this.familyId; // per krill
94
95
  this.liveMediumPath = '/run/initramfs/live/';
@@ -227,7 +227,7 @@ export default class Ovary {
227
227
  cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' mkdir /home/' + this.settings.config.user_opt, this.verbose));
228
228
  // Create user using useradd
229
229
  cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' useradd ' + this.settings.config.user_opt + ' --home-dir /home/' + this.settings.config.user_opt + ' --shell /bin/bash ', this.verbose));
230
- // live password Don't work with SELINUX
230
+ // live password don't work with SELINUX
231
231
  cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' echo ' + this.settings.config.user_opt + ':' + this.settings.config.user_opt_passwd + ' | chroot ' + this.settings.work_dir.merged + ' chpasswd', this.verbose));
232
232
  // root password Don't work with SELINUX
233
233
  cmds.push(await rexec('chroot ' + this.settings.work_dir.merged + ' echo root:' + this.settings.config.root_passwd + ' | chroot ' + this.settings.work_dir.merged + ' chpasswd', this.verbose));
@@ -774,11 +774,13 @@ export default class Ovary {
774
774
  async syslinux(theme = 'eggs') {
775
775
  let syspath = path.resolve(__dirname, `../../syslinux`);
776
776
  await exec(`cp ${syspath}/chain.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
777
+ await exec(`cp ${syspath}/isohdpfx.bin ${this.settings.iso_work}/isolinux/`, this.echo);
778
+ // just fo x64 arch
779
+ await exec(`cp ${syspath}/isolinux.bin ${this.settings.iso_work}/isolinux/`, this.echo);
777
780
  await exec(`cp ${syspath}/ldlinux.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
778
781
  await exec(`cp ${syspath}/libcom32.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
779
782
  await exec(`cp ${syspath}/libutil.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
780
783
  await exec(`cp ${syspath}/vesamenu.c32 ${this.settings.iso_work}/isolinux/`, this.echo);
781
- await exec(`cp ${syspath}/isolinux.bin ${this.settings.iso_work}/isolinux/`, this.echo);
782
784
  const isolinuxThemeDest = this.settings.iso_work + 'isolinux/isolinux.theme.cfg';
783
785
  let isolinuxThemeSrc = path.resolve(__dirname, `../../addons/${theme}/theme/livecd/isolinux.theme.cfg`);
784
786
  if (this.theme.includes('/')) {
@@ -1731,7 +1733,7 @@ export default class Ovary {
1731
1733
  // const preparer = '-preparer "prepared by eggs <https://penguins-eggs.net>" '
1732
1734
  let isoHybridMbr = '';
1733
1735
  if (this.settings.config.make_isohybrid) {
1734
- const isolinuxFile = this.settings.distro.syslinuxPath + 'isohdpfx.bin';
1736
+ const isolinuxFile = this.settings.distro.syslinuxPath + '/isohdpfx.bin';
1735
1737
  if (fs.existsSync(isolinuxFile)) {
1736
1738
  isoHybridMbr = `-isohybrid-mbr ${isolinuxFile}`;
1737
1739
  }
@@ -40,4 +40,11 @@ export default class Tailor {
40
40
  * - if find any packages to install, install it
41
41
  */
42
42
  packagesInstall(packages: string[], comment?: string, cmd?: string): Promise<void>;
43
+ /**
44
+ *
45
+ * @param cmd
46
+ * @param echo
47
+ * @returns
48
+ */
49
+ tryCheckSuccess(cmd: string, echo: {}): Promise<boolean>;
43
50
  }
@@ -433,7 +433,7 @@ export default class Tailor {
433
433
  cmd = `apk search | awk -F'-[0-9]' '{print $1}' | sort -u`;
434
434
  }
435
435
  else if (distro.familyId === 'fedora') {
436
- cmd = `dnf list available | awk '{print $1}' | sed 's/\.[^.]*$//'`;
436
+ cmd = `dnf list --available | awk '{print $1}' | sed 's/\.[^.]*$//'`;
437
437
  }
438
438
  //available = (await exec(cmd, { capture: true, echo: false, ignore: false })).data.split('\n')
439
439
  let available = [];
@@ -487,30 +487,30 @@ export default class Tailor {
487
487
  for (let tempts = 1; tempts < limit; tempts++) {
488
488
  Utils.titles(step);
489
489
  Utils.warning(`tempts ${tempts} of ${limit}`);
490
- if (await tryCheckSuccess(cmd, this.echo)) {
490
+ if (await this.tryCheckSuccess(cmd, this.echo)) {
491
491
  break;
492
492
  }
493
493
  }
494
494
  }
495
495
  }
496
496
  }
497
- }
498
- /**
499
- *
500
- * @param cmd
501
- * @param echo
502
- * @returns
503
- */
504
- async function tryCheckSuccess(cmd, echo) {
505
- let success = false;
506
- try {
507
- await exec(cmd, echo);
508
- success = true;
509
- }
510
- catch {
511
- success = false;
497
+ /**
498
+ *
499
+ * @param cmd
500
+ * @param echo
501
+ * @returns
502
+ */
503
+ async tryCheckSuccess(cmd, echo) {
504
+ let success = false;
505
+ try {
506
+ await exec(cmd, echo);
507
+ success = true;
508
+ }
509
+ catch {
510
+ success = false;
511
+ }
512
+ return success;
512
513
  }
513
- return success;
514
514
  }
515
515
  /**
516
516
  *
@@ -67,9 +67,11 @@ export default class Utils {
67
67
  let result = '';
68
68
  if (codenameId === 'rolling' || codenameId === '') {
69
69
  result = 'egg-of_' + distroId.toLowerCase() + '-';
70
- if (distroId === 'Alpine') {
70
+ if (distroId === 'AlmaLinux' ||
71
+ distroId === 'Alpine' ||
72
+ distroId === 'Fedora' ||
73
+ distroId === 'RockyLinux') {
71
74
  const releaseId = shx.exec('lsb_release -rs', { silent: true }).stdout.toString().trim();
72
- //result = 'egg-of_' + distroId.toLowerCase() + '-' +releaseId.substring(0, 4) + '-'
73
75
  result = 'egg-of_' + distroId.toLowerCase() + '-' + releaseId.trim() + '-';
74
76
  }
75
77
  }
@@ -53,9 +53,10 @@ export default async function information(verbose = false) {
53
53
  React.createElement(Text, null,
54
54
  "root passwd: ",
55
55
  React.createElement(Text, { color: "cyan" }, settings.config.root_passwd)))));
56
- const distroId = shx.exec('lsb_release -is', { silent: true }).stdout.trim();
57
- const releaseId = shx.exec('lsb_release -rs', { silent: true }).stdout.trim();
58
- const codenameId = shx.exec('lsb_release -cs', { silent: true }).stdout.trim();
56
+ //let lsb_release = path.resolve(__dirname, '../../script/lsb_release')
57
+ const codenameId = shx.exec(`lsb_release -cs`, { silent: true }).stdout.toString().trim();
58
+ const releaseId = shx.exec(`lsb_release -rs`, { silent: true }).stdout.toString().trim();
59
+ const distroId = shx.exec(`lsb_release -is`, { silent: true }).stdout.toString().trim();
59
60
  const Distro = () => (React.createElement(Box, { flexDirection: 'column' },
60
61
  React.createElement(Box, { borderStyle: "round", marginRight: 2, flexDirection: 'row' },
61
62
  React.createElement(Box, { marginRight: 2 },
@@ -8,11 +8,27 @@
8
8
  */
9
9
  import Utils from '../../classes/utils.js';
10
10
  import { exec } from '../../lib/utils.js';
11
+ import fs from 'node:fs';
12
+ import path from 'node:path';
11
13
  /**
12
14
  *
13
15
  * @param this
14
16
  */
15
17
  export default async function bootloader() {
18
+ /**
19
+ * look at: https://systemd.io/BOOT/
20
+ */
21
+ // update boot/loader/entries/
22
+ const pathEntries = path.join(this.installTarget, '/boot/loader/entries/');
23
+ if (fs.existsSync(pathEntries)) {
24
+ const uuid = Utils.uuid(this.devices.root.name);
25
+ const machineId = fs.readFileSync(path.join(this.installTarget, '/etc/machine-id'), 'utf-8').trim();
26
+ await renameLoaderEntries(pathEntries, machineId);
27
+ await updateLoaderEntries(pathEntries, machineId, uuid);
28
+ }
29
+ /**
30
+ * GRUB
31
+ */
16
32
  let grubInstall = 'grub-install';
17
33
  if (this.distro.familyId === 'fedora' || this.distro.familyId === 'opensuse') {
18
34
  grubInstall = 'grub2-install';
@@ -35,3 +51,72 @@ export default async function bootloader() {
35
51
  await Utils.pressKeyToExit(cmd);
36
52
  }
37
53
  }
54
+ /**
55
+ *
56
+ * @param directoryPath
57
+ * @param machineId
58
+ */
59
+ async function renameLoaderEntries(directoryPath, machineId) {
60
+ const files = fs.readdirSync(directoryPath);
61
+ if (files.length > 0) {
62
+ for (const file of files) {
63
+ if (file.length > 32) {
64
+ const oldEntry = path.join(directoryPath, file);
65
+ let current = file.substring(32);
66
+ current = machineId + current;
67
+ const newEntry = path.join(directoryPath, current);
68
+ const cmd = `mv ${oldEntry} ${newEntry}`;
69
+ try {
70
+ await exec(cmd);
71
+ }
72
+ catch (error) {
73
+ console.log(`error executing: ${cmd}`);
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ /**
80
+ *
81
+ * @param directoryPath
82
+ * @param newUUID
83
+ */
84
+ async function updateLoaderEntries(directoryPath, machineId, newUUID) {
85
+ const files = fs.readdirSync(directoryPath);
86
+ if (files.length > 0) {
87
+ for (const file of files) {
88
+ const filePath = path.join(directoryPath, file);
89
+ let source = fs.readFileSync(filePath, 'utf8');
90
+ let lines = source.split('\n');
91
+ let content = '';
92
+ for (let line of lines) {
93
+ /**
94
+ * REPLACE UUID
95
+ */
96
+ if (line.includes('UUID=')) {
97
+ const at = line.indexOf('UUID=');
98
+ const start = line.substring(0, at + 5);
99
+ const stop = line.substring(at + 5 + 36);
100
+ line = start + newUUID + stop;
101
+ }
102
+ /**
103
+ * REPLACE machineId
104
+ */
105
+ // version 0-rescue-
106
+ if (line.includes('version 0-rescue-')) {
107
+ line = `version 0-rescue-${machineId}`;
108
+ }
109
+ // linux /boot/vmlinuz-0-rescue-
110
+ if (line.includes('vmlinuz-0-rescue-')) {
111
+ line = `vmlinuz-0-rescue-${machineId}`;
112
+ }
113
+ // initrd /boot/initramfs-0-rescue-
114
+ if (line.includes('initrd /boot/initramfs-0-rescue-')) {
115
+ line = `initrd /boot/initramfs-0-rescue-${machineId}.img`;
116
+ }
117
+ content += line + '\n';
118
+ }
119
+ fs.writeFileSync(filePath, content);
120
+ }
121
+ }
122
+ }
@@ -8,6 +8,7 @@
8
8
  */
9
9
  import fs from 'node:fs';
10
10
  import { exec } from '../../lib/utils.js';
11
+ import Utils from '../../classes/utils.js';
11
12
  /**
12
13
  * On Ubuntu
13
14
  * /etc/machine-id must exist to be re-created
@@ -19,12 +20,14 @@ export default async function machineId() {
19
20
  if (fs.existsSync(file)) {
20
21
  await exec(`rm ${file} ${this.toNull}`, this.echo);
21
22
  }
22
- // On Alpine, we need to create the machine-id file
23
- if (this.distro.familyId === 'alpine') {
24
- await exec(`dbus-uuidgen --ensure=${this.installTarget}/var/lib/dbus/machine-id ${this.toNull}`);
25
- await exec(`cp ${this.installTarget}/var/lib/dbus/machine-id ${this.installTarget}/etc/machine-id`);
23
+ /**
24
+ * machine/id ALWAYS new
25
+ */
26
+ if (Utils.isSystemd()) {
27
+ await exec(`chroot ${this.installTarget} systemd-machine-id-setup`);
26
28
  }
27
29
  else {
28
- await exec(`touch ${file} ${this.toNull}`);
30
+ await exec(`chroot ${this.installTarget} dbus-uuidgen --ensure=/var/lib/dbus/machine-id ${this.toNull}`);
31
+ await exec(`chroot ${this.installTarget} cp /var/lib/dbus/machine-id /etc/machine-id`);
29
32
  }
30
33
  }
@@ -617,11 +617,7 @@ export default class Sequence {
617
617
  await redraw(React.createElement(React.Fragment, null,
618
618
  React.createElement(Title, null),
619
619
  React.createElement(Box, null,
620
- React.createElement(Text, null, message)),
621
- React.createElement(Box, null,
622
- React.createElement(Text, null,
623
- "Error: ",
624
- currErr))));
620
+ React.createElement(Text, null, message))));
625
621
  cliCursor.show();
626
622
  await exec("/bin/bash");
627
623
  cliCursor.hide();
Binary file
@@ -6,7 +6,7 @@
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.48</h1>
9
+ <h1>eggs(1) -- the reproductive system of penguins: eggs v10.0.50</h1>
10
10
  <h1>SYNOPSIS</h1>
11
11
  <p>eggs is a console utility, in active development, who let you to remaster your system and redistribuite it as live ISO image.</p>
12
12
  <h1>INSTALL</h1>
@@ -15,11 +15,11 @@
15
15
  </code></pre>
16
16
  <p>Arch</p>
17
17
  <pre><code>$ sudo pacman -S penguins-eggs
18
- $ sudo pacman -U penguins-eggs_10.0.48-1_amd64-1-x86_64.pkg.tar.zst
18
+ $ sudo pacman -U penguins-eggs_10.0.50-1_amd64-1-x86_64.pkg.tar.zst
19
19
  </code></pre>
20
20
  <p>Debian/Devuan/Ubuntu</p>
21
21
  <pre><code>$ sudo apt install penguins-eggs
22
- $ sudo dpkg -i penguins-eggs_10.0.48-1_amd64.deb
22
+ $ sudo dpkg -i penguins-eggs_10.0.50-1_amd64.deb
23
23
  </code></pre>
24
24
  <p>Manjaro</p>
25
25
  <pre><code>$ sudo pamac install penguins-eggs
@@ -27,7 +27,7 @@ $ sudo dpkg -i penguins-eggs_10.0.48-1_amd64.deb
27
27
  <h1>USAGE</h1>
28
28
  <pre><code>$ eggs (-v|--version|version)
29
29
 
30
- penguins-eggs/10.0.48
30
+ penguins-eggs/10.0.50
31
31
  $ eggs --help [COMMAND]
32
32
 
33
33
  USAGE
@@ -48,67 +48,10 @@ sudo eggs dad
48
48
  <p>The scope of this project is to implement the process of remastering your version of Linux, generate it as ISO image, to burn on a CD/DVD or copy to a usb key, to boot your system live. Of course, You can easily install your live image using GUI installer (calamares) or CLI installer (krill) always included.</p>
49
49
  <h1>COMMANDS</h1>
50
50
  <ul>
51
- <li><a href="#eggs-adapt"><code>eggs adapt</code></a></li>
52
- <li><a href="#eggs-analyze"><code>eggs analyze</code></a></li>
53
51
  <li><a href="#eggs-autocomplete-shell"><code>eggs autocomplete [SHELL]</code></a></li>
54
- <li><a href="#eggs-calamares"><code>eggs calamares</code></a></li>
55
- <li><a href="#eggs-config"><code>eggs config</code></a></li>
56
- <li><a href="#eggs-cuckoo"><code>eggs cuckoo</code></a></li>
57
- <li><a href="#eggs-dad"><code>eggs dad</code></a></li>
58
- <li><a href="#eggs-export-iso"><code>eggs export iso</code></a></li>
59
- <li><a href="#eggs-export-pkg"><code>eggs export pkg</code></a></li>
60
52
  <li><a href="#eggs-help-command"><code>eggs help [COMMAND]</code></a></li>
61
- <li><a href="#eggs-install"><code>eggs install</code></a></li>
62
- <li><a href="#eggs-kill"><code>eggs kill</code></a></li>
63
- <li><a href="#eggs-krill"><code>eggs krill</code></a></li>
64
- <li><a href="#eggs-love"><code>eggs love</code></a></li>
65
- <li><a href="#eggs-mom"><code>eggs mom</code></a></li>
66
- <li><a href="#eggs-produce"><code>eggs produce</code></a></li>
67
- <li><a href="#eggs-status"><code>eggs status</code></a></li>
68
- <li><a href="#eggs-syncfrom"><code>eggs syncfrom</code></a></li>
69
- <li><a href="#eggs-syncto"><code>eggs syncto</code></a></li>
70
- <li><a href="#eggs-tools-clean"><code>eggs tools clean</code></a></li>
71
- <li><a href="#eggs-tools-ppa"><code>eggs tools ppa</code></a></li>
72
- <li><a href="#eggs-tools-skel"><code>eggs tools skel</code></a></li>
73
- <li><a href="#eggs-tools-stat"><code>eggs tools stat</code></a></li>
74
- <li><a href="#eggs-tools-yolk"><code>eggs tools yolk</code></a></li>
75
- <li><a href="#eggs-update"><code>eggs update</code></a></li>
76
53
  <li><a href="#eggs-version"><code>eggs version</code></a></li>
77
- <li><a href="#eggs-wardrobe-get-repo"><code>eggs wardrobe get [REPO]</code></a></li>
78
- <li><a href="#eggs-wardrobe-list-repo"><code>eggs wardrobe list [REPO]</code></a></li>
79
- <li><a href="#eggs-wardrobe-show-repo"><code>eggs wardrobe show [REPO]</code></a></li>
80
- <li><a href="#eggs-wardrobe-wear-repo"><code>eggs wardrobe wear [REPO]</code></a></li>
81
54
  </ul>
82
- <h2><code>eggs adapt</code></h2>
83
- <p>adapt monitor resolution for VM only</p>
84
- <pre><code>USAGE
85
- $ eggs adapt [-h] [-v]
86
-
87
- FLAGS
88
- -h, --help Show CLI help.
89
- -v, --verbose
90
-
91
- DESCRIPTION
92
- adapt monitor resolution for VM only
93
-
94
- EXAMPLES
95
- $ eggs adapt
96
- </code></pre>
97
- <h2><code>eggs analyze</code></h2>
98
- <p>analyze for syncto</p>
99
- <pre><code>USAGE
100
- $ eggs analyze [-h] [-v]
101
-
102
- FLAGS
103
- -h, --help Show CLI help.
104
- -v, --verbose verbose
105
-
106
- DESCRIPTION
107
- analyze for syncto
108
-
109
- EXAMPLES
110
- sudo eggs analyze
111
- </code></pre>
112
55
  <h2><code>eggs autocomplete [SHELL]</code></h2>
113
56
  <p>Display autocomplete installation instructions.</p>
114
57
  <pre><code>USAGE
@@ -133,130 +76,6 @@ EXAMPLES
133
76
  $ eggs autocomplete powershell
134
77
 
135
78
  $ eggs autocomplete --refresh-cache
136
- </code></pre>
137
- <h2><code>eggs calamares</code></h2>
138
- <p>configure calamares or install or configure it</p>
139
- <pre><code>USAGE
140
- $ eggs calamares [-h] [-i] [-n] [-p] [-r] [--remove] [--theme &#x3C;value>] [-v]
141
-
142
- FLAGS
143
- -h, --help Show CLI help.
144
- -i, --install install calamares and its dependencies
145
- -n, --nointeractive no user interaction
146
- -p, --policies configure calamares policies
147
- -r, --release release: remove calamares and all its dependencies after the installation
148
- -v, --verbose
149
- --remove remove calamares and its dependencies
150
- --theme=&#x3C;value> theme/branding for eggs and calamares
151
-
152
- DESCRIPTION
153
- configure calamares or install or configure it
154
-
155
- EXAMPLES
156
- sudo eggs calamares
157
-
158
- sudo eggs calamares --install
159
-
160
- sudo eggs calamares --install --theme=/path/to/theme
161
-
162
- sudo eggs calamares --remove
163
- </code></pre>
164
- <h2><code>eggs config</code></h2>
165
- <p>Configure eggs to run it</p>
166
- <pre><code>USAGE
167
- $ eggs config [-c] [-h] [-n] [-v]
168
-
169
- FLAGS
170
- -c, --clean remove old configuration before to create new one
171
- -h, --help Show CLI help.
172
- -n, --nointeractive no user interaction
173
- -v, --verbose verbose
174
-
175
- DESCRIPTION
176
- Configure eggs to run it
177
-
178
- EXAMPLES
179
- sudo eggs config
180
-
181
- sudo eggs config --clean
182
-
183
- sudo eggs config --clean --nointeractive
184
- </code></pre>
185
- <h2><code>eggs cuckoo</code></h2>
186
- <p>PXE start with proxy-dhcp</p>
187
- <pre><code>USAGE
188
- $ eggs cuckoo [-h]
189
-
190
- FLAGS
191
- -h, --help Show CLI help.
192
-
193
- DESCRIPTION
194
- PXE start with proxy-dhcp
195
-
196
- EXAMPLES
197
- sudo eggs cuckoo
198
- </code></pre>
199
- <h2><code>eggs dad</code></h2>
200
- <p>ask help from daddy - TUI configuration helper</p>
201
- <pre><code>USAGE
202
- $ eggs dad [-c] [-d] [-f &#x3C;value>] [-h] [-v]
203
-
204
- FLAGS
205
- -c, --clean remove old configuration before to create
206
- -d, --default reset to default values
207
- -f, --file=&#x3C;value> use a file configuration custom
208
- -h, --help Show CLI help.
209
- -v, --verbose
210
-
211
- DESCRIPTION
212
- ask help from daddy - TUI configuration helper
213
-
214
- EXAMPLES
215
- sudo dad
216
-
217
- sudo dad --clean
218
-
219
- sudo dad --default
220
- </code></pre>
221
- <h2><code>eggs export iso</code></h2>
222
- <p>export iso in the destination host</p>
223
- <pre><code>USAGE
224
- $ eggs export iso [-C] [-c] [-h] [-v]
225
-
226
- FLAGS
227
- -C, --checksum export checksums md5 and sha256
228
- -c, --clean delete old ISOs before to copy
229
- -h, --help Show CLI help.
230
- -v, --verbose verbose
231
-
232
- DESCRIPTION
233
- export iso in the destination host
234
-
235
- EXAMPLES
236
- $ eggs export iso
237
-
238
- $ eggs export iso --clean
239
- </code></pre>
240
- <h2><code>eggs export pkg</code></h2>
241
- <p>export pkg/iso to the destination host</p>
242
- <pre><code>USAGE
243
- $ eggs export pkg [-a] [-c] [-h] [-v]
244
-
245
- FLAGS
246
- -a, --all export all archs
247
- -c, --clean remove old .deb before to copy
248
- -h, --help Show CLI help.
249
- -v, --verbose verbose
250
-
251
- DESCRIPTION
252
- export pkg/iso to the destination host
253
-
254
- EXAMPLES
255
- $ eggs export pkg
256
-
257
- $ eggs export pkg --clean
258
-
259
- $ eggs export pkg --all
260
79
  </code></pre>
261
80
  <h2><code>eggs help [COMMAND]</code></h2>
262
81
  <p>Display help for eggs.</p>
@@ -271,333 +90,6 @@ FLAGS
271
90
 
272
91
  DESCRIPTION
273
92
  Display help for eggs.
274
- </code></pre>
275
- <h2><code>eggs install</code></h2>
276
- <p>krill: the CLI system installer - the egg became a penguin!</p>
277
- <pre><code>USAGE
278
- $ eggs install [-b] [-c] [-k] [-d &#x3C;value>] [-H] [-h] [-i] [-n] [-N] [-p] [-r] [-s] [-S] [-u] [-v]
279
-
280
- FLAGS
281
- -H, --halt Halt the system after installation
282
- -N, --none Swap none: 256M
283
- -S, --suspend Swap suspend: RAM x 2
284
- -b, --btrfs Format btrfs
285
- -c, --chroot chroot before to end
286
- -d, --domain=&#x3C;value> Domain name, defult: .local
287
- -h, --help Show CLI help.
288
- -i, --ip hostname as ip, eg: ip-192-168-1-33
289
- -k, --crypted Crypted CLI installation
290
- -n, --nointeractive no user interaction
291
- -p, --pve Proxmox VE install
292
- -r, --random Add random to hostname, eg: colibri-ay412dt
293
- -s, --small Swap small: RAM
294
- -u, --unattended Unattended installation
295
- -v, --verbose Verbose
296
-
297
- DESCRIPTION
298
- krill: the CLI system installer - the egg became a penguin!
299
-
300
- ALIASES
301
- $ eggs krill
302
-
303
- EXAMPLES
304
- sudo eggs install
305
-
306
- sudo eggs install --unattended --halt
307
-
308
- sudo eggs install --chroot
309
- </code></pre>
310
- <h2><code>eggs kill</code></h2>
311
- <p>kill the eggs/free the nest</p>
312
- <pre><code>USAGE
313
- $ eggs kill [-h] [-i] [-n] [-v]
314
-
315
- FLAGS
316
- -h, --help Show CLI help.
317
- -i, --isos erase all ISOs on remote mount
318
- -n, --nointeractive no user interaction
319
- -v, --verbose verbose
320
-
321
- DESCRIPTION
322
- kill the eggs/free the nest
323
-
324
- EXAMPLES
325
- sudo eggs kill
326
- </code></pre>
327
- <h2><code>eggs krill</code></h2>
328
- <p>krill: the CLI system installer - the egg became a penguin!</p>
329
- <pre><code>USAGE
330
- $ eggs krill [-b] [-c] [-k] [-d &#x3C;value>] [-H] [-h] [-i] [-n] [-N] [-p] [-r] [-s] [-S] [-u] [-v]
331
-
332
- FLAGS
333
- -H, --halt Halt the system after installation
334
- -N, --none Swap none: 256M
335
- -S, --suspend Swap suspend: RAM x 2
336
- -b, --btrfs Format btrfs
337
- -c, --chroot chroot before to end
338
- -d, --domain=&#x3C;value> Domain name, defult: .local
339
- -h, --help Show CLI help.
340
- -i, --ip hostname as ip, eg: ip-192-168-1-33
341
- -k, --crypted Crypted CLI installation
342
- -n, --nointeractive no user interaction
343
- -p, --pve Proxmox VE install
344
- -r, --random Add random to hostname, eg: colibri-ay412dt
345
- -s, --small Swap small: RAM
346
- -u, --unattended Unattended installation
347
- -v, --verbose Verbose
348
-
349
- DESCRIPTION
350
- krill: the CLI system installer - the egg became a penguin!
351
-
352
- ALIASES
353
- $ eggs krill
354
-
355
- EXAMPLES
356
- sudo eggs install
357
-
358
- sudo eggs install --unattended --halt
359
-
360
- sudo eggs install --chroot
361
- </code></pre>
362
- <h2><code>eggs love</code></h2>
363
- <p>the simplest way to get an egg!</p>
364
- <pre><code>USAGE
365
- $ eggs love [-h] [-v]
366
-
367
- FLAGS
368
- -h, --help Show CLI help.
369
- -v, --verbose
370
-
371
- DESCRIPTION
372
- the simplest way to get an egg!
373
-
374
- EXAMPLES
375
- $ eggs auto
376
- </code></pre>
377
- <h2><code>eggs mom</code></h2>
378
- <p>ask help from mommy - TUI helper</p>
379
- <pre><code>USAGE
380
- $ eggs mom [-h]
381
-
382
- FLAGS
383
- -h, --help Show CLI help.
384
-
385
- DESCRIPTION
386
- ask help from mommy - TUI helper
387
-
388
- EXAMPLES
389
- $ eggs mom
390
- </code></pre>
391
- <h2><code>eggs produce</code></h2>
392
- <p>produce a live image from your system whithout your data</p>
393
- <pre><code>USAGE
394
- $ eggs produce [--addons &#x3C;value>...] [--basename &#x3C;value>] [-c] [-C] [--excludes &#x3C;value>...] [-h] [--links
395
- &#x3C;value>...] [-m] [-N] [-n] [-p] [-P &#x3C;value>] [--release] [-s] [-f] [--theme &#x3C;value>] [-u] [-v] [-y]
396
-
397
- FLAGS
398
- -C, --cryptedclone crypted clone
399
- -N, --noicon no icon eggs on desktop
400
- -P, --prefix=&#x3C;value> prefix
401
- -c, --clone clone
402
- -f, --standard standard compression: xz -b 1M
403
- -h, --help Show CLI help.
404
- -m, --max max compression: xz -Xbcj ...
405
- -n, --nointeractive no user interaction
406
- -p, --pendrive optimized for pendrive: zstd -b 1M -Xcompression-level 15
407
- -s, --script script mode. Generate scripts to manage iso build
408
- -u, --unsecure /root contents are included on live
409
- -v, --verbose verbose
410
- -y, --yolk force yolk renew
411
- --addons=&#x3C;value>... addons to be used: adapt, pve, rsupport
412
- --basename=&#x3C;value> basename
413
- --excludes=&#x3C;value>... use: static, homes, home
414
- --links=&#x3C;value>... desktop links
415
- --release release: remove penguins-eggs, calamares and dependencies after installation
416
- --theme=&#x3C;value> theme for livecd, calamares branding and partitions
417
-
418
- DESCRIPTION
419
- produce a live image from your system whithout your data
420
-
421
- EXAMPLES
422
- sudo eggs produce # fast compression
423
-
424
- sudo eggs produce --max # max compression
425
-
426
- sudo eggs produce --pendrive # compression optomized pendrive
427
-
428
- sudo eggs produce --clone # clone
429
-
430
- sudo eggs produce --cryptedclone # crypted clone
431
-
432
- sudo eggs produce --basename=colibri
433
-
434
- sudo eggs produce --theme lastos
435
-
436
- sudo eggs produce --excludes static # you can customize it
437
-
438
- sudo eggs produce --excludes homes # exclude /home/*
439
-
440
- sudo eggs produce --excludes home # exclude ~/*
441
- </code></pre>
442
- <h2><code>eggs status</code></h2>
443
- <p>informations about eggs status</p>
444
- <pre><code>USAGE
445
- $ eggs status [-h] [-v]
446
-
447
- FLAGS
448
- -h, --help Show CLI help.
449
- -v, --verbose
450
-
451
- DESCRIPTION
452
- informations about eggs status
453
-
454
- EXAMPLES
455
- $ eggs status
456
- </code></pre>
457
- <h2><code>eggs syncfrom</code></h2>
458
- <p>restore users and user data from a LUKS volumes</p>
459
- <pre><code>USAGE
460
- $ eggs syncfrom [--delete &#x3C;value>] [-f &#x3C;value>] [-h] [-r &#x3C;value>] [-v]
461
-
462
- FLAGS
463
- -f, --file=&#x3C;value> file containing luks-volume encrypted
464
- -h, --help Show CLI help.
465
- -r, --rootdir=&#x3C;value> rootdir of the installed system, when used from live
466
- -v, --verbose verbose
467
- --delete=&#x3C;value> rsync --delete delete extraneous files from dest dirs
468
-
469
- DESCRIPTION
470
- restore users and user data from a LUKS volumes
471
-
472
- EXAMPLES
473
- sudo eggs syncfrom
474
-
475
- sudo eggs syncfrom --file /path/to/luks-volume
476
- </code></pre>
477
- <h2><code>eggs syncto</code></h2>
478
- <p>Save users and users' data ENCRYPTED</p>
479
- <pre><code>USAGE
480
- $ eggs syncto [-e] [-f &#x3C;value>] [-h] [-v]
481
-
482
- FLAGS
483
- -e, --excludes use: exclude.list.d/home.list
484
- -f, --file=&#x3C;value> file luks-volume encrypted
485
- -h, --help Show CLI help.
486
- -v, --verbose verbose
487
-
488
- DESCRIPTION
489
- Save users and users' data ENCRYPTED
490
-
491
- EXAMPLES
492
- sudo eggs syncto
493
-
494
- sudo eggs syncto --file /path/to/luks-volume
495
-
496
- sudo eggs syncto --excludes
497
- </code></pre>
498
- <h2><code>eggs tools clean</code></h2>
499
- <p>clean system log, apt, etc</p>
500
- <pre><code>USAGE
501
- $ eggs tools clean [-h] [-n] [-v]
502
-
503
- FLAGS
504
- -h, --help Show CLI help.
505
- -n, --nointeractive no user interaction
506
- -v, --verbose verbose
507
-
508
- DESCRIPTION
509
- clean system log, apt, etc
510
-
511
- EXAMPLES
512
- sudo eggs tools clean
513
- </code></pre>
514
- <h2><code>eggs tools ppa</code></h2>
515
- <p>add/remove repo</p>
516
- <pre><code>USAGE
517
- $ eggs tools ppa [-a] [-h] [-n] [-r] [-v]
518
-
519
- FLAGS
520
- -a, --add add penguins-eggs PPA repository
521
- -h, --help Show CLI help.
522
- -n, --nointeractive no user interaction
523
- -r, --remove remove penguins-eggs PPA repository
524
- -v, --verbose verbose
525
-
526
- DESCRIPTION
527
- add/remove repo
528
-
529
- EXAMPLES
530
- sudo eggs tools ppa --add
531
-
532
- sudo eggs tools ppa --remove
533
- </code></pre>
534
- <h2><code>eggs tools skel</code></h2>
535
- <p>update skel from home configuration</p>
536
- <pre><code>USAGE
537
- $ eggs tools skel [-h] [-u &#x3C;value>] [-v]
538
-
539
- FLAGS
540
- -h, --help Show CLI help.
541
- -u, --user=&#x3C;value> user to be used
542
- -v, --verbose
543
-
544
- DESCRIPTION
545
- update skel from home configuration
546
-
547
- EXAMPLES
548
- sudo eggs tools skel
549
-
550
- sudo eggs tools skel --user user-to-be-copied
551
- </code></pre>
552
- <h2><code>eggs tools stat</code></h2>
553
- <p>get statistics from sourceforge</p>
554
- <pre><code>USAGE
555
- $ eggs tools stat [-h] [-m] [-y]
556
-
557
- FLAGS
558
- -h, --help Show CLI help.
559
- -m, --month current month
560
- -y, --year current year
561
-
562
- DESCRIPTION
563
- get statistics from sourceforge
564
-
565
- EXAMPLES
566
- $ eggs tools stat
567
-
568
- $ eggs tools stat --month
569
-
570
- $ eggs tools stat --year
571
- </code></pre>
572
- <h2><code>eggs tools yolk</code></h2>
573
- <p>configure eggs to install without internet</p>
574
- <pre><code>USAGE
575
- $ eggs tools yolk [-h] [-v]
576
-
577
- FLAGS
578
- -h, --help Show CLI help.
579
- -v, --verbose
580
-
581
- DESCRIPTION
582
- configure eggs to install without internet
583
-
584
- EXAMPLES
585
- sudo eggs tools yolk
586
- </code></pre>
587
- <h2><code>eggs update</code></h2>
588
- <p>update the Penguins' eggs tool</p>
589
- <pre><code>USAGE
590
- $ eggs update [-h] [-v]
591
-
592
- FLAGS
593
- -h, --help Show CLI help.
594
- -v, --verbose verbose
595
-
596
- DESCRIPTION
597
- update the Penguins' eggs tool
598
-
599
- EXAMPLES
600
- $ eggs update
601
93
  </code></pre>
602
94
  <h2><code>eggs version</code></h2>
603
95
  <pre><code>USAGE
@@ -613,98 +105,6 @@ FLAG DESCRIPTIONS
613
105
  --verbose Show additional information about the CLI.
614
106
 
615
107
  Additionally shows the architecture, node version, operating system, and versions of plugins that the CLI is using.
616
- </code></pre>
617
- <h2><code>eggs wardrobe get [REPO]</code></h2>
618
- <p>get warorobe</p>
619
- <pre><code>USAGE
620
- $ eggs wardrobe get [REPO] [-h] [-v]
621
-
622
- ARGUMENTS
623
- REPO repository to get
624
-
625
- FLAGS
626
- -h, --help Show CLI help.
627
- -v, --verbose
628
-
629
- DESCRIPTION
630
- get warorobe
631
-
632
- EXAMPLES
633
- $ eggs wardrobe get
634
-
635
- $ eggs wardrobe get your-wardrobe
636
- </code></pre>
637
- <h2><code>eggs wardrobe list [REPO]</code></h2>
638
- <p>list costumes and accessoires in wardrobe</p>
639
- <pre><code>USAGE
640
- $ eggs wardrobe list [REPO] [-d &#x3C;value>] [-h] [-v]
641
-
642
- ARGUMENTS
643
- REPO wardrobe to get
644
-
645
- FLAGS
646
- -d, --distro=&#x3C;value> distro
647
- -h, --help Show CLI help.
648
- -v, --verbose
649
-
650
- DESCRIPTION
651
- list costumes and accessoires in wardrobe
652
-
653
- EXAMPLES
654
- $ eggs wardrobe list
655
-
656
- $ eggs wardrobe list your-wardrobe
657
-
658
- $ eggs wardrobe list --distro arch
659
- </code></pre>
660
- <h2><code>eggs wardrobe show [REPO]</code></h2>
661
- <p>show costumes/accessories in wardrobe</p>
662
- <pre><code>USAGE
663
- $ eggs wardrobe show [REPO] [-h] [-j] [-v] [-w &#x3C;value>]
664
-
665
- ARGUMENTS
666
- REPO costume to show
667
-
668
- FLAGS
669
- -h, --help Show CLI help.
670
- -j, --json output JSON
671
- -v, --verbose
672
- -w, --wardrobe=&#x3C;value> wardrobe
673
-
674
- DESCRIPTION
675
- show costumes/accessories in wardrobe
676
-
677
- EXAMPLES
678
- $ eggs wardrobe show colibri
679
-
680
- $ eggs wardrobe show accessories/firmwares
681
-
682
- $ eggs wardrobe show accessories/
683
- </code></pre>
684
- <h2><code>eggs wardrobe wear [REPO]</code></h2>
685
- <p>wear costume/accessories from wardrobe</p>
686
- <pre><code>USAGE
687
- $ eggs wardrobe wear [REPO] [-h] [-a] [-f] [-v] [-w &#x3C;value>]
688
-
689
- ARGUMENTS
690
- REPO costume to wear
691
-
692
- FLAGS
693
- -a, --no_accessories not install accessories
694
- -f, --no_firmwares not install firmwares
695
- -h, --help Show CLI help.
696
- -v, --verbose
697
- -w, --wardrobe=&#x3C;value> wardrobe
698
-
699
- DESCRIPTION
700
- wear costume/accessories from wardrobe
701
-
702
- EXAMPLES
703
- sudo eggs wardrobe wear duck
704
-
705
- sudo eggs wardrobe wear accessories/firmwares
706
-
707
- sudo eggs wardrobe wear wagtail/waydroid
708
108
  </code></pre>
709
109
  <h1>FILES</h1>
710
110
  <pre><code> /etc/penguins-eggs.d
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.48",
5
+ "version": "10.0.50",
6
6
  "author": "Piero Proietti",
7
7
  "bin": {
8
8
  "eggs": "./bin/run.js"
@@ -52,7 +52,7 @@
52
52
  "eslint-config-oclif-typescript": "^3.1.12",
53
53
  "eslint-config-prettier": "^9.1.0",
54
54
  "mocha": "^10.8.1",
55
- "oclif": "^4.15.16",
55
+ "oclif": "^4.15.20",
56
56
  "perrisbrewery": "^10.0.2",
57
57
  "prettier": "^3.3.3",
58
58
  "shx": "^0.3.4",
@@ -0,0 +1,97 @@
1
+ #!/bin/sh
2
+
3
+ # SPDX-FileCopyrightText: 2021-2022 Gioele Barabucci
4
+ # SPDX-License-Identifier: ISC
5
+
6
+ set -eu
7
+
8
+ export LC_ALL="C.UTF-8"
9
+
10
+ help () {
11
+ cat <<-EOD
12
+ Usage: lsb_release [options]
13
+
14
+ Options:
15
+ -h, --help show this help message and exit
16
+ -v, --version show LSB modules this system supports
17
+ -i, --id show distributor ID
18
+ -d, --description show description of this distribution
19
+ -r, --release show release number of this distribution
20
+ -c, --codename show code name of this distribution
21
+ -a, --all show all of the above information
22
+ -s, --short show requested information in short format
23
+ EOD
24
+ exit
25
+ }
26
+
27
+ show_id=false
28
+ show_desc=false
29
+ show_release=false
30
+ show_codename=false
31
+ short_format=false
32
+
33
+ options=$(getopt --name lsb_release -o hvidrcas -l help,version,id,description,release,codename,all,short -- "$@") || exit 2
34
+ eval set -- "$options"
35
+ while [ $# -gt 0 ] ; do
36
+ case "$1" in
37
+ -h|--help) help ;;
38
+ -v|--version) ;;
39
+ -i|--id) show_id=true ;;
40
+ -d|--description) show_desc=true ;;
41
+ -r|--release) show_release=true ;;
42
+ -c|--codename) show_codename=true ;;
43
+ -a|--all) show_id=true ; show_desc=true ; show_release=true ; show_codename=true ;;
44
+ -s|--short) short_format=true ;;
45
+ *) break ;;
46
+ esac
47
+ shift
48
+ done
49
+
50
+ display_line () {
51
+ label="$1"
52
+ value="$2"
53
+
54
+ if $short_format ; then
55
+ printf "%s\n" "$value"
56
+ else
57
+ printf "%s:\t%s\n" "$label" "$value"
58
+ fi
59
+ }
60
+
61
+ # Load release info from standard identification data files
62
+ [ -f /usr/lib/os-release ] && os_release=/usr/lib/os-release
63
+ [ -f /etc/os-release ] && os_release=/etc/os-release
64
+ [ "${LSB_OS_RELEASE-x}" != "x" ] && [ -f "$LSB_OS_RELEASE" ] && os_release="$LSB_OS_RELEASE"
65
+ [ "${os_release-x}" != "x" ] && . "$os_release"
66
+
67
+ # Mimic the output of Debian's Python-based lsb_release
68
+ # Capitalize ID
69
+ : "${ID=}"
70
+ ID="$(printf "%s" "$ID" | cut -c1 | tr '[:lower:]' '[:upper:]')$(printf "%s" "$ID" | cut -c2-)"
71
+ # Use NAME if set and different from ID only in capitalization.
72
+ if [ "${NAME-x}" != "x" ] ; then
73
+ lower_case_id=$(printf "%s" "$ID" | tr '[:upper:]' '[:lower:]')
74
+ lower_case_name=$(printf "%s" "$NAME" | tr '[:upper:]' '[:lower:]')
75
+ if [ "${lower_case_id}" = "${lower_case_name}" ] ; then
76
+ ID="$NAME"
77
+ fi
78
+ fi
79
+
80
+ # Generate minimal standard-conform output (if stdout is a TTY).
81
+ [ -t 1 ] && echo "No LSB modules are available." >& 2
82
+
83
+ if $show_id ; then
84
+ display_line "Distributor ID" "${ID:-n/a}"
85
+ fi
86
+
87
+ if $show_desc ; then
88
+ display_line "Description" "${PRETTY_NAME:-n/a}"
89
+ fi
90
+
91
+ if $show_release ; then
92
+ display_line "Release" "${VERSION_ID:-n/a}"
93
+ fi
94
+
95
+ if $show_codename ; then
96
+ display_line "Codename" "${VERSION_CODENAME:-n/a}"
97
+ fi
Binary file