URL: https://github.com/freeipa/freeipa/pull/700 Author: tiran Title: #700: Use entry_points for ipa CLI Action: opened
PR body: """ Fix problem with hard-coded shebang in ipa command line tool by using a proper setuptools entry point for the console script. ipaclient is now an executable Python package, too. ``` $ python -m ipaclient ping ``` is equivalent to ``` $ ipa ping ``` Related: https://pagure.io/freeipa/issue/6653 Closes: https://pagure.io/freeipa/issue/6850 Signed-off-by: Christian Heimes <chei...@redhat.com> """ To pull the PR as Git branch: git remote add ghfreeipa https://github.com/freeipa/freeipa git fetch ghfreeipa pull/700/head:pr700 git checkout pr700
From 796f70ca60fd3067d2e0cd3cc508512db9a0c658 Mon Sep 17 00:00:00 2001 From: Christian Heimes <chei...@redhat.com> Date: Fri, 7 Apr 2017 15:03:08 +0200 Subject: [PATCH] Use entry_points for ipa CLI Fix problem with hard-coded shebang in ipa command line tool by using a proper setuptools entry point for the console script. ipaclient is now an executable Python package, too. ``` $ python -m ipaclient ping ``` is equivalent to ``` $ ipa ping ``` Related: https://pagure.io/freeipa/issue/6653 Closes: https://pagure.io/freeipa/issue/6850 Signed-off-by: Christian Heimes <chei...@redhat.com> --- ipa | 5 ++--- ipaclient/__main__.py | 15 +++++++++++++++ ipaclient/setup.py | 6 +++++- 3 files changed, 22 insertions(+), 4 deletions(-) create mode 100644 ipaclient/__main__.py diff --git a/ipa b/ipa index 9ef3568..d6e01a2 100755 --- a/ipa +++ b/ipa @@ -24,8 +24,7 @@ Command Line Interface for IPA administration. The CLI functionality is implemented in ipalib/cli.py """ - -from ipalib import api, cli +from ipaclient.__main__ import main if __name__ == '__main__': - cli.run(api) + main() diff --git a/ipaclient/__main__.py b/ipaclient/__main__.py new file mode 100644 index 0000000..513de7d --- /dev/null +++ b/ipaclient/__main__.py @@ -0,0 +1,15 @@ +# Copyright (C) 2017 FreeIPA Contributors see COPYING for license +""" +Command Line Interface for IPA administration. + +The CLI functionality is implemented in ipalib/cli.py +""" +from ipalib import api, cli + + +def main(): + cli.run(api) + + +if __name__ == '__main__': + main() \ No newline at end of file diff --git a/ipaclient/setup.py b/ipaclient/setup.py index f5be7ea..ccb5396 100644 --- a/ipaclient/setup.py +++ b/ipaclient/setup.py @@ -31,7 +31,6 @@ ipasetup( name="ipaclient", doc=__doc__, - scripts=['../ipa'], package_dir={'ipaclient': ''}, packages=[ "ipaclient", @@ -60,6 +59,11 @@ "qrcode", "six", ], + entry_points={ + 'console_scripts': [ + 'ipa = ipaclient.__main__:main' + ] + }, extras_require={ "install": ["ipaplatform"], "otptoken_yubikey": ["yubico", "usb"]
-- Manage your subscription for the Freeipa-devel mailing list: https://www.redhat.com/mailman/listinfo/freeipa-devel Contribute to FreeIPA: http://www.freeipa.org/page/Contribute/Code