Hi,

This patch makes trunk/contrib/client-side/svn_apply_autoprops.py take
command line options.
The usage would be:
svn_apply_autoprops.py [-c config_file] [paths to process...]

The -c option specifies the configuration file name, and it overrides
the setting in environment variable SVN_CONFIG_FILENAME.
The rest of the command line arguments are treated as paths to process.

[[[
Make svn_apply_autoprops.py take command line options.
Option -c for svn configuration filename, and the rest for paths to process.
]]]

Regards,
Wei-Yin

----------------------------------------------------------------
--- svn_apply_autoprops.py.old  2010-09-04 20:16:28.000000000 +0800
+++ svn_apply_autoprops.py.option       2010-09-04 20:53:47.000000000 +0800
@@ -8,12 +8,10 @@
 # auto-property to a single pathname, this script will apply all
 # matching lines to a single pathname.
 #
 # To do:
 # 1) Switch to using the Subversion Python bindings.
-# 2) Allow a command line option to specify the configuration file to
-#    load the auto-properties from.
 #
 # $HeadURL$
 # $LastChangedRevision$
 # $LastChangedDate$
 # $LastChangedBy$
@@ -137,22 +135,39 @@
         print 'Command "%s" failed with exit status %s' \
               % (command, status)
         sys.exit(1)

 def main():
+  from optparse import OptionParser
+  op=OptionParser(usage="%prog [-c config_file] [paths to process...]")
+  op.add_option("-c",
+                dest="config_filename",action="store",help="SVN
config filename.",metavar="<args>")
+  options, args = op.parse_args()
+  for p in args:
+    if not os.path.exists(p):
+      print "Path '%s' doesn't exist." % p
+      sys.exit(1)
+  paths = [p for p in args if os.path.exists(p)]
+  if not paths:
+    paths = '.'
+
   config_filename = os.path.expandvars(SVN_CONFIG_FILENAME)
+  if options.config_filename:
+    config_filename = options.config_filename
   try:
     fd = file(config_filename)
   except IOError:
     print "Cannot open svn configuration file '%s' for reading: %s" \
           % (config_filename, sys.exc_value.strerror)
+    sys.exit(1)

   autoprop_lines = get_autoprop_lines(fd)

   fd.close()

   autoprop_lines = process_autoprop_lines(autoprop_lines)

-  os.path.walk('.', filter_walk, autoprop_lines)
+  for p in paths:
+    os.path.walk(p, filter_walk, autoprop_lines)

 if __name__ == '__main__':
   sys.exit(main())

Reply via email to