source: sasview/src/sas/qtgui/Utilities/CustomDir.py @ e4a3302

Last change on this file since e4a3302 was 8d39961, checked in by Adam Washington <adam.washington@…>, 7 years ago

Line Endings fix

  • Property mode set to 100755
File size: 1.8 KB
Line 
1# Setup and find Custom config dir
2import os.path
3import shutil
4
5CONF_DIR = 'config' 
6APPLICATION_NAME = 'sasview'
7
8def _find_usersasview_dir():
9    """
10    Find and return user/.sasview dir
11    """
12    return os.path.join(os.path.expanduser("~"), ("." + APPLICATION_NAME))
13
14def _find_customconf_dir():
15    """
16    Find path of the config directory.
17    The plugin directory is located in the user's home directory.
18    """
19    u_dir = _find_usersasview_dir()
20    return os.path.join(u_dir, CONF_DIR)
21
22def setup_conf_dir(path):
23    """
24    Setup the custom config dir and cat file
25    """
26    conf_dir = _find_customconf_dir()
27    # If the plugin directory doesn't exist, create it
28    if not os.path.isdir(conf_dir):
29        os.makedirs(conf_dir)
30    config_file = os.path.join(conf_dir, "custom_config.py")
31
32    # Place example user models as needed
33    try:
34        if not os.path.isfile(config_file):
35            shutil.copyfile(os.path.join(path, "custom_config.py"), config_file)
36
37        #Adding SAS_OPENCL if it doesn't exist in the config file
38        # - to support backcompability
39        if not "SAS_OPENCL" in open(config_file).read():
40            open(config_file,"a+").write("SAS_OPENCL = \"None\"\n")
41    except:
42        # Check for data path next to exe/zip file.
43        #Look for maximum n_dir up of the current dir to find plugins dir
44        n_dir = 12
45        is_dir = False
46        f_dir = path
47        for i in range(n_dir):
48            if i > 1:
49                f_dir, _ = os.path.split(f_dir)
50            temp_path = os.path.join(f_dir, "custom_config.py")
51            if os.path.isfile(temp_path):
52                shutil.copyfile(temp_path, config_file)
53                is_dir = True
54                break
55        if not is_dir:
56            raise
57    return conf_dir
58
Note: See TracBrowser for help on using the repository browser.