[GRASS-SVN] r56828 - grass/trunk/lib/init

svn_grass at osgeo.org svn_grass at osgeo.org
Thu Jun 20 07:03:07 PDT 2013


Author: lucadelu
Date: 2013-06-20 07:03:07 -0700 (Thu, 20 Jun 2013)
New Revision: 56828

Modified:
   grass/trunk/lib/init/grass.py
Log:
fix string format and PEP 8

Modified: grass/trunk/lib/init/grass.py
===================================================================
--- grass/trunk/lib/init/grass.py	2013-06-20 14:00:09 UTC (rev 56827)
+++ grass/trunk/lib/init/grass.py	2013-06-20 14:03:07 UTC (rev 56828)
@@ -11,10 +11,10 @@
 #               Converted to Python (based on init.sh) by Glynn Clements
 #               Martin Landa <landa.martin gmail.com>
 #               Luca Delucchi <lucadeluge at gmail.com>
-# PURPOSE:      Sets up environment variables, parses any remaining 
+# PURPOSE:      Sets up environment variables, parses any remaining
 #               command line options for setting the GISDBASE, LOCATION,
-#               and/or MAPSET. Finally it starts GRASS with the appropriate user
-#               interface and cleans up after it is finished.
+#               and/or MAPSET. Finally it starts GRASS with the appropriate
+#               user interface and cleans up after it is finished.
 # COPYRIGHT:    (C) 2000-2013 by the GRASS Development Team
 #
 #               This program is free software under the GNU General
@@ -33,20 +33,20 @@
 import tempfile
 
 # Variables substituted during build process
-if os.environ.has_key('GISBASE'):
+if 'GISBASE' in os.environ:
     gisbase = os.environ['GISBASE']
 else:
     gisbase = "@GISBASE@"
 cmd_name = "@START_UP@"
 grass_version = "@GRASS_VERSION_NUMBER@"
 ld_library_path_var = '@LD_LIBRARY_PATH_VAR@'
-if os.environ.has_key('GRASS_PROJSHARE'):
+if 'GRASS_PROJSHARE' in os.environ:
     config_projshare = os.environ['GRASS_PROJSHARE']
 else:
     config_projshare = "@CONFIG_PROJSHARE@"
 
 # configuration directory
-grass_env_file = None # see check_shell()
+grass_env_file = None  # see check_shell()
 if sys.platform == 'win32':
     grass_config_dirname = "GRASS7"
     grass_config_dir = os.path.join(os.getenv('APPDATA'), grass_config_dirname)
@@ -58,7 +58,7 @@
 
 # i18N
 import gettext
-gettext.install('grasslibs', os.path.join(gisbase, 'locale'), unicode = True)
+gettext.install('grasslibs', os.path.join(gisbase, 'locale'), unicode=True)
 
 tmpdir = None
 lockfile = None
@@ -67,40 +67,46 @@
 create_new = None
 grass_gui = None
 
+
 def warning(text):
     sys.stderr.write(_("WARNING") + ': ' + text + os.linesep)
 
+
 def try_remove(path):
     try:
         os.remove(path)
     except:
         pass
 
+
 def try_rmdir(path):
     try:
         os.rmdir(path)
     except:
         pass
 
+
 def clean_env():
     env_curr = read_gisrc()
-    env_new  = {}
+    env_new = {}
     for k,v in env_curr.iteritems():
         if 'MONITOR' not in k:
             env_new[k] = v
-    
+
     write_gisrc(env_new)
 
+
 def cleanup_dir(path):
     if not path:
         return
-    
-    for root, dirs, files in os.walk(path, topdown = False):
+
+    for root, dirs, files in os.walk(path, topdown=False):
         for name in files:
             try_remove(os.path.join(root, name))
         for name in dirs:
             try_rmdir(os.path.join(root, name))
-    
+
+
 def cleanup():
     tmpdir, lockfile, remove_lockfile
     # all exits after setting up tmp dirs (system/location) should
@@ -111,39 +117,46 @@
         tmpdir_loc = os.path.join(location, ".tmp")
         cleanup_dir(tmpdir_loc)
         try_rmdir(tmpdir_loc)
-    
+
     # remove lock-file if requested
     if lockfile and remove_lockfile:
         try_remove(lockfile)
-    
+
+
 def fatal(msg):
     sys.exit(msg)
 
+
 def message(msg):
     sys.stderr.write(msg + "\n")
     sys.stderr.flush()
 
+
 def readfile(path):
     f = open(path, 'r')
     s = f.read()
     f.close()
     return s
 
