Giter VIP home page Giter VIP logo

yaask's Introduction

Yaask

Make your yaml configurable with interactive configurations!

asciicast

Requirements

  • Node.js 4.2+
  • npm

Install

npm install yaask -g

Usage

yaask settings-sample.yml -o settings.yml

Before:

# Your yaml file goes here
# These parameters will remain the same:
foo: 1
bar: 2

# Here we ask for the value:
name: # @ask "Your name?"

# The same as above, but with default value:
city: # @ask "City you're from?" (default San Francisco)

# You can select one of the options:
coffee: # @ask "Do you want some coffee?" yes|no

# As many options as you want:
appointment_time: # @ask "Select appointment time" 9am | 11am | 1pm | 3pm | 5pm

# With explanation for each option:
cloud_provider: # @ask "Your cloud provider?" aws (Amazon AWS) | azure (Microsoft Azure) | gloud (Google Cloud)

# Or for some of them:
log_type: # @ask "Select log type" error | warn | info | verbose | none (I don't need any logging)

After:

# Your yaml file goes here
# These parameters will remain the same:
foo: 1
bar: 2

# Here we ask for the value:
name: Roman # @ask "Your name?"

# The same as above, but with default value:
city: San Francisco # @ask "City you're from?" (default San Francisco)

# You can select one of the options:
coffee: no # @ask "Do you want some coffee?" yes|no

# As many options as you want:
appointment_time: 3pm # @ask "Select appointment time" 9am | 11am | 1pm | 3pm | 5pm

# With explanation for each option:
cloud_provider: azure # @ask "Your cloud provider?" aws (Amazon AWS) | azure (Microsoft Azure) | gloud (Google Cloud)

# Or for some of them:
log_type: none # @ask "Select log type" error | warn | info | verbose | none (I don't need any logging)

Formats

There are few formats that can be used after @ask keyword.

Simple

With simple format you'll just ask for input:

"How many cups of coffee do you want?"

Without quotes:

How many cups of coffee do you want?

With colon:

How many cups of coffee do you want:

Yaml file example:

cups: # @ask How many cups of coffee do you want?

Default

Default format allows to specify default value:

"City you're from?" (default San Francisco)

Without quotes:

City you're from? (default San Francisco)

With colon:

City you're from : (default San Francisco)

Without anything:

City you're from (default San Francisco)

Yaml file example (will override value if already specified):

city: # @ask City you're from? (default San Francisco)

List

List format allows to specify the list of options:

"Do you want some coffee?" yes|no

With some spacing:

"Do you want some coffee?" yes | no

With description (description is visible to the user, but value will be used):

"Do you want some coffee?" yes (Yes, please) | no (No, thank you)

With optional description:

"Do you want some coffee?" yes (Yes, please) | no

Without quotes:

Do you want some coffee? yes | no

Without question mark:

Cup size : small | medium | large

Yaml file example:

coffee: # @ask Do you want some coffee? yes (Yes, please) | no (No, thank you)
cup_size: # @ask Cup size : small | medium | large

Why?

I use it to make my Docker containers configurable.

License

MIT

yaask's People

Contributors

ro31337 avatar andrewraycode avatar

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.