X-Git-Url: https://dev.renevier.net/?p=syj.git;a=blobdiff_plain;f=scripts%2Frelease.py;h=3c5ded2be7eaf0dab35997879cb08ad7ae810ad5;hp=95452004e31a7609899cb24a793661a5cc9a55fa;hb=fccbd03d7444b561a07016c2acab9dc74b361ecf;hpb=d36500c8a1bb852d876ac387f31fec55d92d6789 diff --git a/scripts/release.py b/scripts/release.py index 9545200..3c5ded2 100755 --- a/scripts/release.py +++ b/scripts/release.py @@ -5,9 +5,35 @@ __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() + try: + subprocess.Popen(['yui-compressor', path], stdout=tmpout).communicate() + except OSError: + subprocess.Popen(['yuicompressor', path], stdout=tmpout).communicate() tmpout.seek(0) with open(path, 'w') as output: output.write(tmpout.read()) @@ -17,7 +43,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 +124,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__, '*')):