penguins-eggs 25.10.6 → 25.10.19

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.
Files changed (84) hide show
  1. package/.oclif.manifest.json +51 -145
  2. package/README.md +3 -829
  3. package/addons/eggs/theme/livecd/isolinux.main.simple.cfg +3 -3
  4. package/conf/distros/trixie/calamares/modules/shellprocess@boot_deploy.yml +3 -4
  5. package/conf/love.yaml +1 -1
  6. package/dist/classes/distro.js +9 -2
  7. package/dist/classes/diversions.d.ts +1 -1
  8. package/dist/classes/diversions.js +27 -8
  9. package/dist/classes/incubation/incubator.d/archlinux.js +1 -0
  10. package/dist/classes/incubation/incubator.d/trixie.js +7 -10
  11. package/dist/classes/ovary.d/edit-live-fs.d.ts +1 -1
  12. package/dist/classes/ovary.d/edit-live-fs.js +1 -7
  13. package/dist/classes/ovary.d/fertilization.js +1 -0
  14. package/dist/classes/ovary.d/finished.js +1 -5
  15. package/dist/classes/ovary.d/initrd.d.ts +1 -1
  16. package/dist/classes/ovary.d/initrd.js +17 -19
  17. package/dist/classes/ovary.d/live-create-structure.js +1 -4
  18. package/dist/classes/ovary.d/luks-get-password.d.ts +12 -0
  19. package/dist/classes/ovary.d/luks-get-password.js +57 -0
  20. package/dist/classes/ovary.d/luks-home-support.d.ts +12 -0
  21. package/dist/classes/ovary.d/luks-home-support.js +75 -0
  22. package/dist/classes/ovary.d/luks-home.d.ts +15 -0
  23. package/dist/classes/ovary.d/luks-home.js +140 -0
  24. package/dist/classes/ovary.d/luks-root-bootstrap-builder.d.ts +11 -0
  25. package/dist/classes/ovary.d/luks-root-bootstrap-builder.js +45 -0
  26. package/dist/classes/ovary.d/luks-root.d.ts +15 -0
  27. package/dist/classes/ovary.d/luks-root.js +126 -0
  28. package/dist/classes/ovary.d/make-efi.js +1 -1
  29. package/dist/classes/ovary.d/make-squashfs.d.ts +1 -1
  30. package/dist/classes/ovary.d/make-squashfs.js +7 -3
  31. package/dist/classes/ovary.d/produce.d.ts +3 -3
  32. package/dist/classes/ovary.d/produce.js +76 -48
  33. package/dist/classes/ovary.d/syslinux.js +1 -1
  34. package/dist/classes/ovary.d/xorriso-command.d.ts +2 -2
  35. package/dist/classes/ovary.d/xorriso-command.js +27 -29
  36. package/dist/classes/ovary.d.ts +35 -16
  37. package/dist/classes/ovary.js +42 -16
  38. package/dist/classes/utils.d.ts +1 -0
  39. package/dist/classes/utils.js +3 -0
  40. package/dist/commands/config.d.ts +1 -1
  41. package/dist/commands/config.js +2 -2
  42. package/dist/commands/love.d.ts +3 -0
  43. package/dist/commands/love.js +40 -2
  44. package/dist/commands/produce.d.ts +3 -2
  45. package/dist/commands/produce.js +14 -17
  46. package/dist/commands/tools/{ppa.d.ts → repo.d.ts} +2 -2
  47. package/dist/commands/tools/{ppa.js → repo.js} +69 -67
  48. package/dracut/create-symlink +71 -0
  49. package/dracut/dracut-log.txt +3 -0
  50. package/dracut/dracut.conf.d/50-live.conf +24 -6
  51. package/dracut/dracut.conf.d/README.md +10 -0
  52. package/dracut/export +4 -0
  53. package/dracut/export-dracut-analysis +51 -0
  54. package/dracut/export-dracut-log +2 -0
  55. package/dracut/mkisofs +10 -0
  56. package/dracut/modules.d/00debug-shell/debug-hook.sh +13 -0
  57. package/dracut/modules.d/00debug-shell/module-setup.sh +20 -0
  58. package/dracut/modules.d/90block/README.md +7 -0
  59. package/dracut/modules.d/90block/block-cmdline.sh +3 -0
  60. package/dracut/modules.d/90block/module-setup.sh +15 -0
  61. package/dracut/modules.d/95iso-scan/README.md +3 -0
  62. package/dracut/modules.d/95iso-scan/iso-scan-fallback.sh +12 -0
  63. package/dracut/modules.d/95iso-scan/iso-scan.sh +92 -0
  64. package/dracut/modules.d/95iso-scan/module-setup.sh +18 -0
  65. package/dracut/modules.d/95luks-loop/README.md +9 -0
  66. package/dracut/modules.d/95luks-loop/luks-loop.sh +90 -0
  67. package/dracut/modules.d/95luks-loop/module-setup.sh +17 -0
  68. package/dracut/renew-initramfs +17 -0
  69. package/dracut/sbin2bin +10 -0
  70. package/dracut/update-dracut-conf-d +2 -0
  71. package/dracut/update-dracut-modules +62 -0
  72. package/manpages/doc/man/eggs.1.gz +0 -0
  73. package/manpages/doc/man/eggs.html +7 -661
  74. package/package.json +9 -8
  75. package/perrisbrewery/template/dependencies.yaml +6 -5
  76. package/scripts/_eggs +16 -31
  77. package/scripts/eggs.bash +4 -6
  78. package/scripts/luks-root-bootstrap-create.sh +235 -0
  79. package/scripts/luks-root-unlock.sh +172 -0
  80. package/scripts/mount-encrypted-home.sh +223 -0
  81. package/dist/commands/syncfrom.d.ts +0 -45
  82. package/dist/commands/syncfrom.js +0 -152
  83. package/dist/commands/syncto.d.ts +0 -40
  84. package/dist/commands/syncto.js +0 -175
