author | Tero Marttila <terom@fixme.fi> |
Mon, 15 Jun 2009 01:36:58 +0300 | |
changeset 125 | 74f135774567 |
parent 124 | cac613118e75 |
child 144 | 97505a789003 |
permissions | -rw-r--r-- |
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 |
|
124
cac613118e75
add version module, currently just harcoded info
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
5 |
import gallery, commands, config, version |
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 |
|
124
cac613118e75
add version module, currently just harcoded info
Tero Marttila <terom@fixme.fi>
parents:
120
diff
changeset
|
22 |
parser = OptionParser(prog=exec_name, description="Degal - A photo gallery", version="Degal %s" % version.VERSION_STRING) |
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 | 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 | 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 | 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 | 103 |
return commands.main, args, {} |
104 |
||
105 |
def run_command (config, gallery, command, args, kwargs) : |
|
106 |
""" |
|
107 |
Run the given command |
|
108 |
""" |
|
109 |
||
110 |
# setup the command execution context |
|
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 | 121 |
## load commands |
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 | 140 |
command, args, kwargs = load_command(config, args) |
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 | 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 |