https://git.reactos.org/?p=reactos.git;a=commitdiff;h=f8569465ce3979f3ab47b46fe50de7b6ffa0de1e

commit f8569465ce3979f3ab47b46fe50de7b6ffa0de1e
Author:     Hermès Bélusca-Maïto <hermes.belusca-ma...@reactos.org>
AuthorDate: Wed Sep 6 12:57:15 2023 +0200
Commit:     Hermès Bélusca-Maïto <hermes.belusca-ma...@reactos.org>
CommitDate: Mon Dec 18 22:21:38 2023 +0100

    [WINESYNC] Make the wine-staging tag optional, in which case Wine-Staging 
is not used.
---
 sdk/tools/winesync/winesync.py | 49 ++++++++++++++++++++++++------------------
 1 file changed, 28 insertions(+), 21 deletions(-)

diff --git a/sdk/tools/winesync/winesync.py b/sdk/tools/winesync/winesync.py
index 2e769afaf49..63cafd60a2b 100644
--- a/sdk/tools/winesync/winesync.py
+++ b/sdk/tools/winesync/winesync.py
@@ -58,7 +58,11 @@ class wine_sync:
         self.staged_patch_dir = posixpath.join('sdk', 'tools', 'winesync', 
self.module + '_staging')
 
     def create_or_checkout_wine_branch(self, wine_tag, wine_staging_tag):
-        wine_branch_name = 'winesync-' + wine_tag + '-' + wine_staging_tag
+        # build the wine branch name
+        wine_branch_name = 'winesync-' + wine_tag
+        if wine_staging_tag:
+            wine_branch_name += '-' + wine_staging_tag
+
         branch = self.wine_repo.lookup_branch(wine_branch_name)
         if branch is None:
             # get our target commits
@@ -68,29 +72,32 @@ class wine_sync:
             if isinstance(wine_target_commit, pygit2.Commit):
                 wine_target_commit = wine_target_commit.id
 
-            wine_staging_target_commit = 
self.wine_staging_repo.revparse_single(wine_staging_tag)
-            if isinstance(wine_staging_target_commit, pygit2.Tag):
-                wine_staging_target_commit = wine_staging_target_commit.target
-            if isinstance(wine_staging_target_commit, pygit2.Commit):
-                wine_staging_target_commit = wine_staging_target_commit.id
+            # do the same for the wine-staging tree
+            if wine_staging_tag:
+                wine_staging_target_commit = 
self.wine_staging_repo.revparse_single(wine_staging_tag)
+                if isinstance(wine_staging_target_commit, pygit2.Tag):
+                    wine_staging_target_commit = 
wine_staging_target_commit.target
+                if isinstance(wine_staging_target_commit, pygit2.Commit):
+                    wine_staging_target_commit = wine_staging_target_commit.id
 
             self.wine_repo.branches.local.create(wine_branch_name, 
self.wine_repo.revparse_single('HEAD'))
             
self.wine_repo.checkout(self.wine_repo.lookup_branch(wine_branch_name))
             self.wine_repo.reset(wine_target_commit, pygit2.GIT_RESET_HARD)
 
             # do the same for the wine-staging tree
-            self.wine_staging_repo.branches.local.create(wine_branch_name, 
self.wine_staging_repo.revparse_single('HEAD'))
-            
self.wine_staging_repo.checkout(self.wine_staging_repo.lookup_branch(wine_branch_name))
-            self.wine_staging_repo.reset(wine_staging_target_commit, 
pygit2.GIT_RESET_HARD)
-
-            # run the wine-staging script
-            if subprocess.call(['python', self.wine_staging_src + 
'/staging/patchinstall.py', 'DESTDIR=' + self.wine_src, '--all', 
'--backend=git-am']):
-                # the new script failed (it doesn't exist?), try the old one
-                subprocess.call(['bash', '-c', self.wine_staging_src + 
'/patches/patchinstall.sh DESTDIR=' + self.wine_src + ' --all 
--backend=git-am'])
-
-            # delete the branch we created
-            
self.wine_staging_repo.checkout(self.wine_staging_repo.lookup_branch('master'))
-            self.wine_staging_repo.branches.delete(wine_branch_name)
+            if wine_staging_tag:
+                self.wine_staging_repo.branches.local.create(wine_branch_name, 
self.wine_staging_repo.revparse_single('HEAD'))
+                
self.wine_staging_repo.checkout(self.wine_staging_repo.lookup_branch(wine_branch_name))
+                self.wine_staging_repo.reset(wine_staging_target_commit, 
pygit2.GIT_RESET_HARD)
+
+                # run the wine-staging script
+                if subprocess.call(['python', self.wine_staging_src + 
'/staging/patchinstall.py', 'DESTDIR=' + self.wine_src, '--all', 
'--backend=git-am']):
+                    # the new script failed (it doesn't exist?), try the old 
one
+                    subprocess.call(['bash', '-c', self.wine_staging_src + 
'/patches/patchinstall.sh DESTDIR=' + self.wine_src + ' --all 
--backend=git-am'])
+
+                # delete the branch we created
+                
self.wine_staging_repo.checkout(self.wine_staging_repo.lookup_branch('master'))
+                self.wine_staging_repo.branches.delete(wine_branch_name)
         else:
             
self.wine_repo.checkout(self.wine_repo.lookup_branch(wine_branch_name))
 
@@ -379,9 +386,9 @@ class wine_sync:
 
 def main():
     parser = argparse.ArgumentParser()
-    parser.add_argument('module', help='The module you want to sync. 
<module>.cfg must exist in the current directory')
-    parser.add_argument('wine_tag', help='The wine tag or commit id to sync 
to')
-    parser.add_argument('wine_staging_tag', help='The wine staging tag or 
commit id to pick wine staged patches from')
+    parser.add_argument('module', help='The module you want to sync. 
<module>.cfg must exist in the current directory.')
+    parser.add_argument('wine_tag', help='The wine tag or commit id to sync 
to.')
+    parser.add_argument('wine_staging_tag', nargs='?', default=None, help='The 
optional wine staging tag or commit id to pick wine staged patches from.')
 
     args = parser.parse_args()
 

Reply via email to