from __future__ import absolute_import, print_function
+
+import bup_main, os, sys
+if bup_main.env_pythonpath:
+ if sys.version_info[0] < 3:
+ os.environ['PYTHONPATH'] = bup_main.env_pythonpath
+ else:
+ os.environb[b'PYTHONPATH'] = bup_main.env_pythonpath
+else:
+ del os.environ['PYTHONPATH']
+
from importlib import import_module
from pkgutil import iter_modules
from subprocess import PIPE
from threading import Thread
-import errno, getopt, os, re, select, signal, subprocess, sys
+import errno, getopt, re, select, signal, subprocess
from bup import compat, path, helpers
from bup.compat import (
static int prog_argc = 0;
static char **prog_argv = NULL;
+static char *orig_env_pythonpath = NULL;
static PyObject*
get_argv(PyObject *self, PyObject *args)
static int setup_module(PyObject *mod)
{
+ if (!orig_env_pythonpath) {
+ PyObject_SetAttrString(mod, "env_pythonpath", Py_None);
+ } else {
+ PyObject *py_p = PyBytes_FromString(orig_env_pythonpath);
+ if (!py_p)
+ die(2, "cannot convert PYTHONPATH to bytes: %s\n",
+ orig_env_pythonpath);
+ PyObject_SetAttrString(mod, "env_pythonpath", py_p);
+ Py_DECREF(py_p);
+ }
return 1;
}
#endif // PY_MAJOR_VERSION < 3
static void
-setup_bup_main_module(void)
-{
+setup_bup_main_module(void) {
+
+ char *path = getenv("PYTHONPATH");
+ if (path)
+ orig_env_pythonpath = strdup(path);
+
if (PyImport_AppendInittab("bup_main", PyInit_bup_main) == -1)
die(2, "unable to register bup_main module\n");
}