penguins-eggs 10.0.24 → 10.0.26

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 (56) hide show
  1. package/.oclif.manifest.json +8 -8
  2. package/README.md +27 -27
  3. package/conf/distros/noble/calamares/modules/users.yml +1 -0
  4. package/conf/distros/rolling/calamares/modules/finished.yml +1 -1
  5. package/dist/classes/bleach.js +22 -15
  6. package/dist/{lib → classes}/cli-autologin.d.ts +15 -6
  7. package/dist/{lib → classes}/cli-autologin.js +82 -36
  8. package/dist/classes/compressors.d.ts +1 -1
  9. package/dist/classes/compressors.js +10 -10
  10. package/dist/classes/daddy.d.ts +6 -6
  11. package/dist/classes/daddy.js +67 -67
  12. package/dist/classes/distro.js +206 -202
  13. package/dist/classes/families/alpine.js +2 -2
  14. package/dist/classes/incubation/incubator.js +1 -1
  15. package/dist/classes/keyboards.d.ts +1 -1
  16. package/dist/classes/keyboards.js +16 -1
  17. package/dist/classes/locales.js +20 -9
  18. package/dist/classes/ovary.d.ts +11 -11
  19. package/dist/classes/ovary.js +109 -93
  20. package/dist/classes/pacman.js +3 -5
  21. package/dist/classes/pxe.d.ts +6 -6
  22. package/dist/classes/pxe.js +42 -42
  23. package/dist/classes/utils.d.ts +5 -1
  24. package/dist/classes/utils.js +20 -17
  25. package/dist/classes/xdg.js +15 -14
  26. package/dist/classes/yolk.js +1 -1
  27. package/dist/commands/cuckoo.js +1 -1
  28. package/dist/commands/dad.d.ts +1 -1
  29. package/dist/commands/dad.js +5 -7
  30. package/dist/commands/produce.js +1 -1
  31. package/dist/commands/syncfrom.d.ts +1 -1
  32. package/dist/commands/syncfrom.js +1 -1
  33. package/dist/components/information.js +5 -10
  34. package/dist/components/summary.js +2 -1
  35. package/dist/interfaces/i-excludes.d.ts +2 -2
  36. package/dist/interfaces/i-pxe.d.ts +15 -15
  37. package/dist/krill/modules/machine-id.js +1 -1
  38. package/dist/krill/modules/network-cfg.js +1 -1
  39. package/dist/krill/modules/packages.js +22 -0
  40. package/dist/krill/sequence.d.ts +1 -1
  41. package/dist/krill/sequence.js +3 -3
  42. package/dracut/README.md +84 -0
  43. package/dracut/dracut.conf +3 -0
  44. package/dracut/dracut.conf.d/90overlayfs.conf +5 -0
  45. package/dracut/dracut.conf.d/99custom.conf +4 -0
  46. package/dracut/install-dracut-99custom +1 -0
  47. package/dracut/usr/lib/dracut/modules.d/99custom/init-live.sh +4 -0
  48. package/dracut/usr/lib/dracut/modules.d/99custom/module-setup.sh +15 -0
  49. package/dracut/usr/lib/dracut/modules.d/99custom/mount-live.sh +25 -0
  50. package/manpages/doc/man/eggs.1.gz +0 -0
  51. package/manpages/doc/man/eggs.html +22 -28
  52. package/mkinitfs/README.md +46 -0
  53. package/mkinitfs/live.conf +2 -0
  54. package/mkinitfs/machine-id-gen.sh +3 -0
  55. package/mkinitfs/sidecar.sh +40 -0
  56. package/package.json +7 -5
@@ -7,10 +7,10 @@
7
7
  */
8
8
  import chalk from 'chalk';
9
9
  import inquirer from 'inquirer';
10
+ import yaml from 'js-yaml';
11
+ import fs from 'node:fs';
10
12
  // _dirname
11
13
  import path from 'node:path';
12
- import fs from 'fs';
13
- import yaml from 'js-yaml';
14
14
  // We need to remove .js extension from import
15
15
  import Pacman from '../classes/pacman.js';
16
16
  import Settings from '../classes/settings.js';
@@ -18,6 +18,70 @@ import Utils from '../classes/utils.js';
18
18
  const __dirname = path.dirname(new URL(import.meta.url).pathname);
