diff --git a/supervisor/options.py b/supervisor/options.py index 672dba113..f46801e9f 100644 --- a/supervisor/options.py +++ b/supervisor/options.py @@ -628,7 +628,10 @@ def get(opt, default, **kwargs): if directory is None: section.directory = None else: + if "~" in directory: + directory = normalize_path(directory) section.directory = existing_directory(directory) + expansions.update(directory=directory) section.user = get('user', None) section.umask = octal_type(get('umask', '022')) @@ -966,6 +969,9 @@ def get(section, opt, *args, **kwargs): expansions['ENV_%s' % k] = v directory = get(section, 'directory', None) + if directory and "~" in directory: + directory = normalize_path(directory) + expansions.update(directory=directory) logfiles = {} diff --git a/supervisor/process.py b/supervisor/process.py index b394be812..82145c718 100644 --- a/supervisor/process.py +++ b/supervisor/process.py @@ -325,7 +325,7 @@ def _spawn_as_child(self, filename, argv): cwd = self.config.directory try: if cwd is not None: - options.chdir(cwd) + options.chdir(os.path.expanduser(cwd)) except OSError as why: code = errno.errorcode.get(why.args[0], why.args[0]) msg = "couldn't chdir to %s: %s\n" % (cwd, code) diff --git a/supervisor/version.txt b/supervisor/version.txt index 5f8ceca6f..a84947d6f 100644 --- a/supervisor/version.txt +++ b/supervisor/version.txt @@ -1 +1 @@ -4.4.0.dev0 +4.5.0