summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2009-02-11 18:44:57 +0100
committerJelmer Vernooij <jelmer@samba.org>2009-02-11 18:44:57 +0100
commit53b59aa2cf78d465f471916c7fae60b9f212840b (patch)
tree5d18794de63923fc72603ecd5f0dff4c62380b61
parentddb4db7c65db202d71785a404622a4d6f1c3906a (diff)
downloadsamba-53b59aa2cf78d465f471916c7fae60b9f212840b.tar.gz
samba-53b59aa2cf78d465f471916c7fae60b9f212840b.tar.bz2
samba-53b59aa2cf78d465f471916c7fae60b9f212840b.zip
Use convenience function for finding setup_dir based on location of
python module.
-rw-r--r--source4/scripting/python/samba/provision.py17
-rwxr-xr-xsource4/setup/provision4
-rwxr-xr-xsource4/setup/provision-backend4
-rwxr-xr-xsource4/setup/upgrade3
4 files changed, 23 insertions, 5 deletions
diff --git a/source4/scripting/python/samba/provision.py b/source4/scripting/python/samba/provision.py
index 1d7011d305..d77b487512 100644
--- a/source4/scripting/python/samba/provision.py
+++ b/source4/scripting/python/samba/provision.py
@@ -45,6 +45,23 @@ from ldb import SCOPE_SUBTREE, SCOPE_ONELEVEL, SCOPE_BASE, LdbError, \
__docformat__ = "restructuredText"
+
+def find_setup_dir():
+ """Find the setup directory used by provision."""
+ dirname = os.path.dirname(__file__)
+ if "/site-packages/" in dirname:
+ prefix = dirname[:dirname.index("/site-packages/")]
+ for suffix in ["share/setup", "share/samba/setup", "setup"]:
+ ret = os.path.join(prefix, suffix)
+ if os.path.isdir(ret):
+ return ret
+ # In source tree
+ ret = os.path.join(dirname, "../../../setup")
+ if os.path.isdir(ret):
+ return ret
+ raise Exception("Unable to find setup directory.")
+
+
DEFAULTSITE = "Default-First-Site-Name"
class InvalidNetbiosName(Exception):
diff --git a/source4/setup/provision b/source4/setup/provision
index eab5d09424..5cb851ceb7 100755
--- a/source4/setup/provision
+++ b/source4/setup/provision
@@ -35,7 +35,7 @@ from samba.credentials import DONT_USE_KERBEROS
from samba.auth import system_session
import samba.getopt as options
from samba import param
-from samba.provision import provision, FILL_FULL, FILL_NT4SYNC, FILL_DRS
+from samba.provision import provision, FILL_FULL, FILL_NT4SYNC, FILL_DRS, find_setup_dir
# how do we make this case insensitive??
@@ -168,7 +168,7 @@ creds.set_kerberos_state(DONT_USE_KERBEROS)
setup_dir = opts.setupdir
if setup_dir is None:
- setup_dir = os.path.dirname(__file__)
+ setup_dir = find_setup_dir()
samdb_fill = FILL_FULL
if opts.blank:
diff --git a/source4/setup/provision-backend b/source4/setup/provision-backend
index e4e2d56020..eca209cb18 100755
--- a/source4/setup/provision-backend
+++ b/source4/setup/provision-backend
@@ -34,7 +34,7 @@ from samba import param
from samba.auth import system_session
import samba.getopt as options
-from samba.provision import provision_backend
+from samba.provision import provision_backend, find_setup_dir
parser = optparse.OptionParser("provision [options]")
sambaopts = options.SambaOptions(parser)
@@ -94,7 +94,7 @@ else:
setup_dir = opts.setupdir
if setup_dir is None:
- setup_dir = os.path.dirname(__file__)
+ setup_dir = find_setup_dir()
provision_backend(setup_dir=setup_dir, message=message, smbconf=smbconf, targetdir=opts.targetdir,
realm=opts.realm, domain=opts.domain,
diff --git a/source4/setup/upgrade b/source4/setup/upgrade
index 9c1a0cfce8..3d1316949f 100755
--- a/source4/setup/upgrade
+++ b/source4/setup/upgrade
@@ -65,13 +65,14 @@ else:
smbconf = os.path.join(libdir, "smb.conf")
samba3 = Samba3(libdir, smbconf)
+from samba.provision import find_setup_dir
from samba.upgrade import upgrade_provision
message("Provisioning\n")
setup_dir = opts.setupdir
if setup_dir is None:
- setup_dir = os.path.dirname(__file__)
+ setup_dir = find_setup_dir()
lp = sambaopts.get_loadparm()
smbconf = lp.configfile