penguins-eggs 9.3.23 → 9.3.25

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.
@@ -58,18 +58,15 @@ class Produce extends core_1.Command {
58
58
  }
59
59
  const compressors = new compressors_1.default();
60
60
  await compressors.populate();
61
- let compression = compressors.normal();
61
+ let compression = compressors.fast();
62
62
  if (flags.max) {
63
63
  compression = compressors.max();
64
64
  }
65
- else if (flags.fast) {
66
- compression = compressors.fast();
65
+ else if (flags.standard) {
66
+ compression = compressors.normal();
67
67
  }
68
68
  const release = flags.release;
69
- // if (release) {
70
- // compression = compressors.max()
71
- // }
72
- const backup = flags.backup;
69
+ const cryptedclone = flags.cryptedclone;
73
70
  const clone = flags.clone;
74
71
  const verbose = flags.verbose;
75
72
  const scriptOnly = flags.script;
@@ -91,7 +88,7 @@ class Produce extends core_1.Command {
91
88
  }
92
89
  }
93
90
  }
94
- const i = await config_1.default.thatWeNeed(nointeractive, verbose, backup);
91
+ const i = await config_1.default.thatWeNeed(nointeractive, verbose, cryptedclone);
95
92
  if ((i.needApt || i.configurationInstall || i.configurationRefresh || i.distroTemplate) && (await utils_1.default.customConfirm('Select yes to continue...'))) {
96
93
  await config_1.default.install(i, verbose);
97
94
  }
@@ -114,7 +111,7 @@ class Produce extends core_1.Command {
114
111
  const ovary = new ovary_1.default();
115
112
  utils_1.default.warning('Produce an egg...');
116
113
  if (await ovary.fertilization(prefix, basename, theme, compression, !nointeractive)) {
117
- await ovary.produce(backup, clone, scriptOnly, yolkRenew, release, myAddons, nointeractive, verbose);
114
+ await ovary.produce(clone, cryptedclone, scriptOnly, yolkRenew, release, myAddons, nointeractive, verbose);
118
115
  ovary.finished(scriptOnly);
119
116
  }
120
117
  }
