Webcommand
Webcommand lets you run commands through a Web API
Installation
Add this line to your application's Gemfile:
gem 'webcommand'
And then execute:
$ bundle
Or install it yourself as:
$ gem install webcommand
Usage
Create a config file specifying the commands you want to expose with the permitted params.
# my_config.yml
commands:
hello_world:
# Parameter without validations
command: 'echo "Hello {{world}}"'
hehe:
command: 'echo "{{name}}, are you {{state}}?"'
params:
# Validation can be configured with any REGEXP
name: '^[a-zA-Z]+$'
state: '^\S+$'
Run the webserver with the cli (OBS: See the webcommand help server
for additional options):
WEBCOMMAND_CONFIGURATION=./my_config.yml webcommand server --port 3000
After that you can execute your commands throught the web api:
curl -X POST http://localhost:3000/executions \
-d '{"command": "hehe", "params": { "name": "Annie", "state": "Ok"} }' \
-H "Content-Type: application/json"
#=> {"stdout":"Annie, are you Ok?\n","stderr":"","exit_status":0}%
With Rails
...TODO...
With Docker
...TODO...
Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/catks/webcommand.
License
The gem is available as open source under the terms of the MIT License.