summaryrefslogtreecommitdiff
path: root/pbr/packaging.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-07-31 04:01:36 +0000
committerGerrit Code Review <review@openstack.org>2013-07-31 04:01:36 +0000
commit600aa2a25052380e2010f8001c3185ad35d8a67d (patch)
tree56d12e26721baca69b414db4a9952e5d1b47f3f2 /pbr/packaging.py
parent3d40ea10f8008776a89176065b023a99b770285d (diff)
parent845a46c7c49dde32007475dc5c87beb6d5701fcc (diff)
downloadpbr-600aa2a25052380e2010f8001c3185ad35d8a67d.tar.gz
Merge "Add support for classmethod console scripts"
Diffstat (limited to 'pbr/packaging.py')
-rw-r--r--pbr/packaging.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/pbr/packaging.py b/pbr/packaging.py
index ae58c95..526b5c3 100644
--- a/pbr/packaging.py
+++ b/pbr/packaging.py
@@ -424,11 +424,11 @@ _script_text = """# PBR Generated from %(group)r
import sys
-from %(module_name)s import %(func)s
+from %(module_name)s import %(import_target)s
if __name__ == "__main__":
- sys.exit(%(func)s())
+ sys.exit(%(invoke_target)s())
"""
@@ -438,10 +438,15 @@ def override_get_script_args(
header = easy_install.get_script_header("", executable, is_wininst)
for group in 'console_scripts', 'gui_scripts':
for name, ep in dist.get_entry_map(group).items():
+ if not ep.attrs or len(ep.attrs) > 2:
+ raise ValueError("Script targets must be of the form "
+ "'func' or 'Class.class_method'.")
script_text = _script_text % dict(
group=group,
module_name=ep.module_name,
- func=ep.attrs[0])
+ import_target=ep.attrs[0],
+ invoke_target='.'.join(ep.attrs),
+ )
yield (name, header+script_text)