From 6cd5a9d4784ba1047ed584fdfcb3bd97828bf222 Mon Sep 17 00:00:00 2001 From: ray-1337 <33544674+ray-1337@users.noreply.github.com> Date: Mon, 11 Apr 2022 22:45:21 +0200 Subject: [PATCH] added delete method (based on numbered list) --- src/methods/delete.js | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/methods/delete.js diff --git a/src/methods/delete.js b/src/methods/delete.js new file mode 100644 index 0000000..16a8bc7 --- /dev/null +++ b/src/methods/delete.js @@ -0,0 +1,29 @@ +const {exec} = require("child_process"); +const {promisify} = require("util"); +const promisifiedExec = promisify(exec); + +/** + * Delete ufw rule(s). (root/sudo access is mandatory) + * @param {number} num Number of the rules list. The first rule starts from number 1. + * @returns {Promise} Returns a boolean. +*/ +module.exports = async function(num) { + try { + if (!num) throw new Error("Missing num input."); + if (typeof num !== "number") throw new Error("The num must be type of number."); + if (num === 0) num = 1; + + let res = await promisifiedExec(`echo "y" | sudo ufw delete ${num}`); + + if (res.stderr) throw new Error(res.stderr); + + if (res.stdout) { + return true; + } else { + console.log(res.stdout); + return false; + }; + } catch (err) { + throw new Error(err); + }; +}; \ No newline at end of file