Foobara::ShCliConnector
A command connector for Foobara that exposes commands via a shell command-line interface (CLI). This connector parses command-line arguments and routes them to Foobara commands, making it easy to build CLI tools from your Foobara commands.
Installation
Typical stuff: add gem "foobara-sh-cli-connector" to your Gemfile or .gemspec file. Or even just
gem install foobara-sh-cli-connector if that's your jam.
Usage
Connecting multiple commands in a CLI script
require "foobara/sh_cli_connector"
class Greet < Foobara::Command
inputs do
who :string, default: "World"
end
result :string
def execute
build_greeting
greeting
end
attr_accessor :greeting
def build_greeting = self.greeting = "Hello, #{who}!"
end
connector = Foobara::CommandConnectors::ShCliConnector.new
connector.connect(Greet)
connector.run
Then run your CLI script:
$ ./cli_demo.rb
Usage: cli_demo.rb [GLOBAL_OPTIONS] [ACTION] [COMMAND_OR_TYPE] [COMMAND_INPUTS]
Available actions:
run, help, describe, manifest
Default action: run
Available commands:
Greet
$ ./cli_demo.rb help Greet
Usage: cli_demo.rb [GLOBAL_OPTIONS] Greet [COMMAND_INPUTS]
Command inputs:
-w, --who WHO Default: World
$ ./cli_demo.rb Greet
Hello, World!
$ ./cli_demo.rb Greet -w Fumiko
Hello, Fumiko!
Single Command Mode
If you want to make a CLI script that only exposes one command, you can use single command mode:
connector = Foobara::CommandConnectors::ShCliConnector.new(single_command_mode: Greet)
connector.run
Now you can run this without specifying the command name:
$ ./greet-cli --help
Usage: greet-cli [INPUTS]
Inputs:
-w, --who WHO Default: World
$ ./greet-cli --who Barbara
Hello, Barbara!
Development
Contributing
I would love help with this and other Foobara gems! Feel free to hit me up at [email protected] if you think helping out would be fun or interesting! I have tasks for all experience levels and am often free to pair on Foobara stuff.
Reporting bugs or requesting features
Bug reports and feature requests can be made as github issues at https://github.com/foobara/sh-cli-connector
Contributing code
You should be able to fork the repo, clone it locally, run bundle and then rake to run
the test suite and linter. Make your changes and push them up and open a PR! If you need any help please reach out and we're happy to help!
License
foobara-sh-cli-connector is licensed under your choice of the Apache-2.0 license or the MIT license. See LICENSE.txt for more info about licensing.