From 7d48c41f4280f4a7bff5b9a54272df540c7ee5e8 Mon Sep 17 00:00:00 2001 From: jin Date: Wed, 3 Oct 2018 03:33:47 +0000 Subject: [PATCH 1/7] add a method to check if service is avtively running --- index.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/index.js b/index.js index 901470d..71a10f3 100644 --- a/index.js +++ b/index.js @@ -25,6 +25,21 @@ function isEnabled(serviceName) { }) } +function isActive(serviceName) { + return new Promise((resolve, reject) => { + run('is-active', serviceName) + .then((result) => { + if(result.stdout.indexOf('active') != -1 && result.stdout.indexOf('inactive')==-1) + resolve(true) + else + resolve(false) + }) + .catch(function (err) { + resolve(false) + }) + }) +} + function restart(serviceName) { return run("restart", serviceName) } From 78765b20472ff146c43cee6d3c09ff11127b4317 Mon Sep 17 00:00:00 2001 From: Justin Schwartzbeck Date: Mon, 30 Aug 2021 06:10:39 -0500 Subject: [PATCH 2/7] Adds mask/unmask --- index.js | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/index.js b/index.js index 901470d..93840b4 100644 --- a/index.js +++ b/index.js @@ -37,6 +37,14 @@ function stop(serviceName) { return run("stop", serviceName) } +function mask(serviceName) { + return run("mask", serviceName) +} + +function unmask(serviceName) { + return run("unmask", serviceName) +} + module.exports.run = run module.exports.daemonReload = daemonReload module.exports.disable = disable @@ -45,3 +53,5 @@ module.exports.isEnabled = isEnabled module.exports.restart = restart module.exports.start = start module.exports.stop = stop +module.exports.mask = mask +module.exports.unmask = unmask From 5e8d911bb666d9633d177ebb99d6912846bacb00 Mon Sep 17 00:00:00 2001 From: Justin Schwartzbeck Date: Mon, 30 Aug 2021 06:10:43 -0500 Subject: [PATCH 3/7] Adds mask/unmask --- package-lock.json | 2 +- package.json | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index c950b65..d6473e3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "systemctl", - "version": "0.2.0", + "version": "0.2.3", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 2239cf6..9fbad61 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "systemctl", - "version": "0.2.2", + "version": "0.2.3", "description": "Allows you to control system services using the systemctl command easily and asynchronously", "repository": "bmcclure/node-systemctl", "keywords": [ @@ -11,7 +11,6 @@ ], "author": "Ben McClure (volantisdev.com)", "license": "MIT", - "homepage": "https://github.com/bmcclure/node-systemctl", "bugs": { "url": "https://github.com/bmcclure/node-systemctl/issues" From 7d17d7a9631add33213f062a2d53c0e5e1061d5a Mon Sep 17 00:00:00 2001 From: Justin Schwartzbeck Date: Mon, 6 Sep 2021 06:30:46 -0500 Subject: [PATCH 4/7] sudo, formatting --- index.js | 56 ++++++++++++++++++++++++++-------------------------- package.json | 13 ++++++++++-- run.js | 10 +++------- 3 files changed, 42 insertions(+), 37 deletions(-) diff --git a/index.js b/index.js index 345fe64..d632221 100644 --- a/index.js +++ b/index.js @@ -2,25 +2,25 @@ var Promise = require('bluebird') var run = require('./run') function daemonReload() { - return run("daemon-reload") + return run("daemon-reload"); } function disable(serviceName) { - return run("disable", serviceName) + return run("disable", serviceName); } function enable(serviceName) { - return run("enable", serviceName) + return run("enable", serviceName); } function isEnabled(serviceName) { return new Promise((resolve, reject) => { run('is-enabled', serviceName) .then((result) => { - resolve(result.stdout.indexOf('enabled') != -1) + resolve(result.stdout.indexOf('enabled') != -1); }) .catch(function (err) { - resolve(false) + resolve(false); }) }) } @@ -30,43 +30,43 @@ function isActive(serviceName) { run('is-active', serviceName) .then((result) => { if(result.stdout.indexOf('active') != -1 && result.stdout.indexOf('inactive')==-1) - resolve(true) + resolve(true); else - resolve(false) + resolve(false); }) .catch(function (err) { - resolve(false) + resolve(false); }) }) } -function restart(serviceName) { - return run("restart", serviceName) +function restart(serviceName, sudo=false) { + return run("restart", serviceName, sudo); } -function start(serviceName) { - return run("start", serviceName) +function start(serviceName, sudo=false) { + return run("start", serviceName, sudo); } -function stop(serviceName) { - return run("stop", serviceName) +function stop(serviceName, sudo=false) { + return run("stop", serviceName, sudo); } -function mask(serviceName) { - return run("mask", serviceName) +function mask(serviceName, sudo=false) { + return run("mask", serviceName, sudo); } -function unmask(serviceName) { - return run("unmask", serviceName) +function unmask(serviceName, sudo=false) { + return run("unmask", serviceName, sudo); } -module.exports.run = run -module.exports.daemonReload = daemonReload -module.exports.disable = disable -module.exports.enable = enable -module.exports.isEnabled = isEnabled -module.exports.restart = restart -module.exports.start = start -module.exports.stop = stop -module.exports.mask = mask -module.exports.unmask = unmask +module.exports.run = run; +module.exports.daemonReload = daemonReload; +module.exports.disable = disable; +module.exports.enable = enable; +module.exports.isEnabled = isEnabled; +module.exports.restart = restart; +module.exports.start = start; +module.exports.stop = stop; +module.exports.mask = mask; +module.exports.unmask = unmask; diff --git a/package.json b/package.json index 9fbad61..4d7dad0 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,10 @@ "name": "systemctl", "version": "0.2.3", "description": "Allows you to control system services using the systemctl command easily and asynchronously", - "repository": "bmcclure/node-systemctl", + "repository": { + "type": "git", + "url": "git@github.com:justinschw/systemctl-cmd.git" + }, "keywords": [ "Systemctl", "Systemd", @@ -17,10 +20,16 @@ }, "contributors": [ "Ben McClure (volantisdev.com)", - "Frank Lemanschik" + "Frank Lemanschik", + "Justin Schwartzbeck " ], "dependencies": { "bluebird": "^3.5.0", "child-process-promise": "^2.2.1" + }, + "main": "index.js", + "devDependencies": {}, + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" } } diff --git a/run.js b/run.js index 0827445..0d528de 100644 --- a/run.js +++ b/run.js @@ -1,11 +1,7 @@ var exec = require("child-process-promise").exec -module.exports = function run(cmd, service_name) { - var command = 'systemctl ' + cmd +module.exports = function run(cmd, service_name, sudo = false) { + var command = `${(sudo) ? 'sudo ' : ''}systemctl ${cmd} ${service_name}`; - if (service_name) { - command = command + ' ' + service_name - } - - return exec(command) + return exec(command); } From 16ca3bebcf86a249c8a812738ea1e4748f5182dd Mon Sep 17 00:00:00 2001 From: Justin Schwartzbeck Date: Mon, 6 Sep 2021 06:35:41 -0500 Subject: [PATCH 5/7] Update contributors, documentation --- README.md | 11 ++++++++--- package.json | 3 ++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 76d2a1b..5ecddf7 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,9 @@ -# systemctl +# systemctl-cmd This simple node module allows you to control system services using the systemctl command easily and asynchronously. +This is a fork of VolantisDev's systemctl, because he isn't accepting pull requests. + ## Requirements - Archlinux or another OS which uses the systemctl command @@ -13,13 +15,16 @@ There are two ways to use systemctl depending on your needs: ### 1. Utilize the helper functions ``` // For ES6: -import systemctl from 'systemctl' +import systemctl from 'systemctl-cmd' // For ES5: -var systemctl = require('systemctl') +var systemctl = require('systemctl-cmd') // Start a service systemctl.start('service-name').then(output => console.log) +// Start a service with sudo +systemctl.start('service-name', true).then(output => console.log) + // Check if a service is enabled systemctl.isEnabled('service-name').then(enabled => { console.log((enabled ? 'Enabled' : 'Not enabled')); diff --git a/package.json b/package.json index 4d7dad0..2900cba 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ "contributors": [ "Ben McClure (volantisdev.com)", "Frank Lemanschik", - "Justin Schwartzbeck " + "Justin Schwartzbeck ", + "chaojinn" ], "dependencies": { "bluebird": "^3.5.0", From 407e1d2ba482c7005acae0fceb9c5af0255f9c30 Mon Sep 17 00:00:00 2001 From: Justin Schwartzbeck Date: Mon, 6 Sep 2021 06:35:59 -0500 Subject: [PATCH 6/7] sudo command --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index d6473e3..c8a09d5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "systemctl", - "version": "0.2.3", + "version": "0.2.4", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 2900cba..e5b344f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "systemctl", - "version": "0.2.3", + "version": "0.2.4", "description": "Allows you to control system services using the systemctl command easily and asynchronously", "repository": { "type": "git", From 5ff197d6f70aa679e51f42cac2367d59b9fed35f Mon Sep 17 00:00:00 2001 From: Justin Schwartzbeck Date: Mon, 6 Sep 2021 06:37:57 -0500 Subject: [PATCH 7/7] Update package name --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e5b344f..1cd9d8b 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "systemctl", + "name": "systemctl-cmd", "version": "0.2.4", "description": "Allows you to control system services using the systemctl command easily and asynchronously", "repository": {