+
 def writefile(path, s):
     f = open(path, 'w')
     f.write(s)
     f.close()
 
+
 def call(cmd, **kwargs):
     if windows:
         kwargs['shell'] = True
     return subprocess.call(cmd, **kwargs)
 
+
 def Popen(cmd, **kwargs):
     if windows:
         kwargs['shell'] = True
     return subprocess.Popen(cmd, **kwargs)
 
+
 def gfile(*args):
     return os.path.join(gisbase, *args)
 
@@ -208,9 +221,10 @@
 
 def help_message():
     t = string.Template(help_text)
-    s = t.substitute(CMD_NAME = cmd_name, DEFAULT_GUI = default_gui)
+    s = t.substitute(CMD_NAME=cmd_name, DEFAULT_GUI=default_gui)
     sys.stderr.write(s)
 
+
 def create_tmp():
     global tmpdir
     ## use $TMPDIR if it exists, then $TEMP, otherwise /tmp
@@ -222,7 +236,8 @@
     if not tmp:
         tmp = tempfile.gettempdir()
     if tmp:
-        tmpdir = os.path.join(tmp, "grass7-%s-%s" % (user, gis_lock))
+        tmpdir = os.path.join(tmp, "grass7-%(user)s-%(lock)s" % {'user': user,
+                                                             'lock': gis_lock})
         try:
             os.mkdir(tmpdir, 0700)
         except:
@@ -230,22 +245,25 @@
     if not tmp:
         for ttmp in ("/tmp", "/var/tmp", "/usr/tmp"):
             tmp = ttmp
-            tmpdir = os.path.join(tmp, "grass7-%s-%s" % (user, gis_lock))
+            tmpdir = os.path.join(tmp, "grass7-%(user)s-%(lock)s" % {
+                                              'user': user, 'lock': gis_lock})
             try:
                 os.mkdir(tmpdir, 0700)
             except:
                 tmp = None
             if tmp:
-               break
+                break
     if not tmp:
-        fatal(_("Unable to create temporary directory <grass7-%s-%s>! Exiting.") % (user, gis_lock))
+        fatal(_("Unable to create temporary directory <grass7-%(user)s-" \
+                "%(lock)s>! Exiting.") % {'user': user, 'lock': gis_lock})
 
+
 def create_gisrc():
     global gisrc, gisrcrc
     # Set the session grassrc file
     gisrc = os.path.join(tmpdir, "gisrc")
     os.environ['GISRC'] = gisrc
-    
+
     # remove invalid GISRC file to avoid disturbing error messages:
     try:
         s = readfile(gisrcrc)
@@ -254,25 +272,27 @@
             s = None
     except:
         s = None
-    
+
     # Copy the global grassrc file to the session grassrc file
     if s:
         writefile(gisrc, s)
-    
+
+
 def read_gisrc():
     kv = {}
     try:
         f = open(gisrc, 'r')
     except IOError:
         return kv
-    
+
     for line in f:
         k, v = line.split(':', 1)
         kv[k.strip()] = v.strip()
     f.close()
-    
+
     return kv
 
+
 def read_env_file(path):
     kv = {}
     f = open(path, 'r')
@@ -282,12 +302,14 @@
     f.close()
     return kv
 
+
 def write_gisrc(kv):
     f = open(gisrc, 'w')
     for k, v in kv.iteritems():
         f.write("%s: %s\n" % (k, v))
     f.close()
 
+
 def read_gui():
     global grass_gui
     # At this point the GRASS user interface variable has been set from the
@@ -307,18 +329,19 @@
             else:
                 # Set the GRASS user interface to the default if needed
                 grass_gui = default_gui
-    
+
     if not grass_gui:
         grass_gui = default_gui
-    
+
     if grass_gui == 'gui':
         grass_gui = default_gui
-    
+
     # FIXME oldtcltk, gis.m, d.m no longer exist
     if grass_gui in ['d.m', 'gis.m', 'oldtcltk', 'tcltk']:
         warning(_("GUI <%s> not supported in this version") % grass_gui)
         grass_gui = default_gui
-    
+
+
 def path_prepend(dir, var):
     path = os.getenv(var)
     if path:
@@ -327,6 +350,7 @@
         path = dir
     os.environ[var] = path
 
+
 def path_append(dir, var):
     path = os.getenv(var)
     if path:
@@ -335,13 +359,14 @@
         path = dir
     os.environ[var] = path
 
+
 def set_paths():
     # addons (path)
     addon_path = os.getenv('GRASS_ADDON_PATH')
     if addon_path:
         for path in addon_path.split(os.pathsep):
             path_prepend(addon_path, 'PATH')
