== installation paths ==
authorAndrea Weikert <elubie@gmx.net>
Thu, 15 Jul 2010 20:02:53 +0000 (20:02 +0000)
committerAndrea Weikert <elubie@gmx.net>
Thu, 15 Jul 2010 20:02:53 +0000 (20:02 +0000)
remove deprecated python BLI_gethome_folder calls

Patch by Brecht, thanks a lot

release/scripts/modules/bpy/utils.py
source/blender/blenlib/BLI_path_util.h
source/blender/blenlib/intern/path_util.c
source/blender/python/intern/bpy.c
source/creator/creator.c

index 5cde7091257865d1d8ef7782926f8e475fb57f1e..f0de31a95f5a41fe45e8ea32e754db34f8f95f79 100644 (file)
@@ -19,7 +19,7 @@
 # <pep8 compliant>
 
 """
-This module contains utility functions spesific to blender but
+This module contains utility functions specific to blender but
 not assosiated with blenders internal data.
 """
 
@@ -27,7 +27,8 @@ import bpy as _bpy
 import os as _os
 import sys as _sys
 
-from _bpy import home_paths, blend_paths
+from _bpy import blend_paths
+from _bpy import script_paths as _bpy_script_paths
 
 
 def _test_import(module_name, loaded_modules):
@@ -313,7 +314,7 @@ def script_paths(subdir=None, user=True):
     else:
         user_script_path = None
 
-    for path in home_paths("scripts") + (user_script_path, ):
+    for path in _bpy_script_paths() + (user_script_path, ):
         if path:
             path = _os.path.normpath(path)
             if path not in scripts and _os.path.isdir(path):
index 316b850805db236b84fd0b6c97939434cbb86cf8..57e6d0b16d76953f6abd977c8c0a52b92cd5e8bc 100644 (file)
@@ -41,31 +41,6 @@ struct ListBase;
 struct direntry;
 
 char *BLI_gethome(void);
-char *BLI_gethome_folder(char *folder_name, int flag);
-
-/* BLI_gethome_folder flag */
-#define BLI_GETHOME_LOCAL              1<<1 /* relative location for portable binaries */
-#define BLI_GETHOME_SYSTEM             1<<2 /* system location, or set from the BLENDERPATH env variable (UNIX only) */
-#define BLI_GETHOME_USER               1<<3 /* home folder ~/.blender */
-#define BLI_GETHOME_ALL                        (BLI_GETHOME_SYSTEM|BLI_GETHOME_LOCAL|BLI_GETHOME_USER)
-
-
-#ifdef __APPLE__
-typedef enum {
-       BasePath_Temporary = 1,
-       BasePath_BlenderShared,
-       BasePath_BlenderUser,
-       BasePath_ApplicationBundle
-} basePathesTypes;
-
-/**
- * Gets the base path. The path may not exist.
- * Note that return string must be copied as its persistence is not guaranteed
- *
- * @return base path of pathType
- */
-const char* BLI_osx_getBasePath(basePathesTypes pathType);
-#endif
 
 char *BLI_get_folder(int folder_id, char *subfolder);
 char *BLI_get_folder_create(int folder_id, char *subfolder);
index c1e0059e954d9a5a567b27f9bf7b390bbeadcc9b..6ab7ba2a7a581da6d0141c73d45a625ae52546ce 100644 (file)
@@ -795,121 +795,6 @@ char *BLI_gethome(void) {
        #endif
 }
 
