X-Git-Url: https://dev.renevier.net/?p=syj.git;a=blobdiff_plain;f=scripts%2Frelease.py;h=9a1b4d2959fc65726bdf282827dc35bbcc6147e8;hp=95452004e31a7609899cb24a793661a5cc9a55fa;hb=c06c7fd6e6f26d31abb8d7c9a9f9e3f2d5b27d5c;hpb=d36500c8a1bb852d876ac387f31fec55d92d6789 diff --git a/scripts/release.py b/scripts/release.py index 9545200..9a1b4d2 100755 --- a/scripts/release.py +++ b/scripts/release.py @@ -5,6 +5,29 @@ __BUILD__="build" import shutil, os, sys, subprocess, tempfile, tarfile, glob, ConfigParser pathjoin = os.path.join +def updateversion(): + try: + version = None + import git + repo = git.Repo('.') + master = repo.commits()[0] + tag = (filter(lambda tag: tag.commit.id == master.id, repo.tags) or [""])[0] + if tag: + version = tag.name + except ImportError: + version = subprocess.Popen(['git', 'tag', '-l', '--contains', 'master'], stdout=subprocess.PIPE).communicate()[0][:-1] + if not version: + raise AssertionError, "master is not tagged" + + fd, fname = tempfile.mkstemp() + f = os.fdopen(fd, 'w') + versionfile = 'build/application/Version.php' + with open('build/application/Version.php') as source: + for line in source: + f.write(line.replace('$SYJVERSION$', version)) + f.close() + shutil.move(fname, versionfile) + def compress(path): tmpout = tempfile.TemporaryFile() subprocess.Popen(['yui-compressor', path], stdout=tmpout).communicate() @@ -17,7 +40,17 @@ def genscripts(): # copy scripts OpenLayers.js for path in glob.glob('public/js/*.js'): - shutil.copy(path, tmpdir) + if os.path.islink(path): + shutil.copy(path, tmpdir) + else: + # remove "use strict"; directive + with open(path) as inp: + dest = pathjoin(tmpdir, os.path.basename(path)) + with open(dest, "w") as out: + for line in inp: + sline = line.strip() + if sline != '"use strict"' and sline != '"use strict";': + out.write(line) # build OpenLayers.js subprocess.call(['python', 'buildUncompressed.py', @@ -88,6 +121,8 @@ def main(): install(source, target) + updateversion() + print "creating syj.tar.gz" targz = tarfile.open("build/syj.tar.gz", "w:gz") for path in glob.glob(pathjoin(__BUILD__, '*')):