-    
+
     # addons (base)
     addon_base = os.getenv('GRASS_ADDON_BASE')
     if not addon_base:
@@ -349,14 +374,14 @@
         os.environ['GRASS_ADDON_BASE'] = addon_base
     path_prepend(os.path.join(addon_base, 'scripts'), 'PATH')
     path_prepend(os.path.join(addon_base, 'bin'), 'PATH')
-    
+
     # standard installation
     path_prepend(gfile('scripts'), 'PATH')
     path_prepend(gfile('bin'), 'PATH')
-    
+
     # Set PYTHONPATH to find GRASS Python modules
     path_prepend(gfile('etc', 'python'), 'PYTHONPATH')
-    
+
     # set path for the GRASS man pages
     grass_man_path = os.path.join(gisbase, 'docs', 'man')
     addons_man_path = os.path.join(addon_base, 'docs', 'man')
@@ -368,14 +393,14 @@
     else:
         try:
             nul = open(os.devnull, 'w')
-            p = Popen(['manpath'], stdout = subprocess.PIPE, stderr = nul)
+            p = Popen(['manpath'], stdout=subprocess.PIPE, stderr=nul)
             nul.close()
             s = p.stdout.read()
             p.wait()
             sys_man_path = s.strip()
         except:
             pass
-        
+
         if sys_man_path:
             os.environ['MANPATH'] = sys_man_path
             path_prepend(addons_man_path, 'MANPATH')
@@ -383,12 +408,13 @@
         else:
             os.environ['MANPATH'] = addons_man_path
             path_prepend(grass_man_path, 'MANPATH')
-    
+
     # Add .py (Python) to list of executable extensions to search for
     # in MS-Windows PATH
     if windows:
         path_append('.PY', 'PATHEXT')
-    
+
+
 def find_exe(pgm):
     for dir in os.getenv('PATH').split(os.pathsep):
         path = os.path.join(dir, pgm)
@@ -396,6 +422,7 @@
             return path
     return None
 
+
 def set_defaults():
     # GRASS_PAGER
     if not os.getenv('GRASS_PAGER'):
@@ -408,55 +435,60 @@
         else:
             pager = "cat"
         os.environ['GRASS_PAGER'] = pager
-    
+
     # GRASS_PYTHON
     if not os.getenv('GRASS_PYTHON'):
         if windows:
             os.environ['GRASS_PYTHON'] = "python.exe"
         else:
             os.environ['GRASS_PYTHON'] = "python"
-    
+
     # GRASS_GNUPLOT
     if not os.getenv('GRASS_GNUPLOT'):
         os.environ['GRASS_GNUPLOT'] = "gnuplot -persist"
-    
+
     # GRASS_PROJSHARE
     if not os.getenv('GRASS_PROJSHARE'):
         os.environ['GRASS_PROJSHARE'] = config_projshare
-        
+
+    
 def set_browser():
     # GRASS_HTML_BROWSER
     browser = os.getenv('GRASS_HTML_BROWSER')
     if not browser:
         if macosx:
-            # OSX doesn't execute browsers from the shell PATH - route thru a script
+            # OSX doesn't execute browsers from the shell PATH - route thru a
+            # script
             browser = gfile('etc', "html_browser_mac.sh")
             os.environ['GRASS_HTML_BROWSER_MACOSX'] = "-b com.apple.helpviewer"
-        
+
         if windows or cygwin:
             # MinGW startup moved to into init.bat
             browser = "explorer"
         else:
             # the usual suspects
-            browsers = [ "xdg-open", "htmlview", "konqueror", "mozilla", "mozilla-firefox",
-                         "firefox", "iceweasel", "opera", "netscape", "dillo", "lynx", "links", "w3c" ]
+            browsers = ["xdg-open", "htmlview", "konqueror", "mozilla",
+                        "mozilla-firefox", "firefox", "iceweasel", "opera",
+                        "netscape", "dillo", "lynx", "links", "w3c"]
             for b in browsers:
                 if find_exe(b):
                     browser = b
                     break
-    
+
     elif macosx:
-        # OSX doesn't execute browsers from the shell PATH - route thru a script
+        # OSX doesn't execute browsers from the shell PATH - route thru a
+        # script
         os.environ['GRASS_HTML_BROWSER_MACOSX'] = "-b %s" % browser
         browser = gfile('etc', "html_browser_mac.sh")
-    
+
     if not browser:
         warning(_("Searched for a web browser, but none found"))
         # even so we set konqueror to make lib/gis/parser.c happy:
         browser = "konqueror"