19
19
  export default class Daddy {
20
20
  settings = {};
21
+ /**
22
+ * editConfif
23
+ * @param c
24
+ * @returns
25
+ */
26
+ async editConfig(c) {
27
+ // Utils.titles('dad')
28
+ console.log(chalk.cyan('Edit and save Live system parameters'));
29
+ console.log();
30
+ let compressionOpt = 0;
31
+ if (c.compression === 'xz') {
32
+ compressionOpt = 1;
33
+ }
34
+ else if (c.compression === 'xz -Xbcj x86') {
35
+ compressionOpt = 2;
36
+ }
37
+ if (c.snapshot_prefix === '') {
38
+ c.snapshot_prefix = Utils.snapshotPrefix(this.settings.distro.distroId, this.settings.distro.codenameId);
39
+ }
40
+ return new Promise((resolve) => {
41
+ const questions = [
42
+ {
43
+ default: c.snapshot_prefix,
44
+ message: 'LiveCD iso prefix: ',
45
+ name: 'snapshot_prefix',
46
+ type: 'input'
47
+ },
48
+ {
49
+ default: c.snapshot_basename,
50
+ message: 'LiveCD iso basename: ',
51
+ name: 'snapshot_basename',
52
+ type: 'input'
53
+ },
54
+ {
55
+ default: c.user_opt,
56
+ message: 'LiveCD user:',
57
+ name: 'user_opt',
58
+ type: 'input'
59
+ },
60
+ {
61
+ default: c.user_opt_passwd,
62
+ message: 'LiveCD user password: ',
63
+ name: 'user_opt_passwd',
64
+ type: 'input'
65
+ },
66
+ {
67
+ default: c.root_passwd,
68
+ message: 'LiveCD root password: ',
69
+ name: 'root_passwd',
70
+ type: 'input'
71
+ },
72
+ {
73
+ choices: ['fast', 'max'],
74
+ default: compressionOpt,
75
+ message: 'LiveCD compression: ',
76
+ name: 'compression',
77
+ type: 'list'
78
+ }
79
+ ];
80
+ inquirer.prompt(questions).then((options) => {
81
+ resolve(JSON.stringify(options));
82
+ });
83
+ });
84
+ }
21
85
  /**
22
86
  *
23
87
  * @param reset
@@ -27,7 +91,7 @@ export default class Daddy {
27
91
  */
28
92
  async helpMe(reset = false, isCustom = false, fileCustom = '', verbose = false) {
29
93
  if (isCustom) {
30
- console.log("using custom file: ", fileCustom);
94
+ console.log("using custom file:", fileCustom);
31
95
  }
32
96
  // Controllo configurazione
33
97
  if (!Pacman.configurationCheck()) {
@@ -94,68 +158,4 @@ export default class Daddy {
94
158
  console.log();
95
159
  console.log(chalk.cyan('More help? ') + chalk.white('eggs mom'));
96
160
  }
97
- /**
98
- * editConfif
99
- * @param c
100
- * @returns
101
- */
102
- async editConfig(c) {
103
- // Utils.titles('dad')
104
- console.log(chalk.cyan('Edit and save Live system parameters'));
105
- console.log();
106
- let compressionOpt = 0;
107
- if (c.compression === 'xz') {
108
- compressionOpt = 1;
109
- }
110
- else if (c.compression === 'xz -Xbcj x86') {
111
- compressionOpt = 2;
112
- }
113
- if (c.snapshot_prefix === '') {
114
- c.snapshot_prefix = Utils.snapshotPrefix(this.settings.distro.distroId, this.settings.distro.codenameId);
115
- }
116
- return new Promise((resolve) => {
117
- const questions = [
118
- {
119
- default: c.snapshot_prefix,
120
- message: 'LiveCD iso prefix: ',
121
- name: 'snapshot_prefix',
122
- type: 'input'
123
- },
124
- {
125
- default: c.snapshot_basename,
126
- message: 'LiveCD iso basename: ',
127
- name: 'snapshot_basename',
128
- type: 'input'
129
- },
130
- {
131
- default: c.user_opt,
132
- message: 'LiveCD user:',
133
- name: 'user_opt',
134
- type: 'input'
135
- },
136
- {
137
- default: c.user_opt_passwd,
138
- message: 'LiveCD user password: ',
139
- name: 'user_opt_passwd',
140
- type: 'input'
141
- },
142
- {
143
- default: c.root_passwd,
144
- message: 'LiveCD root password: ',
145
- name: 'root_passwd',
146
- type: 'input'
147
- },
148
- {
149
- choices: ['fast', 'max'],
150
- default: compressionOpt,
151
- message: 'LiveCD compression: ',
152
- name: 'compression',
153
- type: 'list'
154
- }
155
- ];
156
- inquirer.prompt(questions).then((options) => {
157
- resolve(JSON.stringify(options));
158
- });
159
- });
160
- }
161
161
  }
@@ -104,219 +104,223 @@ class Distro {
104
104
  /**
105
105
  * Analize distroId
106
106
  */
107
- if (this.distroId === 'Alpine') {
108
- this.familyId = 'alpine';
109
- this.distroLike = 'Alpine';
110
- this.codenameId = 'rolling'; // questo viene rimosso dal nome
111
- this.codenameLikeId = 'alpine'; // prende alpine come codebaneLikeId
112
- this.liveMediumPath = '/mnt/'; // Qua è deciso da noi
113
- //this.liveMediumPath = '/run/live/medium/'
114
- this.squashfs = `live/filesystem.squashfs`;
115
- this.syslinuxPath = '/usr/share/syslinux/'; //correct
116
- this.pxelinuxPath = this.syslinuxPath;
117
- this.usrLibPath = '/usr/lib/';
118
- this.memdiskPath = this.syslinuxPath;
119
- this.isolinuxPath = this.syslinuxPath;
120
- // At the moment
121
- this.isCalamaresAvailable = true;
122
- }
123
- else if (this.distroId === 'Fedora') {
124
- this.familyId = 'fedora';
125
- this.distroLike = 'Fedora';
126
- this.codenameId = 'rolling';
127
- this.codenameLikeId = '40';
128
- this.liveMediumPath = '/run/install/repo/'; // ? è il mount della root su cd di installatione
129
- this.squashfs = `live/filesystem.squashfs`;
130
- this.syslinuxPath = '/usr/share/syslinux/';
131
- this.pxelinuxPath = this.syslinuxPath;
132
- this.usrLibPath = '/usr/lib/';
133
- this.memdiskPath = this.syslinuxPath;
134
- this.isolinuxPath = this.syslinuxPath;
135
- // At the moment
136
- this.isCalamaresAvailable = false;
137
- }
138
- else if (this.distroId === 'openSUSE') {
139
- this.familyId = 'suse';
140
- this.distroLike = 'openSUSE';
141
- this.codenameId = 'rolling';
142
- this.codenameLikeId = 'Tumbleweed';
143
- this.liveMediumPath = '/run/install/repo/'; // ? è il mount della root su cd di installatione
144
- this.squashfs = `live/filesystem.squashfs`;
145
- this.syslinuxPath = '/usr/share/syslinux/';
146
- this.pxelinuxPath = this.syslinuxPath;
147
- this.usrLibPath = '/usr/lib/';
148
- this.memdiskPath = this.syslinuxPath;
149
- this.isolinuxPath = this.syslinuxPath;
150
- // At the moment
151
- this.isCalamaresAvailable = false;
152
- }
153
- else {
154
- /**
155
- * Arch/Debian/Devuan/Manjaro and Ubuntu
156
- */
157
- switch (this.codenameId) {
158
- case 'jessie': {
159
- // Debian 8 jessie
160
- this.distroLike = 'Debian';
161
- this.codenameLikeId = 'jessie';
162
- this.liveMediumPath = '/lib/live/mount/medium/';
163
- this.isCalamaresAvailable = false;
164
- break;
165
- }
166
- case 'stretch': {
167
- // Debian 9 stretch
168
- this.distroLike = 'Debian';
169
- this.codenameLikeId = 'stretch';
170
- this.liveMediumPath = '/lib/live/mount/medium/';
171
- this.isCalamaresAvailable = false;
172
- break;
173
- }
174
- case 'buster': {
175
- // Debian 10 buster
176
- this.distroLike = 'Debian';
177
- this.codenameLikeId = 'buster';
178
- break;
179
- }
180
- case 'bullseye': {
181
- // Debian 11 bullseye
182
- this.distroLike = 'Debian';
183
- this.codenameLikeId = 'bullseye';
184
- break;
185
- }
186
- case 'bookworm': {
187
- // Debian 12 bookworm
188
- this.distroLike = 'Debian';
189
- this.codenameLikeId = 'bookworm';
190
- break;
191
- }
192
- case 'trixie': {
193
- // Debian 13 trixie
194
- this.distroLike = 'Debian';
195
- this.codenameLikeId = 'trixie';
196
- break;
197
- }
198
- case 'beowulf': {
199
- // Devuab 3 beowulf
200
- this.distroLike = 'Devuan';
201
- this.codenameLikeId = 'beowulf';
202
- break;
203
- }
204
- case 'chimaera': {
205
- // Devuab 4 chimaera
206
- this.distroLike = 'Devuan';
207
- this.codenameLikeId = 'chimaera';
208
- break;
209
- }
210
- case 'daedalus': {
211
- // Devuan 5 daedalus
212
- this.distroLike = 'Devuan';
213
- this.codenameLikeId = 'daedalus';
214
- break;
215
- }
216
- /**
217
- * Ubuntu LTS + actual
218
- */
219
- case 'bionic': {
220
- // Ubuntu 18.04 bionic LTS eol aprile 2023
221
- this.distroLike = 'Ubuntu';
222
- this.codenameLikeId = 'bionic';
223
- this.liveMediumPath = '/lib/live/mount/medium/';
224
- break;
225
- }
226
- case 'focal': {
227
- // Ubuntu 20.04 focal LTS
228
- this.distroLike = 'Ubuntu';
229
- this.codenameLikeId = 'focal';
230
- break;
231
- }
232
- case 'jammy': {
233
- // Ubuntu 22.04 jammy LTS
234
- this.distroLike = 'Ubuntu';
235
- this.codenameLikeId = 'jammy';
236
- break;
237
- }
238
- case 'noble': {
239
- // Ubuntu 24.04 noble LTS
240
- this.distroLike = 'Ubuntu';
241
- this.codenameLikeId = 'noble';
242
- break;
243
- }
244
- case 'devel': {
245
- // Ubuntu rhino
246
- this.distroLike = 'Ubuntu';
247
- this.codenameLikeId = 'devel';
248
- break;
249
- }
107
+ switch (this.distroId) {
108
+ case 'Alpine': {
109
+ this.familyId = 'alpine';
110
+ this.distroLike = 'Alpine';
111
+ this.codenameId = 'rolling'; // questo viene rimosso dal nome
112
+ this.codenameLikeId = 'alpine'; // prende alpine come codenaneLikeId
113
+ this.liveMediumPath = '/mnt/'; // Qua è deciso da noi
114
+ this.squashfs = `live/filesystem.squashfs`;
115
+ this.syslinuxPath = '/usr/share/syslinux/'; // correct
116
+ this.pxelinuxPath = this.syslinuxPath;
117
+ this.usrLibPath = '/usr/lib/';
118
+ this.memdiskPath = this.syslinuxPath;
119
+ this.isolinuxPath = this.syslinuxPath;
120
+ // At the moment
121
+ this.isCalamaresAvailable = false;
122
+ break;
123
+ }
124
+ case 'Fedora': {
125
+ this.familyId = 'fedora';
126
+ this.distroLike = 'Fedora';
127
+ this.codenameId = 'rolling';
128
+ this.codenameLikeId = '40';
129
+ this.liveMediumPath = '/run/install/repo/'; // ? è il mount della root su cd di installatione
130
+ this.squashfs = `live/filesystem.squashfs`;
131
+ this.syslinuxPath = '/usr/share/syslinux/';
132
+ this.pxelinuxPath = this.syslinuxPath;
133
+ this.usrLibPath = '/usr/lib/';
134
+ this.memdiskPath = this.syslinuxPath;
135
+ this.isolinuxPath = this.syslinuxPath;
136
+ // At the moment
137
+ this.isCalamaresAvailable = false;
138
+ break;
139
+ }
140
+ case 'openSUSE': {
141
+ this.familyId = 'suse';
142
+ this.distroLike = 'openSUSE';
143
+ this.codenameId = 'rolling';
144
+ this.codenameLikeId = 'Tumbleweed';
145
+ this.liveMediumPath = '/run/install/repo/'; // ? è il mount della root su cd di installatione
146
+ this.squashfs = `live/filesystem.squashfs`;
147
+ this.syslinuxPath = '/usr/share/syslinux/';
148
+ this.pxelinuxPath = this.syslinuxPath;
149
+ this.usrLibPath = '/usr/lib/';
150
+ this.memdiskPath = this.syslinuxPath;
151
+ this.isolinuxPath = this.syslinuxPath;
152
+ // At the moment
153
+ this.isCalamaresAvailable = false;
154
+ break;
155
+ }
156
+ default: {
250
157
  /**
251
- * Arch Linux/Garuda
158
+ * Arch/Debian/Devuan/Manjaro and Ubuntu
252
159
  */
253
- case 'Spizaetus':
254
- case 'n/a':
255
- case 'rolling': {
256
- this.familyId = 'archlinux';
257
- this.distroLike = 'Arch';
258
- this.codenameId = 'rolling';
259
- this.codenameLikeId = 'rolling';
260
- this.liveMediumPath = '/run/archiso/bootmnt/';
261
- this.squashfs = `arch/x86_64/airootfs.sfs`;
262
- break;
263
- }
264
- default: {
160
+ switch (this.codenameId) {
161
+ case 'jessie': {
162
+ // Debian 8 jessie
163
+ this.distroLike = 'Debian';
164
+ this.codenameLikeId = 'jessie';
165
+ this.liveMediumPath = '/lib/live/mount/medium/';
166
+ this.isCalamaresAvailable = false;
167
+ break;
168
+ }
169
+ case 'stretch': {
170
+ // Debian 9 stretch
171
+ this.distroLike = 'Debian';
172
+ this.codenameLikeId = 'stretch';
173
+ this.liveMediumPath = '/lib/live/mount/medium/';
174
+ this.isCalamaresAvailable = false;
175
+ break;
176
+ }
177
+ case 'buster': {
178
+ // Debian 10 buster
179
+ this.distroLike = 'Debian';
180
+ this.codenameLikeId = 'buster';
181
+ break;
182
+ }
183
+ case 'bullseye': {
184
+ // Debian 11 bullseye
185
+ this.distroLike = 'Debian';
186
+ this.codenameLikeId = 'bullseye';
187
+ break;
188
+ }
189
+ case 'bookworm': {
190
+ // Debian 12 bookworm
191
+ this.distroLike = 'Debian';
192
+ this.codenameLikeId = 'bookworm';
193
+ break;
194
+ }
195
+ case 'trixie': {
196
+ // Debian 13 trixie
197
+ this.distroLike = 'Debian';
198
+ this.codenameLikeId = 'trixie';
199
+ break;
200
+ }
201
+ case 'beowulf': {
202
+ // Devuab 3 beowulf
203
+ this.distroLike = 'Devuan';
204
+ this.codenameLikeId = 'beowulf';
205
+ break;
206
+ }
207
+ case 'chimaera': {
208
+ // Devuab 4 chimaera
209
+ this.distroLike = 'Devuan';
210
+ this.codenameLikeId = 'chimaera';
211
+ break;
212
+ }
213
+ case 'daedalus': {
214
+ // Devuan 5 daedalus
215
+ this.distroLike = 'Devuan';
216
+ this.codenameLikeId = 'daedalus';
217
+ break;
218
+ }
219
+ /**
220
+ * Ubuntu LTS + actual
221
+ */
222
+ case 'bionic': {
223
+ // Ubuntu 18.04 bionic LTS eol aprile 2023
224
+ this.distroLike = 'Ubuntu';
225
+ this.codenameLikeId = 'bionic';
226
+ this.liveMediumPath = '/lib/live/mount/medium/';
227
+ break;
228
+ }
229
+ case 'focal': {
230
+ // Ubuntu 20.04 focal LTS
231
+ this.distroLike = 'Ubuntu';
232
+ this.codenameLikeId = 'focal';
233
+ break;
234
+ }
235
+ case 'jammy': {
236
+ // Ubuntu 22.04 jammy LTS
237
+ this.distroLike = 'Ubuntu';
238
+ this.codenameLikeId = 'jammy';
239
+ break;
240
+ }
241
+ case 'noble': {
242
+ // Ubuntu 24.04 noble LTS
243
+ this.distroLike = 'Ubuntu';
244
+ this.codenameLikeId = 'noble';
245
+ break;
246
+ }
247
+ case 'devel': {
248
+ // Ubuntu rhino
249
+ this.distroLike = 'Ubuntu';
250
+ this.codenameLikeId = 'devel';
251
+ break;
252
+ }
265
253
  /**
266
- * patch per Roy VERIFICARE
254
+ * Arch Linux/Garuda
267
255
  */
268
- let found = false;
269
- let file = path.resolve(__dirname, '../../conf/derivatives.yaml');
270
- if (fs.existsSync('/etc/penguins-eggs.d/derivatives.yaml')) {
271
- file = '/etc/penguins-eggs.d/derivatives.yaml';
256
+ case 'Spizaetus':
257
+ case 'n/a':
258
+ case 'rolling': {
259
+ this.familyId = 'archlinux';
260
+ this.distroLike = 'Arch';
261
+ this.codenameId = 'rolling';
262
+ this.codenameLikeId = 'rolling';
263
+ this.liveMediumPath = '/run/archiso/bootmnt/';
264
+ this.squashfs = `arch/x86_64/airootfs.sfs`;
265
+ break;
272
266
  }
273
- const content = fs.readFileSync(file, 'utf8');
274
- const distros = yaml.load(content);
275
- for (const distro of distros) {
276
- if (distro.ids !== undefined) {
277
- for (let n = 0; n < distro.ids.length; n++) {
278
- if (this.codenameId === distro.ids[n]) {
279
- found = true;
280
- this.distroLike = distro.distroLike;
281
- this.codenameLikeId = distro.id;
282
- this.familyId = distro.family;
267
+ default: {
268
+ /**
269
+ * patch per Roy VERIFICARE
270
+ */
271
+ let found = false;
272
+ let file = path.resolve(__dirname, '../../conf/derivatives.yaml');
273
+ if (fs.existsSync('/etc/penguins-eggs.d/derivatives.yaml')) {
274
+ file = '/etc/penguins-eggs.d/derivatives.yaml';
275
+ }
276
+ const content = fs.readFileSync(file, 'utf8');
277
+ const distros = yaml.load(content);
278
+ for (const distro of distros) {
279
+ if (distro.ids !== undefined) {
280
+ for (let n = 0; n < distro.ids.length; n++) {
281
+ if (this.codenameId === distro.ids[n]) {
282
+ found = true;
283
+ this.distroLike = distro.distroLike;
284
+ this.codenameLikeId = distro.id;
285
+ this.familyId = distro.family;
286
+ }
283
287
  }
284
288
  }
285
289
  }
286
- }
287
- if (!found) {
288
- console.log(`This distro ${this.distroId}/${this.codenameId} is not yet recognized!`);
289
- console.log('');
290
- console.log('You can edit /usr/lib/penguins-eggs/conf/derivatives.yaml to add it -');
291
- console.log('after that - run: sudo eggs dad -d to re-configure eggs.');
292
- console.log('If you can create your new iso, you can contribute to the project');
293
- console.log('by suggesting your modification.');
294
- process.exit(0);
290
+ if (!found) {
291
+ console.log(`This distro ${this.distroId}/${this.codenameId} is not yet recognized!`);
292
+ console.log('');
293
+ console.log('You can edit /usr/lib/penguins-eggs/conf/derivatives.yaml to add it -');
294
+ console.log('after that - run: sudo eggs dad -d to re-configure eggs.');
295
+ console.log('If you can create your new iso, you can contribute to the project');
296
+ console.log('by suggesting your modification.');
297
+ process.exit(0);
298
+ }
295
299
  }
296
300
  }
301
+ /**
302
+ * setting paths: syslinux, isolinux, usrLibPath
303
+ */
304
+ switch (this.familyId) {
305
+ case 'debian': {
306
+ this.isolinuxPath = '/usr/lib/ISOLINUX/';
307
+ this.syslinuxPath = '/usr/lib/syslinux/modules/bios/';
308
+ this.pxelinuxPath = '/usr/lib/PXELINUX/';
309
+ this.memdiskPath = '/usr/lib/syslinux/';
310
+ this.usrLibPath = '/usr/lib/' + Utils.usrLibPath();
311
+ break;
312
+ }
313
+ case 'archlinux': {
314
+ this.syslinuxPath = '/usr/lib/syslinux/bios/';
315
+ this.pxelinuxPath = this.syslinuxPath;
316
+ this.usrLibPath = '/usr/lib/';
317
+ this.memdiskPath = this.syslinuxPath;
318
+ this.isolinuxPath = this.syslinuxPath;
319
+ break;
320
+ }
321
+ // No default
322
+ } // Fine analisi codenameId
297
323
  }
298
- /**
299
- * setting paths: syslinux, isolinux, usrLibPath
300
- */
301
- switch (this.familyId) {
302
- case 'debian': {
303
- this.isolinuxPath = '/usr/lib/ISOLINUX/';
304
- this.syslinuxPath = '/usr/lib/syslinux/modules/bios/';
305
- this.pxelinuxPath = '/usr/lib/PXELINUX/';
306
- this.memdiskPath = '/usr/lib/syslinux/';
307
- this.usrLibPath = '/usr/lib/' + Utils.usrLibPath();
308
- break;
309
- }
310
- case 'archlinux': {
311
- this.syslinuxPath = '/usr/lib/syslinux/bios/';
312
- this.pxelinuxPath = this.syslinuxPath;
313
- this.usrLibPath = '/usr/lib/';
314
- this.memdiskPath = this.syslinuxPath;
315
- this.isolinuxPath = this.syslinuxPath;
316
- break;
317
- }
318
- // No default
319
- } // Fine analisi codenameId
320
324
  }
321
325
  /**
322
326
  * if lsb-release exists
@@ -20,7 +20,7 @@ export default class Alpine {
20
20
  static async calamaresInstall(verbose = false) {
21
21
  const echo = Utils.setEcho(verbose);
22
22
  try {
23
- let cmd = `apk add ${this.packs4calamares}`;
23
+ const cmd = `apk add ${this.packs4calamares}`;
24
24
  try {
25
25
  await exec(cmd, echo);
26
26
  }
@@ -44,7 +44,7 @@ export default class Alpine {
44
44
  */
45
45
  static async calamaresRemove(verbose = true) {
46
46
  verbose = true; // serve per pacman
47
- let removed = true;
47
+ const removed = true;
48
48
  const echo = Utils.setEcho(verbose);
49
49
  await exec(`apk del ${this.packs4calamares}`);
50
50
  await exec('rm /etc/calamares -rf', echo);
@@ -14,8 +14,8 @@ import Pacman from '../pacman.js';
14
14
  import Utils from '../utils.js';
15
15
  import { Bionic } from './distros/bionic.js';
16
16
  import { Buster } from './distros/buster.js';
17
- import { Noble } from './distros/noble.js';
18
17
  import { Jessie } from './distros/jessie.js';
18
+ import { Noble } from './distros/noble.js';
19
19
  import { Rolling } from './distros/rolling.js';
20
20
  import { installer } from './installer.js';
21
21
  // _dirname
@@ -16,7 +16,7 @@ export default class Keyboard {
16
16
  variants: string[];
17
17
  constructor();
18
18
  /**
19
- * XKBLAYOUT='us' OK Alpine
19
+ * XKBLAYOUT='us'
20
20
  */
21
21
  getLayout(): Promise<string>;
22
22
  /**
@@ -77,9 +77,24 @@ export default class Keyboard {
77
77
  }
78
78
  }
79
79
  }
80
+ else {
81
+ this.models.push('pc105');
82
+ this.layouts = [
83
+ 'af', 'al', 'am', 'ara', 'at', 'az', 'ba', 'bd', 'be', 'bg', 'br',
84
+ 'brai', 'by', 'ca', 'ch', 'cm', 'cn', 'cz', 'de', 'dk', 'dz', 'ee',
85
+ 'epo', 'fr', 'gb', 'ge', 'gh', 'gr', 'hr', 'hu', 'id', 'ie', 'il',
86
+ 'in', 'iq', 'ir', 'is', 'it', 'jp', 'ke', 'kg', 'kr', 'kz', 'la',
87
+ 'latam', 'lk', 'lt', 'lv', 'ma', 'md', 'me', 'mk', 'ml', 'mm',
88
+ 'mt', 'my', 'ng', 'nl', 'no', 'nz', 'ph', 'pk', 'pl', 'pt', 'ro',
89
+ 'rs', 'ru', 'se', 'si', 'sk', 'sy', 'th', 'tj', 'tw', 'ua',
90
+ 'us', 'uz', 'vn'
91
+ ];
92
+ this.variants.push('none');
93
+ this.options.push('none');
94
+ }
80
95
  }
81
96
  /**
82
- * XKBLAYOUT='us' OK Alpine
97
+ * XKBLAYOUT='us'
83
98
  */
84
99
  async getLayout() {
85
100
  const file = '/etc/default/keyboard';