UNPKG

penguins-eggs

Version:

A remaster system tool, compatible with Arch, Debian, Devuan, Ubuntu and others

51 lines (50 loc) 1.87 kB
/** * ./src/commands/kill.ts * penguins-eggs v.10.0.0 / ecmascript 2020 * author: Piero Proietti * email: piero.proietti@gmail.com * license: MIT */ import { Command, Flags } from '@oclif/core'; import Settings from '../classes/settings.js'; import Utils from '../classes/utils.js'; import killMeSoftly from '../lib/kill_me_softly.js'; /** * */ export default class Kill extends Command { static description = 'kill the eggs/free the nest'; static examples = ['sudo eggs kill']; static flags = { help: Flags.help({ char: 'h' }), isos: Flags.boolean({ char: 'i', description: 'erase all ISOs on remote mount' }), nointeractive: Flags.boolean({ char: 'n', description: 'no user interaction' }), verbose: Flags.boolean({ char: 'v', description: 'verbose' }) }; config_file = '/etc/penguins-eggs.d/eggs.yaml'; snapshot_dir = ''; async run() { Utils.titles(this.id + ' ' + this.argv); const { flags } = await this.parse(Kill); const { verbose } = flags; const { isos } = flags; const { nointeractive } = flags; const echo = Utils.setEcho(verbose); if (Utils.isRoot()) { const settings = new Settings(); await settings.load(); await settings.listFreeSpace(); if (Utils.isMountpoint(settings.config.snapshot_mnt)) { console.log('=========================================='); Utils.warning('You are working on a mountpoint'); console.log('=========================================='); } if (nointeractive || (await Utils.customConfirm())) { await killMeSoftly(settings.config.snapshot_dir, settings.config.snapshot_mnt, isos); } } else { Utils.useRoot(this.id); } } }