-    
+
     os.environ['GRASS_HTML_BROWSER'] = browser
 
+
 def grass_intro():
     intro = r"""
 WELCOME TO GRASS %s
@@ -473,11 +505,11 @@
       http://www.grass-gis.org
 """ % grass_version
     sys.stderr.write(intro)
-    
+
     sys.stderr.write("\n")
     sys.stderr.write(_("Hit RETURN to continue"))
     sys.stdin.readline()
-    
+
     # for convenience, define pwd as GISDBASE:
     s = r"""GISDBASE: %s
 LOCATION_NAME: <UNKNOWN>
@@ -485,6 +517,7 @@
 """ % os.getcwd()
     writefile(gisrc, s)
 
+
 def check_gui():
     global grass_gui, wxpython_base
     # Check if we are running X windows by checking the DISPLAY variable
@@ -492,9 +525,8 @@
         # Check if python is working properly
         if grass_gui == 'wxpython':
             nul = open(os.devnull, 'w')
-            p = Popen([os.environ['GRASS_PYTHON']],
-                      stdin = subprocess.PIPE,
-                      stdout = nul, stderr = nul)
+            p = Popen([os.environ['GRASS_PYTHON']], stdin=subprocess.PIPE,
+                      stdout=nul, stderr=nul)
             nul.close()
             p.stdin.write("variable=True")
             p.stdin.close()
@@ -511,7 +543,7 @@
                           "Hit RETURN to continue.\n"))
                 sys.stdin.readline()
                 grass_gui = 'text'
-    
+
     else:
         # Display a message if a graphical interface was expected
         if grass_gui != 'text':
@@ -522,7 +554,7 @@
                       "Hit RETURN to continue"""))
             sys.stdin.readline()
             grass_gui = 'text'
-    
+
     # Save the user interface variable in the grassrc file - choose a temporary
     # file name that should not match another file
     if os.access(gisrc, os.F_OK):
@@ -530,80 +562,93 @@
         kv['GUI'] = grass_gui
         write_gisrc(kv)
 
-def non_interactive(arg, geofile = None):
+
+def non_interactive(arg, geofile=None):
     global gisdbase, location_name, mapset, location
     # Try non-interactive startup
     l = None
-    
+
     if arg == '-':
         if location:
             l = location
     else:
         l = arg
-    
+
     if l:
         if l == '.':
             l = os.getcwd()
         elif not os.path.isabs(l):
             l = os.path.abspath(l)
-        
+
         l, mapset = os.path.split(l)
         if not mapset:
             l, mapset = os.path.split(l)
         l, location_name = os.path.split(l)
         gisdbase = l
-    
+
     if gisdbase and location_name and mapset:
         location = os.path.join(gisdbase, location_name, mapset)
-        
+
         if not os.access(os.path.join(location, "WIND"), os.R_OK):
             if location_name == "PERMANENT":
                 fatal(_("<%s> is not a valid GRASS location") % location)
             else:
                 # the user wants to create mapset on the fly
                 if create_new:
-                    if not os.access(os.path.join(os.path.join(gisdbase, location_name,
-                                                               "PERMANENT", "DEFAULT_WIND")), os.F_OK):
+                    if not os.access(os.path.join(os.path.join(gisdbase,
+                                                               location_name,
+                                                               "PERMANENT",
+                                                               "DEFAULT_WIND")),
+                                                               os.F_OK):
                         # create new location
                         gisdbase = os.path.join(gisdbase, location_name)
                         location_name = mapset
                         mapset = "PERMANENT"
-                        if os.access(os.path.join(os.path.join(gisdbase, location_name,
-                                                               "PERMANENT", "DEFAULT_WIND")), os.F_OK):
-                            fatal(_("Failed to create new location. The location <%s> already exists." % location_name))
+                        if os.access(os.path.join(os.path.join(gisdbase,
+                                                               location_name,
+                                                               "PERMANENT",
+                                                               "DEFAULT_WIND")),
+                                                               os.F_OK):
+                            fatal(_("Failed to create new location. The " \
+                                    "location <%s> already exists." % location_name))
                         sys.path.append(gfile('etc', 'python'))
                         from grass.script import core as grass
                         try:
                             if geofile and geofile.find('EPSG:') > -1:
                                 epsg = geofile.split(':', 1)[1]
-                                grass.create_location(gisdbase, location_name, epsg = epsg)
+                                grass.create_location(gisdbase, location_name,
+                                                      epsg=epsg)
                             else:
