penguins-eggs 10.0.28 → 10.0.30
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 +1500 -2
- package/README.md +760 -0
- package/addons/README.md +0 -2
- package/addons/eggs/adapt/applications/eggs-adapt.desktop +1 -1
- package/addons/eggs/theme/livecd/isolinux.main.alpine.cfg +43 -0
- package/addons/eggs/theme/livecd/{isolinux.main.cfg → isolinux.main.original.cfg} +1 -1
- package/conf/distros/alpine/README.md +1 -1
- package/conf/distros/alpine/calamares/calamares-modules/bootloader-config/bootloader-config.sh +40 -0
- package/conf/distros/alpine/calamares/calamares-modules/bootloader-config/module.yml +9 -0
- package/conf/distros/alpine/calamares/calamares-modules/cleanup/cleanup.sh +13 -0
- package/conf/distros/alpine/calamares/calamares-modules/cleanup/module.yml +9 -0
- package/conf/distros/alpine/calamares/modules/bootloader.yml +57 -0
- package/conf/distros/alpine/calamares/modules/displaymanager.yml +23 -0
- package/conf/distros/alpine/calamares/modules/finished.yml +5 -0
- package/conf/distros/alpine/calamares/modules/fstab.yml +12 -0
- package/conf/distros/alpine/calamares/modules/locale.yml +98 -0
- package/conf/distros/alpine/calamares/modules/luksopenswaphookcfg.yml +5 -0
- package/conf/distros/alpine/calamares/modules/machineid.yml +17 -0
- package/conf/distros/alpine/calamares/modules/mount.yml +56 -0
- package/conf/distros/alpine/calamares/modules/packages.yml +6 -0
- package/conf/distros/alpine/calamares/modules/partition.yml +242 -0
- package/conf/distros/alpine/calamares/modules/removeuser.yml +15 -0
- package/conf/distros/alpine/calamares/modules/unpackfs.yml +6 -0
- package/conf/distros/alpine/calamares/modules/users.yml +18 -0
- package/conf/distros/alpine/calamares/modules/welcome.yml +19 -0
- package/conf/distros/alpine/calamares/settings.yml +57 -0
- package/conf/love.yaml +8 -0
- package/dist/classes/bleach.d.ts +32 -0
- package/dist/classes/bleach.js +136 -0
- package/dist/classes/cfs.d.ts +17 -0
- package/dist/classes/cfs.js +39 -0
- package/dist/classes/cli-autologin.d.ts +52 -0
- package/dist/classes/cli-autologin.js +230 -0
- package/dist/classes/compressors.d.ts +54 -0
- package/dist/classes/compressors.js +109 -0
- package/dist/classes/daddy.d.ts +26 -0
- package/dist/classes/daddy.js +161 -0
- package/dist/classes/distro.d.ts +36 -0
- package/dist/classes/distro.js +346 -0
- package/dist/classes/families/alpine.d.ts +55 -0
- package/dist/classes/families/alpine.js +163 -0
- package/dist/classes/families/archlinux.d.ts +61 -0
- package/dist/classes/families/archlinux.js +140 -0
- package/dist/classes/families/debian.d.ts +65 -0
- package/dist/classes/families/debian.js +138 -0
- package/dist/classes/families/fedora.d.ts +52 -0
- package/dist/classes/families/fedora.js +100 -0
- package/dist/classes/families/mockup.d.ts +60 -0
- package/dist/classes/families/mockup.js +79 -0
- package/dist/classes/families/opensuse.d.ts +52 -0
- package/dist/classes/families/opensuse.js +104 -0
- package/dist/classes/incubation/branding.d.ts +17 -0
- package/dist/classes/incubation/branding.js +89 -0
- package/dist/classes/incubation/distros/alpine.d.ts +32 -0
- package/dist/classes/incubation/distros/alpine.js +80 -0
- package/dist/classes/incubation/distros/bionic.d.ts +32 -0
- package/dist/classes/incubation/distros/bionic.js +83 -0
- package/dist/classes/incubation/distros/buster.d.ts +32 -0
- package/dist/classes/incubation/distros/buster.js +85 -0
- package/dist/classes/incubation/distros/jessie.d.ts +31 -0
- package/dist/classes/incubation/distros/jessie.js +44 -0
- package/dist/classes/incubation/distros/noble.d.ts +32 -0
- package/dist/classes/incubation/distros/noble.js +85 -0
- package/dist/classes/incubation/distros/rolling.d.ts +32 -0
- package/dist/classes/incubation/distros/rolling.js +82 -0
- package/dist/classes/incubation/fisherman-helper/displaymanager.d.ts +11 -0
- package/dist/classes/incubation/fisherman-helper/displaymanager.js +39 -0
- package/dist/classes/incubation/fisherman-helper/packages.d.ts +20 -0
- package/dist/classes/incubation/fisherman-helper/packages.js +72 -0
- package/dist/classes/incubation/fisherman-helper/settings.d.ts +15 -0
- package/dist/classes/incubation/fisherman-helper/settings.js +83 -0
- package/dist/classes/incubation/fisherman.d.ts +77 -0
- package/dist/classes/incubation/fisherman.js +251 -0
- package/dist/classes/incubation/incubator.d.ts +40 -0
- package/dist/classes/incubation/incubator.js +328 -0
- package/dist/classes/incubation/installer.d.ts +13 -0
- package/dist/classes/incubation/installer.js +64 -0
- package/dist/classes/keyboards.d.ts +50 -0
- package/dist/classes/keyboards.js +287 -0
- package/dist/classes/locales.d.ts +21 -0
- package/dist/classes/locales.js +80 -0
- package/dist/classes/n8.d.ts +18 -0
- package/dist/classes/n8.js +36 -0
- package/dist/classes/network.d.ts +37 -0
- package/dist/classes/network.js +98 -0
- package/dist/classes/ovary.d.ts +214 -0
- package/dist/classes/ovary.js +1872 -0
- package/dist/classes/pacman.d.ts +149 -0
- package/dist/classes/pacman.js +703 -0
- package/dist/classes/pve-live.d.ts +17 -0
- package/dist/classes/pve-live.js +52 -0
- package/dist/classes/pxe.d.ts +74 -0
- package/dist/classes/pxe.js +410 -0
- package/dist/classes/settings.d.ts +53 -0
- package/dist/classes/settings.js +185 -0
- package/dist/classes/sources_list.d.ts +28 -0
- package/dist/classes/sources_list.js +89 -0
- package/dist/classes/systemctl.d.ts +47 -0
- package/dist/classes/systemctl.js +86 -0
- package/dist/classes/tailor.d.ts +46 -0
- package/dist/classes/tailor.js +587 -0
- package/dist/classes/tools.d.ts +30 -0
- package/dist/classes/tools.js +54 -0
- package/dist/classes/users.d.ts +28 -0
- package/dist/classes/users.js +143 -0
- package/dist/classes/utils.d.ts +323 -0
- package/dist/classes/utils.js +951 -0
- package/dist/classes/xdg.d.ts +45 -0
- package/dist/classes/xdg.js +329 -0
- package/dist/classes/yolk.d.ts +33 -0
- package/dist/classes/yolk.js +114 -0
- package/dist/commands/adapt.d.ts +17 -0
- package/dist/commands/adapt.js +33 -0
- package/dist/commands/analyze.d.ts +26 -0
- package/dist/commands/analyze.js +95 -0
- package/dist/commands/calamares.d.ts +29 -0
- package/dist/commands/calamares.js +110 -0
- package/dist/commands/config.d.ts +35 -0
- package/dist/commands/config.js +192 -0
- package/dist/commands/cuckoo.d.ts +16 -0
- package/dist/commands/cuckoo.js +62 -0
- package/dist/commands/dad.d.ts +20 -0
- package/dist/commands/dad.js +46 -0
- package/dist/commands/export/deb.d.ts +19 -0
- package/dist/commands/export/deb.js +51 -0
- package/dist/commands/export/iso.d.ts +19 -0
- package/dist/commands/export/iso.js +55 -0
- package/dist/commands/install.d.ts +37 -0
- package/dist/commands/install.js +92 -0
- package/dist/commands/kill.d.ts +24 -0
- package/dist/commands/kill.js +50 -0
- package/dist/commands/love.d.ts +20 -0
- package/dist/commands/love.js +55 -0
- package/dist/commands/mom.d.ts +16 -0
- package/dist/commands/mom.js +30 -0
- package/dist/commands/produce.d.ts +34 -0
- package/dist/commands/produce.js +196 -0
- package/dist/commands/status.d.ts +23 -0
- package/dist/commands/status.js +31 -0
- package/dist/commands/syncfrom.d.ts +45 -0
- package/dist/commands/syncfrom.js +152 -0
- package/dist/commands/syncto.d.ts +40 -0
- package/dist/commands/syncto.js +175 -0
- package/dist/commands/tools/clean.d.ts +18 -0
- package/dist/commands/tools/clean.js +37 -0
- package/dist/commands/tools/ppa.d.ts +26 -0
- package/dist/commands/tools/ppa.js +138 -0
- package/dist/commands/tools/skel.d.ts +18 -0
- package/dist/commands/tools/skel.js +44 -0
- package/dist/commands/tools/stat.d.ts +31 -0
- package/dist/commands/tools/stat.js +70 -0
- package/dist/commands/tools/yolk.d.ts +24 -0
- package/dist/commands/tools/yolk.js +45 -0
- package/dist/commands/update.d.ts +47 -0
- package/dist/commands/update.js +140 -0
- package/dist/commands/wardrobe/get.d.ts +23 -0
- package/dist/commands/wardrobe/get.js +52 -0
- package/dist/commands/wardrobe/list.d.ts +24 -0
- package/dist/commands/wardrobe/list.js +125 -0
- package/dist/commands/wardrobe/show.d.ts +25 -0
- package/dist/commands/wardrobe/show.js +97 -0
- package/dist/commands/wardrobe/wear.d.ts +26 -0
- package/dist/commands/wardrobe/wear.js +81 -0
- package/dist/components/finished.d.ts +15 -0
- package/dist/components/finished.js +55 -0
- package/dist/components/information.d.ts +8 -0
- package/dist/components/information.js +153 -0
- package/dist/components/install.d.ts +15 -0
- package/dist/components/install.js +56 -0
- package/dist/components/keyboard.d.ts +16 -0
- package/dist/components/keyboard.js +54 -0
- package/dist/components/location.d.ts +16 -0
- package/dist/components/location.js +59 -0
- package/dist/components/network.d.ts +19 -0
- package/dist/components/network.js +65 -0
- package/dist/components/partitions.d.ts +16 -0
- package/dist/components/partitions.js +73 -0
- package/dist/components/steps.d.ts +13 -0
- package/dist/components/steps.js +148 -0
- package/dist/components/summary.d.ts +24 -0
- package/dist/components/summary.js +82 -0
- package/dist/components/title.d.ts +11 -0
- package/dist/components/title.js +35 -0
- package/dist/components/users.d.ts +24 -0
- package/dist/components/users.js +80 -0
- package/dist/components/welcome.d.ts +13 -0
- package/dist/components/welcome.js +63 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +8 -0
- package/dist/interfaces/i-addons.d.ts +12 -0
- package/dist/interfaces/i-addons.js +8 -0
- package/dist/interfaces/i-analyze.d.ts +17 -0
- package/dist/interfaces/i-analyze.js +17 -0
- package/dist/interfaces/i-app.d.ts +14 -0
- package/dist/interfaces/i-app.js +8 -0
- package/dist/interfaces/i-branding.d.ts +36 -0
- package/dist/interfaces/i-branding.js +8 -0
- package/dist/interfaces/i-calamares-partition.d.ts +18 -0
- package/dist/interfaces/i-calamares-partition.js +8 -0
- package/dist/interfaces/i-config-tools.d.ts +18 -0
- package/dist/interfaces/i-config-tools.js +8 -0
- package/dist/interfaces/i-devices.d.ts +20 -0
- package/dist/interfaces/i-devices.js +8 -0
- package/dist/interfaces/i-distro.d.ts +27 -0
- package/dist/interfaces/i-distro.js +8 -0
- package/dist/interfaces/i-drive-list.d.ts +33 -0
- package/dist/interfaces/i-drive-list.js +8 -0
- package/dist/interfaces/i-eggs-config.d.ts +32 -0
- package/dist/interfaces/i-eggs-config.js +8 -0
- package/dist/interfaces/i-excludes.d.ts +14 -0
- package/dist/interfaces/i-excludes.js +8 -0
- package/dist/interfaces/i-exec.d.ts +11 -0
- package/dist/interfaces/i-exec.js +8 -0
- package/dist/interfaces/i-initrd.d.ts +13 -0
- package/dist/interfaces/i-initrd.js +8 -0
- package/dist/interfaces/i-install.d.ts +16 -0
- package/dist/interfaces/i-install.js +8 -0
- package/dist/interfaces/i-installer.d.ts +17 -0
- package/dist/interfaces/i-installer.js +8 -0
- package/dist/interfaces/i-krill-config.d.ts +33 -0
- package/dist/interfaces/i-krill-config.js +8 -0
- package/dist/interfaces/i-krill.d.ts +42 -0
- package/dist/interfaces/i-krill.js +8 -0
- package/dist/interfaces/i-materia.d.ts +41 -0
- package/dist/interfaces/i-materia.js +8 -0
- package/dist/interfaces/i-net.d.ts +16 -0
- package/dist/interfaces/i-net.js +8 -0
- package/dist/interfaces/i-packages.d.ts +16 -0
- package/dist/interfaces/i-packages.js +8 -0
- package/dist/interfaces/i-partitions.d.ts +16 -0
- package/dist/interfaces/i-partitions.js +8 -0
- package/dist/interfaces/i-pxe.d.ts +45 -0
- package/dist/interfaces/i-pxe.js +1 -0
- package/dist/interfaces/i-remix.d.ts +21 -0
- package/dist/interfaces/i-remix.js +8 -0
- package/dist/interfaces/i-settings.d.ts +33 -0
- package/dist/interfaces/i-settings.js +8 -0
- package/dist/interfaces/i-user.d.ts +14 -0
- package/dist/interfaces/i-user.js +8 -0
- package/dist/interfaces/i-workdir.d.ts +14 -0
- package/dist/interfaces/i-workdir.js +8 -0
- package/dist/interfaces/i-xkb-model.d.ts +24 -0
- package/dist/interfaces/i-xkb-model.js +8 -0
- package/dist/interfaces/index.d.ts +25 -0
- package/dist/interfaces/index.js +8 -0
- package/dist/krill/modules/add-user.d.ts +20 -0
- package/dist/krill/modules/add-user.js +49 -0
- package/dist/krill/modules/bootloader-config-alpine.d.ts +14 -0
- package/dist/krill/modules/bootloader-config-alpine.js +37 -0
- package/dist/krill/modules/bootloader-config-arch.d.ts +14 -0
- package/dist/krill/modules/bootloader-config-arch.js +37 -0
- package/dist/krill/modules/bootloader-config-debian.d.ts +10 -0
- package/dist/krill/modules/bootloader-config-debian.js +50 -0
- package/dist/krill/modules/bootloader-config.d.ts +10 -0
- package/dist/krill/modules/bootloader-config.js +25 -0
- package/dist/krill/modules/bootloader.d.ts +14 -0
- package/dist/krill/modules/bootloader.js +30 -0
- package/dist/krill/modules/change-password.d.ts +15 -0
- package/dist/krill/modules/change-password.js +18 -0
- package/dist/krill/modules/del-live-user.d.ts +14 -0
- package/dist/krill/modules/del-live-user.js +38 -0
- package/dist/krill/modules/fstab.d.ts +14 -0
- package/dist/krill/modules/fstab.js +121 -0
- package/dist/krill/modules/grubcfg.d.ts +17 -0
- package/dist/krill/modules/grubcfg.js +29 -0
- package/dist/krill/modules/hostname.d.ts +13 -0
- package/dist/krill/modules/hostname.js +50 -0
- package/dist/krill/modules/initramfs-cfg.d.ts +14 -0
- package/dist/krill/modules/initramfs-cfg.js +25 -0
- package/dist/krill/modules/initramfs.d.ts +13 -0
- package/dist/krill/modules/initramfs.js +48 -0
- package/dist/krill/modules/locale-cfg.d.ts +10 -0
- package/dist/krill/modules/locale-cfg.js +61 -0
- package/dist/krill/modules/locale.d.ts +13 -0
- package/dist/krill/modules/locale.js +48 -0
- package/dist/krill/modules/m-keyboard.d.ts +14 -0
- package/dist/krill/modules/m-keyboard.js +79 -0
- package/dist/krill/modules/m-timezone.d.ts +14 -0
- package/dist/krill/modules/m-timezone.js +22 -0
- package/dist/krill/modules/machine-id.d.ts +15 -0
- package/dist/krill/modules/machine-id.js +30 -0
- package/dist/krill/modules/mkfs.d.ts +13 -0
- package/dist/krill/modules/mkfs.js +48 -0
- package/dist/krill/modules/mount-fs.d.ts +17 -0
- package/dist/krill/modules/mount-fs.js +60 -0
- package/dist/krill/modules/mount-vfs.d.ts +17 -0
- package/dist/krill/modules/mount-vfs.js +40 -0
- package/dist/krill/modules/network-cfg.d.ts +19 -0
- package/dist/krill/modules/network-cfg.js +64 -0
- package/dist/krill/modules/packages.d.ts +14 -0
- package/dist/krill/modules/packages.js +111 -0
- package/dist/krill/modules/partition.d.ts +20 -0
- package/dist/krill/modules/partition.js +324 -0
- package/dist/krill/modules/remove-installer-link.d.ts +13 -0
- package/dist/krill/modules/remove-installer-link.js +35 -0
- package/dist/krill/modules/umount.d.ts +14 -0
- package/dist/krill/modules/umount.js +27 -0
- package/dist/krill/modules/unpackfs.d.ts +13 -0
- package/dist/krill/modules/unpackfs.js +19 -0
- package/dist/krill/prepare.d.ts +78 -0
- package/dist/krill/prepare.js +626 -0
- package/dist/krill/sequence.d.ts +159 -0
- package/dist/krill/sequence.js +687 -0
- package/dist/lib/get_address.d.ts +8 -0
- package/dist/lib/get_address.js +23 -0
- package/dist/lib/get_dns.d.ts +8 -0
- package/dist/lib/get_dns.js +23 -0
- package/dist/lib/get_domain.d.ts +8 -0
- package/dist/lib/get_domain.js +23 -0
- package/dist/lib/get_gateway.d.ts +8 -0
- package/dist/lib/get_gateway.js +23 -0
- package/dist/lib/get_hostname.d.ts +8 -0
- package/dist/lib/get_hostname.js +23 -0
- package/dist/lib/get_netmask.d.ts +8 -0
- package/dist/lib/get_netmask.js +23 -0
- package/dist/lib/get_password.d.ts +8 -0
- package/dist/lib/get_password.js +36 -0
- package/dist/lib/get_userfullname.d.ts +8 -0
- package/dist/lib/get_userfullname.js +23 -0
- package/dist/lib/get_username.d.ts +8 -0
- package/dist/lib/get_username.js +23 -0
- package/dist/lib/kill_me_softly.d.ts +11 -0
- package/dist/lib/kill_me_softly.js +61 -0
- package/dist/lib/select_address_type.d.ts +8 -0
- package/dist/lib/select_address_type.js +24 -0
- package/dist/lib/select_filesystem_type.d.ts +8 -0
- package/dist/lib/select_filesystem_type.js +45 -0
- package/dist/lib/select_installation_device.d.ts +8 -0
- package/dist/lib/select_installation_device.js +30 -0
- package/dist/lib/select_installation_mode.d.ts +8 -0
- package/dist/lib/select_installation_mode.js +24 -0
- package/dist/lib/select_interface.d.ts +8 -0
- package/dist/lib/select_interface.js +24 -0
- package/dist/lib/select_keyboard_layout.d.ts +11 -0
- package/dist/lib/select_keyboard_layout.js +36 -0
- package/dist/lib/select_keyboard_model.d.ts +11 -0
- package/dist/lib/select_keyboard_model.js +34 -0
- package/dist/lib/select_keyboard_option.d.ts +11 -0
- package/dist/lib/select_keyboard_option.js +34 -0
- package/dist/lib/select_keyboard_variant.d.ts +11 -0
- package/dist/lib/select_keyboard_variant.js +35 -0
- package/dist/lib/select_languages.d.ts +8 -0
- package/dist/lib/select_languages.js +28 -0
- package/dist/lib/select_regions.d.ts +8 -0
- package/dist/lib/select_regions.js +24 -0
- package/dist/lib/select_user_swap_choice.d.ts +8 -0
- package/dist/lib/select_user_swap_choice.js +34 -0
- package/dist/lib/select_zones.d.ts +8 -0
- package/dist/lib/select_zones.js +518 -0
- package/dist/lib/utils.d.ts +34 -0
- package/dist/lib/utils.js +79 -0
- package/manpages/doc/man/eggs.1.gz +0 -0
- package/manpages/doc/man/eggs.html +21 -5
- package/mkinitfs/README.md +9 -0
- package/package.json +4 -4
- package/scripts/_eggs +9 -2
- package/scripts/eggs.bash +2 -1
- package/addons/eggs/ichoice/applications/eggs-ichoice.desktop +0 -23
- package/addons/eggs/ichoice/bin/eggs-ichoice.sh +0 -44
- package/scripts/love +0 -25
- /package/{addons/eggs/adapt/bin/adapt → scripts/adapt.sh} +0 -0
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/tools/clean.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command, Flags } from '@oclif/core';
|
|
9
|
+
import Bleach from '../../classes/bleach.js';
|
|
10
|
+
import Utils from '../../classes/utils.js';
|
|
11
|
+
export default class Clean extends Command {
|
|
12
|
+
static description = 'clean system log, apt, etc';
|
|
13
|
+
static examples = ['sudo eggs tools clean'];
|
|
14
|
+
static flags = {
|
|
15
|
+
help: Flags.help({ char: 'h' }),
|
|
16
|
+
nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
17
|
+
verbose: Flags.boolean({ char: 'v', description: 'verbose' })
|
|
18
|
+
};
|
|
19
|
+
async run() {
|
|
20
|
+
const { flags } = await this.parse(Clean);
|
|
21
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
22
|
+
let verbose = false;
|
|
23
|
+
if (flags.verbose) {
|
|
24
|
+
verbose = true;
|
|
25
|
+
}
|
|
26
|
+
const { nointeractive } = flags;
|
|
27
|
+
if (Utils.isRoot()) {
|
|
28
|
+
if (nointeractive || (await Utils.customConfirm('Select yes to continue...'))) {
|
|
29
|
+
const bleach = new Bleach();
|
|
30
|
+
bleach.clean(verbose);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
Utils.useRoot(this.id);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/tools/ppa.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from '@oclif/core';
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
export default class Ppa extends Command {
|
|
13
|
+
static description: string;
|
|
14
|
+
static examples: string[];
|
|
15
|
+
static flags: {
|
|
16
|
+
add: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
17
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
18
|
+
nointeractive: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
19
|
+
remove: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
20
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
*
|
|
24
|
+
*/
|
|
25
|
+
run(): Promise<void>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/tools/ppa.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command, Flags } from '@oclif/core';
|
|
9
|
+
import fs from 'node:fs';
|
|
10
|
+
import Distro from '../../classes/distro.js';
|
|
11
|
+
import Utils from '../../classes/utils.js';
|
|
12
|
+
import { exec } from '../../lib/utils.js';
|
|
13
|
+
const fkey = '/etc/apt/trusted.gpg.d/penguins-eggs-key.gpg';
|
|
14
|
+
const flist = '/etc/apt/sources.list.d/penguins-eggs-ppa.list';
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
export default class Ppa extends Command {
|
|
19
|
+
static description = 'add/remove repo';
|
|
20
|
+
static examples = ['sudo eggs tools ppa --add', 'sudo eggs tools ppa --remove'];
|
|
21
|
+
static flags = {
|
|
22
|
+
add: Flags.boolean({ char: 'a', description: 'add penguins-eggs PPA repository' }),
|
|
23
|
+
help: Flags.help({ char: 'h' }),
|
|
24
|
+
nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }),
|
|
25
|
+
remove: Flags.boolean({ char: 'r', description: 'remove penguins-eggs PPA repository' }),
|
|
26
|
+
verbose: Flags.boolean({ char: 'v', description: 'verbose' })
|
|
27
|
+
};
|
|
28
|
+
/**
|
|
29
|
+
*
|
|
30
|
+
*/
|
|
31
|
+
async run() {
|
|
32
|
+
const { flags } = await this.parse(Ppa);
|
|
33
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
34
|
+
let verbose = false;
|
|
35
|
+
if (flags.verbose) {
|
|
36
|
+
verbose = true;
|
|
37
|
+
}
|
|
38
|
+
const { nointeractive } = flags;
|
|
39
|
+
if (Utils.isRoot()) {
|
|
40
|
+
const distro = new Distro();
|
|
41
|
+
/**
|
|
42
|
+
* Debian
|
|
43
|
+
*/
|
|
44
|
+
if (distro.familyId === 'debian') {
|
|
45
|
+
if (flags.add) {
|
|
46
|
+
Utils.warning(`Are you sure to add ${flist} to your repositories?`);
|
|
47
|
+
if (nointeractive || (await Utils.customConfirm('Select yes to continue...'))) {
|
|
48
|
+
await debianAdd();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
else if (flags.remove) {
|
|
52
|
+
Utils.warning(`Are you sure to remove ${flist} to your repositories?`);
|
|
53
|
+
if (nointeractive || (await Utils.customConfirm('Select yes to continue...'))) {
|
|
54
|
+
await debianRemove();
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* archlinux
|
|
59
|
+
*/
|
|
60
|
+
}
|
|
61
|
+
if (distro.familyId === 'archlinux') {
|
|
62
|
+
if (flags.add) {
|
|
63
|
+
if (distro.distroId !== 'ManjaroLinux') {
|
|
64
|
+
Utils.warning(`Are you sure to add chaotic-aur to your repositories?`);
|
|
65
|
+
if (await Utils.customConfirm('Select yes to continue...')) {
|
|
66
|
+
await archAdd();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else if (flags.remove) {
|
|
71
|
+
await archRemove();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
/**
|
|
76
|
+
* Others
|
|
77
|
+
*/
|
|
78
|
+
Utils.warning(`Distro> ${distro.distroId}/${distro.codenameId}, cannot use this command here!`);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* archAdd
|
|
85
|
+
*/
|
|
86
|
+
async function archAdd() {
|
|
87
|
+
const path = '/var/cache/pacman/pkg/';
|
|
88
|
+
const keyring = 'chaotic-keyring.pkg.tar.zst';
|
|
89
|
+
const mirrorlist = 'chaotic-mirrorlist.pkg.tar.zst';
|
|
90
|
+
const echo = Utils.setEcho(true);
|
|
91
|
+
if (fs.existsSync(path + keyring) && fs.existsSync(path + mirrorlist)) {
|
|
92
|
+
console.log('repository chaotic-aur, already present!');
|
|
93
|
+
await archRemove();
|
|
94
|
+
process.exit();
|
|
95
|
+
}
|
|
96
|
+
await exec('pacman-key --recv-key FBA220DFC880C036 --keyserver keyserver.ubuntu.com', echo);
|
|
97
|
+
await exec('pacman-key --lsign-key FBA220DFC880C036', echo);
|
|
98
|
+
await exec("pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst'", echo);
|
|
99
|
+
// Append to /etc/pacman.conf
|
|
100
|
+
const chaoticAppend = '\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist\n\n';
|
|
101
|
+
fs.appendFileSync('/etc/pacman.conf', chaoticAppend);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* archRemove
|
|
105
|
+
*/
|
|
106
|
+
async function archRemove() {
|
|
107
|
+
const path = '/var/cache/pacman/pkg/';
|
|
108
|
+
const keyring = 'chaotic-keyring.pkg.tar.zst';
|
|
109
|
+
const mirrorlist = 'chaotic-mirrorlist.pkg.tar.zst';
|
|
110
|
+
const echo = Utils.setEcho(true);
|
|
111
|
+
if (fs.existsSync(path + keyring) && fs.existsSync(path + mirrorlist)) {
|
|
112
|
+
console.log('to remove chaotic-aur:\n');
|
|
113
|
+
console.log(`sudo rm ${path}${keyring}`);
|
|
114
|
+
console.log(`sudo rm ${path}${mirrorlist}`);
|
|
115
|
+
console.log(`sudo nano /etc/pacman.conf`);
|
|
116
|
+
console.log(`remove at the end:`);
|
|
117
|
+
console.log(`[chaotic-aur]`);
|
|
118
|
+
console.log(`Include = /etc/pacman.d/chaotic-mirrorlist`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* debianAdd
|
|
123
|
+
*/
|
|
124
|
+
async function debianAdd() {
|
|
125
|
+
await exec(`curl -sS https://pieroproietti.github.io/penguins-eggs-ppa/KEY.gpg| gpg --dearmor | sudo tee ${fkey} > /dev/null`);
|
|
126
|
+
const content = `deb [signed-by=${fkey}] https://pieroproietti.github.io/penguins-eggs-ppa ./\n`;
|
|
127
|
+
fs.writeFileSync(flist, content);
|
|
128
|
+
await exec('apt-get update');
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* debianRemove
|
|
132
|
+
*/
|
|
133
|
+
async function debianRemove() {
|
|
134
|
+
await exec('rm -f /etc/apt/trusted.gpg.d/penguins-eggs*');
|
|
135
|
+
await exec('rm -f /etc/apt/sources.list.d/penguins-eggs*');
|
|
136
|
+
await exec('rm -f /usr/share/keyrings/penguins-eggs*');
|
|
137
|
+
await exec('apt-get update');
|
|
138
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/tools/skel.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from '@oclif/core';
|
|
9
|
+
export default class Skel extends Command {
|
|
10
|
+
static description: string;
|
|
11
|
+
static examples: string[];
|
|
12
|
+
static flags: {
|
|
13
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
14
|
+
user: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
|
|
15
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
16
|
+
};
|
|
17
|
+
run(): Promise<void>;
|
|
18
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/tools/skel.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command, Flags } from '@oclif/core';
|
|
9
|
+
import fs from 'node:fs';
|
|
10
|
+
import Utils from '../../classes/utils.js';
|
|
11
|
+
import Xdg from '../../classes/xdg.js';
|
|
12
|
+
export default class Skel extends Command {
|
|
13
|
+
static description = 'update skel from home configuration';
|
|
14
|
+
static examples = ['sudo eggs tools skel', 'sudo eggs tools skel --user user-to-be-copied'];
|
|
15
|
+
static flags = {
|
|
16
|
+
help: Flags.help({ char: 'h' }),
|
|
17
|
+
user: Flags.string({ char: 'u', description: 'user to be used' }),
|
|
18
|
+
verbose: Flags.boolean({ char: 'v' })
|
|
19
|
+
};
|
|
20
|
+
async run() {
|
|
21
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
22
|
+
const { flags } = await this.parse(Skel);
|
|
23
|
+
let verbose = false;
|
|
24
|
+
if (flags.verbose) {
|
|
25
|
+
verbose = true;
|
|
26
|
+
}
|
|
27
|
+
let user = '';
|
|
28
|
+
user = flags.user ? flags.user : await Utils.getPrimaryUser();
|
|
29
|
+
Utils.warning(`user: ${user}`);
|
|
30
|
+
const homeSource = `/home/${user}`;
|
|
31
|
+
if (!fs.existsSync(homeSource)) {
|
|
32
|
+
Utils.error(`User ${user} not exist or not exist a proper home`);
|
|
33
|
+
Utils.warning('terminate');
|
|
34
|
+
process.exit(0);
|
|
35
|
+
}
|
|
36
|
+
if (Utils.isRoot()) {
|
|
37
|
+
Utils.titles('skel');
|
|
38
|
+
Xdg.skel(user, verbose);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
Utils.useRoot(this.id);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/tools/stat.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from '@oclif/core';
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
export default class ToolsStat extends Command {
|
|
13
|
+
static description: string;
|
|
14
|
+
static examples: string[];
|
|
15
|
+
static flags: {
|
|
16
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
17
|
+
month: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
year: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
23
|
+
run(): Promise<void>;
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @param start
|
|
27
|
+
* @param end
|
|
28
|
+
* @param type
|
|
29
|
+
*/
|
|
30
|
+
show(start: string, end: string, type?: string): Promise<void>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/tools/stat.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command, Flags } from '@oclif/core';
|
|
9
|
+
import axios from 'axios';
|
|
10
|
+
import https from 'node:https';
|
|
11
|
+
import Utils from '../../classes/utils.js';
|
|
12
|
+
const agent = new https.Agent({
|
|
13
|
+
rejectUnauthorized: false
|
|
14
|
+
});
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
export default class ToolsStat extends Command {
|
|
19
|
+
static description = 'get statistics from sourceforge';
|
|
20
|
+
static examples = ['eggs tools stat', 'eggs tools stat --month', 'eggs tools stat --year'];
|
|
21
|
+
static flags = {
|
|
22
|
+
help: Flags.help({ char: 'h' }),
|
|
23
|
+
month: Flags.boolean({ char: 'm', description: 'current month' }),
|
|
24
|
+
year: Flags.boolean({ char: 'y', description: 'current year' })
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
*
|
|
28
|
+
*/
|
|
29
|
+
async run() {
|
|
30
|
+
const { args, flags } = await this.parse(ToolsStat);
|
|
31
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
32
|
+
const yesterday = new Date();
|
|
33
|
+
yesterday.setDate(yesterday.getDate() - 1);
|
|
34
|
+
// current date
|
|
35
|
+
// adjust 0 before single digit date
|
|
36
|
+
const day = ('0' + yesterday.getDate()).slice(-2);
|
|
37
|
+
// current month
|
|
38
|
+
const month = ('0' + (yesterday.getMonth() + 1)).slice(-2);
|
|
39
|
+
// current year
|
|
40
|
+
const year = yesterday.getFullYear();
|
|
41
|
+
const end = year + '-' + month + '-' + day;
|
|
42
|
+
let start = year + '-' + month + '-' + day;
|
|
43
|
+
if (flags.month) {
|
|
44
|
+
start = year + '-' + month + '-01';
|
|
45
|
+
}
|
|
46
|
+
if (flags.year) {
|
|
47
|
+
start = year + '-01-01';
|
|
48
|
+
}
|
|
49
|
+
this.log('start: ' + start + ', end: ' + end + '\n');
|
|
50
|
+
await this.show(start, end, 'DEBS');
|
|
51
|
+
console.log();
|
|
52
|
+
await this.show(start, end, 'ISOS');
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
*
|
|
56
|
+
* @param start
|
|
57
|
+
* @param end
|
|
58
|
+
* @param type
|
|
59
|
+
*/
|
|
60
|
+
async show(start, end, type = 'DEBS') {
|
|
61
|
+
let url = `https://sourceforge.net/projects/penguins-eggs/files/${type}/stats/json`;
|
|
62
|
+
const request = '?start_date=' + start + '&end_date=' + end;
|
|
63
|
+
url += request;
|
|
64
|
+
const res = await axios.get(url, { httpsAgent: agent });
|
|
65
|
+
console.log(type);
|
|
66
|
+
for (const country of res.data.countries) {
|
|
67
|
+
console.log('- ' + country[0] + ': ' + country[1]);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/tools/yolk.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from '@oclif/core';
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
export default class ToolsYolk extends Command {
|
|
13
|
+
static description: string;
|
|
14
|
+
static dir: string;
|
|
15
|
+
static examples: string[];
|
|
16
|
+
static flags: {
|
|
17
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
18
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
23
|
+
run(): Promise<void>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/tools/yolk.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command, Flags } from '@oclif/core';
|
|
9
|
+
import fs from 'node:fs';
|
|
10
|
+
import shx from 'shelljs';
|
|
11
|
+
import Utils from '../../classes/utils.js';
|
|
12
|
+
import Yolk from '../../classes/yolk.js';
|
|
13
|
+
/**
|
|
14
|
+
*
|
|
15
|
+
*/
|
|
16
|
+
export default class ToolsYolk extends Command {
|
|
17
|
+
static description = 'configure eggs to install without internet';
|
|
18
|
+
static dir = '/var/local/yolk';
|
|
19
|
+
static examples = ['sudo eggs tools yolk'];
|
|
20
|
+
static flags = {
|
|
21
|
+
help: Flags.help({ char: 'h' }),
|
|
22
|
+
verbose: Flags.boolean({ char: 'v' })
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
*/
|
|
27
|
+
async run() {
|
|
28
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
29
|
+
const { flags } = await this.parse(ToolsYolk);
|
|
30
|
+
let verbose = false;
|
|
31
|
+
if (flags.verbose) {
|
|
32
|
+
verbose = true;
|
|
33
|
+
}
|
|
34
|
+
if (Utils.isRoot()) {
|
|
35
|
+
if (fs.existsSync(ToolsYolk.dir)) {
|
|
36
|
+
shx.exec(`rm ${ToolsYolk.dir} -rf `);
|
|
37
|
+
}
|
|
38
|
+
const yolk = new Yolk();
|
|
39
|
+
await yolk.create(verbose);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
Utils.useRoot(this.id);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/syncfrom.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from '@oclif/core';
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
export default class Update extends Command {
|
|
13
|
+
static description: string;
|
|
14
|
+
static examples: string[];
|
|
15
|
+
static flags: {
|
|
16
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
17
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Altrimenti, seleziona il tipo di
|
|
21
|
+
* aggiornamento desiderato
|
|
22
|
+
* indipendentemente dal flag
|
|
23
|
+
*/
|
|
24
|
+
chooseUpdate(): Promise<void>;
|
|
25
|
+
/**
|
|
26
|
+
*
|
|
27
|
+
*/
|
|
28
|
+
chosenDeb(): Promise<string>;
|
|
29
|
+
/**
|
|
30
|
+
*
|
|
31
|
+
*/
|
|
32
|
+
getDebFromApt(): Promise<void>;
|
|
33
|
+
/**
|
|
34
|
+
* download da LAN
|
|
35
|
+
*/
|
|
36
|
+
getDebFromLan(): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
*
|
|
39
|
+
*/
|
|
40
|
+
getDebFromManual(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
*
|
|
43
|
+
* @param aptVersion
|
|
44
|
+
*/
|
|
45
|
+
getFromSources(): void;
|
|
46
|
+
run(): Promise<void>;
|
|
47
|
+
}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/syncfrom.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command, Flags } from '@oclif/core';
|
|
9
|
+
import inquirer from 'inquirer';
|
|
10
|
+
import Pacman from '../classes/pacman.js';
|
|
11
|
+
import Tools from '../classes/tools.js';
|
|
12
|
+
import Utils from '../classes/utils.js';
|
|
13
|
+
import { exec } from '../lib/utils.js';
|
|
14
|
+
/**
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
export default class Update extends Command {
|
|
18
|
+
static description = "update the Penguins' eggs tool";
|
|
19
|
+
static examples = ['eggs update'];
|
|
20
|
+
static flags = {
|
|
21
|
+
help: Flags.help({ char: 'h' }),
|
|
22
|
+
verbose: Flags.boolean({ char: 'v', description: 'verbose' })
|
|
23
|
+
};
|
|
24
|
+
/**
|
|
25
|
+
* Altrimenti, seleziona il tipo di
|
|
26
|
+
* aggiornamento desiderato
|
|
27
|
+
* indipendentemente dal flag
|
|
28
|
+
*/
|
|
29
|
+
async chooseUpdate() {
|
|
30
|
+
console.log();
|
|
31
|
+
const choose = await this.chosenDeb();
|
|
32
|
+
Utils.titles(`updating via ${choose}`);
|
|
33
|
+
switch (choose) {
|
|
34
|
+
case 'apt': {
|
|
35
|
+
await this.getDebFromApt();
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
38
|
+
case 'lan': {
|
|
39
|
+
await this.getDebFromLan();
|
|
40
|
+
break;
|
|
41
|
+
}
|
|
42
|
+
case 'manual': {
|
|
43
|
+
this.getDebFromManual();
|
|
44
|
+
break;
|
|
45
|
+
}
|
|
46
|
+
case 'sources': {
|
|
47
|
+
this.getFromSources();
|
|
48
|
+
break;
|
|
49
|
+
}
|
|
50
|
+
// No default
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
*
|
|
55
|
+
*/
|
|
56
|
+
async chosenDeb() {
|
|
57
|
+
const choices = ['abort'];
|
|
58
|
+
choices.push('apt', 'lan', 'manual', 'sources');
|
|
59
|
+
const questions = [
|
|
60
|
+
{
|
|
61
|
+
choices,
|
|
62
|
+
message: 'select update method',
|
|
63
|
+
name: 'selected',
|
|
64
|
+
type: 'list'
|
|
65
|
+
}
|
|
66
|
+
];
|
|
67
|
+
const answer = await inquirer.prompt(questions);
|
|
68
|
+
if (answer.selected === 'abort') {
|
|
69
|
+
process.exit(0);
|
|
70
|
+
}
|
|
71
|
+
return answer.selected;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
*
|
|
75
|
+
*/
|
|
76
|
+
async getDebFromApt() {
|
|
77
|
+
if (await Pacman.packageAptAvailable('eggs')) {
|
|
78
|
+
await exec('apt reinstall eggs');
|
|
79
|
+
}
|
|
80
|
+
else {
|
|
81
|
+
console.log('eggs is not present in your repositories');
|
|
82
|
+
console.log('but you can upgrade from internet');
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* download da LAN
|
|
87
|
+
*/
|
|
88
|
+
async getDebFromLan() {
|
|
89
|
+
const Tu = new Tools();
|
|
90
|
+
await Tu.loadSettings();
|
|
91
|
+
Utils.warning('import from lan');
|
|
92
|
+
const cmd = `scp ${Tu.config.remoteUser}@${Tu.config.remoteHost}:${Tu.config.remotePathDeb}${Tu.config.filterDeb}${Utils.uefiArch()}.deb /tmp`;
|
|
93
|
+
await exec(cmd, { capture: true, echo: true });
|
|
94
|
+
if (await Utils.customConfirm(`Want to install ${Tu.config.filterDeb}${Utils.uefiArch()}.deb`)) {
|
|
95
|
+
await exec(`dpkg -i /tmp/${Tu.config.filterDeb}${Utils.uefiArch()}.deb`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
*
|
|
100
|
+
*/
|
|
101
|
+
async getDebFromManual() {
|
|
102
|
+
console.log('Download package from: \n\nhttps://sourceforge.net/projects/penguins-eggs/files/packages-deb/');
|
|
103
|
+
console.log('\nand install it with:');
|
|
104
|
+
console.log('\nsudo dpkg -i eggs_x.x.x-1.deb');
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
*
|
|
108
|
+
* @param aptVersion
|
|
109
|
+
*/
|
|
110
|
+
getFromSources() {
|
|
111
|
+
console.log('You can upgrade getting a new version from git:');
|
|
112
|
+
console.log('cd ~/penguins-eggs');
|
|
113
|
+
console.log('git pull');
|
|
114
|
+
console.log('');
|
|
115
|
+
console.log('Or You can also create a fresh installation on your hone:');
|
|
116
|
+
console.log('cd ~');
|
|
117
|
+
console.log('git clone https://github.com/pieroproietti/penguins-eggs');
|
|
118
|
+
console.log('');
|
|
119
|
+
console.log('Before to use eggs from sources, remember to install npm packages:');
|
|
120
|
+
console.log('cd ~/penguins-eggs');
|
|
121
|
+
console.log('npm install');
|
|
122
|
+
}
|
|
123
|
+
async run() {
|
|
124
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
125
|
+
const { flags } = await this.parse(Update);
|
|
126
|
+
Utils.titles(this.id + ' ' + this.argv);
|
|
127
|
+
if (Utils.isRoot()) {
|
|
128
|
+
if (Utils.isSources()) {
|
|
129
|
+
Utils.warning(`You are on penguins-eggs v. ${Utils.getPackageVersion()} from sources`);
|
|
130
|
+
}
|
|
131
|
+
else if (Utils.isDebPackage()) {
|
|
132
|
+
Utils.warning(`You are on eggs-${Utils.getPackageVersion()} installed as package .deb`);
|
|
133
|
+
}
|
|
134
|
+
await this.chooseUpdate();
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
Utils.useRoot(this.id);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ./src/commands/wardrobe/get.ts
|
|
3
|
+
* penguins-eggs v.10.0.0 / ecmascript 2020
|
|
4
|
+
* author: Piero Proietti
|
|
5
|
+
* email: piero.proietti@gmail.com
|
|
6
|
+
* license: MIT
|
|
7
|
+
*/
|
|
8
|
+
import { Command } from '@oclif/core';
|
|
9
|
+
/**
|
|
10
|
+
*
|
|
11
|
+
*/
|
|
12
|
+
export default class Get extends Command {
|
|
13
|
+
static args: {
|
|
14
|
+
repo: import("@oclif/core/interfaces").Arg<string | undefined, Record<string, unknown>>;
|
|
15
|
+
};
|
|
16
|
+
static description: string;
|
|
17
|
+
static examples: string[];
|
|
18
|
+
static flags: {
|
|
19
|
+
help: import("@oclif/core/interfaces").BooleanFlag<void>;
|
|
20
|
+
verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
|
|
21
|
+
};
|
|
22
|
+
run(): Promise<void>;
|
|
23
|
+
}
|