[Osgeo4w-commits] r1159 - trunk/apt
svn_osgeo4w at osgeo.org
svn_osgeo4w at osgeo.org
Mon May 10 02:44:30 EDT 2010
Author: maphew
Date: 2010-05-10 02:44:26 -0400 (Mon, 10 May 2010)
New Revision: 1159
Modified:
trunk/apt/apt.py
Log:
apt.py: deals with installing deps in the correct order [#136] (however it does not check for circular dependences). I have also added a feature that allows the user to customise the start menu name [#167]. From Jeremy Palmer, Land Information New Zealand
Modified: trunk/apt/apt.py
===================================================================
--- trunk/apt/apt.py 2010-05-10 01:04:33 UTC (rev 1158)
+++ trunk/apt/apt.py 2010-05-10 06:44:26 UTC (rev 1159)
@@ -69,6 +69,7 @@
-r,--root=DIR set osgeo4w root [%(root)s]
-t,--t=NAME set dist name (*curr*, test, prev)
-x,--no-deps ignore dependencies
+ -s,--start-menu=NAME set the start menu name (OSGeo4W)
''' % {'setup_ini':setup_ini,'mirror':mirror,'root':root}) #As they were just printing as "%(setup_ini)s" etc...
#@nonl
#@-node:maphew.20100223163802.3718:usage
@@ -154,16 +155,31 @@
download ()
if download_p:
sys.exit (0)
- for packagename in missing.keys ():
- if installed[0].has_key (packagename):
+ global installed_this_run
+ installed_this_run = {}
+ install_next(missing.keys ())
+
+def install_next (missing_packages):
+ global packagename
+ for miss_package in missing_packages:
+ if installed_this_run.has_key (miss_package):
+ continue
+ packagename = miss_package
+ ret = get_missing()
+ ret.remove(miss_package)
+ if len(ret) > 1:
+ install_next(ret[1:len(ret)])
+ packagename = miss_package
+ if installed[0].has_key (miss_package):
sys.stderr.write ('preparing to replace %s %s\n' \
- % (packagename,
+ % (miss_package,
version_to_string (get_installed_version ())))
do_uninstall ()
sys.stderr.write ('installing %s %s\n' \
- % (packagename,
+ % (miss_package,
version_to_string (get_version ())))
do_install ()
+ installed_this_run[miss_package] = 0
#@-node:maphew.20100223163802.3724:install
#@+node:maphew.20100223163802.3725:list
@@ -954,13 +970,6 @@
sys.stderr.write ('error: Please set OSGEO4W_ROOT\n')
sys.exit (2)
- # Thank you Luke Pinner for answering how to get path of "Start > Programs"
- # http://stackoverflow.com/questions/2216173
- #PROGRAMS=2
- ALLUSERSPROGRAMS=23
- OSGEO4W_STARTMENU = get_special_folder(ALLUSERSPROGRAMS) + "\OSGeo4W"
- os.putenv('OSGEO4W_STARTMENU', OSGEO4W_STARTMENU)
-
CWD = os.getcwd ()
INSTALL = 'install'
installed = 0
@@ -976,9 +985,9 @@
#@ <<parse command line>>
#@+node:maphew.20100307230644.3842:<<parse command line>>
(options, files) = getopt.getopt (sys.argv[1:],
- 'dhi:m:r:t:x',
+ 'dhi:m:r:t:s:x',
('download', 'help', 'mirror=', 'root='
- 'ini=', 't=', 'no-deps'))
+ 'ini=', 't=', 'start-menu=', 'no-deps'))
command = 'help'
if len (files) > 0:
@@ -992,6 +1001,7 @@
depend_p = 0
download_p = 0
+ start_menu_name = 'OSGeo4W'
for i in options:
o = i[0]
a = i[1]
@@ -1016,7 +1026,16 @@
distname = a
elif o == '--no-deps' or o == '-x':
depend_p = 1
-
+ elif o == '--start-menu' or o == '-s':
+ start_menu_name = a
+
+ # Thank you Luke Pinner for answering how to get path of "Start > Programs"
+ # http://stackoverflow.com/questions/2216173
+ #PROGRAMS=2
+ ALLUSERSPROGRAMS=23
+ OSGEO4W_STARTMENU = get_special_folder(ALLUSERSPROGRAMS) + "\\" + start_menu_name
+ os.putenv('OSGEO4W_STARTMENU', OSGEO4W_STARTMENU)
+
dists = 0
distnames = ('curr', 'test', 'prev')
#@-node:maphew.20100307230644.3842:<<parse command line>>
More information about the osgeo4w-commits
mailing list