tparse options sensibly - slidergrid - grid of elastic sliders on a frictional surface
 (HTM) git clone git://src.adamsgaard.dk/slidergrid
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 1a2317b2dc0f603bfe2ace1f0d5d93b40efd6a57
 (DIR) parent 9a7c3f858d084821a9aba2343c74f8607fbffed2
 (HTM) Author: Anders Damsgaard <anders.damsgaard@geo.au.dk>
       Date:   Thu, 17 Mar 2016 13:54:37 -0700
       
       parse options sensibly
       
       Diffstat:
         M postprocessing.py                   |      66 +++++++++++++++++++++----------
       
       1 file changed, 46 insertions(+), 20 deletions(-)
       ---
 (DIR) diff --git a/postprocessing.py b/postprocessing.py
       t@@ -1,22 +1,25 @@
        #!/usr/bin/env python
        import sys
       +import getopt
        import os
        import numpy as np
        import matplotlib.pyplot as plt
        
        VERSION = '0.1-beta'
       +SCRIPTNAME = sys.argv[0]
        
        
       -def print_usage(argv0):
       -    print('usage: ' + argv0 + ' [OPTIONS] <FOLDER>')
       +def print_usage():
       +    print('usage: ' + SCRIPTNAME + ' [OPTIONS] <FOLDER1> [FOLDER2, ...]')
            print('where FOLDER is an output folder placed in this directory')
            print('options:')
       -    print('  -h, --help \tshow this information')
       -    print('  -v, --version \tshow version information')
       +    print('  -h, --help           show this information')
       +    print('  -v, --version        show version information')
       +    print('  -ps, --plot-sliders  plot slider positions')
        
        
       -def print_version(argv0):
       -    print(argv0 + ' ' + VERSION)
       +def print_version():
       +    print(SCRIPTNAME + ' ' + VERSION)
            print('author: Anders Damsgaard, adamsgaard@ucsd.edu')
            print('web: https://github.com/anders-dc/slidergrid')
            print('Licensed under the GNU Public License v3, see LICENSE for details')
       t@@ -44,22 +47,45 @@ class sgvis:
                        self.read_sliders(filename)
                        self.plot_sliders()
        
       -if __name__ == '__main__':
       -    if len(sys.argv) < 2:
       -        print_usage(sys.argv[0])
       -        exit()
        
       -    for arg in sys.argv:
       +def iterate_over_folders(folders, plot_sliders):
       +    if len(folders) < 1:
       +        print_usage()
       +        sys.exit(1)
       +
       +    for folder in folders:
       +        vis = sgvis(folder)
       +
       +        if plot_sliders:
       +            vis.plot_all_sliders()
       +
        
       -        if sys.argv[1] == '-h' or sys.argv[1] == '--help':
       -            print_usage(sys.argv[0])
       -            exit()
       +def main(argv):
       +    folders = []
       +    plot_sliders = False
       +    try:
       +        opts, args = getopt.getopt(argv, 'hvs',
       +                                   ['help', 'version', 'plot-sliders'])
       +    except getopt.GetoptError:
       +        print_usage()
       +        sys.exit(2)
        
       -        if sys.argv[1] == '-v' or sys.argv[1] == '--version':
       -            print_version(sys.argv[0])
       -            exit()
       +    for opt, arg in opts:
       +        if opt in ('-h', '--help'):
       +            print_usage()
       +            sys.exit(0)
        
       -        sgvis = sgvis(sys.argv[1])
       +        elif opt in ('-v', '--version'):
       +            print_version()
       +            sys.exit(0)
        
       -        if sys.argv[1] == '-v' or sys.argv[1] == '--version':
       -        sgvis.plot_all_sliders()
       +        elif opt in ('-s', '--plot-sliders'):
       +            plot_sliders = True
       +
       +        else:
       +            folders.append(arg)
       +
       +    iterate_over_folders(folders, plot_sliders)
       +
       +if __name__ == '__main__':
       +    main(sys.argv[1:])