@@ -28,18 +28,25 @@ import { makeDotDisk } from './ovary.d/make-dot-disk.js';
28
28
  import { kernelCopy } from './ovary.d/kernel-copy.js';
29
29
  import { liveCreateStructure } from './ovary.d/live-create-structure.js';
30
30
  import { finished } from './ovary.d/finished.js';
31
+ import { luksGetPassword } from './ovary.d/luks-get-password.js';
32
+ import { luksHome } from './ovary.d/luks-home.js';
33
+ import { installHomecryptSupport } from './ovary.d/luks-home-support.js';
34
+ import { luksRoot } from './ovary.d/luks-root.js';
35
+ import { createBootstrapFilesystem } from './ovary.d/luks-root-bootstrap-builder.js';
31
36
  /**
32
37
  * Ovary:
33
38
  */
34
39
  export default class Ovary {
35
40
  cliAutologin: CliAutologin;
36
- clone: boolean;
37
41
  compression: string;
38
- cryptedclone: boolean;
42
+ clone: boolean;
43
+ homecrypt: boolean;
44
+ fullcrypt: boolean;
39
45
  echo: {};
40
46
  familyId: string;
41
47
  distroId: string;
42
48
  distroLike: string;
49
+ distroLliveMediumPath: string;
43
50
  genisoimage: boolean;
44
51
  incubator: Incubator;
45
52
  settings: Settings;
@@ -57,31 +64,43 @@ export default class Ovary {
57
64
  dotMnt: string;
58
65
  dotOverlay: IWorkDir;
59
66
  dotLivefs: string;
67
+ luksUuid: string;
68
+ luksName: string;
69
+ luksMappedName: string;
70
+ luksMountpoint: string;
71
+ luksFile: string;
72
+ luksDevice: string;
73
+ luksPassword: string;
60
74
  fertilization: typeof fertilization;
61
75
  produce: typeof produce;
76
+ addExclusion: typeof addExclusion;
62
77
  bindLiveFs: typeof bindLiveFs;
63
78
  bindVfs: typeof bindVfs;
64
- editLiveFs: typeof editLiveFs;
65
- makeEfi: typeof makeEfi;
66
- makeSquashfs: typeof makeSquashfs;
67
- addExclusion: typeof addExclusion;
68
- xorrisoCommand: typeof xorrisoCommand;
69
- createXdgAutostart: typeof createXdgAutostart;
70
79
  copied: typeof copied;
71
- merged: typeof merged;
72
- mergedAndOverlay: typeof mergedAndOverlay;
73
- makeIso: typeof makeIso;
80
+ createXdgAutostart: typeof createXdgAutostart;
81
+ editLiveFs: typeof editLiveFs;
82
+ luksGetPassword: typeof luksGetPassword;
83
+ luksHome: typeof luksHome;
84
+ installHomecryptSupport: typeof installHomecryptSupport;
85
+ luksRoot: typeof luksRoot;
86
+ createBootstrapFilesystem: typeof createBootstrapFilesystem;
87
+ finished: typeof finished;
74
88
  initrdAlpine: typeof initrdAlpine;
75
89
  initrdArch: typeof initrdArch;
76
90
  initrdDebian: typeof initrdDebian;
77
91
  initrdDracut: typeof initrdDracut;
78
- userCreateLive: typeof userCreateLive;
92
+ kernelCopy: typeof kernelCopy;
93
+ liveCreateStructure: typeof liveCreateStructure;
94
+ makeDotDisk: typeof makeDotDisk;
95
+ makeEfi: typeof makeEfi;
96
+ makeIso: typeof makeIso;
97
+ makeSquashfs: typeof makeSquashfs;
98
+ merged: typeof merged;
99
+ mergedAndOverlay: typeof mergedAndOverlay;
79
100
  syslinux: typeof syslinux;
80
101
  uBindLiveFs: typeof uBindLiveFs;
81
102
  ubindVfs: typeof ubindVfs;
103
+ userCreateLive: typeof userCreateLive;
82
104
  usersRemove: typeof usersRemove;
83
- makeDotDisk: typeof makeDotDisk;
84
- kernelCopy: typeof kernelCopy;
85
- liveCreateStructure: typeof liveCreateStructure;
86
- finished: typeof finished;
105
+ xorrisoCommand: typeof xorrisoCommand;
87
106
  }
@@ -5,7 +5,9 @@
5
5
  * email: piero.proietti@gmail.com
6
6
  * license: MIT
7
7
  */
8
+ // backup
8
9
  import path from 'node:path';
10
+ // libraries
9
11
  import CliAutologin from './cli-autologin.js';
10
12
  // Methods
11
13
  import { fertilization } from './ovary.d/fertilization.js';
@@ -27,6 +29,13 @@ import { makeDotDisk } from './ovary.d/make-dot-disk.js';
27
29
  import { kernelCopy } from './ovary.d/kernel-copy.js';
28
30
  import { liveCreateStructure } from './ovary.d/live-create-structure.js';
29
31
  import { finished } from './ovary.d/finished.js';
32
+ import { luksGetPassword } from './ovary.d/luks-get-password.js';
33
+ import { luksHome } from './ovary.d/luks-home.js';
34
+ import { installHomecryptSupport } from './ovary.d/luks-home-support.js';
35
+ import { luksRoot } from './ovary.d/luks-root.js';
36
+ import { createBootstrapFilesystem } from './ovary.d/luks-root-bootstrap-builder.js';
37
+ // Functions
38
+ // import initramfs from '../krill/classes/sequence.d/initramfs.js'
30
39
  // _dirname
31
40
  const __dirname = path.dirname(new URL(import.meta.url).pathname);
32
41
  /**
@@ -34,13 +43,15 @@ const __dirname = path.dirname(new URL(import.meta.url).pathname);
34
43
  */
35
44
  export default class Ovary {
36
45
  cliAutologin = new CliAutologin();
37
- clone = false;
38
46
  compression = '';
39
- cryptedclone = false;
47
+ clone = false;
48
+ homecrypt = false;
49
+ fullcrypt = false;
40
50
  echo = {};
41
51
  familyId = '';
42
52
  distroId = '';
43
53
  distroLike = '';
54
+ distroLliveMediumPath = '';
44
55
  genisoimage = false;
45
56
  incubator = {};
46
57
  settings = {};
@@ -58,33 +69,48 @@ export default class Ovary {
58
69
  dotMnt = '';
59
70
  dotOverlay = {};
60
71
  dotLivefs = '';
72
+ luksUuid = '';
73
+ luksName = '';
74
+ luksMappedName = '';
75
+ luksMountpoint = '';
76
+ luksFile = '';
77
+ luksDevice = '';
78
+ luksPassword = '';
61
79
  // I put all methods on ovary.d
62
80
  fertilization = fertilization;
63
81
  produce = produce;
64
82
  // called only inside Ovary
83
+ addExclusion = addExclusion;
65
84
  bindLiveFs = bindLiveFs;
66
85
  bindVfs = bindVfs;
67
- editLiveFs = editLiveFs;
68
- makeEfi = makeEfi;
69
- makeSquashfs = makeSquashfs;
70
- addExclusion = addExclusion;
71
- xorrisoCommand = xorrisoCommand;
72
- createXdgAutostart = createXdgAutostart;
73
86
  copied = copied;
74
- merged = merged;
75
- mergedAndOverlay = mergedAndOverlay;
76
- makeIso = makeIso;
87
+ createXdgAutostart = createXdgAutostart;
88
+ editLiveFs = editLiveFs;
89
+ // luks
90
+ luksGetPassword = luksGetPassword;
91
+ // luksHome
92
+ luksHome = luksHome;
93
+ installHomecryptSupport = installHomecryptSupport;
94
+ // luksRoot
95
+ luksRoot = luksRoot;
96
+ createBootstrapFilesystem = createBootstrapFilesystem;
97
+ finished = finished;
77
98
  initrdAlpine = initrdAlpine;
78
99
  initrdArch = initrdArch;
79
100
  initrdDebian = initrdDebian;
80
101
  initrdDracut = initrdDracut;
81
- userCreateLive = userCreateLive;
102
+ kernelCopy = kernelCopy;
103
+ liveCreateStructure = liveCreateStructure;
104
+ makeDotDisk = makeDotDisk;
105
+ makeEfi = makeEfi;
106
+ makeIso = makeIso;
107
+ makeSquashfs = makeSquashfs;
108
+ merged = merged;
109
+ mergedAndOverlay = mergedAndOverlay;
82
110
  syslinux = syslinux;
83
111
  uBindLiveFs = uBindLiveFs;
84
112
  ubindVfs = ubindVfs;
113
+ userCreateLive = userCreateLive;
85
114
  usersRemove = usersRemove;
86
- makeDotDisk = makeDotDisk;
87
- kernelCopy = kernelCopy;
88
- liveCreateStructure = liveCreateStructure;
89
- finished = finished;
115
+ xorrisoCommand = xorrisoCommand;
90
116
  }
@@ -66,6 +66,7 @@ export default class Utils {
66
66
  * @param msg
67
67
  */
68
68
  static warning(msg?: string): void;
69
+ static success(msg?: string): void;
69
70
  static error(msg?: string): void;
70
71
  /**
71
72
  * Return the primary user's name
@@ -177,6 +177,9 @@ export default class Utils {
177
177
  static warning(msg = '') {
178
178
  console.log(pjson.shortName + ' >>> ' + chalk.cyanBright(msg) + '.');
179
179
  }
180
+ static success(msg = '') {
181
+ console.log(pjson.shortName + ' >>> ' + chalk.greenBright(msg) + '.');
182
+ }
180
183
  static error(msg = '') {
181
184
  console.error(pjson.shortName + ' >>> ' + chalk.bgMagentaBright(chalk.whiteBright(msg)) + '.');
182
185
  }
@@ -30,6 +30,6 @@ export default class Config extends Command {
30
30
  *
31
31
  * @param verbose
32
32
  */
33
- static thatWeNeed(nointeractive?: boolean, verbose?: boolean, cryptedclone?: boolean): Promise<IInstall>;
33
+ static thatWeNeed(nointeractive?: boolean, verbose?: boolean, homecrypt?: boolean): Promise<IInstall>;
34
34
  run(): Promise<void>;
35
35
  }
@@ -69,12 +69,12 @@ export default class Config extends Command {
69
69
  *
70
70
  * @param verbose
71
71
  */
72
- static async thatWeNeed(nointeractive = false, verbose = false, cryptedclone = false) {
72
+ static async thatWeNeed(nointeractive = false, verbose = false, homecrypt = false) {
73
73
  const i = {};
74
74
  i.distroTemplate = !Pacman.distroTemplateCheck();
75
75
  i.addEfi = !Pacman.isUefi();
76
76
  i.calamares = false;
77
- if (!cryptedclone &&
77
+ if (!homecrypt &&
78
78
  !Pacman.calamaresExists() &&
79
79
  Pacman.isInstalledGui() &&
80
80
  Pacman.isCalamaresAvailable()) {
@@ -16,6 +16,9 @@ export default class Love extends Command {
16
16
  help: import("@oclif/core/interfaces").BooleanFlag<void>;
17
17
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
18
  nointeractive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ clone: import("@oclif/core/interfaces").BooleanFlag<boolean>;
20
+ homecrypt: import("@oclif/core/interfaces").BooleanFlag<boolean>;
21
+ fullcrypt: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
22
  };
20
23
  run(): Promise<void>;
21
24
  }
@@ -23,6 +23,9 @@ export default class Love extends Command {
23
23
  help: Flags.help({ char: 'h' }),
24
24
  verbose: Flags.boolean({ char: 'v' }),
25
25
  nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
26
+ clone: Flags.boolean({ char: 'c', description: 'clone (uncrypted)' }),
27
+ homecrypt: Flags.boolean({ char: 'k', description: 'clone crypted home' }),
28
+ fullcrypt: Flags.boolean({ char: 'f', description: 'clone crypted full' }),
26
29
  };
27
30
  async run() {
28
31
  const { args, flags } = await this.parse(Love);
@@ -32,6 +35,31 @@ export default class Love extends Command {
32
35
  verbose = true;
33
36
  flagVerbose = '--verbose';
34
37
  }
38
+ let clone = false;
39
+ if (flags.clone) {
40
+ clone = true;
41
+ }
42
+ let homecrypt = false;
43
+ if (flags.homecrypt) {
44
+ clone = false;
45
+ homecrypt = true;
46
+ }
47
+ let fullcrypt = false;
48
+ if (flags.fullcrypt) {
49
+ fullcrypt = true;
50
+ clone = false;
51
+ homecrypt = false;
52
+ }
53
+ let flagClone = '';
54
+ if (clone) {
55
+ flagClone = "--clone";
56
+ }
57
+ else if (homecrypt) {
58
+ flagClone = "--homecrypt";
59
+ }
60
+ else if (fullcrypt) {
61
+ flagClone = "--fullcrypt";
62
+ }
35
63
  let nointeractive = false;
36
64
  let flagNointeractive = '';
37
65
  if (flags.nointeractive) {
@@ -58,12 +86,22 @@ export default class Love extends Command {
58
86
  console.log('The following commands will be executed:');
59
87
  console.log();
60
88
  for (const cmd of cmds) {
61
- console.log(`- ${cmdSudo} ${cmd} ${flagVerbose} ${flagNointeractive}`);
89
+ if (cmd.includes('produce')) {
90
+ console.log(`- ${cmdSudo} ${cmd} ${flagVerbose} ${flagClone} ${flagNointeractive}`);
91
+ }
92
+ else {
93
+ console.log(`- ${cmdSudo} ${cmd} ${flagVerbose} ${flagNointeractive}`);
94
+ }
62
95
  }
63
96
  console.log();
64
97
  if (nointeractive || await Utils.customConfirm()) {
65
98
  for (const cmd of cmds) {
66
- await exec(`${cmdSudo} ${cmd} ${flagVerbose} ${flagNointeractive}`);
99
+ if (cmd.includes('produce')) {
100
+ await exec(`${cmdSudo} ${cmd} ${flagVerbose} ${flagClone} ${flagNointeractive}`);
101
+ }
102
+ else {
103
+ await exec(`${cmdSudo} ${cmd} ${flagVerbose} ${flagNointeractive}`);
104
+ }
67
105
  }
68
106
  }
69
107
  else {
@@ -13,7 +13,8 @@ export default class Produce extends Command {
13
13
  addons: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
14
14
  basename: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
15
15
  clone: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
- cryptedclone: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ homecrypt: import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
+ fullcrypt: import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
18
  excludes: import("@oclif/core/interfaces").OptionFlag<string[] | undefined, import("@oclif/core/interfaces").CustomOptions>;
18
19
  help: import("@oclif/core/interfaces").BooleanFlag<void>;
19
20
  kernel: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
@@ -27,7 +28,7 @@ export default class Produce extends Command {
27
28
  script: import("@oclif/core/interfaces").BooleanFlag<boolean>;
28
29
  standard: import("@oclif/core/interfaces").BooleanFlag<boolean>;
29
30
  theme: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
30
- unsecure: import("@oclif/core/interfaces").BooleanFlag<boolean>;
31
+ includeRoot: import("@oclif/core/interfaces").BooleanFlag<boolean>;
31
32
  verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
32
33
  yolk: import("@oclif/core/interfaces").BooleanFlag<boolean>;
33
34
  };
@@ -19,25 +19,21 @@ 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
21
  'sudo eggs produce # zstd fast compression',
22
- 'sudo eggs produce --standard # xz compression',
23
- 'sudo eggs produce --max # xz max compression',
24
22
  'sudo eggs produce --pendrive # zstd compression optimized pendrive',
25
- 'sudo eggs produce --clone # clone',
26
- 'sudo eggs produce --cryptedclone # crypted clone',
23
+ 'sudo eggs produce --clone # clear clone (unencrypted)',
24
+ 'sudo eggs produce --homecrypt # clone crypted home (all inside /home is cypted)',
25
+ 'sudo eggs produce --fullcrypt # clone crypted full (entire system is crypted)',
27
26
  'sudo eggs produce --basename=colibri',
28
- 'sudo eggs produce --theme lastos',
29
- 'sudo eggs produce --excludes static # you can customize it',
30
- 'sudo eggs produce --excludes homes # exclude /home/*',
31
- 'sudo eggs produce --excludes home # exclude ~/*'
32
27
  ];
33
28
  static flags = {
34
29
  addons: Flags.string({ description: 'addons to be used: adapt, pve, rsupport', multiple: true }),
35
30
  basename: Flags.string({ description: 'basename' }),
36
- clone: Flags.boolean({ char: 'c', description: 'clone' }),
37
- cryptedclone: Flags.boolean({ char: 'C', description: 'crypted clone' }),
31
+ clone: Flags.boolean({ char: 'c', description: 'clone (uncrypted)' }),
32
+ homecrypt: Flags.boolean({ char: 'k', description: 'clone crypted home' }),
33
+ fullcrypt: Flags.boolean({ char: 'f', description: 'clone crypted full' }),
38
34
  excludes: Flags.string({ description: 'use: static, homes, home', multiple: true }),
39
35
  help: Flags.help({ char: 'h' }),
40
- kernel: Flags.string({ char: 'k', description: 'kernel version' }),
36
+ kernel: Flags.string({ char: 'K', description: 'kernel version' }),
41
37
  links: Flags.string({ description: 'desktop links', multiple: true }),
42
38
  max: Flags.boolean({ char: 'm', description: 'max compression: xz -Xbcj ...' }),
43
39
  noicon: Flags.boolean({ char: 'N', description: 'no icon eggs on desktop' }),
@@ -48,7 +44,7 @@ export default class Produce extends Command {
48
44
  script: Flags.boolean({ char: 's', description: 'script mode. Generate scripts to manage iso build' }),
49
45
  standard: Flags.boolean({ char: 'S', description: 'standard compression: xz -b 1M' }),
50
46
  theme: Flags.string({ description: 'theme for livecd, calamares branding and partitions' }),
51
- unsecure: Flags.boolean({ char: 'u', description: '/root contents are included on live' }),
47
+ includeRoot: Flags.boolean({ char: 'i', description: 'folder /root is included on live' }),
52
48
  verbose: Flags.boolean({ char: 'v', description: 'verbose' }),
53
49
  yolk: Flags.boolean({ char: 'y', description: 'force yolk renew' })
54
50
  };
@@ -137,15 +133,16 @@ export default class Produce extends Command {
137
133
  compression = compressors.standard();
138
134
  }
139
135
  const { release } = flags;
140
- const { cryptedclone } = flags;
141
136
  const { clone } = flags;
137
+ const { homecrypt } = flags;
138
+ const { fullcrypt } = flags;
142
139
  const { verbose } = flags;
143
140
  const scriptOnly = flags.script;
144
141
  const yolkRenew = flags.yolk;
145
142
  const { nointeractive } = flags;
146
143
  const { noicon } = flags;
147
- // if clone or cryptedclone unsecure = true
148
- const unsecure = flags.unsecure || clone || cryptedclone;
144
+ // if clone or homecrypt includeRoot = true
145
+ const includeRoot = flags.includeRoot || clone || homecrypt;
149
146
  let { kernel } = flags;
150
147
  if (kernel === undefined) {
151
148
  kernel = '';
@@ -186,7 +183,7 @@ export default class Produce extends Command {
186
183
  process.exit();
187
184
  }
188
185
  }
189
- const i = await Config.thatWeNeed(nointeractive, verbose, cryptedclone);
186
+ const i = await Config.thatWeNeed(nointeractive, verbose, homecrypt);
190
187
  if ((i.needUpdate || i.configurationInstall || i.configurationRefresh || i.distroTemplate)) {
191
188
  await Config.install(i, nointeractive, verbose);
192
189
  }
@@ -210,7 +207,7 @@ export default class Produce extends Command {
210
207
  Utils.warning(message);
211
208
  }
212
209
  if (await ovary.fertilization(prefix, basename, theme, compression, !nointeractive)) {
213
- await ovary.produce(kernel, clone, cryptedclone, scriptOnly, yolkRenew, release, myAddons, myLinks, excludes, nointeractive, noicon, unsecure, verbose);
210
+ await ovary.produce(kernel, clone, homecrypt, fullcrypt, scriptOnly, yolkRenew, release, myAddons, myLinks, excludes, nointeractive, noicon, includeRoot, verbose);
214
211
  ovary.finished(scriptOnly);
215
212
  }
216
213
  }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * ./src/commands/tools/ppa.ts
2
+ * ./src/commands/tools/repo.ts
3
3
  * penguins-eggs v.25.7.x / ecmascript 2020
4
4
  * author: Piero Proietti
5
5
  * email: piero.proietti@gmail.com
@@ -14,7 +14,7 @@ import { Command } from '@oclif/core';
14
14
  /**
15
15
  *
16
16
  */
17
- export default class Ppa extends Command {
17
+ export default class Repo extends Command {
18
18
  static description: string;
19
19
  static examples: string[];
20
20
  static flags: {