diff options
author | David Robillard <d@drobilla.net> | 2011-05-26 22:55:49 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2011-05-26 22:55:49 +0000 |
commit | 5efc8a0f538fdc7d62e7846a2344b326c3344637 (patch) | |
tree | 77f87cc0bce24fa544e50c45092c9263201fd4ff | |
parent | 33548f495c6d49726e8f996c2482073ae2385e88 (diff) | |
download | lv2-5efc8a0f538fdc7d62e7846a2344b326c3344637.tar.xz |
Add automatic extension release generation script
l--------- | ext/event.lv2/waf | 1 | ||||
-rwxr-xr-x | genreleases.py | 63 | ||||
-rw-r--r-- | wscript.template (renamed from ext/event.lv2/wscript) | 8 |
3 files changed, 67 insertions, 5 deletions
diff --git a/ext/event.lv2/waf b/ext/event.lv2/waf deleted file mode 120000 index 59a1ac9..0000000 --- a/ext/event.lv2/waf +++ /dev/null @@ -1 +0,0 @@ -../../waf
\ No newline at end of file diff --git a/genreleases.py b/genreleases.py new file mode 100755 index 0000000..3e75a3e --- /dev/null +++ b/genreleases.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +import RDF +import glob +import os +import re +import shutil +import sys + +lv2 = RDF.NS('http://lv2plug.in/ns/lv2core#') + +manifests = glob.glob('ext/*.lv2/manifest.ttl') + +try: + os.mkdir('build') + os.mkdir('spec') +except: + pass + +for i in manifests: + match = re.search('.*/([^/]*).lv2/.*', i) + name = match.group(1) + + match = re.search('(.*)/.*', i) + dir = match.group(1) + + m = RDF.Model() + p = RDF.Parser(name="turtle") + p.parse_into_model(m, 'file:' + i) + + s = m.find_statements(RDF.Statement(None, lv2.minorVersion, None)) + if not s.current(): + #print("No minor version found for %s\n" % i) + continue + minor = s.current().object.literal_value['string'] + + s = m.find_statements(RDF.Statement(None, lv2.microVersion, None)) + if not s.current(): + #print("No micro version found for %s\n" % i) + continue + micro = s.current().object.literal_value['string'] + + if int(minor) != 0 and int(micro) % 2 == 0: + print('Packaging %s extension version %s.%s' % (name, minor, micro)) + wscript_template = open('wscript.template') + wscript = open('%s/wscript' % dir, 'w') + for l in wscript_template: + wscript.write(l.replace( + '@NAME@', name).replace( + '@MINOR@', minor).replace( + '@MICRO@', micro)) + wscript_template.close() + wscript.close() + try: + os.remove('%s/waf' % dir) + except: + pass + os.symlink('../../waf', '%s/waf' % dir) + + os.system('tar --exclude=".*" -cjhf build/spec/lv2-%s-%s.%s.tar.bz2 %s' % ( + name, minor, micro, dir)) + diff --git a/ext/event.lv2/wscript b/wscript.template index 22d4cbe..b2e5912 100644 --- a/ext/event.lv2/wscript +++ b/wscript.template @@ -3,8 +3,8 @@ from waflib.extras import autowaf as autowaf import waflib.Logs as Logs # Variables for 'waf dist' -APPNAME = 'lv2-event' -VERSION = '1.2' +APPNAME = 'lv2-@NAME@' +VERSION = '@MINOR@.@MICRO@' # Mandatory variables top = '.' @@ -20,8 +20,8 @@ def configure(conf): print('') def build(bld): - bld.install_files('${LV2DIR}/event.lv2', - 'event.ttl event.h event-helpers.h manifest.ttl') + bld.install_files('${LV2DIR}/@NAME@.lv2', + bld.path.ant_glob('*.*')) bld.add_post_fun(warn_lv2config) |