diff --git a/README.md b/README.rst similarity index 100% rename from README.md rename to README.rst diff --git a/git_os_job/__init__.py b/git_os_job/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/git_os_job/cmd.py b/git_os_job/cmd.py new file mode 100755 index 0000000..198a9bc --- /dev/null +++ b/git_os_job/cmd.py @@ -0,0 +1,60 @@ +#!/usr/bin/env python + +from __future__ import print_function + +import argparse +import subprocess +import sys +import webbrowser + + +def main(): + parser = argparse.ArgumentParser( + description='Show the OpenStack job logs for a commit in a browser', + ) + parser.add_argument( + '--base', + action='store', + default='http://logs.openstack.org', + help='base URL, defaults to %(default)s', + ) + parser.add_argument( + '--url', + action='store_true', + default=False, + help='show the URL but do not open it', + ) + parser.add_argument( + 'ref', + nargs='?', + default='HEAD', + help='the git reference, tag, or commit, defaults to %(default)s', + ) + args = parser.parse_args() + + ref = args.ref + import os + try: + ref_hash = subprocess.check_output( + ['git', 'show-ref', '-s', ref] + ).rstrip() + except subprocess.CalledProcessError: + # Maybe they gave us a commit id + try: + ref_hash = subprocess.check_output( + ['git', 'show', '--pretty=format:%H', '--quiet', ref] + ).rstrip() + except subprocess.CalledProcessError: + sys.stderr.write('Could not get hash for ref %r\n' % ref) + return 1 + + url = '%s/%s/%s/' % (args.base, ref_hash[:2], ref_hash) + if args.url: + print(url) + else: + webbrowser.open(url) + return 0 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..8c8e52e --- /dev/null +++ b/setup.cfg @@ -0,0 +1,28 @@ +[metadata] +name = git-os-job +summary = Show the OpenStack job logs for a commit +description-file = README.rst +license = Apache License (2.0) +classifiers = + Programming Language :: Python :: 2 + Programming Language :: Python :: 3 + Programming Language :: Python + Development Status :: 3 - Alpha + Environment :: Console + Environment :: OpenStack + Intended Audience :: Developers + Intended Audience :: Information Technology + License :: OSI Approved :: Apache Software License + Operating System :: OS Independent +keywords = git gerrit review +author = Doug Hellmann +author-email = doug.hellmann@dreamhost.com +home-page = https://pypi.python.org/pypi/git-os-job + +[files] +packages = + git_os_job + +[entry_points] +console_scripts = + git-os-job = git_os_job.cmd:main diff --git a/setup.py b/setup.py new file mode 100755 index 0000000..1a1024d --- /dev/null +++ b/setup.py @@ -0,0 +1,21 @@ +#!/usr/bin/env python +# Copyright (c) 2013 New Dream Network, LLC (DreamHost) +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or +# implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import setuptools + + +setuptools.setup(setup_requires=['pbr>=0.5.21,<1.0'], + pbr=True)