-/* this function returns the path to a blender folder, if it exists
- * utility functions for BLI_gethome_folder */
-
-// #define PATH_DEBUG /* for testing paths that are checked */
-
-static int test_data_path(char *targetpath, char *path_base, char *path_sep, char *folder_name)
-{
-       char tmppath[FILE_MAXDIR];
-       
-       if(path_sep)    BLI_join_dirfile(tmppath, path_base, path_sep);
-       else                    BLI_strncpy(tmppath, path_base, sizeof(tmppath));
-       
-       BLI_make_file_string("/", targetpath, tmppath, folder_name);
-       
-       if (BLI_is_dir(targetpath)) {
-#ifdef PATH_DEBUG
-               printf("\tpath found: %s\n", targetpath);
-#endif
-               return 1;
-       }
-       else {
-#ifdef PATH_DEBUG
-               printf("\tpath missing: %s\n", targetpath);
-#endif
-               targetpath[0] = '\0';
-               return 0;
-       }
-}
-
-static int gethome_path_local(char *targetpath, char *folder_name)
-{
-       extern char bprogname[]; /* argv[0] from creator.c */
-       char bprogdir[FILE_MAXDIR];
-       char cwd[FILE_MAXDIR];
-       char *s;
-       int i;
-       
-#ifdef PATH_DEBUG
-       printf("gethome_path_local...\n");
-#endif
-       
-       /* try release/folder_name (binary relative) */
-       /* use argv[0] (bprogname) to get the path to the executable */
-       s = BLI_last_slash(bprogname);
-       i = s - bprogname + 1;
-       BLI_strncpy(bprogdir, bprogname, i);
-
-       /* try release/folder_name (BIN relative) */
-       if(test_data_path(targetpath, bprogdir, "release", folder_name))
-               return 1;
-
-       /* try release/folder_name (CWD relative) */
-       if(test_data_path(targetpath, BLI_getwdN(cwd), "release", folder_name))
-               return 1;
-
-       /* try ./.blender/folder_name */
-       if(test_data_path(targetpath, bprogdir, ".blender", folder_name))
-               return 1;
-       
-       return 0;
-}
-
-static int gethome_path_user(char *targetpath, char *folder_name)
-{
-       char *home_path= BLI_gethome();
-
-#ifdef PATH_DEBUG
-       printf("gethome_path_user...\n");
-#endif
-       
-       /* try $HOME/folder_name */
-       return test_data_path(targetpath, home_path, ".blender", folder_name);
-}
-
-static int gethome_path_system(char *targetpath, char *folder_name)
-{
-       extern char blender_path[]; /* unix prefix eg. /usr/share/blender/2.5 creator.c */
-       
-       if(!blender_path[0])
-               return 0;
-       
-#ifdef PATH_DEBUG
-       printf("gethome_path_system...\n");
-#endif
-       
-       /* try $BLENDERPATH/folder_name */
-       return test_data_path(targetpath, blender_path, NULL, folder_name);
-}
-
-char *BLI_gethome_folder(char *folder_name, int flag)
-{
-       static char fulldir[FILE_MAXDIR] = "";
-       
-       /* first check if this is a redistributable bundle */
-       if(flag & BLI_GETHOME_LOCAL) {
-               if (gethome_path_local(fulldir, folder_name))
-                       return fulldir;
-       }
-
-       /* then check if the OS has blender data files installed in a global location */
-       if(flag & BLI_GETHOME_SYSTEM) {
-               if (gethome_path_system(fulldir, folder_name))
-                       return fulldir;
-       }
-       
-       /* now check the users home dir for data files */
-       if(flag & BLI_GETHOME_USER) {
-               if (gethome_path_user(fulldir, folder_name))
-                       return fulldir;
-       }
-       
-       return NULL;
-}
-
-
 /* NEW stuff, to be cleaned up when fully migrated */
 /* ************************************************************* */
 /* ************************************************************* */
index b978e46f6daee0543d22a835cf46204dff8f3ba5..15be6174f29fc5ec40f1489528dccd56f2ddc0e5 100644 (file)
 #include "../generic/blf_api.h"
 #include "../generic/IDProp.h"
 
-static char bpy_home_paths_doc[] =
-".. function:: home_paths(subfolder)\n"
+static char bpy_script_paths_doc[] =
+".. function:: script_paths()\n"
 "\n"
-"   Return 3 paths to blender home directories.\n"
+"   Return 2 paths to blender scripts directories.\n"
 "\n"
-"   :arg subfolder: The name of a subfolder to find within the blenders home directory.\n"
-"   :type subfolder: string\n"
-"   :return: (system, local, user) strings will be empty when not found.\n"
+"   :return: (system, user) strings will be empty when not found.\n"
 "   :rtype: tuple of strigs\n";
 
-PyObject *bpy_home_paths(PyObject *self, PyObject *args)
+PyObject *bpy_script_paths(PyObject *self)
 {
-       PyObject *ret= PyTuple_New(3);
+       PyObject *ret= PyTuple_New(2);
        char *path;
-       char *subfolder= "";
     
-       if (!PyArg_ParseTuple(args, "|s:blender_homes", &subfolder))
-               return NULL;
-
-       path= BLI_gethome_folder(subfolder, BLI_GETHOME_SYSTEM);
+       path= BLI_get_folder(BLENDER_USER_SCRIPTS, NULL);
        PyTuple_SET_ITEM(ret, 0, PyUnicode_FromString(path?path:""));
-
-       path= BLI_gethome_folder(subfolder, BLI_GETHOME_LOCAL);
+       path= BLI_get_folder(BLENDER_SYSTEM_SCRIPTS, NULL);
        PyTuple_SET_ITEM(ret, 1, PyUnicode_FromString(path?path:""));
-
-       path= BLI_gethome_folder(subfolder, BLI_GETHOME_USER);
-       PyTuple_SET_ITEM(ret, 2, PyUnicode_FromString(path?path:""));
     
        return ret;
 }
