smartdaemon/ts/smartdaemon.classes.smartdaemon.ts

60 lines
1.4 KiB
TypeScript
Raw Normal View History

2019-09-03 09:29:14 +00:00
import * as plugins from './smartdaemon.plugins';
import { SmartDaemonTemplateManager } from './smartdaemon.classes.templatemanager';
const smartDaemonNamespace = 'smartdaemon_';
interface SmartDaemonConstructorOptions {
name: string;
scriptPath: string;
workingDir: string;
}
export class SmartDaemon {
private templateManager: SmartDaemonTemplateManager;
private smartshellInstance: plugins.smartshell.Smartshell;
private smartsystem: plugins.smartsystem.Smartsystem;
private shouldExecute: boolean = false;
constructor() {
this.templateManager = new SmartDaemonTemplateManager;
this.smartshellInstance = new plugins.smartshell.Smartshell({
executor: 'bash'
});
this.smartsystem = new plugins.smartsystem.Smartsystem();
}
public async checkElegibility () {
if (await this.smartsystem.env.isLinuxAsync()) {
this.shouldExecute = true;
} else {
console.log('Smartdaemon can only be used on Linuc systems! Refusing to set up a service.');
this.shouldExecute = false;
}
return this.shouldExecute;
}
/**
* enables the service
*/
public async enable() {
};
/**
* disables the service
*/
public async disable() {
};
/**
* pauses the service
*/
public pause() {};
private async execute(commandArg: string) {
this.smartshellInstance.exec(commandArg);
}
}