diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2007-12-25 16:36:36 -0600 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2007-12-26 11:57:07 -0600 |
commit | e8bca8dd71c9bb64b84f6a74632a46a661be0d97 (patch) | |
tree | c3c4629832b1868335f603da4bf3c48d996e84ab /source4/scripting/python | |
parent | 7c146c42d2cf51e891b9f29d3b61a40f173a3b23 (diff) | |
download | samba-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.c | 8 | ||||
-rw-r--r-- | source4/scripting/python/smbpython.c | 7 |
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); } |