NAME

CLI::Helpers - Subroutines for making simple command line scripts

VERSION

version 0.1

SYNOPSIS

Use this module to make writing intelligent command line scripts easier.

#!/usr/bin/env perl
use CLI::Helpers qw(:all);

output({color=>'green'}, "Hello, World!");
verbose({indent=>1,color=>'yellow'}, "Shiny, happy people!");
verbose({level=>2,kv=>1,color=>'red'}, a => 1, b => 2);
debug_var({ c => 3, d => 4});

Running as test.pl:

$ ./test.pl
Hello, World!
$ ./test.pl --verbose
Hello, World!
  Shiny, Happy people!
$ ./test.pl -vv
Hello, World!
  Shiny, Happy people!
  a: 1
  b: 2
$ ./test.pl --debug
Hello, World!
  Shiny, Happy people!
  a: 1
  b: 2
---
c: 3
d: 4

Colors would be automatically enabled based on the user's ~/.gitconfig

OVERVIEW

This module provides a libray of useful functions for constructing simple command line interfaces. It is able to extract information from the environment and your ~/.gitconfig to display data in a reasonable manner.

Using this module adds argument parsing using Getopt::Long to your script. It enables passthrough, so you can still use your own argument parsing routines or Getopt::Long in your script.

FUNCTIONS

def

Not exported by default, returns the setting defined.

git_color_check

Not exported by default. Returns 1 if git is configured to output using color of 0 if color is not enabled.

colorize( $color => 'message to be output' )

Not exported by default. Checks if color is enabled and applies the specified color to the string.

output( \%opts, @messages )

Exported. Takes an optional hash reference and a list of messages to be output.

verbose( \%opts, @messages )

Exported. Takes an optional hash reference of formatting options. Automatically overrides the level paramter to 1 if it's not set.

debug( \%opts, @messages )

Exported. Takes an optional hash reference of formatting options. Does not output anything unless DEBUG is set.

debug_var( \%opts, \%Variable )

Exported. Takes an optional hash reference of formatting options. Does not output anything unless DEBUG is set.

override( variable => 1 )

Exported. Allows a block of code to override the debug or verbose level. This can be used during development to enable/disable the DEBUG/VERBOSE settings.

EXPORT

This module uses Sub::Exporter for flexible imports, the defaults provided by :all are as follows.

Exported Functions

output  ( \%options, @messages )
verbose ( \%options, @messages )
debug   ( \%options, @messages )
debug_var ( \$var )
override( option => $value )

ARGS

From CLI::Helpers:

--color             Boolean, enable/disable color, default use git settings
--verbose           Incremental, increase verbosity
--debug             Show developer output
--quiet             Show no output (for cron)

OUTPUT OPTIONS

Every output function takes an optional HASH reference containing options for that output. The hash may contain the following options:

AUTHOR

Brad Lhotsky brad@divisionbyzero.net

COPYRIGHT AND LICENSE

This software is Copyright (c) 2013 by Brad Lhotsky.

This is free software, licensed under:

The (three-clause) BSD License

SOURCE

The development version is on github at http://https://github.com/reyjrar/CLI-Helpers and may be cloned from git://https://github.com/reyjrar/CLI-Helpers.git