degal/main.py
author Tero Marttila <terom@fixme.fi>
Sun, 14 Jun 2009 23:43:40 +0300
changeset 120 55cb7fc9c8fb
parent 118 60b126ff0b74
child 124 cac613118e75
permissions -rw-r--r--
add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
48
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
"""
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
    Main entry point for the command-line interface
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
"""
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
     5
import gallery, commands, config
48
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
from optparse import OptionParser
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
     8
import os.path
48
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    10
def build_config () :
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    11
    """
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    12
        Build the default configuration to use
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    13
    """
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    14
    
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    15
    return config.Configuration()
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    16
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    17
def option_parser (exec_name) :
48
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
    """
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
        Build the OptionParser that we use
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
    """
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
    
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    22
    parser = OptionParser(prog=exec_name, description="Degal - A photo gallery", version="???")
48
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
    
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    24
    parser.add_option('-C', "--config",         metavar='PATH', dest="_load_config_path",
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    25
            help="Load configuration from PATH")
87
a7a18893730d implement up-to-date checking for commands.main, and add --force-update option
Tero Marttila <terom@fixme.fi>
parents: 76
diff changeset
    26
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    27
    parser.add_option('-H', "--gallery-path",   metavar='DIR',
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    28
            help="Use DIR as the Gallery path instead of the CWD")
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    29
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    30
    parser.add_option('-F', "--force-update",   action="store_true",
101
698dc68a985d split --force-update into --force-thumb/--force-html options, implement for main
Tero Marttila <terom@fixme.fi>
parents: 92
diff changeset
    31
            help="--force-thumb + --force-html")
698dc68a985d split --force-update into --force-thumb/--force-html options, implement for main
Tero Marttila <terom@fixme.fi>
parents: 92
diff changeset
    32
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    33
    parser.add_option("--force-thumb",          action="store_true",
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    34
            help="Force-update thumbnails")
101
698dc68a985d split --force-update into --force-thumb/--force-html options, implement for main
Tero Marttila <terom@fixme.fi>
parents: 92
diff changeset
    35
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    36
    parser.add_option("--force-html",           action="store_true",
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    37
            help="Force-update .html files")
111
ecceaf23c969 make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents: 109
diff changeset
    38
    
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    39
    parser.add_option("--with-exif",            action="store_true",
111
ecceaf23c969 make loading exif metadata optional
Tero Marttila <terom@fixme.fi>
parents: 109
diff changeset
    40
            help="Include Exif metadata in updated .html files")
120
55cb7fc9c8fb add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents: 118
diff changeset
    41
    
55cb7fc9c8fb add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents: 118
diff changeset
    42
    parser.add_option("--exif-handler",         metavar='NAME', dest="exif_handler_name",
55cb7fc9c8fb add new exif.py to abstract between different exif libraries, and add partially working support for pyexiv2 and EXIFpy
Tero Marttila <terom@fixme.fi>
parents: 118
diff changeset
    43
            help="Use named Exif handler: pyexiv2, EXIFpy")
101
698dc68a985d split --force-update into --force-thumb/--force-html options, implement for main
Tero Marttila <terom@fixme.fi>
parents: 92
diff changeset
    44
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    45
    parser.add_option('-c', "--thread-count",   metavar='COUNT', type="int",
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    46
            help="Use COUNT threads for concurrent tasks")
117
a2e4562deaab implement concurrency... :)
Tero Marttila <terom@fixme.fi>
parents: 111
diff changeset
    47
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    48
    parser.add_option('-d', "--debug",          action="store_const", dest="log_level", const=config.logging.DEBUG,
101
698dc68a985d split --force-update into --force-thumb/--force-html options, implement for main
Tero Marttila <terom@fixme.fi>
parents: 92
diff changeset
    49
            help="Show debug output")
698dc68a985d split --force-update into --force-thumb/--force-html options, implement for main
Tero Marttila <terom@fixme.fi>
parents: 92
diff changeset
    50
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    51
    parser.add_option('-q', "--quiet",          action="store_const", dest="log_level", const=config.logging.WARN,
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    52
            help="Reduced output (only warnings)")
48
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    53
    
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    54
    return parser
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    55
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    56
def parse_args (config, parser, args) :
72
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    57
    """
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    58
        Parse command-line options/arguments.
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    59
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    60
        Returns the remaining positional arguments.
72
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    61
    """
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    62
    
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    63
    # parse the given arguments, storing output directly in the config
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    64
    _, args = parser.parse_args(args=args, values=config)
