Skip to content

Various Perl classes, methods, and examples for building a Router (Stanford) style CLI for a Linux server or appliance.

License

Notifications You must be signed in to change notification settings

jordan2175/term-routercli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Term::RouterCLI is Copyright (C) 2011, Bret Jordan
==================================================
HOSTED AT
    http://github.com/jordan2175/term-routercli


MAJOR FEATURES
    The major features of Term::RouterCLI are as follows:
    Extensible tree based parsing engine for a command line interface
    Modular design
    TAB and ? mark completion
    Recursive completion
    Recursive command interpolation
    Hidden commands and command trees
    Authenticated commands and command trees
    Multi-user authentication
    Per user command histories
    Multiple authentication servers
    Audit log support
    International support for all command descriptions, help documentation, and argument help
    Hardware interaction framework as an example 
    Fully working cli.pl example
    Apache style configuration file
    Separate vendor and user parts to the configuration file
    Uses log4perl for debugging


INSTALLATION
    To install this module type the following:
    perl Makefile.PL
    make
    make test
    make install
    
    Mac OSX Lion
        Mac OSX does not have support natively for GNU's readline libraries.  As such things like
        perl's Term::ReadLine::Gnu will not install via CPAN or otherwise.  I got this to work by
        using Homebrew to install readline (https://github.com/mxcl/homebrew/wiki/installation) and
        then linking to the readline libraries when I built the makefile in Perl.  NOTE: Homebrew
        installs core libraries and things like readline in a out-of-the-way directory so that other
        things do not break.  Here are the steps I followed:
        1) Install Homebrew.  Run the following from a terminal window/shell:
            /usr/bin/ruby -e "$(curl -fsSL https://raw.github.com/gist/323731)"
        2) Update Homebrew
            brew update
        3) Install readline
            brew install readline
        4) Download Term::ReadLine::Gnu from CPAN and untar
        5) Make makefile, make, and install
            perl Makefile.PL --includedir=/usr/local/Cellar/readline/6.2.1/include --libdir=/usr/local/Cellar/readline/6.2.1/lib
            make
            make install


DOXYGEN
    Term::RouterCLI uses Doxygen for documentation.  Here are some notes for getting Doxygen working
    various platforms.
    
    The dot tool is required for dependency graphs and you can get binary builds for OSX Lion at:
    http://www.graphviz.org/
    
    Mac OSX Lion
        When you install Doxygen it will add the doxywizard application just called "Doxygen" in the
        Applications directory.  A symlink will need to be created to allow command line (terminal)
        access to the command line doxygen program.  This can be done with:
        ln -s /Applications/Doxygen.app/Contents/Resources/doxygen /usr/local/bin/


DEPENDENCIES
    This module requires these other modules and libraries:
    Config::General (2.50)          [License = Perl]
    Digest::SHA (5.62)              [License = Perl]
    Env (1.00)                      [License = Perl]
    FileHandle (2.02)               [License = Perl]
    Log:Log4perl (1.33)             [License = Perl]
    parent (0.221)                  [License = Perl]
    POSIX (1.17)                    [License = Perl]
    Sys::Syslog (0.29)              [License = Perl]
    Term::ReadKey (2.30)            [License = Opensource]
    Term::ReadLine::Gnu (1.20)      [License = Perl]
    Test::More (0.98)               [License = Perl]
    Test::Output (1.01)             [License = Perl]
    Text::Shellwords::Cursor (0.81) [License = MIT]
    Ethtool (http://www.kernel.org/pub/software/network/ethtool/)


NOTES
    The tarball has a fully working example 
    
    I use a modified version of Ethtool so as to get rid of some STDERR messages.
    
    To find out what version of a module you have installed run something like the following
        perl -MDigest::SHA -e 'print "$Digest::SHA::VERSION\n"'


LICENCE INFORMATION
    See the LICENSE file included with this package for license details. 


AUTHOR
    Bret Jordan, jordan at open1x littledot org, jordan2175 at gmail littledot com


COPYRIGHT
    Copyright (C) 2011 by Bret Jordan all rights reserved

About

Various Perl classes, methods, and examples for building a Router (Stanford) style CLI for a Linux server or appliance.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published