summaryrefslogtreecommitdiff
path: root/source4/scripting/python
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 /source4/scripting/python
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)
Diffstat (limited to 'source4/scripting/python')
-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);
}