File: make-java-wrappers.py

package info (click to toggle)
indigo 1.4.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 48,936 kB
  • sloc: ansic: 332,816; cpp: 169,470; python: 20,033; java: 13,701; cs: 9,979; asm: 8,475; sql: 6,743; xml: 6,354; javascript: 1,245; sh: 555; php: 506; makefile: 54
file content (80 lines) | stat: -rw-r--r-- 3,531 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
import os
import shutil
from os.path import *
import subprocess

from optparse import OptionParser
import xml.etree.ElementTree as ElementTree

parser = OptionParser(description='Indigo Java libraries build script')
parser.add_option('--suffix', '-s', help='archive suffix', default="")
parser.add_option('--publish', help='Publish jar',  default=False, action='store_true')
(args, left_args) = parser.parse_args()


# Find indigo version
def get_pom_version_from_curdir():
    tree = ElementTree.parse(os.path.join(os.curdir, 'pom.xml'))
    ElementTree.register_namespace('', 'http://maven.apache.org/POM/4.0.0')
    root = tree.getroot()
    version = None
    for child in root:
        if child.tag.endswith('version'):
            version = child.text
    return version


api_dir = abspath(dirname(__file__))
root = join(api_dir, "..")
dist_dir = join(root, "dist")
if not os.path.exists(dist_dir):
    os.mkdir(dist_dir)

os.chdir(dist_dir)
if os.path.exists("java"):
    shutil.rmtree("java")
os.mkdir('java')

mvn_cmd = 'mvnw.cmd' if os.name == 'nt' else './mvnw'

publish = '' if not args.publish else 'deploy -P sign-artifacts -Dgpg.passphrase={} -Dossrh.user={} -Dossrh.password={}'.format(
    os.environ['GPG_PASSPHRASE'], os.environ['MAVEN_USER'], os.environ['MAVEN_PASSWORD'])

os.chdir(os.path.join(api_dir, "java"))
version = get_pom_version_from_curdir()
subprocess.check_call("%s -B clean package verify install %s" % (mvn_cmd, publish), shell=True)
shutil.copy(os.path.join(os.path.abspath(os.curdir), 'target', 'indigo-%s.jar' % version), os.path.join(dist_dir, 'java', 'indigo.jar'))

os.chdir(os.path.join(api_dir, "plugins", "renderer", "java"))
version = get_pom_version_from_curdir()
subprocess.check_call("%s -B clean package verify install %s" % (mvn_cmd, publish), shell=True)
shutil.copy(os.path.join(os.path.abspath(os.curdir), 'target', 'indigo-renderer-%s.jar' % version), os.path.join(dist_dir, 'java', 'indigo-renderer.jar'))

os.chdir(os.path.join(api_dir, "plugins", "inchi", "java"))
version = get_pom_version_from_curdir()
subprocess.check_call("%s -B clean package verify install %s" % (mvn_cmd, publish), shell=True)
shutil.copy(os.path.join(os.path.abspath(os.curdir), 'target', 'indigo-inchi-%s.jar' % version), os.path.join(dist_dir, 'java', 'indigo-inchi.jar'))

os.chdir(os.path.join(api_dir, "plugins", "bingo", "java"))
version = get_pom_version_from_curdir()
subprocess.check_call("%s -B clean package verify install %s" % (mvn_cmd, publish), shell=True)
shutil.copy(os.path.join(os.path.abspath(os.curdir), 'target', 'bingo-nosql-%s.jar' % version), os.path.join(dist_dir, 'java', 'bingo-nosql.jar'))

if args.publish:
    os.chdir(os.path.join(api_dir, "plugins", "bingo-elastic", "java"))
    version = get_pom_version_from_curdir()
    subprocess.check_call("%s -B clean package verify install %s" % (mvn_cmd, publish), shell=True)

os.chdir(dist_dir)
shutil.copy(os.path.join(api_dir, "LICENSE"), "java")

shutil.copy(os.path.join(root, "common", "jna", "jna.jar"), "java")

archive_name = "./indigo-java-%s-%s" % (version, args.suffix)
os.rename("java", archive_name)
if os.path.exists(archive_name + ".zip"):
    os.remove(archive_name + ".zip")
shutil.make_archive(archive_name, 'zip', os.path.dirname(archive_name), archive_name)
shutil.rmtree(archive_name)
full_archive_name = os.path.normpath(os.path.join(dist_dir, archive_name))
print('Archive {}.zip created'.format(full_archive_name))