From 13ecf0df6ebcd454659f3e19a4f8e4c0543ed430 Mon Sep 17 00:00:00 2001 From: danbulant Date: Wed, 19 Feb 2020 16:56:25 +0100 Subject: [PATCH] Arguments parser --- modules/args.js | 54 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 modules/args.js diff --git a/modules/args.js b/modules/args.js new file mode 100644 index 0000000..881fa99 --- /dev/null +++ b/modules/args.js @@ -0,0 +1,54 @@ +var args = process.argv; + +if(args[2] == "--bat"){ + args.splice(0, 3); +} + +var con = []; + +args.forEach((a, i) => { + if(a.startsWith("--")){ + return con[i] = { + type: "flag", + variant: "long", + content: a.substr(2) + }; + } + if(a.startsWith("-")){ + return con[i] = { + type: "flag", + variant: "short", + content: a.substr(1) + }; + } + return con[i] = { + type: "content", + content: a + } +}); + +var flags = {}; +var contents = []; +var skipNext = false; + +con.forEach((a, i) => { + if(skipNext)return skipNext = false; + + if(a.type == "flag"){ + var next = con[i + 1]; + if(next){ + if(next.type == "content"){ + skipNext = true; + return flags[a.content] = next.content; + } + } + return flags[a.content] = true; + } + contents.push(a.content); +}); + +module.exports = { + args: con, + flags, + contents +}; \ No newline at end of file