101
698dc68a985d split --force-update into --force-thumb/--force-html options, implement for main
Tero Marttila <terom@fixme.fi>
parents: 92
diff changeset
    65
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    66
    # return the posargs
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    67
    return args
117
a2e4562deaab implement concurrency... :)
Tero Marttila <terom@fixme.fi>
parents: 111
diff changeset
    68
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    69
def postprocess_config (config) :
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    70
    """
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    71
        Post-process our Configuration after our command-line arguments have been parsed.
101
698dc68a985d split --force-update into --force-thumb/--force-html options, implement for main
Tero Marttila <terom@fixme.fi>
parents: 92
diff changeset
    72
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    73
        This will attempt to load any additional configuration.
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    74
    """
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    75
    
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    76
    # figure out what, if any, path to import
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    77
    if hasattr(config, '_load_config_path') :
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    78
        path = config._load_config_path
87
a7a18893730d implement up-to-date checking for commands.main, and add --force-update option
Tero Marttila <terom@fixme.fi>
parents: 76
diff changeset
    79
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    80
    elif os.path.exists('degal.cfg') :
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    81
        path = 'degal.cfg'
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    82
    
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    83
    else :
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    84
        return
72
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    85
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    86
    # import it
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
    87
    config.import_file(path)
72
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    88
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    89
def load_gallery (config) :
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    90
    """
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    91
        Create the Gallery object that we are manipulating
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    92
    """
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    93
    
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    94
    # read path from config
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    95
    return gallery.Gallery(config.gallery_path, config)
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    96
76
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
    97
def load_command (config, args) :
72
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    98
    """
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
    99
        Figure out what command to run and with what args
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   100
    """
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   101
    
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   102
    # XXX: hardcoded
76
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   103
    return commands.main, args, {}
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   104
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   105
def run_command (config, gallery, command, args, kwargs) :
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   106
    """
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   107
        Run the given command
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   108
    """
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   109
    
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   110
    # setup the command execution context
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   111
    command_ctx = command.setup(config, gallery)
92
eb50b4f7812d move Command exception handling into command.py, and handle KeyboardInterrupt
Tero Marttila <terom@fixme.fi>
parents: 87
diff changeset
   112
  
eb50b4f7812d move Command exception handling into command.py, and handle KeyboardInterrupt
Tero Marttila <terom@fixme.fi>
parents: 87
diff changeset
   113
    # run with error handling
eb50b4f7812d move Command exception handling into command.py, and handle KeyboardInterrupt
Tero Marttila <terom@fixme.fi>
parents: 87
diff changeset
   114
    return command_ctx.run()
72
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   115
48
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   116
def main (argv) :
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   117
    """
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   118
        Main entry point
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   119
    """
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   120
76
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   121
    ## load commands
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   122
    #commands = load_commands()
72
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   123
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   124
    # build our default config
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   125
    config = build_config()
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   126
48
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   127
    # build optparser
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   128
    parser = option_parser(argv[0])
72
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   129
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   130
    # parse the args into our config
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   131
    args = parse_args(config, parser, argv[1:])
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   132
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   133
    # postprocess
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   134
    postprocess_config(config)
72
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   135
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   136
    # open gallery
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   137
    gallery = load_gallery(config)
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   138
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   139
    # figure out what command to run
76
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   140
    command, args, kwargs = load_command(config, args)
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   141
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   142
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   143
48
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   144
    # run the selected command
76
e22d9f699081 misc. fixes
Tero Marttila <terom@fixme.fi>
parents: 72
diff changeset
   145
    ret = run_command(config, gallery, command, args, kwargs)
118
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   146
60b126ff0b74 configuration magic - can now load configuration data from ./degal.cfg, --config, folder/degal.cfg
Tero Marttila <terom@fixme.fi>
parents: 117
diff changeset
   147
72
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   148
    if ret is None :
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   149
        # success
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   150
        return 0
48
20355dd2e61a new structure for bin/degal, adding degal/commands, degal/main
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
   151
72
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   152
    else :
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   153
        # exit with error code
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   154
        assert isinstance(ret, int)
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   155
        return ret
168a2d065f17 use new command/gallery stuff in main.py
Tero Marttila <terom@fixme.fi>
parents: 48
diff changeset
   156