penguins-eggs 10.0.10 → 10.0.15

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.
@@ -100,15 +100,12 @@
100
100
  - victoria # Linux Mint
101
101
  - virginia # LinuxMint
102
102
 
103
- - id: devel
103
+ - id: noble
104
104
  distroLike: Ubuntu
105
105
  family: debian
106
106
  ids:
107
- - devel # Rhino
108
- - lunar # Ubuntu lunar 23.04
109
- - mantic # Ubuntu lunar 23.10
110
- - noble # Ubuntu noble
111
107
  - wilma # Linux Mint 22
108
+ - devel # Rhino
112
109
 
113
110
  #
114
111
  # ARCH
@@ -0,0 +1,3 @@
1
+ # Ubuntu 24.04 noble
2
+
3
+ It take all configuration from Ubuntu focal
@@ -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}}}
@@ -1,43 +1,4 @@
1
1
  ######################################################################################################
2
2
  # usr: use this exclusions, attention this can lead to lost something
3
- #usr/lib/snapd/*
4
- usr/bin/x86_64-w64-mingw32-cpp-win32
5
- usr/bin/x86_64-w64-mingw32-gcc-12-win32
6
- usr/bin/x86_64-w64-mingw32-gcc-ar-win32
7
- usr/bin/x86_64-w64-mingw32-gcc-nm-win32
8
- usr/bin/x86_64-w64-mingw32-gcc-ranlib-win32
9
- usr/bin/x86_64-w64-mingw32-gcc-win32
10
- usr/bin/x86_64-w64-mingw32-gcov-dump-win32
11
- usr/bin/x86_64-w64-mingw32-gcov-tool-win32
12
- usr/bin/x86_64-w64-mingw32-gcov-win32
13
- usr/bin/x86_64-w64-mingw32-lto-dump-win32
14
- usr/i686-w64-mingw32/*
15
- usr/include/gtkmm-3.0/*
16
- usr/lib/gcc/i686-w64-mingw32/*
17
- usr/lib/gcc/x86_64-w64-mingw32/*
18
- usr/lib/i386-linux-gnu/*
19
- usr/lib/i386-linux-gnu/libLLVM-12.so
20
- usr/lib/i386-linux-gnu/libLLVM-12.so.1
21
- usr/lib/llvm-11/*
22
- usr/lib/llvm-9/*
23
- usr/lib/mono/*
24
- usr/lib/x86_64-linux-gnu/libLLVM-10.so
25
- usr/lib/x86_64-linux-gnu/libLLVM-10.so.1
26
- usr/lib/x86_64-linux-gnu/libLLVM-11.so
27
- usr/lib/x86_64-linux-gnu/libLLVM-11.so.1
28
- usr/lib/x86_64-linux-gnu/libLLVM-12.so
29
- usr/lib/x86_64-linux-gnu/libLLVM-12.so.1
30
- usr/lib/x86_64-linux-gnu/libLLVM-14.so
31
- usr/lib/x86_64-linux-gnu/libLLVM-14.so.1
32
- usr/lib/x86_64-linux-gnu/libLLVM-9.so
33
- usr/lib/x86_64-linux-gnu/libLLVM-9.so.1
34
- usr/lib/x86_64-linux-gnu/openblas-pthread/*
35
- usr/share/dict/*
36
- usr/share/doc/*
37
- usr/share/eclipse/*
38
- usr/share/gimp/2.0/help/en/images/*
39
- usr/share/gtk-doc/html/*
40
- usr/share/krita/*
41
- usr/share/texmf/*
42
- usr/share/xemacs21/*
43
- usr/x86_64-w64-mingw32/*
3
+
4
+ # this list is intentionally blank
@@ -4,8 +4,14 @@ var/backups/*
4
4
  var/cache/*
5
5
  var/lib/aide/*
6
6
  var/lib/apt/*~
7
+ var/lib/apt/cache/*
7
8
  var/lib/apt/cdroms.list
8
- var/lib/apt/lists/*
9
+ var/lib/apt/daily_lock
10
+ var/lib/apt/extended_states
11
+ var/lib/apt/listchanges.db
12
+ var/lib/apt/lists/
13
+ var/lib/apt/mirrors/
14
+ var/lib/apt/periodic/
9
15
  var/lib/aptitude/*.old
10
16
  var/lib/cache/*
11
17
  var/lib/dbus/machine-id
@@ -13,9 +19,11 @@ var/lib/dhcp/*
13
19
  var/lib/dkms/wireguard/*
14
20
  var/lib/dpkg/*~old
15
21
  var/lib/gems/2.7.0/cache/*
16
- #var/lib/snapd/*
17
22
  var/log/*.log
18
23
  var/log/*.log.?
19
24
  var/log/*/*
