Git-Like Interface Command Line Parser¶ ↑
GLI is the best way to make a “command-suite”
command-line application, e.g. one like git
(for the best way
to make a simpler command-line application, check out methadone).
GLI allows you to make a polished, easy-to-maintain
command-line application without a lot of syntax, but without restricting
you in any way from the power of OptionParser
.
Use¶ ↑
Install if you need to:
gem install gli
The simplest way to get started is to create a scaffold project
gli init todo list add complete
This will create a basic scaffold project in ./todo
with:
-
executable in
./todo/bin/todo
. This file demonstrates most of what you need to describe your command line interface. -
an empty test in
./todo/test/default_test.rb
that can bootstrap your tests -
an empty feature in
./todo/features/todo.feature
that can bootstrap testing your CLI via Aruba. -
a gemspec shell
-
a README shell
-
Rakefile that can generate RDoc, package your Gem and run tests
-
A
Gemfile
suitable for use with Bundler to manage development-time dependencies
Now, you are ready to go:
> cd todo > bundle exec bin/todo help NAME todo - Describe your application here SYNOPSIS todo [global options] command [command options] [arguments...] VERSION 0.0.1 GLOBAL OPTIONS -f, --flagname=The name of the argument - Describe some flag here (default: the default) --help - Show this message -s, --[no-]switch - Describe some switch here COMMANDS add - Describe add here complete - Describe complete here help - Shows a list of commands or help for one command list - Describe list here > bundle exec bin/todo help list NAME list - Describe list here SYNOPSIS todo [global options] list [command options] Describe arguments to list here COMMAND OPTIONS -f arg - Describe a flag to list (default: default) -s - Describe a switch to list
All you need to do is fill in the documentation and your code; the help system, command-line parsing and many other awesome features are all handled for you.
Get a more detailed walkthrough on the main site
Supported Platforms¶ ↑
Tests should be passing supported MRI Rubies (see .travis.yml
for specifics).
Due to the vagaries of Travis, I can't keep the test suite running on unsupported Rubies, but we currently support:
-
2.1
-
2.2
-
2.3
-
2.4
-
JRuby
GLI likely works on older rubies, but the cost of keeping tests passing on those versions (which are now totally unsupported by Ruby core) is too high.
Documentation¶ ↑
Extensive documentation is available at the wiki.
API Documentation is available here. Recommend starting with GLI::DSL or GLI::App.
Credits¶ ↑
- Author
-
Dave Copeland (davetron5000 at g mail dot com)
- Copyright
-
Copyright © 2010 by Dave Copeland
- License
-
Distributes under the Apache License, see LICENSE.txt in the source distro
Links¶ ↑
- davetron5000.github.com/gli
-
RubyDoc
-
- www.github.com/davetron5000/gli
-
Source on GitHub
-
- www.github.com/davetron5000/gli/wiki
-
Documentation Wiki
-
gli
CLI documentation¶ ↑
gli - create scaffolding for a GLI-powered application¶ ↑
v2.12.1
Global Options¶ ↑
-r|–root arg¶ ↑
Root dir of project
- Default Value
-
.
This is the directory where the project''s directory will be made, so if you specify a project name ''foo'' and the root dir of ''.'', the directory ''./foo'' will be created'
–help¶ ↑
Show this message
-n¶ ↑
Dry run; dont change the disk
-v¶ ↑
Be verbose
–version¶ ↑
Display the program version