forked from bartvdbraak/blender
support for relative file loading and python paths.
means you can do... blender -P foo.py where foo is $PWD/foo.py
This commit is contained in:
parent
0b33be5a7b
commit
3eaad6b3eb
@ -767,8 +767,14 @@ static int set_skip_frame(int argc, char **argv, void *data)
|
|||||||
|
|
||||||
static int run_python(int argc, char **argv, void *data)
|
static int run_python(int argc, char **argv, void *data)
|
||||||
{
|
{
|
||||||
bContext *C = data;
|
|
||||||
#ifndef DISABLE_PYTHON
|
#ifndef DISABLE_PYTHON
|
||||||
|
bContext *C = data;
|
||||||
|
|
||||||
|
/* Make the path absolute because its needed for relative linked blends to be found */
|
||||||
|
char filename[FILE_MAXDIR + FILE_MAXFILE];
|
||||||
|
BLI_strncpy(filename, argv[1], sizeof(filename));
|
||||||
|
BLI_convertstringcwd(filename);
|
||||||
|
|
||||||
/* workaround for scripts not getting a bpy.context.scene, causes internal errors elsewhere */
|
/* workaround for scripts not getting a bpy.context.scene, causes internal errors elsewhere */
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
/* XXX, temp setting the WM is ugly, splash also does this :S */
|
/* XXX, temp setting the WM is ugly, splash also does this :S */
|
||||||
@ -778,13 +784,13 @@ static int run_python(int argc, char **argv, void *data)
|
|||||||
if(wm->windows.first) {
|
if(wm->windows.first) {
|
||||||
CTX_wm_window_set(C, wm->windows.first);
|
CTX_wm_window_set(C, wm->windows.first);
|
||||||
|
|
||||||
BPY_run_python_script(C, argv[1], NULL, NULL); // use reports?
|
BPY_run_python_script(C, filename, NULL, NULL); // use reports?
|
||||||
|
|
||||||
CTX_wm_window_set(C, prevwin);
|
CTX_wm_window_set(C, prevwin);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
fprintf(stderr, "Python script \"%s\" running with missing context data.\n", argv[1]);
|
fprintf(stderr, "Python script \"%s\" running with missing context data.\n", argv[1]);
|
||||||
BPY_run_python_script(C, argv[1], NULL, NULL); // use reports?
|
BPY_run_python_script(C, filename, NULL, NULL); // use reports?
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
} else {
|
} else {
|
||||||
@ -803,12 +809,11 @@ static int load_file(int argc, char **argv, void *data)
|
|||||||
|
|
||||||
/* Make the path absolute because its needed for relative linked blends to be found */
|
/* Make the path absolute because its needed for relative linked blends to be found */
|
||||||
char filename[FILE_MAXDIR + FILE_MAXFILE];
|
char filename[FILE_MAXDIR + FILE_MAXFILE];
|
||||||
|
|
||||||
BLI_strncpy(filename, argv[0], sizeof(filename));
|
BLI_strncpy(filename, argv[0], sizeof(filename));
|
||||||
BLI_convertstringcwd(filename);
|
BLI_convertstringcwd(filename);
|
||||||
|
|
||||||
if (G.background) {
|
if (G.background) {
|
||||||
int retval = BKE_read_file(C, argv[0], NULL, NULL);
|
int retval = BKE_read_file(C, filename, NULL, NULL);
|
||||||
|
|
||||||
/*we successfully loaded a blend file, get sure that
|
/*we successfully loaded a blend file, get sure that
|
||||||
pointcache works */
|
pointcache works */
|
||||||
|
Loading…
Reference in New Issue
Block a user