= 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[http://www.github.com/davetron5000/methadone]). GLI allows you to make a very polished, easy-to-maintain command-line application without a lot of syntax, but without restricting you in any way from the power of +OptionParser+. * {Overview}[http://davetron5000.github.com/gli] * {Source on Github}[http://github.com/davetron5000/gli] * RDoc[http://davetron5000.github.com/gli/rdoc/index.html] {Build Status}[https://travis-ci.org/davetron5000/gli] == 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}[http://davetron5000.github.com/gli] == Supported Platforms Known to work on * 1.8.7 * 1.9.2 * 1.9.3 * Ruby Enterprise Edition 1.8.7 * Rubinius 1.0.1 * JRuby 1.6.4 If you're interested in other versions of Ruby, let me know, and I'll add them to my test suite == Documentation Extensive documentation is {available at the wiki}[https://github.com/davetron5000/gli/wiki]. API Documentation is available {here}[http://davetron5000.github.com/gli/rdoc/index.html]. Recommend starting with GLI::DSL or GLI::App. == Credits Author:: Dave Copeland (mailto:davetron5000 at g mail dot com) Copyright:: Copyright (c) 2010 by Dave Copeland License:: Distributes under the Apache License, see LICENSE.txt in the source distro == Links * [http://davetron5000.github.com/gli] - RubyDoc * [http://www.github.com/davetron5000/gli] - Source on GitHub * [http://www.github.com/davetron5000/gli/wiki] - Documentation Wiki * [http://www.github.com/davetron5000/gli/wiki/Changelog] - Changelog = gli CLI documentation :include:gli.rdoc