https://github.com/ro31337/yaask
Make your yaml configurable with interactive configurations!
https://github.com/ro31337/yaask
config configuration yaml
Last synced: 8 months ago
JSON representation
Make your yaml configurable with interactive configurations!
- Host: GitHub
- URL: https://github.com/ro31337/yaask
- Owner: ro31337
- License: mit
- Created: 2018-01-17T01:20:56.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2020-06-08T20:14:20.000Z (about 6 years ago)
- Last Synced: 2025-04-22T19:52:12.216Z (about 1 year ago)
- Topics: config, configuration, yaml
- Language: JavaScript
- Homepage:
- Size: 87.9 KB
- Stars: 16
- Watchers: 2
- Forks: 2
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Yaask
Make your yaml configurable with interactive configurations!
# Requirements
* Node.js 4.2+
* npm
# Install
```
npm install yaask -g
```
# Usage
```
yaask settings-sample.yml -o settings.yml
```
Before:
```yaml
# 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:
```yaml
# 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:
```yaml
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):
```yaml
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:
```yaml
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