args icon indicating copy to clipboard operation
args copied to clipboard

How to use options value with cmd in cmd?

Open grey4owl opened this issue 3 years ago • 1 comments

Hi, Is it possible to create something like this:

//-- mycli.js

const args = require("args");

args.option("port", "The port on which the app will be running.", 4040);
args.command("run", "Run dev version on localhost.", () => {
  console.log("Running on port: " + flags.port); 
  //-- this doesn't work because you cannot access 'flags' before initialization
}, ["r"]);

const flags = args.parse(process.argv);

So you can use it like: mycli run --port 3333 and then output: Running on port: 3333. In case you are not using a --port flag, the output should be: Running on port: 4040.

I did not find anything similar in the documentation..

grey4owl avatar Jun 19 '22 12:06 grey4owl

You may have already figured out the solution, but it passes a copy of flags to the function. It is defined in the "init" function documentation, but I agree it doesn't tie it together into a coherent example.

const args = require("args");

args.option("port", "The port on which the app will be running.", 4040);
args.command("run", "Run dev version on localhost.", (name, sub, options) => {
  console.log("Running on port: " + options.port); 
}, ["r"]);

args.parse(process.argv);

mike-feldmeier avatar Jul 15 '22 14:07 mike-feldmeier