action='store_true',
dest='force_current_version',
default=False)
+
+ p.add_option ('-d', '--diff-version-update',
+ help=_ ("only update \\version number if file is modified"),
+ action='store_true',
+ dest='diff_version_update',
+ default=False)
p.add_option ("-s", '--show-rules',
help=_ ("show rules [default: -f 0, -t %s]") % program_version,
def do_conversion (str, from_version, to_version):
"""Apply conversions from FROM_VERSION to TO_VERSION. Return
-tuple (LAST,STR), with the last succesful conversion and the resulting
+tuple (LAST,STR), with the last successful conversion and the resulting
string."""
conv_list = get_conversions (from_version, to_version)
if global_options.force_current_version and last == to_version:
last = str_to_tuple (program_version)
+ if global_options.diff_version_update:
+ if result == input:
+ # check the y in x.y.z (minor version number)
+ previous_stable = (last[0], 2*(last[1]/2), 0)
+ if ((last[0:2] != from_version[0:2]) and
+ (previous_stable > from_version)):
+ # previous stable version
+ last = previous_stable
+ else:
+ # make no (actual) change to the version number
+ last = from_version
+
newversion = r'\version "%s"' % tup_to_str (last)
if lilypond_version_re.search (result):
result = re.sub (lilypond_version_re_str,
do_one_file (f)
except UnknownVersion:
error (_ ("%s: Unable to determine version. Skipping") % f)
- except InvalidVersion, ex:
+ except InvalidVersion:
+ # Compat code for 2.x and 3.0 syntax ("except .. as v" doesn't
+ # work in python 2.4!):
+ t, v, b = sys.exc_info ()
error (_ ("%s: Invalid version string `%s' \n"
"Valid version strings consist of three numbers, "
- "separated by dots, e.g. `2.8.12'") % (f, ex.version) )
+ "separated by dots, e.g. `2.8.12'") % (f, v.version) )
sys.stderr.write ('\n')