ussr
v0.0.2
Published
Universal Strategical Script Runner
Downloads
9
Maintainers
Readme
USSR
Universal Strategical Script Runner
IN ACTIVE DEVELOPMENT, DONT TOUCH
Install
If you have NPM:
npm i -g ussr # don't forget about `sudo`, it's a global module
If you don't have NPM:
wget something here
# And then make this module global
# For example on my Mac it looks like:
# sudo mv ./ussr /usr/bin/ussr
USSR is pkg'ed, so you download a binary executable.
Usage
ussr init
# inits ussr.json file with commands and env vars from your package.json
# If you don't use Node, make a PR to add a support for your language.
ussr alias <name_of_your_alias> <real command with env vars>
ussr alias run_dev HELLO=WOLRD npm run dev
ussr alias run_another_dev ROOT=РУТ NOOP=НИЧЕГО node ./script.js
ussr alias run_other_dev HELLO=ПРИВЕТ WORLD=МИР python ./script.py
# creates alias for your command with env vars
# then you can run your alias:
ussr run run_dev
ussr run_dev # Yes, this syntax is supported too
ussr info
# prints info about all registered with USSR commands and env vars
# e.g. output looks like
ussr docs md
ussr docs html
# Generates file with info from ussr.json
# You can include it in your README.md
ussr list envs
ussr list alias
# print
# `ls` - is an alias for list
ussr ls env
ussr ls alias
Development
Code is readable, even person who isn't familiar with CLI development understand what is going on inside. Every contribution, issue, pull request or just a feedback are highly appreciated.
How can I help?
Just check github project. You can find current tasks. Thank you.
Motivation
Have you ever run command like this?
ROOT_DOMAIN=xx-xxxx-x.amazonaws.com/xxxxxx-xxxxxxx BASE_API=https://xxxxx.example.com/api/v1 OLD_API=https://xxxxx.notanexample.com/api/v1 STATIC_URL=https://xx-xxxx-x.amazonaws.com/xxxxxx-xxxxxxx/static OPTIONAL_ARG=xxxxxxxxxxxx I_DONT_KNOW_THIS_ARG=xxxxxxxxxxxx GOOGLE_ANALYTICS_ID=UA-xxxxxxxx-y WHERE_DO_WE_USE_THIS_VAR=xxxxxxx USE_ENCRYPTION=xxxxxxx SENTRY_ID=https://[email protected]/xxxxxxx npm run start
Do you always know what THIS_ENV_VAR does? Do you always know which command accept certain ENV_VAR?
I have 10 commands with 25 params in my work project that looks like this. And I can't use aliases, default fallbacks and other stuff.
Comparison
https://www.npmjs.com/package/config - https://github.com/sindresorhus/conf
License
MIT
Author
Vladimir Metnew [email protected]