| #!/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) |