@@ -126,16 +123,16 @@ class Produce extends core_1.Command {
126
123
  exports.default = Produce;
127
124
  Produce.flags = {
128
125
  addons: core_1.Flags.string({ multiple: true, description: 'addons to be used: adapt, ichoice, pve, rsupport' }),
129
- backup: core_1.Flags.boolean({ char: 'b', description: 'backup mode (CRYPTED)' }),
130
126
  basename: core_1.Flags.string({ description: 'basename' }),
131
- clone: core_1.Flags.boolean({ char: 'c', description: 'clone mode' }),
132
- fast: core_1.Flags.boolean({ char: 'f', description: 'fast compression' }),
127
+ clone: core_1.Flags.boolean({ char: 'c', description: 'clone' }),
128
+ cryptedclone: core_1.Flags.boolean({ char: 'C', description: 'crypted clone' }),
133
129
  help: core_1.Flags.help({ char: 'h' }),
134
130
  max: core_1.Flags.boolean({ char: 'm', description: 'max compression' }),
135
131
  nointeractive: core_1.Flags.boolean({ char: 'n', description: 'don\'t ask for user interctions' }),
136
132
  prefix: core_1.Flags.string({ char: 'p', description: 'prefix' }),
137
133
  release: core_1.Flags.boolean({ description: 'release: max compression, remove penguins-eggs and calamares after installation' }),
138
134
  script: core_1.Flags.boolean({ char: 's', description: 'script mode. Generate scripts to manage iso build' }),
135
+ standard: core_1.Flags.boolean({ char: 'f', description: 'standard compression' }),
139
136
  theme: core_1.Flags.string({ description: 'theme for livecd, calamares branding and partitions' }),
140
137
  verbose: core_1.Flags.boolean({ char: 'v', description: 'verbose' }),
141
138
  yolk: core_1.Flags.boolean({ char: 'y', description: '-y force yolk renew' }),
@@ -143,10 +140,11 @@ Produce.flags = {
143
140
  Produce.description = 'produce a live image from your system whithout your data';
144
141
  Produce.examples = [
145
142
  "sudo eggs produce",
146
- "sudo eggs produce --fast",
143
+ "sudo eggs produce --standard",
147
144
  "sudo eggs produce --max",
148
- "sudo eggs produce --fast --basename=colibri",
149
- "sudo eggs produce --fast --basename=colibri --theme /path/to/theme --addons adapt",
150
- "sudo eggs produce --fast --clone",
151
- "sudo eggs produce --fast --backup",
145
+ "sudo eggs produce --max --basename=colibri",
146
+ "sudo eggs produce --cryptedclone",
147
+ "sudo eggs produce --clone",
148
+ "sudo eggs produce --basename=colibri",
149
+ "sudo eggs produce --basename=colibri --theme /path/to/theme --addons adapt",
152
150
  ];
@@ -21,10 +21,10 @@ class Syncfrom extends core_1.Command {
21
21
  this.verbose = false;
22
22
  this.echo = {};
23
23
  this.rootDir = '/';
24
- this.luksName = 'luks-eggs-backup';
24
+ this.luksName = 'luks-eggs-data';
25
25
  this.luksFile = `/run/live/medium/live/${this.luksName}`;
26
26
  this.luksDevice = `/dev/mapper/${this.luksName}`;
27
- this.luksMountpoint = '/tmp/eggs-backup';
27
+ this.luksMountpoint = '/tmp/eggs-data';
28
28
  }
29
29
  async run() {
30
30
  const { flags } = await this.parse(Syncfrom);
@@ -50,7 +50,7 @@ class Syncfrom extends core_1.Command {
50
50
  }
51
51
  if (utils_1.default.isRoot()) {
52
52
  if (fileVolume === '') {
53
- fileVolume = '/run/live/medium/live/luks-eggs-backup';
53
+ fileVolume = '/run/live/medium/live/luks-eggs-dada';
54
54
  }
55
55
  if (!utils_1.default.isLive()) {
56
56
  /**
@@ -60,7 +60,7 @@ class Syncfrom extends core_1.Command {
60
60
  this.luksName = path_1.default.basename(fileVolume);
61
61
  this.luksFile = fileVolume;
62
62
  this.luksDevice = `/dev/mapper/${this.luksName}`;
63
- this.luksMountpoint = '/tmp/eggs-backup';
63
+ this.luksMountpoint = '/tmp/eggs-data';
64
64
  await this.restorePrivateData();
65
65
  if (await utils_1.default.customConfirm(`Your system was updated! Press a key to reboot`)) {
66
66
  await (0, utils_2.exec)('reboot');
@@ -77,7 +77,7 @@ class Syncfrom extends core_1.Command {
77
77
  this.luksName = path_1.default.basename(fileVolume);
78
78
  this.luksFile = fileVolume;
79
79
  this.luksDevice = `/dev/mapper/${this.luksName}`;
80
- this.luksMountpoint = '/tmp/eggs-backup';
80
+ this.luksMountpoint = '/tmp/eggs-data';
81
81
  await this.restorePrivateData();
82
82
  }
83
83
  }
@@ -108,7 +108,7 @@ class Syncfrom extends core_1.Command {
108
108
  await (0, utils_2.exec)(`cp ${this.luksMountpoint}/etc/group ${this.rootDir}/etc/`, this.echo);
109
109
  }
110
110
  }
111
- utils_1.default.warning('Restoring backup data');
111
+ utils_1.default.warning('Restoring crypted data');
112
112
  let cmd = `rsync -a ${this.luksMountpoint}/ROOT/ ${this.rootDir}/`;
113
113
  if (destDelete) {
114
114
  cmd = `rsync --archive --delete ${this.luksMountpoint}/ROOT/ ${this.rootDir}/`;
@@ -161,6 +161,6 @@ Syncfrom.flags = {
161
161
  };
162
162
  Syncfrom.description = 'restore users and user data from a LUKS volumes';
163
163
  Syncfrom.examples = [
164
- 'sudo eggs restore',
165
- 'sudo eggs restore --file /path/to/fileLUKS',
164
+ 'sudo eggs syncfrom',
165
+ 'sudo eggs syncfrom --file /path/to/fileLUKS',
166
166
  ];
@@ -67,12 +67,12 @@ class Syncto extends core_1.Command {
67
67
  * restore con file
68
68
  */
69
69
  if (fileVolume === '') {
70
- fileVolume = '/tmp/luks-eggs-backup';
70
+ fileVolume = '/tmp/luks-eggs-data';
71
71
  }
72
72
  this.luksName = path_1.default.basename(fileVolume);
73
73
  this.luksFile = fileVolume;
74
74
  this.luksDevice = `/dev/mapper/${this.luksName}`;
75
- this.luksMountpoint = '/tmp/eggs-backup';
75
+ this.luksMountpoint = '/tmp/eggs-data';
76
76
  if (!fs_1.default.existsSync(fileVolume)) {
77
77
  await this.luksCreate();
78
78
  }
@@ -124,11 +124,14 @@ class Sequence {
124
124
  this.settings = {};
125
125
  this.remix = {};
126
126
  this.distro = {};
127
- this.luksName = '';
128
- this.luksFile = '';
129
- this.luksDevice = '';
130
- this.luksMountpoint = '';
131
- this.personalFile = '';
127
+ // Crypted Clone
128
+ this.luksName = 'luks-eggs-data';
129
+ this.luksFile = `/run/live/medium/live/${this.luksName}`;
130
+ this.luksDevice = `/dev/mapper/${this.luksName}`;
131
+ this.luksMountpoint = `/mnt`;
132
+ // Clone (Uncrypted)
133
+ this.is_clone = fs_1.default.existsSync('/etc/penguins-eggs.d/is_clone');
134
+ this.is_crypted_clone = fs_1.default.existsSync('/etc/penguins-eggs.d/is_crypted_clone');
132
135
  this.unattended = false;
133
136
  this.installer = (0, installer_1.installer)();
134
137
  this.settings = new settings_1.default();
@@ -148,13 +151,6 @@ class Sequence {
148
151
  this.devices.swap = {};
149
152
  this.distro = new distro_1.default(this.remix);
150
153
  this.efi = fs_1.default.existsSync('/sys/firmware/efi/efivars');
151
- // Per il restore dei dati
152
- this.luksName = 'luks-eggs-backup';
153
- this.luksFile = `/run/live/medium/live/${this.luksName}`;
154
- this.luksDevice = `/dev/mapper/${this.luksName}`;
155
- this.luksMountpoint = `/mnt`;
156
- // per il restore dei dati personali controllo esistenza di is-clone.md
157
- this.personalFile = `/run/live/medium/live/is-clone.md`;
158
154
  }
159
155
  /**
160
156
  * install
@@ -176,7 +172,7 @@ class Sequence {
176
172
  let message = "";
177
173
  let isPartitioned = false;
178
174
  message = "Creating partitions";
179
- percent = 0.01;
175
+ percent = 0.03;
180
176
  try {
181
177
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
182
178
  isPartitioned = await this.partition();
@@ -187,7 +183,7 @@ class Sequence {
187
183
  if (isPartitioned) {
188
184
  // formatting
189
185
  message = "Formatting file system ";
190
- percent = 0.02;
186
+ percent = 0.06;
191
187
  try {
192
188
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
193
189
  await this.mkfs();
@@ -197,7 +193,7 @@ class Sequence {
197
193
  }
198
194
  // mountFs
199
195
  message = "Mounting target file system ";
200
- percent = 0.03;
196
+ percent = 0.09;
201
197
  try {
202
198
  redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
203
199
  await this.mountFs();
@@ -207,7 +203,7 @@ class Sequence {
207
203
  }
208
204
  // mountVfs
209
205
  message = "Mounting on target VFS ";
210
- percent = 0.06;
206
+ percent = 0.12;
211
207
  try {
212
208
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
213
209
  await this.mountVfs();
@@ -217,7 +213,7 @@ class Sequence {
217
213
  }
218
214
  // unpackfs
219
215
  message = "Unpacking filesystem ";
220
- percent = 0.10;
216
+ percent = 0.15;
221
217
  try {
222
218
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
223
219
  await this.unpackfs();
@@ -228,7 +224,7 @@ class Sequence {
228
224
  // dpkg-unsafe-io
229
225
  if (this.distro.familyId === 'debian') {
230
226
  message = "dpkg-unsafe-io";
231
- percent = 0.11;
227
+ percent = 0.40;
232
228
  try {
233
229
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
234
230
  await this.execCalamaresModule('dpkg-unsafe-io');
@@ -237,26 +233,10 @@ class Sequence {
237
233
  await utils_1.default.pressKeyToExit(JSON.stringify(error));
238
234
  }
239
235
  }
240
- /**
241
- * IF RESTORE USERS DATA
242
- */
243
- if (fs_1.default.existsSync(this.luksFile)) {
244
- // restoring users data
245
- message = "Restore private data from backup ";
246
- percent = 0.37;
247
- let cmd = 'eggs syncfrom --rootdir /tmp/calamares-krill-root/';
248
- try {
249
- await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent, spinner: true }));
250
- await (0, utils_2.exec)(cmd, utils_1.default.setEcho(true));
251
- }
252
- catch (error) {
253
- await utils_1.default.pressKeyToExit(cmd);
254
- }
255
- }
256
236
  // sources-yolk
257
237
  if (this.distro.familyId === 'debian') {
258
238
  message = 'sources-yolk';
259
- percent = 0.40;
239
+ percent = 0.43;
260
240
  try {
261
241
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent, spinner: true }));
262
242
  await this.execCalamaresModule('sources-yolk');
@@ -267,7 +247,7 @@ class Sequence {
267
247
  }
268
248
  // machineid
269
249
  message = 'machineid';
270
- percent = 0.41;
250
+ percent = 0.46;
271
251
  try {
272
252
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent, spinner: true }));
273
253
  await this.machineId();
@@ -277,7 +257,7 @@ class Sequence {
277
257
  }
278
258
  // fstab
279
259
  message = "Creating fstab ";
280
- percent = 0.47;
260
+ percent = 0.49;
281
261
  try {
282
262
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
283
263
  await this.fstab(this.partitions.installationDevice);
@@ -285,46 +265,39 @@ class Sequence {
285
265
  catch (error) {
286
266
  await utils_1.default.pressKeyToExit(JSON.stringify(error));
287
267
  }
288
- // locale
289
- message = "Locale ";
290
- percent = 0.47;
291
- try {
292
- redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
293
- await this.locale();
294
- }
295
- catch (error) {
296
- await utils_1.default.pressKeyToExit(JSON.stringify(error));
297
- }
298
- // keyboard
299
- message = "settings keyboard ";
300
- percent = 0.48;
301
- try {
302
- this.keyboard();
303
- }
304
- catch (error) {
305
- await utils_1.default.pressKeyToExit(JSON.stringify(error));
306
- }
307
- // localeCfg
308
- message = "localeCfg";
309
- percent = 0.50;
310
- try {
311
- this.localeCfg();
312
- }
313
- catch (error) {
314
- await utils_1.default.pressKeyToExit(JSON.stringify(error));
268
+ /**
269
+ * CryptedClone exec eggs syncfrom
270
+ */
271
+ if (this.is_crypted_clone) {
272
+ message = "Restore private data from crypted clone ";
273
+ if (fs_1.default.existsSync(this.luksFile)) {
274
+ percent = 0.55;
275
+ let cmd = `eggs syncfrom --rootdir /tmp/calamares-krill-root/ --file ${this.luksFile}`;
276
+ try {
277
+ await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent, spinner: true }));
278
+ await (0, utils_2.exec)(cmd, utils_1.default.setEcho(true));
279
+ this.is_clone = true; // Adesso è un clone
280
+ }
281
+ catch (error) {
282
+ await utils_1.default.pressKeyToExit(cmd);
283
+ }
284
+ }
285
+ else {
286
+ await utils_1.default.pressKeyToExit(`Cannot find LUKS file ${this.luksFile}`);
287
+ }
315
288
  }
316
289
  // networkcfg
317
290
  message = "networkcfg";
318
- percent = 0.50;
291
+ percent = 0.61;
319
292
  try {
320
- this.networkCfg();
293
+ await this.networkCfg();
321
294
  }
322
295
  catch (error) {
323
296
  await utils_1.default.pressKeyToExit(JSON.stringify(error));
324
297
  }
325
298
  // hostname
326
299
  message = "Create hostname ";
327
- percent = 0.53;
300
+ percent = 0.64;
328
301
  try {
329
302
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
330
303
  await this.hostname(domain);
@@ -334,17 +307,17 @@ class Sequence {
334
307
  }
335
308
  // initramfsCfg
336
309
  message = "initramfs configure";
337
- percent = 0.55;
310
+ percent = 0.67;
338
311
  try {
339
312
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
340
- this.initramfsCfg(this.partitions.installationDevice);
313
+ await this.initramfsCfg(this.partitions.installationDevice);
341
314
  }
342
315
  catch (error) {
343
316
  await utils_1.default.pressKeyToExit(JSON.stringify(error));
344
317
  }
345
318
  // initramfs
346
319
  message = "initramfs ";
347
- percent = 0.60;
320
+ percent = 0.70;
348
321
  try {
349
322
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
350
323
  await this.initramfs();
@@ -355,7 +328,7 @@ class Sequence {
355
328
  // dpkg-unsafe-io-undo
356
329
  if (this.distro.familyId === 'debian') {
357
330
  message = "dpkg-unsafe-io-undo";
358
- percent = 0.61;
331
+ percent = 0.72;
359
332
  try {
360
333
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
361
334
  await this.execCalamaresModule('dpkg-unsafe-io-undo');
@@ -365,72 +338,102 @@ class Sequence {
365
338
  }
366
339
  }
367
340
  /**
368
- * IF NOT RESTORE USERS DATA OR PERSONAL BACKUP
341
+ * IF NOT CLONE:
342
+ * - locale
343
+ * - keyboard
344
+ * - localeCfg
345
+ * - delLiveUser
346
+ * - adduser
347
+ * - autologin
369
348
  */
370
- if (!fs_1.default.existsSync(this.luksFile) || fs_1.default.existsSync(this.personalFile)) {
371
- // delLiveUser
372
- message = "Removing user live ";
373
- percent = 0.61;
349
+ if (!this.is_clone) {
350
+ // locale
351
+ message = "Locale";
352
+ percent = 0.74;
374
353
  try {
375
- await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
376
- await this.delLiveUser();
354
+ redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
355
+ await this.locale();
377
356
  }
378
357
  catch (error) {
379
358
  await utils_1.default.pressKeyToExit(JSON.stringify(error));
380
359
  }
381
- // addUser
382
- message = "Adding user ";
383
- percent = 0.62;
360
+ // keyboard
361
+ message = "settings keyboard";
362
+ percent = 0.75;
384
363
  try {
385
- await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
386
- await this.addUser(this.users.name, this.users.password, this.users.fullname, '', '', '');
364
+ await this.keyboard();
387
365
  }
388
366
  catch (error) {
389
367
  await utils_1.default.pressKeyToExit(JSON.stringify(error));
390
368
  }
391
- // changePassword root
392
- message = "adding user password ";
393
- percent = 0.63;
369
+ // localeCfg
370
+ message = "Locale Configuration";
371
+ percent = 0.76;
372
+ try {
373
+ await this.localeCfg();
374
+ await (0, utils_2.exec)("chroot " + this.installTarget + " locale-gen");
375
+ }
376
+ catch (error) {
377
+ await utils_1.default.pressKeyToExit(JSON.stringify(error));
378
+ }
379
+ // delLiveUser
380
+ message = "Remove user LIVE";
381
+ percent = 0.75;
394
382
  try {
395
383
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
396
- await this.changePassword('root', this.users.rootPassword);
384
+ await this.delLiveUser();
397
385
  }
398
386
  catch (error) {
399
387
  await utils_1.default.pressKeyToExit(JSON.stringify(error));
400
388
  }
401
- }
402
- // autologin
403
- if (pacman_1.default.isInstalledGui()) {
389
+ // addUser
390
+ message = "Add user";
391
+ percent = 0.76;
404
392
  try {
405
- message = "autologin GUI";
406
- percent = 0.65;
407
- if (this.users.autologin) {
408
- await xdg_1.default.autologin(await utils_1.default.getPrimaryUser(), this.users.name, this.installTarget);
409
- }
410
393
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
394
+ await this.addUser(this.users.name, this.users.password, this.users.fullname, '', '', '');
411
395
  }
412
396
  catch (error) {
413
397
  await utils_1.default.pressKeyToExit(JSON.stringify(error));
414
398
  }
415
- }
416
- else { // autologin CLI remove DEFAULT
417
- message = "autologin CLI";
418
- percent = 0.66;
399
+ // changePassword root
400
+ message = "Add user password";
401
+ percent = 0.77;
419
402
  try {
420
403
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
421
- await cliAutologin.remove(this.installTarget);
404
+ await this.changePassword('root', this.users.rootPassword);
422
405
  }
423
406
  catch (error) {
424
407
  await utils_1.default.pressKeyToExit(JSON.stringify(error));
425
408
  }
409
+ // autologin
410
+ if (pacman_1.default.isInstalledGui()) {
411
+ try {
412
+ message = "Autologin GUI";
413
+ percent = 0.78;
414
+ if (this.users.autologin) {
415
+ await xdg_1.default.autologin(await utils_1.default.getPrimaryUser(), this.users.name, this.installTarget);
416
+ }
417
+ await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
418
+ }
419
+ catch (error) {
420
+ await utils_1.default.pressKeyToExit(JSON.stringify(error));
421
+ }
422
+ }
423
+ } // IF NOT CLONE END
424
+ // Remove autologin CLI
425
+ message = "Remove autologin CLI";
426
+ percent = 0.80;
427
+ try {
428
+ await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
429
+ await cliAutologin.remove(this.installTarget);
430
+ }
431
+ catch (error) {
432
+ await utils_1.default.pressKeyToExit(JSON.stringify(error));
426
433
  }
427
- // cleanup
428
- await cliAutologin.msgRemove(`${this.installTarget}/etc/motd`);
429
- await cliAutologin.msgRemove(`${this.installTarget}/etc/issue`);
430
- await cliAutologin.remove(this.installTarget);
431
434
  // bootloader-config
432
435
  message = "bootloader-config ";
433
- percent = 0.70;
436
+ percent = 0.82;
434
437
  try {
435
438
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
436
439
  await this.bootloaderConfig();
@@ -440,7 +443,7 @@ class Sequence {
440
443
  }
441
444
  // grubcfg
442
445
  message = "grubcfg ";
443
- percent = 0.75;
446
+ percent = 0.84;
444
447
  try {
445
448
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
446
449
  await this.grubcfg();
@@ -450,7 +453,7 @@ class Sequence {
450
453
  }
451
454
  // bootloader (grub-install)
452
455
  message = "bootloader ";
453
- percent = 0.80;
456
+ percent = 0.86;
454
457
  try {
455
458
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
456
459
  await this.bootloader();
@@ -461,7 +464,7 @@ class Sequence {
461
464
  // sources-yolk-undo
462
465
  if (this.distro.familyId === 'debian') {
463
466
  message = "sources-yolk-undo";
464
- percent = 0.90;
467
+ percent = 0.88;
465
468
  try {
466
469
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
467
470
  await this.execCalamaresModule('sources-yolk-undo');
@@ -472,14 +475,13 @@ class Sequence {
472
475
  }
473
476
  // packages
474
477
  message = "add/remove packages";
475
- percent = 0.91;
478
+ percent = 0.90;
476
479
  try {
477
480
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
478
481
  await this.packages();
479
482
  }
480
483
  catch (error) {
481
484
  console.log(JSON.stringify(error));
482
- // await Utils.pressKeyToExit(JSON.stringify(error))
483
485
  }
484
486
  /**
485
487
  *
@@ -487,7 +489,7 @@ class Sequence {
487
489
  */
488
490
  if (await pacman_1.default.calamaresCheck()) {
489
491
  message = "remove installer link";
490
- percent = 0.93;
492
+ percent = 0.92;
491
493
  try {
492
494
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
493
495
  await this.removeInstallerLink();
@@ -496,9 +498,20 @@ class Sequence {
496
498
  await utils_1.default.pressKeyToExit(JSON.stringify(error));
497
499
  }
498
500
  }
501
+ // remove /etc/penguins_eggs.d/is_clone*
502
+ message = "Cleanup";
503
+ percent = 0.94;
504
+ try {
505
+ await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
506
+ await (0, utils_2.exec)(`rm -f ${this.installTarget}/etc/penguins-eggs.d/is_clone`);
507
+ await (0, utils_2.exec)(`rm -f ${this.installTarget}/etc/penguins-eggs.d/is_crypted_clone`);
508
+ }
509
+ catch (error) {
510
+ await utils_1.default.pressKeyToExit(JSON.stringify(error));
511
+ }
499
512
  // umountVfs
500
513
  message = "umount VFS";
501
- percent = 0.95;
514
+ percent = 0.96;
502
515
  try {
503
516
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
504
517
  await this.umountVfs();
@@ -508,7 +521,7 @@ class Sequence {
508
521
  }
509
522
  // umount
510
523
  message = "umount";
511
- percent = 0.97;
524
+ percent = 0.98;
512
525
  try {
513
526
  await redraw(react_1.default.createElement(install_1.default, { message: message, percent: percent }));
514
527
  await this.umountFs();
@@ -47,10 +47,11 @@ async function localeCfg() {
47
47
  }
48
48
  localeGenDest += '\n';
49
49
  localeGenDest += krillBookmark;
50
- const locales = [this.language];
50
+ const locales = [];
51
51
  if (this.language !== 'en_US.UTF-8') {
52
52
  locales.push('en_US.UTF-8');
53
53
  }
54
+ locales.push(this.language);
54
55
  for (const supported of supporteds) {
55
56
  for (const locale of locales) {
56
57
  if (supported.includes(locale)) {
@@ -19,7 +19,7 @@ async function locale() {
19
19
  * - /etc/locale.conf
20
20
  * - /etc/timezone
21
21
  */
22
- let defaultLocale = 'en_US.UTF-8';
22
+ let defaultLocale = this.language;
23
23
  // /etc/default/locale
24
24
  let file = this.installTarget + '/etc/default/locale';
25
25
  let content = ``;
@@ -47,7 +47,7 @@ async function mKeyboard() {
47
47
  if (utils_1.default.isSystemd()) {
48
48
  let content = '# KEYBOARD CONFIGURATION FILE\n\n';
49
49
  content += '# Consult the keyboard(5) manual page.\n\n';
50
- content += '# See penguins-eggs/src/krill/modules/set-keyboard.ts\n\n';
50
+ content += '# See penguins-eggs/src/krill/modules/m-keyboard.ts\n\n';
51
51
  content += 'XKBMODEL="' + this.keyboardModel + '"\n';
52
52
  content += 'XKBLAYOUT="' + this.keyboardLayout + '"\n';
53
53
  content += 'XKBVARIANT="' + this.keyboardVariant + '"\n';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "penguins-eggs",
3
3
  "description": "Perri's Brewery edition: remaster your system and distribuite it",
4
- "version": "9.3.23",
4
+ "version": "9.3.25",
5
5
  "author": "Piero Proietti @pieroproietti",
6
6
  "bin": {
7
7
  "eggs": "bin/run"