penguins-eggs 9.3.25 → 9.3.27
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.
- package/.oclif.manifest.json +1 -1
- package/README.md +50 -46
- package/addons/templates/isolinux.template +1 -1
- package/conf/derivatives.yaml +7 -0
- package/conf/distros/buster/calamares/calamares-modules/bootloader-config/bootloader-config.sh +2 -2
- package/conf/distros/jessie/krill/krill-modules/bootloader-config/bootloader-config.sh +2 -2
- package/dist/classes/compressors.js +3 -3
- package/dist/classes/daddy.js +8 -8
- package/dist/classes/distro.js +23 -22
- package/dist/classes/family/archlinux.js +1 -1
- package/dist/classes/family/debian.js +5 -5
- package/dist/classes/incubation/branding.js +4 -4
- package/dist/classes/incubation/distros/jessie.js +1 -1
- package/dist/classes/incubation/distros/rolling.js +4 -4
- package/dist/classes/incubation/fisherman-helper/packages.js +8 -8
- package/dist/classes/incubation/fisherman.js +5 -7
- package/dist/classes/incubation/incubator.js +7 -7
- package/dist/classes/keyboards.js +16 -16
- package/dist/classes/locales.js +9 -9
- package/dist/classes/network.js +5 -7
- package/dist/classes/ovary.js +84 -89
- package/dist/classes/pacman.js +2 -4
- package/dist/classes/pxe.js +131 -131
- package/dist/classes/settings.js +2 -2
- package/dist/classes/sources_list.js +20 -22
- package/dist/classes/systemctl.js +2 -2
- package/dist/classes/tailor.js +216 -225
- package/dist/classes/users.js +24 -24
- package/dist/classes/xdg.js +17 -17
- package/dist/classes/yolk.js +2 -4
- package/dist/commands/adapt.js +2 -2
- package/dist/commands/analyze.js +34 -3
- package/dist/commands/calamares.js +8 -6
- package/dist/commands/config.js +10 -13
- package/dist/commands/cuckoo.js +8 -8
- package/dist/commands/dad.js +4 -4
- package/dist/commands/export/deb.js +7 -7
- package/dist/commands/export/iso.js +6 -6
- package/dist/commands/install.js +18 -18
- package/dist/commands/kill.js +6 -4
- package/dist/commands/mom.js +2 -2
- package/dist/commands/produce.js +11 -11
- package/dist/commands/status.js +2 -2
- package/dist/commands/syncfrom.js +11 -13
- package/dist/commands/syncto.js +36 -41
- package/dist/commands/tools/clean.js +5 -3
- package/dist/commands/tools/ppa.js +13 -11
- package/dist/commands/tools/skel.js +3 -3
- package/dist/commands/tools/stat.js +5 -5
- package/dist/commands/tools/yolk.js +2 -2
- package/dist/commands/update.js +4 -4
- package/dist/commands/wardrobe/get.js +5 -5
- package/dist/commands/wardrobe/list.js +13 -13
- package/dist/commands/wardrobe/show.js +12 -12
- package/dist/commands/wardrobe/wear.js +8 -8
- package/dist/components/elements/title.js +1 -1
- package/dist/interfaces/i-packages.js +1 -1
- package/dist/interfaces/i-pxe.js +39 -0
- package/dist/krill/krill-prepare.js +6 -6
- package/dist/krill/krill-sequence.js +3 -3
- package/dist/krill/modules/add-user.js +2 -2
- package/dist/krill/modules/bootloader-config-ubuntu.js +1 -1
- package/dist/krill/modules/bootloader.js +2 -2
- package/dist/krill/modules/fstab.js +21 -21
- package/dist/krill/modules/grubcfg.js +1 -1
- package/dist/krill/modules/hostname.js +15 -15
- package/dist/krill/modules/initramfs.js +4 -4
- package/dist/krill/modules/locale-cfg.js +8 -8
- package/dist/krill/modules/locale.js +6 -6
- package/dist/krill/modules/m-keyboard.js +20 -20
- package/dist/krill/modules/machine-id.js +1 -1
- package/dist/krill/modules/mkfs.js +1 -1
- package/dist/krill/modules/mount-fs.js +7 -9
- package/dist/krill/modules/network-cfg.js +15 -17
- package/dist/krill/modules/packages.js +6 -6
- package/dist/krill/modules/partition.js +91 -84
- package/dist/krill/modules/remove-installer-link.js +3 -3
- package/dist/krill/modules/unpackfs.js +1 -1
- package/dist/lib/cli-autologin.js +7 -7
- package/dist/lib/dependencies.js +10 -10
- package/dist/lib/get_address.js +2 -2
- package/dist/lib/get_dns.js +2 -2
- package/dist/lib/get_domain.js +2 -2
- package/dist/lib/get_gateway.js +2 -2
- package/dist/lib/get_hostname.js +2 -2
- package/dist/lib/get_netmask.js +2 -2
- package/dist/lib/get_password.js +4 -4
- package/dist/lib/get_root_password.js +3 -3
- package/dist/lib/get_userfullname.js +2 -2
- package/dist/lib/get_username.js +2 -2
- package/dist/lib/select_address_type.js +2 -2
- package/dist/lib/select_filesystem_type.js +2 -2
- package/dist/lib/select_installation_device.js +2 -2
- package/dist/lib/select_installation_mode.js +2 -2
- package/dist/lib/select_interface.js +2 -2
- package/dist/lib/select_keyboard_layout.js +4 -4
- package/dist/lib/select_keyboard_model.js +4 -4
- package/dist/lib/select_keyboard_option.js +4 -4
- package/dist/lib/select_keyboard_variant.js +4 -4
- package/dist/lib/select_languages.js +3 -3
- package/dist/lib/select_regions.js +2 -2
- package/dist/lib/select_user_swap_choice.js +2 -2
- package/dist/lib/select_zones.js +8 -8
- package/dist/lib/utils.js +3 -3
- package/dist/types/etrick.js +1 -0
- package/eui/README.md +72 -0
- package/eui/eui-create-image.sh +12 -0
- package/eui/eui-start.sh +32 -0
- package/eui/eui-users +2 -0
- package/eui/eui.desktop +10 -0
- package/package.json +9 -2
- package/scripts/_eggs +7 -3
- package/scripts/eggs.bash +4 -4
- package/scripts/mom.sh +6 -7
- package/dist/dhcpd/dhcpd.js +0 -222
- package/dist/dhcpd/index.js +0 -7
- package/dist/dhcpd/packet/converters.js +0 -377
- package/dist/dhcpd/packet/options.js +0 -2
- package/dist/dhcpd/packet/types.js +0 -2
- package/dist/dhcpd/packet.js +0 -251
- package/dist/dhcpd/proxy.js +0 -152
- package/dist/dhcpd/server.js +0 -152
- package/dist/dhcpd/sprintf.js +0 -170
- package/dist/dhcpd/utils.js +0 -190
- package/dist/interfaces/i-pxe-options.js +0 -2
|
@@ -15,8 +15,8 @@ async function selectInstallationDevice() {
|
|
|
15
15
|
type: 'list',
|
|
16
16
|
name: 'installationDevice',
|
|
17
17
|
message: 'Select the installation disk: ',
|
|
18
|
-
choices: driveList
|
|
19
|
-
}
|
|
18
|
+
choices: driveList,
|
|
19
|
+
},
|
|
20
20
|
];
|
|
21
21
|
return new Promise(function (resolve) {
|
|
22
22
|
inquirer_1.default.prompt(questions).then(function (options) {
|
|
@@ -9,8 +9,8 @@ async function selectInstallationMode() {
|
|
|
9
9
|
type: 'list',
|
|
10
10
|
name: 'installationMode',
|
|
11
11
|
message: 'Select the installation mode: ',
|
|
12
|
-
choices: modes
|
|
13
|
-
}
|
|
12
|
+
choices: modes,
|
|
13
|
+
},
|
|
14
14
|
];
|
|
15
15
|
return new Promise(function (resolve) {
|
|
16
16
|
inquirer_1.default.prompt(questions).then(function (options) {
|
|
@@ -12,8 +12,8 @@ async function selectInterface(iface = 'eth0', ifaces) {
|
|
|
12
12
|
name: 'option',
|
|
13
13
|
message: 'Select interface: ',
|
|
14
14
|
choices: ifaces,
|
|
15
|
-
default: iface
|
|
16
|
-
}
|
|
15
|
+
default: iface,
|
|
16
|
+
},
|
|
17
17
|
];
|
|
18
18
|
return new Promise(function (resolve) {
|
|
19
19
|
inquirer_1.default.prompt(questions).then(function (options) {
|
|
@@ -9,8 +9,8 @@ const tslib_1 = require("tslib");
|
|
|
9
9
|
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
10
10
|
const keyboards_1 = tslib_1.__importDefault(require("../classes/keyboards"));
|
|
11
11
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
14
14
|
async function selectKeyboardLayout(selected = '') {
|
|
15
15
|
const keyboards = new keyboards_1.default();
|
|
16
16
|
const layouts = keyboards.getLayouts();
|
|
@@ -24,8 +24,8 @@ async function selectKeyboardLayout(selected = '') {
|
|
|
24
24
|
name: 'layout',
|
|
25
25
|
message: 'Select layout: ',
|
|
26
26
|
choices: supported,
|
|
27
|
-
default: selected
|
|
28
|
-
}
|
|
27
|
+
default: selected,
|
|
28
|
+
},
|
|
29
29
|
];
|
|
30
30
|
return new Promise(function (resolve) {
|
|
31
31
|
inquirer_1.default.prompt(questions).then(function (options) {
|
|
@@ -9,8 +9,8 @@ const tslib_1 = require("tslib");
|
|
|
9
9
|
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
10
10
|
const keyboards_1 = tslib_1.__importDefault(require("../classes/keyboards"));
|
|
11
11
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
14
14
|
async function selectKeyboardModel(selected = '') {
|
|
15
15
|
const keyboards = new keyboards_1.default();
|
|
16
16
|
const models = keyboards.getModels();
|
|
@@ -24,8 +24,8 @@ async function selectKeyboardModel(selected = '') {
|
|
|
24
24
|
name: 'model',
|
|
25
25
|
message: 'Select model: ',
|
|
26
26
|
choices: supported,
|
|
27
|
-
default: selected
|
|
28
|
-
}
|
|
27
|
+
default: selected,
|
|
28
|
+
},
|
|
29
29
|
];
|
|
30
30
|
return new Promise(function (resolve) {
|
|
31
31
|
inquirer_1.default.prompt(questions).then(function (options) {
|
|
@@ -9,8 +9,8 @@ const tslib_1 = require("tslib");
|
|
|
9
9
|
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
10
10
|
const keyboards_1 = tslib_1.__importDefault(require("../classes/keyboards"));
|
|
11
11
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
* selectKeyboardOption
|
|
13
|
+
*/
|
|
14
14
|
async function selectKeyboardOption(selected = '') {
|
|
15
15
|
const keyboards = new keyboards_1.default();
|
|
16
16
|
const options = keyboards.getOptions();
|
|
@@ -24,8 +24,8 @@ async function selectKeyboardOption(selected = '') {
|
|
|
24
24
|
name: 'option',
|
|
25
25
|
message: 'Select option: ',
|
|
26
26
|
choices: supported,
|
|
27
|
-
default: selected
|
|
28
|
-
}
|
|
27
|
+
default: selected,
|
|
28
|
+
},
|
|
29
29
|
];
|
|
30
30
|
return new Promise(function (resolve) {
|
|
31
31
|
inquirer_1.default.prompt(questions).then(function (options) {
|
|
@@ -9,8 +9,8 @@ const tslib_1 = require("tslib");
|
|
|
9
9
|
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
10
10
|
const keyboards_1 = tslib_1.__importDefault(require("../classes/keyboards"));
|
|
11
11
|
/**
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
*
|
|
13
|
+
*/
|
|
14
14
|
async function selectKeyboardVariant(keyboardLayout = '') {
|
|
15
15
|
const keyboards = new keyboards_1.default();
|
|
16
16
|
const variants = keyboards.getVariants(keyboardLayout);
|
|
@@ -25,8 +25,8 @@ async function selectKeyboardVariant(keyboardLayout = '') {
|
|
|
25
25
|
name: 'variant',
|
|
26
26
|
message: 'Select variant: ',
|
|
27
27
|
choices: supported,
|
|
28
|
-
default: ''
|
|
29
|
-
}
|
|
28
|
+
default: '',
|
|
29
|
+
},
|
|
30
30
|
];
|
|
31
31
|
return new Promise(function (resolve) {
|
|
32
32
|
inquirer_1.default.prompt(questions).then(function (options) {
|
|
@@ -6,7 +6,7 @@ const tslib_1 = require("tslib");
|
|
|
6
6
|
*/
|
|
7
7
|
const inquirer_1 = tslib_1.__importDefault(require("inquirer"));
|
|
8
8
|
const locales_1 = tslib_1.__importDefault(require("../classes/locales"));
|
|
9
|
-
async function selectLanguages(selectedLanguage =
|
|
9
|
+
async function selectLanguages(selectedLanguage = '') {
|
|
10
10
|
const locales = new locales_1.default();
|
|
11
11
|
const supported = await locales.getSupported();
|
|
12
12
|
const selected = selectedLanguage;
|
|
@@ -16,8 +16,8 @@ async function selectLanguages(selectedLanguage = "") {
|
|
|
16
16
|
name: 'language',
|
|
17
17
|
message: 'Select language: ',
|
|
18
18
|
choices: supported,
|
|
19
|
-
default: selected
|
|
20
|
-
}
|
|
19
|
+
default: selected,
|
|
20
|
+
},
|
|
21
21
|
];
|
|
22
22
|
return new Promise(function (resolve) {
|
|
23
23
|
inquirer_1.default.prompt(questions).then(function (options) {
|
|
@@ -9,8 +9,8 @@ async function selectRegions(selected = '') {
|
|
|
9
9
|
name: 'region',
|
|
10
10
|
message: 'Select your region: ',
|
|
11
11
|
choices: ['Atlantic', 'Africa', 'America', 'Antarctica', 'Artic', 'Australia', 'Europe', 'India', 'Europe', 'Pacific'],
|
|
12
|
-
default: selected
|
|
13
|
-
}
|
|
12
|
+
default: selected,
|
|
13
|
+
},
|
|
14
14
|
];
|
|
15
15
|
return new Promise(function (resolve) {
|
|
16
16
|
inquirer_1.default.prompt(questions).then(function (options) {
|
|
@@ -19,8 +19,8 @@ async function selectUserSwapChoice() {
|
|
|
19
19
|
name: 'userSwapChoices',
|
|
20
20
|
message: 'Select the swap choice',
|
|
21
21
|
choices: partitions.userSwapChoices,
|
|
22
|
-
default: partitions.initialSwapChoice
|
|
23
|
-
}
|
|
22
|
+
default: partitions.initialSwapChoice,
|
|
23
|
+
},
|
|
24
24
|
];
|
|
25
25
|
return new Promise(function (resolve) {
|
|
26
26
|
inquirer_1.default.prompt(questions).then(function (options) {
|
package/dist/lib/select_zones.js
CHANGED
|
@@ -57,7 +57,7 @@ async function selectRegions(region = '') {
|
|
|
57
57
|
'Timbuktu',
|
|
58
58
|
'Tripoli',
|
|
59
59
|
'Tunis',
|
|
60
|
-
'Windhoek'
|
|
60
|
+
'Windhoek',
|
|
61
61
|
];
|
|
62
62
|
const america = [
|
|
63
63
|
'Adak',
|
|
@@ -215,7 +215,7 @@ async function selectRegions(region = '') {
|
|
|
215
215
|
'Whitehorse',
|
|
216
216
|
'Winnipeg',
|
|
217
217
|
'Yakutat',
|
|
218
|
-
'Yellowknife'
|
|
218
|
+
'Yellowknife',
|
|
219
219
|
];
|
|
220
220
|
const antartica = ['Casey', 'Davis', 'DumontDUrville', 'Macquarie', 'Mawson', 'McMurdo', 'Palmer', 'Rothera', 'Syowa', 'Troll', 'Vostok'];
|
|
221
221
|
const australia = ['Adelaide', 'Brisbane', 'Broken_Hill', 'Canberra', 'Currie', 'Darwin', 'Eucla', 'Hobart', 'Lindeman', 'Lord_Howe', 'Melbourne', 'Perth', 'Sydney', 'Yancowinna'];
|
|
@@ -310,7 +310,7 @@ async function selectRegions(region = '') {
|
|
|
310
310
|
'Yakutsk',
|
|
311
311
|
'Yangon',
|
|
312
312
|
'Yekaterinburg',
|
|
313
|
-
'Yerevan'
|
|
313
|
+
'Yerevan',
|
|
314
314
|
];
|
|
315
315
|
const atlantic = ['Azores', 'Bermuda', 'Canary', 'Cape_Verde', 'Faroe', 'Jan_Mayen', 'Madeira', 'Reykjavik', 'South_Georgia', 'St_Helena', 'Stanley'];
|
|
316
316
|
const europe = [
|
|
@@ -373,7 +373,7 @@ async function selectRegions(region = '') {
|
|
|
373
373
|
'Warsaw',
|
|
374
374
|
'Zagreb',
|
|
375
375
|
'Zaporozhye',
|
|
376
|
-
'Zurich'
|
|
376
|
+
'Zurich',
|
|
377
377
|
];
|
|
378
378
|
const indian = ['Antananarivo', 'Chagos', 'Christmas', 'Cocos', 'Comoro', 'Kerguelen', 'Mahe', 'Maldives', 'Mauritius', 'Mayotte', 'Reunion'];
|
|
379
379
|
const pacific = [
|
|
@@ -419,7 +419,7 @@ async function selectRegions(region = '') {
|
|
|
419
419
|
'Truk',
|
|
420
420
|
'Wake',
|
|
421
421
|
'Wallis',
|
|
422
|
-
'Yap'
|
|
422
|
+
'Yap',
|
|
423
423
|
];
|
|
424
424
|
const us = ['Alaska', 'Aleutian', 'Arizona', 'Central', 'Eastern', 'Hawaii', 'Indiana-Starke', 'Michigan', 'Mountain', 'Pacific', 'Samoa'];
|
|
425
425
|
const etc = [
|
|
@@ -457,7 +457,7 @@ async function selectRegions(region = '') {
|
|
|
457
457
|
'UCT',
|
|
458
458
|
'UTC',
|
|
459
459
|
'Universal',
|
|
460
|
-
'Zulu'
|
|
460
|
+
'Zulu',
|
|
461
461
|
];
|
|
462
462
|
let zone = [];
|
|
463
463
|
switch (region) {
|
|
@@ -504,8 +504,8 @@ async function selectRegions(region = '') {
|
|
|
504
504
|
type: 'list',
|
|
505
505
|
name: 'zone',
|
|
506
506
|
message: 'Please select the city or region corresponding to your time zone: ',
|
|
507
|
-
choices: zone
|
|
508
|
-
}
|
|
507
|
+
choices: zone,
|
|
508
|
+
},
|
|
509
509
|
];
|
|
510
510
|
return new Promise(function (resolve) {
|
|
511
511
|
inquirer_1.default.prompt(questions).then(function (options) {
|
package/dist/lib/utils.js
CHANGED
|
@@ -37,7 +37,7 @@ async function exec(command, { echo = false, ignore = false, capture = false } =
|
|
|
37
37
|
console.log(command);
|
|
38
38
|
}
|
|
39
39
|
const child = (0, child_process_1.spawn)('bash', ['-c', command], {
|
|
40
|
-
stdio: ignore ? 'ignore' : capture ? 'pipe' : 'inherit'
|
|
40
|
+
stdio: ignore ? 'ignore' : (capture ? 'pipe' : 'inherit'),
|
|
41
41
|
});
|
|
42
42
|
// const spawn = require('child_process').spawn
|
|
43
43
|
// child.stdout.on('data', (data: string) => {
|
|
@@ -51,8 +51,8 @@ async function exec(command, { echo = false, ignore = false, capture = false } =
|
|
|
51
51
|
child.on('error', function (error) {
|
|
52
52
|
reject({ code: 1, error: error });
|
|
53
53
|
});
|
|
54
|
-
// The 'exit' event is emitted after the child process ends. If the process exited, code is the final exit code of the process,
|
|
55
|
-
// otherwise null. If the process terminated due to receipt of a signal, signal is the string name of the signal, otherwise null.
|
|
54
|
+
// The 'exit' event is emitted after the child process ends. If the process exited, code is the final exit code of the process,
|
|
55
|
+
// otherwise null. If the process terminated due to receipt of a signal, signal is the string name of the signal, otherwise null.
|
|
56
56
|
// One of the two will always be non-null.
|
|
57
57
|
child.on('exit', (code) => {
|
|
58
58
|
resolve({ code: code, data: stdout });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
package/eui/README.md
ADDED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# eggs unattended install
|
|
2
|
+
|
|
3
|
+
Eggs unattended install è basato su semplici script ed, al momento,
|
|
4
|
+
per creare una ISO con possibilità di unattended-install, procedere come segue:
|
|
5
|
+
|
|
6
|
+
```
|
|
7
|
+
cd /usr/lib/penguins-eggs/eui
|
|
8
|
+
./eui-create-image.sh
|
|
9
|
+
```
|
|
10
|
+
Verrà generata una immagine fast, quindi abbastanza veloce, e lanciato il comando cuckoo.
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# Modifiche necessarie rispetto ad una normale immagine
|
|
14
|
+
|
|
15
|
+
Sono coinvolti 3 file:
|
|
16
|
+
* /etc/sudoers.d/eui-users
|
|
17
|
+
* /etc/xdg/autostart/eui.desktop
|
|
18
|
+
* /usr/bin/eui-start.ch
|
|
19
|
+
|
|
20
|
+
Vediamoli uno ad uno
|
|
21
|
+
|
|
22
|
+
## /etc/sudoers.d/eui-users
|
|
23
|
+
|
|
24
|
+
Create a file:
|
|
25
|
+
```
|
|
26
|
+
sudo nano /etc/sudoers.d/eui-users
|
|
27
|
+
```
|
|
28
|
+
and copy and past, following code:
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
live ALL=(ALL) NOPASSWD: /usr/bin/eui-start.sh
|
|
32
|
+
artisan ALL=(ALL) NOPASSWD: /usr/bin/eui-start.sh
|
|
33
|
+
```
|
|
34
|
+
Change permissions to /etc/sudoers.d/eui-users
|
|
35
|
+
```
|
|
36
|
+
chmod 0440 /etc/sudoers.d/eui-users
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
## /etc/xdg/autostart/eui.desktop
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
[Desktop Entry]
|
|
43
|
+
Type=Application
|
|
44
|
+
Name=Eggs unattended install
|
|
45
|
+
Exec=sudo /usr/bin/eui-start.sh
|
|
46
|
+
StartupNotify=false
|
|
47
|
+
NoDisplay=true
|
|
48
|
+
Terminal=true #basically will open terminal and people can see the script executing
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## /usr/bin/eui-start.sh
|
|
52
|
+
|
|
53
|
+
```
|
|
54
|
+
#!/bin/env bash
|
|
55
|
+
if mountpoint -q "/lib/live/mount"; then
|
|
56
|
+
# isLive
|
|
57
|
+
|
|
58
|
+
# try to read /etc/hostname from /dev/sda
|
|
59
|
+
sudo mount "/dev/sda2" "/mnt"
|
|
60
|
+
OS_HOSTNAME=$(/usr/bin/cat /mnt/etc/hostname)
|
|
61
|
+
sudo umount "/dev/sda2"
|
|
62
|
+
sudo echo "I will completely format local system: ${OS_HOSTNAME}"
|
|
63
|
+
echo -n "Wait a minute for installation or CTRL-C to abort.";
|
|
64
|
+
for _ in {1..60}; do read -rs -n1 -t1 || printf ".";done;echo
|
|
65
|
+
sudo eggs install -unrd .local
|
|
66
|
+
else
|
|
67
|
+
# isInstalled
|
|
68
|
+
sudo rm /etc/sudoers.d/eui-users
|
|
69
|
+
sudo rm /usr/bin/eui-start.sh
|
|
70
|
+
sudo rm /etc/xdg/autostart/eui.desktop
|
|
71
|
+
fi
|
|
72
|
+
```
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
#!/bin/env bash
|
|
2
|
+
sudo eggs tools clean -n
|
|
3
|
+
sudo eggs tools ppa -n
|
|
4
|
+
sudo eggs kill -n
|
|
5
|
+
sudo cp eui-users /etc/sudoers.d/
|
|
6
|
+
sudo cp eui-start.sh /usr/bin/
|
|
7
|
+
sudo cp eui.desktop /etc/xdg/autostart/
|
|
8
|
+
sudo eggs produce --release -n
|
|
9
|
+
sudo rm /etc/sudoers.d/eui-users
|
|
10
|
+
sudo rm /usr/bin/eui-start.sh
|
|
11
|
+
sudo rm /etc/xdg/autostart/eui.desktop
|
|
12
|
+
sudo eggs cuckoo
|
package/eui/eui-start.sh
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
#!/bin/env bash
|
|
2
|
+
if mountpoint -q "/lib/live/mount"; then
|
|
3
|
+
|
|
4
|
+
# if isLive
|
|
5
|
+
echo "E G G S: the reproductive system of penguins"
|
|
6
|
+
echo
|
|
7
|
+
echo "WARNING: A fully automated system installation is about to start,"
|
|
8
|
+
echo " ALL data on the hard drive present will be ERASED!"
|
|
9
|
+
echo
|
|
10
|
+
|
|
11
|
+
# try to read /etc/hostname from /dev/sda
|
|
12
|
+
sudo mount "/dev/sda2" "/mnt"
|
|
13
|
+
OS_HOSTNAME=$(/usr/bin/cat /mnt/etc/hostname)
|
|
14
|
+
sudo umount "/dev/sda2"
|
|
15
|
+
|
|
16
|
+
echo "I will completely format local system: ${OS_HOSTNAME}"
|
|
17
|
+
echo
|
|
18
|
+
echo "Installation will start in one minute, press CTRL-C to abort!"
|
|
19
|
+
echo
|
|
20
|
+
echo -n "Waiting... ";
|
|
21
|
+
for _ in {1..60}; do read -rs -n1 -t1 || printf ".";done;echo
|
|
22
|
+
|
|
23
|
+
# install system
|
|
24
|
+
sudo eggs install -unrd .local
|
|
25
|
+
else
|
|
26
|
+
# isInstalled
|
|
27
|
+
sudo rm -f /etc/sudoers.d/eui-users
|
|
28
|
+
sudo rm -f /usr/bin/eui-start.sh
|
|
29
|
+
sudo rm -f /etc/xdg/autostart/eui.desktop
|
|
30
|
+
fi
|
|
31
|
+
|
|
32
|
+
|
package/eui/eui-users
ADDED
package/eui/eui.desktop
ADDED
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.
|
|
4
|
+
"version": "9.3.27",
|
|
5
5
|
"author": "Piero Proietti @pieroproietti",
|
|
6
6
|
"bin": {
|
|
7
7
|
"eggs": "bin/run"
|
|
@@ -25,8 +25,10 @@
|
|
|
25
25
|
"mustache": "^4.2.0",
|
|
26
26
|
"netmask": "^2.0.2",
|
|
27
27
|
"node-static": "^0.7.11",
|
|
28
|
+
"etrick": "^0.0.2",
|
|
28
29
|
"react": "^17.0.2",
|
|
29
30
|
"shelljs": "0.8.5",
|
|
31
|
+
"systeminformation": "^5.17.9",
|
|
30
32
|
"tftp": "^0.1.2",
|
|
31
33
|
"tslib": "^2.4.1",
|
|
32
34
|
"typescript": "^4.9.4"
|
|
@@ -73,6 +75,7 @@
|
|
|
73
75
|
"/bin",
|
|
74
76
|
"/conf",
|
|
75
77
|
"/dist",
|
|
78
|
+
"/eui",
|
|
76
79
|
"/ipxe",
|
|
77
80
|
"/manpages",
|
|
78
81
|
"mkinitcpio",
|
|
@@ -83,7 +86,8 @@
|
|
|
83
86
|
"oclif",
|
|
84
87
|
"refracta",
|
|
85
88
|
"remastersys",
|
|
86
|
-
"systemback"
|
|
89
|
+
"systemback",
|
|
90
|
+
"pxe"
|
|
87
91
|
],
|
|
88
92
|
"license": "MIT",
|
|
89
93
|
"main": "./dist/index.js",
|
|
@@ -113,7 +117,10 @@
|
|
|
113
117
|
"docs": "rm docs -rf && npx typedoc src --out docs",
|
|
114
118
|
"lint-and-fix": "eslint . --ext .ts --fix --config .eslintrc",
|
|
115
119
|
"lint": "eslint . --ext .ts --config .eslintrc",
|
|
120
|
+
"manifest": "oclif manifest",
|
|
121
|
+
"readme": "oclif readme",
|
|
116
122
|
"posttest": "eslint . --ext .ts --config .eslintrc",
|
|
123
|
+
"_prepack": "rm dist -rf && tsc -b && oclif manifest && oclif readme",
|
|
117
124
|
"prettier-format": "prettier --config .prettierrc 'src/**/*.ts' --write",
|
|
118
125
|
"tarballs": "oclif pack:tarballs --root=. --targets=linux-x64 --no-xz",
|
|
119
126
|
"test": "nyc --extension .ts mocha --forbid-only \"test/**/*.test.ts\"",
|
package/scripts/_eggs
CHANGED
|
@@ -57,6 +57,7 @@ calamares)
|
|
|
57
57
|
_command_flags=(
|
|
58
58
|
"--help[Show CLI help.]"
|
|
59
59
|
"--install[install calamares and it's dependencies]"
|
|
60
|
+
"--nointeractive[no user interaction]"
|
|
60
61
|
"--release[release: remove calamares and all it's dependencies after the installation]"
|
|
61
62
|
"--remove[remove calamares and it's dependencies]"
|
|
62
63
|
"--theme=-[theme/branding for eggs and calamares]:"
|
|
@@ -68,7 +69,7 @@ config)
|
|
|
68
69
|
_command_flags=(
|
|
69
70
|
"--clean[remove old configuration before to create new one]"
|
|
70
71
|
"--help[Show CLI help.]"
|
|
71
|
-
"--nointeractive[
|
|
72
|
+
"--nointeractive[no user interaction]"
|
|
72
73
|
"--verbose[verbose]"
|
|
73
74
|
)
|
|
74
75
|
;;
|
|
@@ -112,7 +113,7 @@ install)
|
|
|
112
113
|
"--domain=-[Domain name, defult: .local]:"
|
|
113
114
|
"--help[Show CLI help.]"
|
|
114
115
|
"--ip[hostname as ip, eg: ip-192-168-1-33]"
|
|
115
|
-
"--nointeractive[
|
|
116
|
+
"--nointeractive[no user interaction]"
|
|
116
117
|
"--none[Swap none: 256M]"
|
|
117
118
|
"--pve[Proxmox VE install]"
|
|
118
119
|
"--random[Add random to hostname, eg: colibri-ay412dt]"
|
|
@@ -126,6 +127,7 @@ install)
|
|
|
126
127
|
kill)
|
|
127
128
|
_command_flags=(
|
|
128
129
|
"--help[Show CLI help.]"
|
|
130
|
+
"--nointeractive[no user interaction]"
|
|
129
131
|
"--verbose[verbose]"
|
|
130
132
|
)
|
|
131
133
|
;;
|
|
@@ -144,7 +146,7 @@ produce)
|
|
|
144
146
|
"--cryptedclone[crypted clone]"
|
|
145
147
|
"--help[Show CLI help.]"
|
|
146
148
|
"--max[max compression]"
|
|
147
|
-
"--nointeractive[
|
|
149
|
+
"--nointeractive[no user interaction]"
|
|
148
150
|
"--prefix=-[prefix]:"
|
|
149
151
|
"--release[release: max compression, remove penguins-eggs and calamares after installation]"
|
|
150
152
|
"--script[script mode. Generate scripts to manage iso build]"
|
|
@@ -184,6 +186,7 @@ syncto)
|
|
|
184
186
|
tools:clean)
|
|
185
187
|
_command_flags=(
|
|
186
188
|
"--help[Show CLI help.]"
|
|
189
|
+
"--nointeractive[no user interaction]"
|
|
187
190
|
"--verbose[verbose]"
|
|
188
191
|
)
|
|
189
192
|
;;
|
|
@@ -192,6 +195,7 @@ tools:ppa)
|
|
|
192
195
|
_command_flags=(
|
|
193
196
|
"--add[add penguins-eggs PPA repository]"
|
|
194
197
|
"--help[Show CLI help.]"
|
|
198
|
+
"--nointeractive[no user interaction]"
|
|
195
199
|
"--remove[remove penguins-eggs PPA repository]"
|
|
196
200
|
"--verbose[verbose]"
|
|
197
201
|
)
|
package/scripts/eggs.bash
CHANGED
|
@@ -13,21 +13,21 @@ _eggs_autocomplete()
|
|
|
13
13
|
local commands="
|
|
14
14
|
adapt --help --verbose
|
|
15
15
|
analyze --help --verbose
|
|
16
|
-
calamares --help --install --release --remove --theme --verbose
|
|
16
|
+
calamares --help --install --nointeractive --release --remove --theme --verbose
|
|
17
17
|
config --clean --help --nointeractive --verbose
|
|
18
18
|
cuckoo --help
|
|
19
19
|
dad --clean --default --help --verbose
|
|
20
20
|
export:deb --all --clean --help --verbose
|
|
21
21
|
export:iso --clean --help --verbose
|
|
22
22
|
install --crypted --custom --domain --help --ip --nointeractive --none --pve --random --small --suspend --unattended --verbose
|
|
23
|
-
kill --help --verbose
|
|
23
|
+
kill --help --nointeractive --verbose
|
|
24
24
|
mom --help
|
|
25
25
|
produce --addons --basename --clone --cryptedclone --help --max --nointeractive --prefix --release --script --standard --theme --verbose --yolk
|
|
26
26
|
status --help --verbose
|
|
27
27
|
syncfrom --delete --file --help --rootdir --verbose
|
|
28
28
|
syncto --delete --file --help --verbose
|
|
29
|
-
tools:clean --help --verbose
|
|
30
|
-
tools:ppa --add --help --remove --verbose
|
|
29
|
+
tools:clean --help --nointeractive --verbose
|
|
30
|
+
tools:ppa --add --help --nointeractive --remove --verbose
|
|
31
31
|
tools:skel --help --user --verbose
|
|
32
32
|
tools:stat --help --month --year
|
|
33
33
|
tools:yolk --help --verbose
|
package/scripts/mom.sh
CHANGED
|
@@ -4,18 +4,17 @@ function main() {
|
|
|
4
4
|
|
|
5
5
|
# root
|
|
6
6
|
root=$(cat /usr/lib/penguins-eggs/.oclif.manifest.json | jq .)
|
|
7
|
-
|
|
8
|
-
result
|
|
7
|
+
COMMANDS=$(echo ${root} | jq ".commands[].id")
|
|
8
|
+
result=("DOCUMENTATION" ${COMMANDS} "QUIT")
|
|
9
9
|
|
|
10
10
|
while true; do
|
|
11
11
|
clear
|
|
12
|
-
# NOTE [@]
|
|
13
12
|
menu ${result[@]}
|
|
14
13
|
answer=$(0< "${dir_tmp}/${file_tmp}" )
|
|
15
14
|
case "$answer" in
|
|
16
|
-
|
|
15
|
+
QUIT)
|
|
17
16
|
exit ;;
|
|
18
|
-
|
|
17
|
+
DOCUMENTATION)
|
|
19
18
|
documentation ;;
|
|
20
19
|
*)
|
|
21
20
|
eggs $answer --help
|
|
@@ -31,7 +30,7 @@ function main() {
|
|
|
31
30
|
function documentation() {
|
|
32
31
|
while true; do
|
|
33
32
|
|
|
34
|
-
menu "book" "manual" "man" "repository" "sourceforge" "
|
|
33
|
+
menu "book" "manual" "man" "repository" "sourceforge" "QUIT"
|
|
35
34
|
choose=$(0< "${dir_tmp}/${file_tmp}" )
|
|
36
35
|
|
|
37
36
|
case "$choose" in
|
|
@@ -45,7 +44,7 @@ function documentation() {
|
|
|
45
44
|
documentation_repository ;;
|
|
46
45
|
sourceforge)
|
|
47
46
|
documentation_sourceforge ;;
|
|
48
|
-
|
|
47
|
+
QUIT)
|
|
49
48
|
break ;;
|
|
50
49
|
esac
|
|
51
50
|
done
|