Skip to content

Commit

Permalink
[WINESYNC] Elegantly handle empty 'files' and 'directories' lists.
Browse files Browse the repository at this point in the history
Expand on Timo's commit 4b5a555.
We may encounter cases where either the 'directories' or 'files' lists
in the .cfg YAML files are empty, and we don't want the script to throw
an exception in that case.

Furthermore, explicitly check for such empty lists when calling PyGit2
index.add_all(...) function, because if it's called on a None or empty
list, _all_ untracked files in the selected git repository get added,
which is not what we want there.
  • Loading branch information
HBelusca authored and DarkFire01 committed Sep 12, 2023
1 parent f368990 commit 630a2e7
Showing 1 changed file with 9 additions and 7 deletions.
16 changes: 9 additions & 7 deletions sdk/tools/winesync/winesync.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,19 +99,16 @@ def create_or_checkout_wine_branch(self, wine_tag, wine_staging_tag):
# Helper function for resolving wine tree path to reactos one
# Note: it doesn't care about the fact that the file actually exists or not
def wine_to_reactos_path(self, wine_path):
if wine_path in self.module_cfg['files']:
if self.module_cfg['files'] and (wine_path in self.module_cfg['files']):
# we have a direct mapping
return self.module_cfg['files'][wine_path]

if not '/' in wine_path:
# root files should have a direct mapping
return None

if self.module_cfg['directories'] is None:
return None

wine_dir, wine_file = os.path.split(wine_path)
if wine_dir in self.module_cfg['directories']:
if self.module_cfg['directories'] and (wine_dir in self.module_cfg['directories']):
# we have a mapping for the directory
return posixpath.join(self.module_cfg['directories'][wine_dir], wine_file)

Expand Down Expand Up @@ -295,8 +292,13 @@ def revert_staged_patchset(self):
if not has_patches:
return True

self.reactos_index.add_all([f for f in self.module_cfg['files'].values()])
self.reactos_index.add_all([f'{d}/*.*' for d in self.module_cfg['directories'].values()])
# Note: these path lists may be empty or None, in which case
# we should not call index.add_all(), otherwise we would add
# any untracked file present in the repository.
if self.module_cfg['files']:
self.reactos_index.add_all([f for f in self.module_cfg['files'].values()])
if self.module_cfg['directories']:
self.reactos_index.add_all([f'{d}/*.*' for d in self.module_cfg['directories'].values()])
self.reactos_index.write()

self.reactos_repo.create_commit(
Expand Down

0 comments on commit 630a2e7

Please sign in to comment.