Ask git for author and committer name
[stgit] / stgit / main.py
index d0e7230..c2af585 100644 (file)
@@ -22,10 +22,6 @@ import sys, os
 from optparse import OptionParser
 
 import stgit.commands
-from stgit.stack import Series, StackException
-from stgit.git import GitException
-from stgit.commands.common import CmdException
-from stgit.gitmergeonefile import GitMergeException
 
 #
 # The commands map
@@ -221,7 +217,19 @@ def main():
     usage = command.usage.split('\n')[0].strip()
     parser = OptionParser(usage = usage, option_list = command.options)
     options, args = parser.parse_args()
+
+    # These modules are only used from this point onwards and do not
+    # need to be imported earlier
+    from stgit.config import config_setup
+    from ConfigParser import ParsingError, NoSectionError
+    from stgit.stack import Series, StackException
+    from stgit.git import GitException
+    from stgit.commands.common import CmdException
+    from stgit.gitmergeonefile import GitMergeException
+
     try:
+        config_setup()
+
         # 'clone' doesn't expect an already initialised GIT tree. A Series
         # object will be created after the GIT tree is cloned
         if cmd != 'clone':
@@ -232,8 +240,8 @@ def main():
             stgit.commands.common.crt_series = command.crt_series
 
         command.func(parser, options, args)
-    except (IOError, CmdException, StackException, GitException,
-            GitMergeException), err:
+    except (IOError, ParsingError, NoSectionError, CmdException,
+            StackException, GitException, GitMergeException), err:
         print >> sys.stderr, '%s %s: %s' % (prog, cmd, err)
         sys.exit(2)
     except KeyboardInterrupt: