diff --git a/bin/fake_pom.xml b/bin/fake_pom.xml new file mode 100644 index 000000000000..50599f3ab4a7 --- /dev/null +++ b/bin/fake_pom.xml @@ -0,0 +1,6 @@ + + 4.0.0 + org.libreoffice + LibreOffice-Maven + 1 + diff --git a/bin/mvn.py b/bin/mvn.py new file mode 100755 index 000000000000..d5a1c9a0d165 --- /dev/null +++ b/bin/mvn.py @@ -0,0 +1,60 @@ +#!/usr/bin/python +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. + +from __future__ import print_function +from optparse import OptionParser +from os import path +from sys import stderr +try: + from subprocess import check_output +except ImportError: + from subprocess import Popen, PIPE + def check_output(*cmd): + return Popen(*cmd, stdout=PIPE).communicate()[0] +opts = OptionParser() +opts.add_option('--repository', help='maven repository id') +opts.add_option('--url', help='maven repository url') +opts.add_option('-a', help='action (valid actions are: install,deploy)') +opts.add_option('-v', help='libreoffice version') +opts.add_option('-s', action='append', help='triplet of artifactId:type:path') + +args, ctx = opts.parse_args() +if not args.v: + print('version is empty', file=stderr) + exit(1) + +common = [ + '-DgroupId=org.libreoffice', + '-Dversion=%s' % args.v, +] + +self = path.dirname(path.abspath(__file__)) +mvn = ['mvn', '--file', path.join(self, 'fake_pom.xml')] + +if 'install' == args.a: + cmd = mvn + ['install:install-file'] + common +elif 'deploy' == args.a: + cmd = mvn + [ + 'deploy:deploy-file', + '-DrepositoryId=%s' % args.repository, + '-Durl=%s' % args.url, + ] + common +else: + print("unknown action -a %s" % args.a, file=stderr) + exit(1) + +for spec in args.s: + artifact, packaging_type, src = spec.split(':') + try: + check_output(cmd + [ + '-DartifactId=%s' % artifact, + '-Dpackaging=%s' % packaging_type, + '-Dfile=%s' % src, + ]) + except Exception as e: + print('%s command failed: %s' % (args.a, e), file=stderr) + exit(1)