Commit 8b10fe78 authored by Vincent Castellano's avatar Vincent Castellano

Support loading the script from any path, truncate .py if needed.

parent 9ccc3016
...@@ -28,7 +28,7 @@ ...@@ -28,7 +28,7 @@
#include <string.h> #include <string.h>
#include <stdlib.h> #include <stdlib.h>
#include <libgen.h>
#include <Python.h> #include <Python.h>
#ifdef EVENT_V2 #ifdef EVENT_V2
...@@ -1271,18 +1271,26 @@ void inittgl() ...@@ -1271,18 +1271,26 @@ void inittgl()
void py_init (const char *file) { void py_init (const char *file) {
if (!file) { return; } if (!file) { return; }
python_loaded = 0; python_loaded = 0;
PyObject *pModule, *pDict;
PyObject *pModule, *pDict;
// Get a copy of the filename for dirname, which may modify the string.
char filename[100];
strncpy(filename, file, 100);
Py_Initialize(); Py_Initialize();
inittgl(); inittgl();
PyObject* sysPath = PySys_GetObject((char*)"path"); PyObject* sysPath = PySys_GetObject((char*)"path");
PyList_Append(sysPath, PyString_FromString(".")); PyList_Append(sysPath, PyString_FromString(dirname(filename)));
// remove .py extension from file, if any
char* dot = strrchr(file, '.');
if (dot && strcmp(dot, ".py") == 0)
*dot = 0;
pModule = PyImport_Import(PyString_FromString(file)); pModule = PyImport_Import(PyString_FromString(file));
if(PyErr_Occurred()) { // Error loading script
if(pModule == NULL || PyErr_Occurred()) { // Error loading script
logprintf("Failed to load python script\n"); logprintf("Failed to load python script\n");
PyErr_Print(); PyErr_Print();
exit(1); exit(1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment