bargs v1.0.0

🛥️ The ultimate Command Line Interface builder for Crystal

Bargs

Open Source Love Open Source Love PRs Welcome

The ultimate Command Line Interface builder for Crystal

Bargs aims to be the successor to Commander, while remaining tiny, unopinionated, and simple to use.

Installation

Add this to your application's shard.yml:

dependencies:
  bargs:
    github: crystalrealm/bargs

Usage

require "bargs"

# Creating a new Bargs interface
# By default, Bargs uses the global ARGV variable, but you can also specify an array of strings, and it will use that.
interface = Bargs::CLI.new

# This message gets shown if no flags or commands are given.
interface.help = "Help message goes here."

# Add an 'install' command
interface.command "install"

# Define a save flag. Also making sure it accepts an argument.
interface.flag "save" do |flag|
  flag.short = "s"

  # NOTE: This here is totally optional.
  flag.accepts_arg = true
end

args = interface.process

Here, args contains a Bargs::ProcessedInput.

A processed input contains the following fields & methods:

.command_name

Returns the parsed command, if any.

.has?(flag_name : String) : Bool

Returns true if the given flag name was matched in the input.

.get(flag_name : String) : Bargs::Flag

Returns the flag matched with the given name.

Also note: A flag will always be stored with their long names in focus, so you need to provide the actual long flag name to get & has?.

Contributing

  1. Fork it (https://github.com/crystalrealm/bargs/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

Repository

bargs

Owner
Statistic
  • 3
  • 0
  • 0
  • 3
  • 0
  • over 6 years ago
  • August 29, 2018
License

MIT License

Links
Synced at

Sun, 22 Dec 2024 04:25:46 GMT

Languages