-                                grass.create_location(gisdbase, location_name, filename = geofile)
+                                grass.create_location(gisdbase, location_name,
+                                                      filename=geofile)
                         except grass.ScriptError, e:
-                            fatal(e.value.strip('"').strip("'").replace('\\n', os.linesep))
+                            fatal(e.value.strip('"').strip("'").replace('\\n',
+                                                                   os.linesep))
                     else:
                         # create new mapset
                         os.mkdir(location)
                         # copy PERMANENT/DEFAULT_WIND to <mapset>/WIND
-                        s = readfile(os.path.join(gisdbase, location_name, "PERMANENT", "DEFAULT_WIND"))
+                        s = readfile(os.path.join(gisdbase, location_name,
+                                                  "PERMANENT", "DEFAULT_WIND"))
                         writefile(os.path.join(location, "WIND"), s)
                         message(_("Missing WIND file fixed"))
                 else:
                     fatal(_("<%s> is not a valid GRASS location") % location)
-        
+
         if os.access(gisrc, os.R_OK):
             kv = read_gisrc()
         else:
             kv = {}
-        
+
         kv['GISDBASE'] = gisdbase
         kv['LOCATION_NAME'] = location_name
         kv['MAPSET'] = mapset
         write_gisrc(kv)
     else:
-        fatal(_("GISDBASE, LOCATION_NAME and MAPSET variables not set properly.\n"
-                "Interactive startup needed."))
-    
+        fatal(_("GISDBASE, LOCATION_NAME and MAPSET variables not set properly"
+                ".\nInteractive startup needed."))
+
+
 def set_data():
     # User selects LOCATION and MAPSET if not set
     if not location:
@@ -617,12 +662,13 @@
             # Shouldn't need this but you never know
             fatal(_("Invalid user interface specified - <%s>.\n" 
                     "Use the --help option to see valid interface names.") % grass_gui)
-    
+
+
 def gui_startup():
     if grass_gui == 'wxpython':
         thetest = call([os.getenv('GRASS_PYTHON'),
                         gfile(wxpython_base, "gis_set.py")])
-    
+
     if thetest == 0:
         pass
     elif thetest == 1:
@@ -633,7 +679,7 @@
                   "Switching to text mode now.\n\n"
                   "Hit RETURN to continue..."))
         sys.stdin.readline()
-        
+
         os.execlp(cmd_name, "-text")
         sys.exit(1)
     elif thetest == 2:
@@ -643,7 +689,8 @@
     else:
         fatal(_("Invalid return code from GUI startup script.\n"
                 "Please advise GRASS developers of this error."))
-    
+
+
 def load_gisrc():
     global gisdbase, location_name, mapset, location
     kv = read_gisrc()
@@ -656,30 +703,32 @@
                 "LOCATION_NAME=%(location)s\n"
                 "MAPSET=%(mapset)s\n\n"
                 "Check the <%s(file)> file." % \
-                    { 'gisbase' : gisdbase, 'location' : location_name,
-                      'mapset' : mapset, 'file' : gisrcrc }))
-    
+                    {'gisbase': gisdbase, 'location': location_name,
+                     'mapset': mapset, 'file': gisrcrc}))
+
     location = os.path.join(gisdbase, location_name, mapset)
 
+
 # load environmental variables from grass_env_file
 def load_env():
     if not os.access(grass_env_file, os.R_OK):
         return
-    
+
     for line in readfile(grass_env_file).split(os.linesep):
         try:
             k, v = map(lambda x: x.strip(), line.strip().split(' ', 1)[1].split('=', 1))
         except:
             continue
         os.environ[k] = v
-    
+
+
 def set_language():
     import locale
-    
+
     language = os.getenv('LANG')
     if not language:
         return
-    
+
     language = language.split('.')[0] # Split off ignored .encoding part if present
     orig_language = language
     try:
@@ -707,65 +756,68 @@
                 #     language = default_locale[0]
                 # else:
                 language = 'C'
-    
+
     # Set up environment for subprocesses
-    for lc in ('LC_CTYPE', 'LC_MESSAGES', 'LC_TIME', 'LC_COLLATE', 'LC_MONETARY', 'LC_PAPER',
-               'LC_NAME', 'LC_ADDRESS', 'LC_TELEPHONE', 'LC_MEASUREMENT', 'LC_IDENTIFICATION'):
+    for lc in ('LC_CTYPE', 'LC_MESSAGES', 'LC_TIME', 'LC_COLLATE',
+               'LC_MONETARY', 'LC_PAPER', 'LC_NAME', 'LC_ADDRESS',
+               'LC_TELEPHONE', 'LC_MEASUREMENT', 'LC_IDENTIFICATION'):
         os.environ[lc] = language
