Default to mediagoblin_local.ini if available in ./bin/gmg commands
authorChristopher Allan Webber <cwebber@dustycloud.org>
Sat, 29 Oct 2011 21:24:52 +0000 (16:24 -0500)
committerChristopher Allan Webber <cwebber@dustycloud.org>
Sat, 29 Oct 2011 21:24:52 +0000 (16:24 -0500)
mediagoblin/gmg_commands/__init__.py

index 6c7450cb843130bccb414fce4aaae599e0c0b3c2..10c3038565af87820596e525b231d62f7c1f0033 100644 (file)
@@ -15,6 +15,7 @@
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 import argparse
+import os
 
 from mediagoblin.tools.common import import_component
 
@@ -59,8 +60,11 @@ def main_cli():
     parser = argparse.ArgumentParser(
         description='GNU MediaGoblin utilities.')
     parser.add_argument(
-        '-cf', '--conf_file', default='mediagoblin.ini',
-        help="Config file used to set up environment")
+        '-cf', '--conf_file', default=None,
+        help=(
+            "Config file used to set up environment.  "
+            "Default to mediagoblin_local.ini if readable, "
+            "otherwise mediagoblin.ini"))
 
     subparsers = parser.add_subparsers(help='sub-command help')
     for command_name, command_struct in SUBCOMMAND_MAP.iteritems():
@@ -78,6 +82,13 @@ def main_cli():
         subparser.set_defaults(func=exec_func)
 
     args = parser.parse_args()
+    if args.conf_file is None:
+        if os.path.exists('mediagoblin_local.ini') \
+                and os.access('mediagoblin_local.ini', os.R_OK):
+            args.conf_file = 'mediagoblin_local.ini'
+        else:
+            args.conf_file = 'mediagoblin.ini'
+
     args.func(args)