| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import {eServiceStatus, Service} from "../models/service";
- const listServices = require("linux-systemd").list;
- class SystemdWrapper {
- private getStatus(status:string): eServiceStatus {
- status = status.toLocaleLowerCase();
- if (status === "active")
- return eServiceStatus.eActive;
- else if (status === "inactive")
- return eServiceStatus.eInactive;
- else if (status === "failed")
- return eServiceStatus.eFailed;
- else if (status === "activating")
- return eServiceStatus.eActivating;
- else if (status === "deactivating")
- return eServiceStatus.eDeactivating;
- else if (status === "maintenance")
- return eServiceStatus.eMaintenance;
- else if (status === "reloading")
- return eServiceStatus.eReloading;
- else if (status === "refreshing")
- return eServiceStatus.eRefreshing;
- return eServiceStatus.eUnknown;
- }
- public async list(): Promise<Array<Service>> {
- let services = await listServices();
- return Object.keys(services)
- .map((serviceKey: string) => services[serviceKey])
- .map((service: any) => <Service> {
- name: service.name,
- description: service.description,
- status: this.getStatus(service.activeState),
- statusText: service.subState
- });
- }
- }
- export default new SystemdWrapper();
|