Git Product home page Git Product logo

cmdhelper's Introduction

cmdhelper

cmdhelper is a Python utility for writing command line scripts with a consistent style, default set of command line options, and common approach to logging.

cmdhelper provides:

  • Parsing of command line options using either argparse or optparse.
  • Setup of logging with the possibility to copy stdout or stderr into the logfile.
  • Possibility to e-mail log messages upon completion with an option to send the e-mail only if a log message with a severity at or above a trigger level was recorded.
  • Definition of a set of default options, including options to set verbosity and logging options.
  • A utility function to run external commands whose output can be logged and parsed for error messages.
  • A utility function for asking the user to confirm actions.

Example

A script that processes different commands with optional command arguments might include:

from cmdhelper import *

cmdHelper = CmdHelper('argparse', __version__)
cmdHelper.add_argument('cmd', help='command')
cmdHelper.add_argument('args', help='command arguments', nargs='*')
cmdHelper.add_option('-x', '--example', dest='value', default=None, help='sample option')
options = cmdHelper.parse()

try:
    # processing goes here
    pass

except Exception as e:
     handleError(e,options.debug)

Running the above code with –help will produce the following output:

usage: example.py [-h] [--version] [-i] [-v] [--debug] [--noscreen]
                  [--logfile LOGFILE] [--loglevel LOGLEVEL]
                  [--logseparator LOGSEPARATOR]
                  [--logtimestampfmt LOGTIMESTAMPFMT]  [--emailto EMAILTO]
                  [--emailsubject EMAILSUBJECT] [--emaillevel EMAILLEVEL]
                  [--emailtriglevel EMAILTRIGLEVEL] [-x VALUE]
                  cmd [args [args ...]]

positional arguments:
  cmd                   command
  args                  command arguments

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  -i, --interactive     enter interactive Python at completion
  -v, --verbose         verbose output
  --debug               debugging output
  --noscreen            disable logging output to screen
  --logfile LOGFILE     write logging information to this file (default: )
  --loglevel LOGLEVEL   logging level for logfile (default: INFO or DEBUG)
  --logseparator LOGSEPARATOR
                        message to write to logfile at beginning of new log
  --logtimestampfmt LOGTIMESTAMPFMT
                        timestamp format string (in logging formatter format)
  --emailto EMAILTO     email address receiving any log messages
  --emailsubject EMAILSUBJECT
                        subject for log e-mails
  --emaillevel EMAILLEVEL
                        logging level for e-mails (default: WARNING)
  --emailtriglevel EMAILTRIGLEVEL
                        trigger level for sending e-mails (default: None)
  -x VALUE, --example VALUE
                        sample option

cmdhelper's People

Contributors

juergberinger avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.