-            
+
     # Some code in GRASS might not like other decimal separators than .
     # Other potential sources for problems are: LC_TIME LC_CTYPE
     locale.setlocale(locale.LC_NUMERIC, 'C')
     os.environ['LC_NUMERIC'] = 'C'
     if os.getenv('LC_ALL'):
-        del os.environ['LC_ALL'] # Remove LC_ALL to not override LC_NUMERIC
-    
+        del os.environ['LC_ALL']  # Remove LC_ALL to not override LC_NUMERIC
+
     # Even if setting locale has failed, let's set LANG in a hope,
     # that UI will use it GRASS texts will be in selected language,
     # system messages (i.e. OK, Cancel etc.) - in system default
     # language
     os.environ['LANGUAGE'] = orig_language
     os.environ['LANG'] = orig_language
-        
+
     # Calling gettext.install twice seems to allow to see also
     # localized startup messages Black magic ;)
-    gettext.install('grasslibs', os.path.join(gisbase, 'locale'), unicode = True)
-    
+    gettext.install('grasslibs', os.path.join(gisbase, 'locale'), unicode=True)
+
+
 def check_lock():
     global lockfile
     if not os.path.exists(location):
         fatal(_("Path '%s' doesn't exist") % location)
-    
+
     # Check for concurrent use
     lockfile = os.path.join(location, ".gislock")
-    ret = call([gfile("etc", "lock"),
-                lockfile,
-                "%d" % os.getpid()])
-    
+    ret = call([gfile("etc", "lock"), lockfile, "%d" % os.getpid()])
     if ret == 0:
         msg = None
     elif ret == 2:
-        msg = _("%(user)s is currently running GRASS in selected mapset (file %(file)s found). "
-                "Concurrent use not allowed." % \
-                    { 'user' : user, 'file' : lockfile })
+        msg = _("%(user)s is currently running GRASS in selected mapset (" \
+                "file %(file)s found). Concurrent use not allowed." % {
+                'user': user, 'file': lockfile})
     else:
         msg = _("Unable to properly access '%s'.\n"
                 "Please notify system personel.") % lockfile
-    
+
     if msg:
         if grass_gui == "wxpython":
-            thetest = call([os.getenv('GRASS_PYTHON'), os.path.join(wxpython_base, "gis_set_error.py"), msg])
+            thetest = call([os.getenv('GRASS_PYTHON'),
+                            os.path.join(wxpython_base, "gis_set_error.py"),
+                            msg])
         else:
             global remove_lockfile
             remove_lockfile = False
             fatal(msg)
-    
+
+
 def make_fontcap():
     fc = os.getenv('GRASS_FONT_CAP')
     if fc and not os.access(fc, os.R_OK):
         message(_("Building user fontcap..."))
         call(["g.mkfontcap"])
-    
+
+
 def check_shell():
     global sh, shellname, grass_env_file
     # cygwin has many problems with the shell setup
@@ -779,15 +831,15 @@
         sh = os.path.basename(os.getenv('SHELL'))
         if windows and sh:
             sh = os.path.splitext(sh)[0]
-        
+
         if sh == "ksh":
             shellname = "Korn Shell"
         elif sh == "csh":
-            shellname = "C Shell" 
+            shellname = "C Shell"
         elif sh == "tcsh":
-            shellname = "TC Shell" 
+            shellname = "TC Shell"
         elif sh == "bash":
-            shellname = "Bash Shell" 
+            shellname = "Bash Shell"
         elif sh == "sh":
             shellname = "Bourne Shell"
         elif sh == "zsh":
@@ -796,7 +848,7 @@
             shellname = "Command Shell"
         else:
             shellname = "shell"
-    
+
     if sh in ['csh', 'tcsh']:
         grass_env_file = os.path.join(grass_config_dir, 'cshrc')
     elif sh in ['bash', 'msh', 'cygwin', 'sh']:
@@ -807,12 +859,14 @@
         grass_env_file = os.path.join(grass_config_dir, 'env.bat')
     else:
         grass_env_file = os.path.join(grass_config_dir, 'bashrc')
-        warning(_("Unsupported shell <%s>: %s") % (sh, grass_env_file))
-    
+        warning(_("Unsupported shell <%(sh)s>: %(env)s") % {'sh': sh,
+                                                       'env': grass_env_file})
+
     # check for SHELL
     if not os.getenv('SHELL'):
         fatal(_("The SHELL variable is not set"))
