Browse Source

setup: install script via setuptools's entry_point option
to improve cross-platform compatibility

Fabian Peter Hammerle 5 years ago
parent
commit
76e0971141
2 changed files with 8 additions and 14 deletions
  1. 3 11
      pyftpd_sink.py
  2. 5 3
      setup.py

+ 3 - 11
pyftpd-sink → pyftpd_sink.py

@@ -1,5 +1,3 @@
-#!/usr/bin/env python3
-
 import argparse
 import hashlib
 import logging
@@ -56,6 +54,7 @@ def serve(root_dir_path, username, password_sha256_hexdigest, control_port, pass
 
 
 class EnvDefaultArgparser(argparse.ArgumentParser):
+
     def add_argument(self, *args, envvar=None, **kwargs):
         if envvar:
             envvar_value = os.environ.get(envvar, None)
@@ -130,15 +129,8 @@ def _init_argparser():
     return argparser
 
 
-def main(argv):
-    argparser = _init_argparser()
-    args = argparser.parse_args(argv[1:])
+def main():
+    args = _init_argparser().parse_args()
     args.log_level = LOG_LEVELS[args.log_level_name]
     del args.log_level_name
     serve(**vars(args))
-    return 0
-
-
-if __name__ == "__main__":
-    import sys
-    sys.exit(main(sys.argv))

+ 5 - 3
setup.py

@@ -23,9 +23,11 @@ setup(
         'Topic :: Utilities',
     ],
     packages=[],
-    scripts=[
-        'pyftpd-sink',
-    ],
+    entry_points={
+        'console_scripts': [
+            'pyftpd-sink = pyftpd_sink:main',
+        ],
+    },
     install_requires=[
         'pyftpdlib>=1.5.4',
     ],