summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-12-25 16:36:36 -0600
committerStefan Metzmacher <metze@samba.org>2007-12-26 11:57:07 -0600
commite8bca8dd71c9bb64b84f6a74632a46a661be0d97 (patch)
treec3c4629832b1868335f603da4bf3c48d996e84ab
parent7c146c42d2cf51e891b9f29d3b61a40f173a3b23 (diff)
downloadsamba-e8bca8dd71c9bb64b84f6a74632a46a661be0d97.tar.gz
samba-e8bca8dd71c9bb64b84f6a74632a46a661be0d97.tar.bz2
samba-e8bca8dd71c9bb64b84f6a74632a46a661be0d97.zip
r26594: Add right paths to the Python sys.path setting so we don't have to set magic environment variables when running from the build directory.
(This used to be commit 2d2674ad79330f59210408fd03e859afc01f40f2)
-rw-r--r--source4/scripting/python/modules.c8
-rw-r--r--source4/scripting/python/smbpython.c7
2 files changed, 15 insertions, 0 deletions
diff --git a/source4/scripting/python/modules.c b/source4/scripting/python/modules.c
index 6a766f3412..2a88870660 100644
--- a/source4/scripting/python/modules.c
+++ b/source4/scripting/python/modules.c
@@ -43,3 +43,11 @@ void py_load_samba_modules(void)
PyImport_ExtendInittab(&py_modules[i]);
}
}
+
+void py_update_path(const char *bindir)
+{
+ char *newpath;
+ asprintf(&newpath, "%s:%s/python:%s/../scripting/python", Py_GetPath(), bindir, bindir);
+ PySys_SetPath(newpath);
+ free(newpath);
+}
diff --git a/source4/scripting/python/smbpython.c b/source4/scripting/python/smbpython.c
index 19c458e7ac..27286236ef 100644
--- a/source4/scripting/python/smbpython.c
+++ b/source4/scripting/python/smbpython.c
@@ -21,9 +21,16 @@
#include <Python.h>
void py_load_samba_modules(void);
+void py_update_path(const char *bindir);
int main(int argc, char **argv)
{
py_load_samba_modules();
+ Py_Initialize();
+ if (strchr(argv[0], '/') != NULL) {
+ char *bindir = strndup(argv[0], strrchr(argv[0], '/')-argv[0]);
+ py_update_path(bindir);
+ free(bindir);
+ }
return Py_Main(argc,argv);
}