Coder Social home page Coder Social logo

Comments (2)

75lb avatar 75lb commented on May 25, 2024 1

Hi, could you post an example so I can more accurately visualise what you're trying to achieve? Something like this?

$ example file1.txt file2.txt --terms-accepted true

It would be very useful if one was able to configure command-line-args so that a Boolean option can take it's value as an argument, just like a String option.

If a boolean flag option requires an argument then it's no longer a boolean flag option. Could you define an option which accepts an input argument and then process the result with a custom function? Something like..

const commandLineArgs = require('command-line-args')

function activeDecision (userInput) {
  return userInput === 'true' || userInput === 'yes'
}

const optionDefinitions = [
  { name: 'accept-terms', type: activeDecision }
]

const options = commandLineArgs(optionDefinitions, { camelCase: true })
console.log('activeDecision result:', options.acceptTerms)

if (options.acceptTerms) {
  console.log('Thanks for accepting the terms.')
} else {
  console.log('Please accept the terms to continue.')
}

Example usage:

$ node active-decision.js
activeDecision result: undefined
Please accept the terms to continue.

$ node active-decision.js --accept-terms
activeDecision result: null
Please accept the terms to continue.

$ node active-decision.js --accept-terms no
activeDecision result: false
Please accept the terms to continue.

$ node active-decision.js --accept-terms yes
activeDecision result: true
Thanks for accepting the terms.

$ node active-decision.js --accept-terms true
activeDecision result: true
Thanks for accepting the terms.

from command-line-args.

jihu avatar jihu commented on May 25, 2024

This feature would also make it possible to have a Boolean option to be required. That is currently impossible.

The use case for having a required boolean could be that one want's to force the user to make an active decision, ie yes/no, true/false. But since the user can't actively choose 'false' then this can't be done currently.

from command-line-args.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.