-    
+
+
 def check_batch_job():
     global batch_job
     # hack to process batch jobs:
@@ -834,17 +888,18 @@
             bj = Popen(shell, shell=True)
             bj.wait()
             message(_("Execution of '%s' finished.") % batch_job)
-    
+
+
 def start_gui():
     # Start the chosen GUI but ignore text
     if grass_debug:
         message(_("GRASS GUI should be <%s>") % grass_gui)
-    
+
     # Check for gui interface
     if grass_gui == "wxpython":
-        Popen([os.getenv('GRASS_PYTHON'),
-               gfile(wxpython_base, "wxgui.py")])
-    
+        Popen([os.getenv('GRASS_PYTHON'), gfile(wxpython_base, "wxgui.py")])
+
+
 def clear_screen():
     if windows:
         pass
@@ -853,7 +908,8 @@
     else:
         if not os.getenv('GRASS_BATCH_JOB') and not grass_debug:
             call(["tput", "clear"])
-    
+
+
 def show_banner():
     sys.stderr.write(r"""
           __________  ___   __________    _______________
@@ -868,6 +924,7 @@
 def say_hello():
     sys.stderr.write(_("Welcome to GRASS %s") % grass_version)
 
+
 def show_info():
     sys.stderr.write(
 r"""
@@ -889,36 +946,38 @@
     message("%-41sexit" % _("When ready to quit enter:"))
     message("")
 
+
 def csh_startup():
     global exit_val
-    
+
     userhome = os.getenv('HOME')      # save original home
     home = location
     os.environ['HOME'] = home
-    
+
     cshrc = os.path.join(home, ".cshrc")
     tcshrc = os.path.join(home, ".tcshrc")
     try_remove(cshrc)
     try_remove(tcshrc)
-    
+
     f = open(cshrc, 'w')
     f.write("set home = %s\n" % userhome)
     f.write("set history = 3000 savehist = 3000  noclobber ignoreeof\n")
-    f.write("set histfile = %s\n" % os.path.join(os.getenv('HOME'), ".history"))
-    
+    f.write("set histfile = %s\n" % os.path.join(os.getenv('HOME'),
+                                                 ".history"))
+
     f.write("set prompt = '\\\n")
     f.write("Mapset <%s> in Location <%s> \\\n" % (mapset, location_name))
     f.write("GRASS %s > '\n" % grass_version)
     f.write("set BOGUS=``;unset BOGUS\n")
-    
+
     path = os.path.join(userhome, ".grass.cshrc") # left for backward compatibility
     if os.access(path, os.R_OK):
         f.write(readfile(path) + '\n')
     if os.access(grass_env_file, os.R_OK):
         f.write(readfile(grass_env_file) + '\n')
-    
+
     mail_re = re.compile(r"^ *set  *mail *= *")
-    
+
     for filename in [".cshrc", ".tcshrc", ".login"]:
         path = os.path.join(userhome, filename)
         if os.access(path, os.R_OK):
@@ -927,59 +986,62 @@
             for l in lines:
                 if mail_re.match(l):
                     f.write(l)
-    
+
     path = os.getenv('PATH').split(':')
     f.write("set path = ( %s ) \n" % ' '.join(path))
-    
+
     f.close()
     writefile(tcshrc, readfile(cshrc))
-    
+
     exit_val = call([gfile("etc", "run"), os.getenv('SHELL')])
-    
+
     os.environ['HOME'] = userhome
-    
+
+
 def bash_startup():
     global exit_val
-    
+
     # save command history in mapset dir and remember more
     os.environ['HISTFILE'] = os.path.join(location, ".bash_history")
     if not os.getenv('HISTSIZE') and not os.getenv('HISTFILESIZE'):
         os.environ['HISTSIZE'] = "3000"
-    
+
     # instead of changing $HOME, start bash with: --rcfile "$LOCATION/.bashrc" ?
     #   if so, must care be taken to explicity call .grass.bashrc et al for
     #   non-interactive bash batch jobs?
     userhome = os.getenv('HOME')      # save original home
     home = location                   # save .bashrc in $LOCATION
     os.environ['HOME'] = home
-    
+
     bashrc = os.path.join(home, ".bashrc")
     try_remove(bashrc)
-    
+
     f = open(bashrc, 'w')
     f.write("test -r ~/.alias && . ~/.alias\n")
     f.write("PS1='GRASS %s (%s):\w > '\n" % (grass_version, location_name))
-    f.write("PROMPT_COMMAND=\"'%s'\"\n" % os.path.join(gisbase, 'etc', 'prompt.py'))
-    
+    f.write("PROMPT_COMMAND=\"'%s'\"\n" % os.path.join(gisbase, 'etc',
+                                                       'prompt.py'))
+
     # read environmental variables
     path = os.path.join(userhome, ".grass.bashrc") # left for backward compatibility
     if os.access(path, os.R_OK):
         f.write(readfile(path) + '\n')
     if os.access(grass_env_file, os.R_OK):
         f.write(readfile(grass_env_file) + '\n')
-    
+
     f.write("export PATH=\"%s\"\n" % os.getenv('PATH'))
     f.write("export HOME=\"%s\"\n" % userhome) # restore user home path
-    
+
     f.close()
 
     exit_val = call([gfile("etc", "run"), os.getenv('SHELL')])
-    
+
     os.environ['HOME'] = userhome
 
+
 def default_startup():
     global exit_val
-    
+
     if windows:
         os.environ['PS1'] = "GRASS %s> " % (grass_version)
         # "$ETC/run" doesn't work at all???
@@ -988,10 +1050,11 @@
     else:
         os.environ['PS1'] = "GRASS %s (%s):\w > " % (grass_version, location_name)
         exit_val = call([gfile("etc", "run"), os.getenv('SHELL')])
-    
+
     if exit_val != 0:
         fatal(_("Failed to start shell '%s'") % os.getenv('SHELL'))
-    
+
+
 def done_message():
     if batch_job and os.access(batch_job, os.X_OK):
         message(_("Batch job '%s' (defined in GRASS_BATCH_JOB variable) was executed.") % batch_job)
@@ -1002,27 +1065,30 @@
         message("")
         message(_("Goodbye from GRASS GIS"))
         message("")
-    
+
+
 def clean_temp():
     message(_("Cleaning up temporary files..."))
     nul = open(os.devnull, 'w')
-    call([gfile("etc", "clean_temp")], stdout = nul, stderr = nul)
+    call([gfile("etc", "clean_temp")], stdout=nul, stderr=nul)
     nul.close()
 
+
 def grep(string,list):
     expr = re.compile(string)
     return [elem for elem in list if expr.match(elem)]
 
+
 def print_params():
     plat = gfile(gisbase, 'include', 'Make', 'Platform.make')
     fileplat = open(plat)
     linesplat = fileplat.readlines()
     fileplat.close()
-    
+
     params = sys.argv[2:]
     if not params:
         params = ['arch', 'build', 'compiler', 'path', 'revision']
-        
+    
     for arg in params:
         if arg == 'path':
             sys.stdout.write("%s\n" % gisbase)
@@ -1047,7 +1113,8 @@
             sys.stdout.write("%s\n" % val[0].split(':')[1].rstrip('$"\n').strip())
         else:
             message(_("Parameter <%s> not supported") % arg)
-    
+
+
 def get_username():
     global user
     if windows:
@@ -1068,7 +1135,8 @@
                 pass
         if not user:
             user = "user_%d" % os.getuid()
-    
+
+
 def parse_cmdline():
     global args, grass_gui, create_new
     args = []
@@ -1111,7 +1179,8 @@
 
 # set HOME
 if windows and not os.getenv('HOME'):
-    os.environ['HOME'] = os.path.join(os.getenv('HOMEDRIVE'), os.getenv('HOMEPATH'))
+    os.environ['HOME'] = os.path.join(os.getenv('HOMEDRIVE'),
+                                      os.getenv('HOMEPATH'))
 
 # set SHELL
 if windows:
@@ -1125,8 +1194,8 @@
 # Set default GUI
 default_gui = "wxpython"
 
-# the following is only meant to be an internal variable for debugging this script.
-#  use 'g.gisenv set="DEBUG=[0-5]"' to turn GRASS debug mode on properly.
+# the following is only meant to be an internal variable for debugging this
+# script. use 'g.gisenv set="DEBUG=[0-5]"' to turn GRASS debug mode on properly
 grass_debug = os.getenv('GRASS_DEBUG')
 
 # Set GRASS version number for R interface etc (must be an env_var for MS-Windows)
@@ -1182,7 +1251,7 @@
 if os.getenv('HOSTTYPE') == 'arm':
     # small monitor on ARM (iPAQ, zaurus... etc)
     os.environ['GRASS_HEIGHT'] = "320"
-    os.environ['GRASS_WIDTH']  = "240"
+    os.environ['GRASS_WIDTH'] = "240"
 
 # First time user - GISRC is defined in the GRASS script
 if not os.access(gisrc, os.F_OK):



More information about the grass-commit mailing list