diff --git a/app/classes/state/os/CommandState.js b/app/classes/state/os/CommandState.js new file mode 100644 index 0000000..47bbf4d --- /dev/null +++ b/app/classes/state/os/CommandState.js @@ -0,0 +1,26 @@ +const State = require('../State') + +class CommandState extends State { + static get services() { + return [...super.services, 'output'] + } + + async apply() { + const cmd = `${this._config.cmd}` + await this._host.run(cmd) + } + + async check() { + return false + } + + async reverse() { + if ( this._config.reverse ) { + const cmd = `${this._config.reverse}` + await this._host.run(cmd) + } + } + +} + +module.exports = exports = CommandState diff --git a/app/services/states.service.js b/app/services/states.service.js index b4c1857..e9b7717 100644 --- a/app/services/states.service.js +++ b/app/services/states.service.js @@ -24,6 +24,8 @@ class StatesService extends Service { 'fs.permission': require('../classes/state/fs/PermissionState'), 'fs.ownership': require('../classes/state/fs/OwnerState'), + 'os.cmd': require('../classes/state/os/CommandState'), + 'package.present': require('../classes/state/os/PackageState'), 'package.updates': require('../classes/state/os/UpdateState'), 'package.cache.clear': require('../classes/state/os/PackageCacheClearedState'),