@@ -120,7 +110,7 @@ static PyObject *bpy_blend_paths(PyObject * self, PyObject *args, PyObject *kw)
        return list;
 }
 
-static PyMethodDef meth_bpy_home_paths[] = {{ "home_paths", (PyCFunction)bpy_home_paths, METH_VARARGS, bpy_home_paths_doc}};
+static PyMethodDef meth_bpy_script_paths[] = {{ "script_paths", (PyCFunction)bpy_script_paths, METH_NOARGS, bpy_script_paths_doc}};
 static PyMethodDef meth_bpy_blend_paths[] = {{ "blend_paths", (PyCFunction)bpy_blend_paths, METH_VARARGS|METH_KEYWORDS, bpy_blend_paths_doc}};
 
 static void bpy_import_test(char *modname)
@@ -191,7 +181,7 @@ void BPy_init_modules( void )
        PyModule_AddObject(mod, "context", (PyObject *)bpy_context_module);
 
        /* utility func's that have nowhere else to go */
-       PyModule_AddObject(mod, meth_bpy_home_paths->ml_name, (PyObject *)PyCFunction_New(meth_bpy_home_paths, NULL));
+       PyModule_AddObject(mod, meth_bpy_script_paths->ml_name, (PyObject *)PyCFunction_New(meth_bpy_script_paths, NULL));
        PyModule_AddObject(mod, meth_bpy_blend_paths->ml_name, (PyObject *)PyCFunction_New(meth_bpy_blend_paths, NULL));
 
        /* add our own modules dir, this is a python package */
index ac79c0e6f809c0bf4e109fe59638873e2f5bb673..283511ef3ffabfae3890fb49495845122f45eaac 100644 (file)
@@ -131,14 +131,6 @@ extern int pluginapi_force_ref(void);  /* from blenpluginapi:pluginapi.c */
 char bprogname[FILE_MAXDIR+FILE_MAXFILE]; /* from blenpluginapi:pluginapi.c */
 char btempdir[FILE_MAXDIR+FILE_MAXFILE];
 
-/* unix path support.
- * defined by the compiler. eg "/usr/share/blender/2.5" "/opt/blender/2.5" */
-#ifndef BLENDERPATH
-#define BLENDERPATH ""
-#endif
-char blender_path[FILE_MAXDIR+FILE_MAXFILE] = BLENDERPATH;
-
 /* Initialise callbacks for the modules that need them */
 static void setCallbacks(void); 
 
@@ -297,14 +289,14 @@ static int print_help(int argc, char **argv, void *data)
        printf ("  $BLENDER_SYSTEM_DATAFILES Directory for system wide data files.\n");
        printf ("  $BLENDER_SYSTEM_PYTHON    Directory for system python libraries.\n");
 #ifdef WIN32
-       printf ("  $TEMP         Store temporary files here.\n");
+       printf ("  $TEMP                     Store temporary files here.\n");
 #else
-       printf ("  $TMP or $TMPDIR  Store temporary files here.\n");
+       printf ("  $TMP or $TMPDIR           Store temporary files here.\n");
 #endif
 #ifndef DISABLE_SDL
-       printf ("  $SDL_AUDIODRIVER  LibSDL audio driver - alsa, esd, alsa, dma.\n");
+       printf ("  $SDL_AUDIODRIVER          LibSDL audio driver - alsa, esd, dma.\n");
 #endif
-       printf ("  $PYTHONHOME   Path to the python directory, eg. /usr/lib/python.\n\n");
+       printf ("  $PYTHONHOME               Path to the python directory, eg. /usr/lib/python.\n\n");
 
        exit(0);
 
@@ -1040,12 +1032,6 @@ int main(int argc, char **argv)
 
        BLI_where_am_i(bprogname, argv[0]);
        
-       {       /* override the hard coded blender path */
-               char *blender_path_env = getenv("BLENDERPATH");
-               if(blender_path_env)
-                       BLI_strncpy(blender_path, blender_path_env, sizeof(blender_path));
-       }
-
 #ifdef BUILD_DATE      
     strip_quotes(build_date);
     strip_quotes(build_time);