diff --git a/src/event_handlers/source_code_event_handler.py b/src/event_handlers/source_code_event_handler.py index 24ed9a4..2b86766 100644 --- a/src/event_handlers/source_code_event_handler.py +++ b/src/event_handlers/source_code_event_handler.py @@ -1,5 +1,5 @@ from shutil import copy, rmtree, copytree -from os.path import splitext, isfile, join, basename +from os.path import splitext, isfile, join, relpath from glob import glob from tfw.util import SupervisorMixin @@ -15,7 +15,7 @@ class FileManager: self._sourcedir = source_directory self._workdir = working_directory self._reload_files() - self.filename = selected_file or basename(self.files[0]) + self.filename = selected_file or self._relpath(self.files[0]) self.language = map_file_extension_to_language(self.filename) def select_file(self, filename): @@ -26,7 +26,7 @@ class FileManager: @property def files(self): - return [basename(file) for file in glob(join(self._workdir, '**/*'), recursive=True) if isfile(file)] + return [self._relpath(file) for file in glob(join(self._workdir, '**/*'), recursive=True) if isfile(file)] @property def file_contents(self): @@ -41,6 +41,9 @@ class FileManager: def _filepath(self, filename): return join(self._workdir, filename) + def _relpath(self, filename): + return relpath(self._filepath(filename), start=self._workdir) + def _reload_files(self): rmtree(self._workdir, ignore_errors=True) copytree(self._sourcedir, self._workdir)