Handle KeyboardInterrupt consistently in python scripts

Handle KeyboardInterrupt gracefully rather the printing a
backtrace. Most users of these tools don't expect a
backtrace when then hit Ctrl-C.

Also, fix a few other inconsistencies found in the python
startup code of these different scripts:
- always call main function 'main' (rather than 'Main')
- always return 0 from main function
- if main takes args never include argv[0]

Review URL: https://codereview.chromium.org/955993006

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294250 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/git_map.py b/git_map.py
index 65814b9..99c8b05 100755
--- a/git_map.py
+++ b/git_map.py
@@ -37,13 +37,13 @@
 # Git emits combined color
 BRIGHT_RED = '\x1b[1;31m'
 
-def main():
+def main(argv):
   map_extra = config_list('depot_tools.map_extra')
   fmt = '%C(red bold)%h%x09%Creset%C(green)%d%Creset %C(yellow)%ad%Creset ~ %s'
   log_proc = subprocess2.Popen(
     [GIT_EXE, 'log', '--graph', '--branches', '--tags', root(),
      '--color=always', '--date=short', ('--pretty=format:' + fmt)
-    ] + map_extra + sys.argv[1:],
+    ] + map_extra + argv,
     stdout=subprocess2.PIPE,
     shell=False)
 
@@ -110,5 +110,8 @@
 
 
 if __name__ == '__main__':
-  sys.exit(main())
-
+  try:
+    sys.exit(main(sys.argv[1:]))
+  except KeyboardInterrupt:
+    sys.stderr.write('interrupted\n')
+    sys.exit(1)