X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=buildscripts%2Fmass-link.py;h=17412e5559f6aa7b34a0a17c5e1561703aaa3bff;hb=27295a12c9c19b50e039a0dc47124802e68ef501;hp=61ea81e2db40a5f24036ab3117c3614be2294e3e;hpb=e89d4b8578439d07a63dc2029c6d8fe016051fe3;p=lilypond.git diff --git a/buildscripts/mass-link.py b/buildscripts/mass-link.py index 61ea81e2db..17412e5559 100644 --- a/buildscripts/mass-link.py +++ b/buildscripts/mass-link.py @@ -5,20 +5,23 @@ # # create hard or symbolic links to SOURCEDIR/FILES in DESTDIR # -# if --prepend-suffix is specified, link to foo.bar will be called fooSUFFIX.bar -# shell-wildcard expansion is performed on FILES. - -print "mass_link.py" +# If --prepend-suffix is specified, link to foo.bar will be called fooSUFFIX.bar. +# Shell wildcards expansion is performed on FILES. import sys import os import glob import getopt +print "mass-link.py" + optlist, args = getopt.getopt (sys.argv[1:], '', ['prepend-suffix=']) link_type, source_dir, dest_dir = args[0:3] files = args[3:] +source_dir = os.path.normpath (source_dir) +dest_dir = os.path.normpath (dest_dir) + prepended_suffix = '' for x in optlist: if x[0] == '--prepend-suffix': @@ -46,11 +49,19 @@ sourcefiles = [] for pattern in files: sourcefiles += (glob.glob (os.path.join (source_dir, pattern))) -destfiles = map (lambda f: os.path.join (dest_dir, insert_suffix (os.path.basename (f))), sourcefiles) +def relative_path (f): + if source_dir == '.': + return f + return f[len (source_dir) + 1:] + +destfiles = [os.path.join (dest_dir, insert_suffix (relative_path (f))) for f in sourcefiles] + +destdirs = set ([os.path.dirname (dest) for dest in destfiles]) +[os.makedirs (d) for d in destdirs if not os.path.exists (d)] def force_link (src,dest): if os.path.exists (dest): - os.system ('rm -rf ' + dest) + os.system ('rm -f ' + dest) link (src, dest) map (force_link, sourcefiles, destfiles)