]> Frank Brehm's Git Trees - pixelpark/admin-tools.git/commitdiff
Updating bin/barracuda-sync to use fb_tools
authorFrank Brehm <frank@brehm-online.com>
Tue, 19 Jan 2021 23:20:35 +0000 (00:20 +0100)
committerFrank Brehm <frank@brehm-online.com>
Tue, 19 Jan 2021 23:20:35 +0000 (00:20 +0100)
bin/barracuda-sync
lib/pp_lib/barracuda_sync_app.py

index e9b5bebed788801fa9739c54be24c995d8a592de..5f3e66cfc92c8e3eb564ba9f610873a838025e5f 100755 (executable)
@@ -1,30 +1,55 @@
 #!/usr/bin/env python3
 
+from __future__ import print_function
+
 # Standard modules
 import sys
+import gettext
+
+__exp_py_version_major__ = 3
+__min_py_version_minor__ = 4
+
+if sys.version_info[0] != __exp_py_version_major__:
+    print("This script is intended to use with Python {}.".format(
+            __exp_py_version_major__), file=sys.stderr)
+    print("You are using Python: {0}.{1}.{2}-{3}-{4}.".format(
+        *sys.version_info) + "\n", file=sys.stderr)
+    sys.exit(1)
+
+if sys.version_info[1] < __min_py_version_minor__:
+    print("A minimal Python version of {maj}.{min} is necessary to execute this script.".format(
+        maj=__exp_py_version_major__, min=__min_py_version_minor__), file=sys.stderr)
+    print("You are using Python: {0}.{1}.{2}-{3}-{4}.".format(
+        *sys.version_info) + "\n", file=sys.stderr)
+    sys.exit(1)
+
+# Standard modules
 import os
-import logging
 import locale
 
+try:
+    import pathlib
+    from pathlib import Path
+except ImportError:
+    from pathlib2 import Path
+    import pathlib2 as pathlib
+
 # own modules:
-cur_dir = os.getcwd()
-base_dir = cur_dir
-
-if sys.argv[0] != '' and sys.argv[0] != '-c':
-    bin_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
-else:
-    bin_dir = os.path.dirname(os.path.realpath(__file__))
-base_dir = os.path.abspath(os.path.join(bin_dir, '..'))
-module_dir = os.path.join(base_dir, 'pp_lib')
-if os.path.exists(module_dir):
-    sys.path.insert(0, base_dir)
 
-from pp_lib.barracuda_sync_app import PpBarracudaSyncApp
+my_path = Path(__file__)
+my_real_path = my_path.resolve()
+bin_path = my_real_path.parent
+base_dir = bin_path.parent
+lib_dir = base_dir.joinpath('lib')
+module_dir = lib_dir.joinpath('pp_lib')
 
-log = logging.getLogger(__name__)
+if module_dir.exists():
+    sys.path.insert(0, str(lib_dir))
+
+from pp_lib.barracuda_sync_app import PpBarracudaSyncApp
 
 __author__ = 'Frank Brehm <frank.brehm@pixelpark.com>'
-__copyright__ = '(C) 2018 by Frank Brehm, Pixelpark GmbH, Berlin'
+__copyright__ = '(C) 2021 by Frank Brehm, Pixelpark GmbH, Berlin'
 
 appname = os.path.basename(sys.argv[0])
 
@@ -34,7 +59,7 @@ app = PpBarracudaSyncApp(appname=appname)
 app.initialized = True
 
 if app.verbose > 2:
-    print("{c}-Object:\n{a}".format(c=app.__class__.__name__, a=app))
+    print("{c}-Object:\n{a}".format(c=app.__class__.__name__, a=app), file=sys.stderr)
 
 app()
 
index 6ed67f169e10abfaf007f373ad59cdf7a140ed0b..1ea004f9315179a24259ac91ed873fda6670c1f2 100644 (file)
@@ -3,7 +3,7 @@
 """
 @author: Frank Brehm
 @contact: frank.brehm@pixelpark.com
-@copyright: © 2018 by Frank Brehm, Berlin
+@copyright: © 2021 by Frank Brehm, Berlin
 @summary: The module for the barracuda-sync application object.
 """
 from __future__ import absolute_import
@@ -24,13 +24,13 @@ from ldap3 import ObjectDef
 from ldap3 import BASE, LEVEL, SUBTREE                              # noqa
 
 # Own modules
-from .common import pp
+from fb_tools.common import pp
 
 from .ldap_app import PpLdapAppError, PpLdapApplication
 
 from .mailaddress import MailAddress
 
-__version__ = '0.4.4'
+__version__ = '0.5.0'
 LOG = logging.getLogger(__name__)