first version with basic argument processing
This commit is contained in:
parent
476be4bb96
commit
f66d479ccf
0
git_os_job/__init__.py
Normal file
0
git_os_job/__init__.py
Normal file
60
git_os_job/cmd.py
Executable file
60
git_os_job/cmd.py
Executable file
@ -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())
|
28
setup.cfg
Normal file
28
setup.cfg
Normal file
@ -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
|
21
setup.py
Executable file
21
setup.py
Executable file
@ -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)
|
Loading…
x
Reference in New Issue
Block a user