20
25
  var/spool/*
21
26
  var/tmp/*
27
+
28
+
29
+ #var/lib/snapd/*
@@ -25,10 +25,8 @@ export default class Daddy {
25
25
  * @param verbose
26
26
  */
27
27
  async helpMe(reset = false, isCustom = false, fileCustom = '', verbose = false) {
28
- console.log("reset: ", reset);
29
- console.log("isCustom: ", isCustom);
30
28
  if (isCustom) {
31
- console.log("fileCustom: ", fileCustom);
29
+ console.log("using custom file: ", fileCustom);
32
30
  }
33
31
  // Controllo configurazione
34
32
  if (!Pacman.configurationCheck()) {
@@ -47,16 +45,17 @@ export default class Daddy {
47
45
  if (await this.settings.load()) {
48
46
  config = this.settings.config;
49
47
  config.compression = 'fast';
50
- if (reset) {
51
- // Reset configuration
48
+ if (reset || isCustom) {
52
49
  if (config.snapshot_prefix === '') {
53
50
  config.snapshot_prefix = Utils.snapshotPrefix(this.settings.distro.distroId, this.settings.distro.codenameId);
54
51
  }
55
52
  jsonConf = JSON.stringify(config);
56
- console.log("reset");
57
53
  }
58
- else if (isCustom) {
59
- // Custom configuration
54
+ else {
55
+ jsonConf = await this.editConfig(config);
56
+ }
57
+ // Custom configuration
58
+ if (isCustom) {
60
59
  const conf = fs.readFileSync(fileCustom, 'utf8');
61
60
  const confCustom = yaml.load(conf);
62
61
  config.snapshot_basename = confCustom.snapshot_basename;
@@ -67,11 +66,6 @@ export default class Daddy {
67
66
  config.theme = confCustom.theme;
68
67
  jsonConf = JSON.stringify(config);
69
68
  }
70
- else {
71
- // default configuration
72
- jsonConf = await this.editConfig(config);
73
- console.log("edit");
74
- }
75
69
  // Save new configuration
76
70
  const confNew = JSON.parse(jsonConf);
77
71
  config.snapshot_basename = confNew.snapshot_basename;
@@ -185,6 +185,12 @@ class Distro {
185
185
  this.codenameLikeId = 'jammy';
186
186
  break;
187
187
  }
188
+ case 'noble': {
189
+ // Ubuntu 24.04 noble LTS
190
+ this.distroLike = 'Ubuntu';
191
+ this.codenameLikeId = 'noble';
192
+ break;
193
+ }
188
194
  case 'devel': {
189
195
  // Ubuntu rhino
190
196
  this.distroLike = 'Ubuntu';
@@ -128,6 +128,11 @@ export default class Incubator {
128
128
  await jammy.create();
129
129
  break;
130
130
  }
131
+ case 'noble': {
132
+ const noble = new Focal(this.installer, this.remix, this.distro, this.user_opt, release, this.theme, this.isClone, this.verbose);
133
+ await noble.create();
134
+ break;
135
+ }
131
136
  case 'devel': {
132
137
  const devel = new Focal(this.installer, this.remix, this.distro, this.user_opt, release, this.theme, this.isClone, this.verbose);
133
138
  await devel.create();
@@ -28,6 +28,7 @@ export default class Ovary {
28
28
  theme: string;
29
29
  volid: string;
30
30
  toNull: string;
31
+ genisoimage: boolean;
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, udf?: boolean, 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, udf?: 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
+ genisoimage = false;
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) {
@@ -683,6 +687,9 @@ export default class Ovary {
683
687
  console.log();
684
688
  console.log('Remember, on liveCD user = ' + chalk.cyanBright(this.settings.config.user_opt) + '/' + chalk.cyanBright(this.settings.config.user_opt_passwd));
685
689
  console.log(' root = ' + chalk.cyanBright('root') + '/' + chalk.cyanBright(this.settings.config.root_passwd));
690
+ if (this.genisoimage) {
691
+ console.log(`Note: format UDF, generated by ${chalk.cyanBright('genisoimage')}`);
692
+ }
686
693
  }
687
694
  /**
688
695
  * initrdArch()
@@ -1268,7 +1275,7 @@ export default class Ovary {
1268
1275
  * @param unsecure
1269
1276
  * @param verbose
1270
1277
  */
1271
- async produce(clone = false, cryptedclone = false, scriptOnly = false, yolkRenew = false, release = false, myAddons, myLinks, excludes, nointeractive = false, noicons = false, unsecure = false, verbose = false) {
1278
+ async produce(clone = false, cryptedclone = false, scriptOnly = false, yolkRenew = false, release = false, myAddons, myLinks, excludes, nointeractive = false, noicons = false, unsecure = false, udf = false, verbose = false) {
1272
1279
  this.verbose = verbose;
1273
1280
  this.echo = Utils.setEcho(verbose);
1274
1281
  if (this.verbose) {
@@ -1354,39 +1361,44 @@ export default class Ovary {
1354
1361
  Utils.warning("eggs will REMOVE users and users' data from live");
1355
1362
  }
1356
1363
  /**
1357
- * create exclude.list in not exists or static
1364
+ * exclude.list
1358
1365
  */
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');
1366
+ if (!excludes.static) {
1367
+ /**
1368
+ * create exclude.list if not exists
1369
+ */
1370
+ if (!fs.existsSync('/etc/penguins-eggs/exclude.list')) {
1371
+ const excludeListTemplateDir = '/etc/penguins-eggs.d/exclude.list.d/';
1372
+ const excludeListTemplate = excludeListTemplateDir + 'master.list';
1373
+ if (!fs.existsSync(excludeListTemplate)) {
1374
+ Utils.warning('Cannot find: ' + excludeListTemplate);
1375
+ process.exit(1);
1376
+ }
1377
+ let excludeUsr = '';
1378
+ let excludeVar = '';
1379
+ let excludeHomes = '';
1380
+ let excludeHome = '';
1381
+ if (excludes.usr) {
1382
+ excludeUsr = fs.readFileSync(`${excludeListTemplateDir}usr.list`, 'utf8');
1383
+ }
1384
+ if (excludes.var) {
1385
+ excludeVar = fs.readFileSync(`${excludeListTemplateDir}var.list`, 'utf8');
1386
+ }
1387
+ if (excludes.homes) {
1388
+ excludeHomes = fs.readFileSync(`${excludeListTemplateDir}homes.list`, 'utf8');
1389
+ }
1390
+ if (excludes.home) {
1391
+ excludeHome = `home/${await Utils.getPrimaryUser()}/*`;
1392
+ }
1393
+ const view = {
1394
+ usr_list: excludeUsr,
1395
+ var_list: excludeVar,
1396
+ homes_list: excludeHomes,
1397
+ home_list: excludeHome,
1398
+ };
1399
+ const template = fs.readFileSync(excludeListTemplate, 'utf8');
1400
+ fs.writeFileSync(this.settings.config.snapshot_excludes, mustache.render(template, view));
1381
1401
  }
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
1402
  }
1391
1403
  /**
1392
1404
  * NOTE: reCreate = false
@@ -1455,7 +1467,7 @@ export default class Ovary {
1455
1467
  Utils.warning(`moving ${luksFile} in ${this.nest}iso/live`);
1456
1468
  await exec(`mv ${luksFile} ${this.nest}iso/live`, this.echo);
1457
1469
  }
1458
- const mkIsofsCmd = this.xorrisoCommand(clone, cryptedclone).replaceAll(/\s\s+/g, ' ');
1470
+ const mkIsofsCmd = (await this.xorrisoCommand(clone, cryptedclone, udf)).replaceAll(/\s\s+/g, ' ');
1459
1471
  this.makeDotDisk(this.volid, mksquashfsCmd, mkIsofsCmd);
1460
1472
  /**
1461
1473
  * AntiX/MX LINUX
@@ -1636,7 +1648,7 @@ export default class Ovary {
1636
1648
  * @param cryptedclone
1637
1649
  * @returns cmd 4 mkiso
1638
1650
  */
1639
- xorrisoCommand(clone = false, cryptedclone = false) {
1651
+ async xorrisoCommand(clone = false, cryptedclone = false, udf = false) {
1640
1652
  if (this.verbose) {
1641
1653
  console.log('Ovary: xorrisoCommand');
1642
1654
  }
@@ -1683,6 +1695,29 @@ export default class Ovary {
1683
1695
  uefi_isohybridGptBasdat = '-isohybrid-gpt-basdat';
1684
1696
  uefi_noEmulBoot = '-no-emul-boot';
1685
1697
  }
1698
+ if (udf) {
1699
+ if (Pacman.packageIsInstalled('genisoimage')) {
1700
+ this.genisoimage = true;
1701
+ command = `genisoimage \
1702
+ -iso-level 3 \
1703
+ -allow-limited-size \
1704
+ -joliet-long \
1705
+ -r \
1706
+ -V "V3.0" \
1707
+ -cache-inodes \
1708
+ -J \
1709
+ -l \
1710
+ -b isolinux/isolinux.bin \
1711
+ -c isolinux/boot.cat \
1712
+ -no-emul-boot \
1713
+ -boot-load-size 4 \
1714
+ -boot-info-table \
1715
+ -eltorito-alt-boot \
1716
+ -e boot/grub/efiboot.img \
1717
+ -o ${output} ${this.settings.iso_work}`;
1718
+ return command;
1719
+ }
1720
+ }
1686
1721
  // xorriso
1687
1722
  command = `xorriso -as mkisofs \
1688
1723
  -J \
@@ -384,11 +384,11 @@ export default class Pacman {
384
384
  await exec(`cp -r ${buster}/calamares/modules/unpackfs.yml ${dest}/calamares/modules/unpackfs.yml`, echo);
385
385
  await exec(`cp -r ${buster}/calamares/modules/displaymanager.yml ${dest}/calamares/modules/displaymanager.yml`, echo);
386
386
  /**
387
- * Ubuntu 21.10 impish: eredita da focal e buster
387
+ * Ubuntu 22.04 jammy: eredita da focal e buster
388
388
  */
389
389
  }
390
- else if (this.distro().codenameLikeId === 'impish') {
391
- const dest = '/etc/penguins-eggs.d/distros/impish';
390
+ else if (this.distro().codenameLikeId === 'jammy') {
391
+ const dest = '/etc/penguins-eggs.d/distros/jammy';
392
392
  const focal = `${rootPen}/conf/distros/focal/*`;
393
393
  await exec(`cp -r ${focal} ${dest}`, echo);
394
394
  await exec(`cp -r ${buster}/calamares/calamares-modules/cleanup ${dest}/calamares/calamares-modules/cleanup`, echo);
@@ -399,11 +399,12 @@ export default class Pacman {
399
399
  await exec(`cp -r ${buster}/calamares/modules/unpackfs.yml ${dest}/calamares/modules/unpackfs.yml`, echo);
400
400
  await exec(`cp -r ${buster}/calamares/modules/displaymanager.yml ${dest}/calamares/modules/displaymanager.yml`, echo);
401
401
  /**
402
- * Ubuntu 22.04 jammy: eredita da focal e buster
402
+ * Ubuntu noble: eredita da devel e buster
403
+ *
403
404
  */
404
405
  }
405
- else if (this.distro().codenameLikeId === 'jammy') {
406
- const dest = '/etc/penguins-eggs.d/distros/jammy';
406
+ else if (this.distro().codenameLikeId === 'noble') {
407
+ const dest = '/etc/penguins-eggs.d/distros/noble';
407
408
  const focal = `${rootPen}/conf/distros/focal/*`;
408
409
  await exec(`cp -r ${focal} ${dest}`, echo);
409
410
  await exec(`cp -r ${buster}/calamares/calamares-modules/cleanup ${dest}/calamares/calamares-modules/cleanup`, echo);
@@ -414,14 +415,14 @@ export default class Pacman {
414
415
  await exec(`cp -r ${buster}/calamares/modules/unpackfs.yml ${dest}/calamares/modules/unpackfs.yml`, echo);
415
416
  await exec(`cp -r ${buster}/calamares/modules/displaymanager.yml ${dest}/calamares/modules/displaymanager.yml`, echo);
416
417
  /**
417
- * Ubuntu lunar/rhino: eredita da devel e buster
418
+ * Ubuntu rhino: eredita da devel e buster
418
419
  *
419
420
  */
420
421
  }
421
422
  else if (this.distro().codenameLikeId === 'devel') {
422
423
  const dest = '/etc/penguins-eggs.d/distros/devel';
423
- const focal = `${rootPen}/conf/distros/devel/*`;
424
- await exec(`cp -r ${focal} ${dest}`, echo);
424
+ const devel = `${rootPen}/conf/distros/devel/*`;
425
+ await exec(`cp -r ${devel} ${dest}`, echo);
425
426
  await exec(`cp -r ${buster}/calamares/calamares-modules/cleanup ${dest}/calamares/calamares-modules/cleanup`, echo);
426
427
  await exec(`cp -r ${buster}/calamares/calamares-modules/sources-yolk ${dest}/calamares/calamares-modules/sources-yolk`, echo);
427
428
  await exec(`cp -r ${buster}/calamares/calamares-modules/sources-yolk-undo ${dest}/calamares/calamares-modules/sources-yolk-undo`, echo);
@@ -28,6 +28,7 @@ export default class Produce extends Command {
28
28
  theme: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
29
29
  unsecure: import("@oclif/core/interfaces").BooleanFlag<boolean>;
30
30
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
31
+ udf: import("@oclif/core/interfaces").BooleanFlag<boolean>;
31
32
  yolk: import("@oclif/core/interfaces").BooleanFlag<boolean>;
32
33
  };
33
34
  run(): Promise<void>;
@@ -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 ...' }),
@@ -45,6 +48,7 @@ export default class Produce extends Command {
45
48
  theme: Flags.string({ description: 'theme for livecd, calamares branding and partitions' }),
46
49
  unsecure: Flags.boolean({ char: 'u', description: '/root contents are included on live' }),
47
50
  verbose: Flags.boolean({ char: 'v', description: 'verbose' }),
51
+ udf: Flags.boolean({ char: 'U', description: 'udf, create iso UDF format using genisoimage' }),
48
52
  yolk: Flags.boolean({ char: 'y', description: 'force yolk renew' }),
49
53
  };
50
54
  async run() {
@@ -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,7 @@ export default class Produce extends Command {
145
143
  const yolkRenew = flags.yolk;
146
144
  const { nointeractive } = flags;
147
145
  const { noicon } = flags;
146
+ const { udf } = flags;
148
147
  // if clone or cryptedclone unsecure = true
149
148
  const unsecure = flags.unsecure || clone || cryptedclone;
150
149
  /**
@@ -191,7 +190,7 @@ export default class Produce extends Command {
191
190
  const ovary = new Ovary();
192
191
  Utils.warning('Produce an egg...');
193
192
  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);
193
+ await ovary.produce(clone, cryptedclone, scriptOnly, yolkRenew, release, myAddons, myLinks, excludes, nointeractive, noicon, unsecure, udf, verbose);
195
194
  ovary.finished(scriptOnly);
196
195
  }
197
196
  }
@@ -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.15</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.15-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.15
34
34
  $ eggs --help [COMMAND]
35
35
 
36
36
  USAGE
@@ -382,12 +382,13 @@ 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] [-f] [--theme &#x3C;value>] [-u] [-v] [-U] [-y]
386
386
 
387
387
  FLAGS
388
388
  -C, --cryptedclone crypted clone
389
389
  -N, --noicon no icon eggs on desktop
390
390
  -P, --prefix=&#x3C;value> prefix
391
+ -U, --udf udf, create iso UDF format using genisoimage
391
392
  -c, --clone clone
392
393
  -f, --standard standard compression: xz -b 1M
393
394
  -h, --help Show CLI help.
@@ -400,7 +401,7 @@ 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
406
407
  --theme=&#x3C;value> theme for livecd, calamares branding and partitions
@@ -409,19 +410,25 @@ DESCRIPTION
409
410
  produce a live image from your system whithout your data
410
411
 
411
412
  EXAMPLES
412
- sudo eggs produce
413
+ sudo eggs produce # fast compression
413
414
 
414
- sudo eggs produce --max
415
+ sudo eggs produce --max # max compression
415
416
 
416
- sudo eggs produce --pendrive
417
+ sudo eggs produce --pendrive # compression optomized pendrive
417
418
 
418
- sudo eggs produce --clone
419
+ sudo eggs produce --clone # clone
419
420
 
420
- sudo eggs produce --cryptedclone
421
+ sudo eggs produce --cryptedclone # crypted clone
421
422
 
422
423
  sudo eggs produce --basename=colibri
423
424
 
424
- sudo eggs produce --basename=colibri --theme theme --addons adapt
425
+ sudo eggs produce --theme lastos
426
+
427
+ sudo eggs produce --excludes static # you can customize it
428
+
429
+ sudo eggs produce --excludes homes # exclude /home/*
430
+
431
+ sudo eggs produce --excludes home # exclude ~/*
425
432
  </code></pre>
426
433
  <h2><code>eggs status</code></h2>
427
434
  <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.15",
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",