Skip to content

Commit

Permalink
[WINESYNC] Make the wine-staging tag optional, in which case Wine-Sta…
Browse files Browse the repository at this point in the history
…ging is not used.
  • Loading branch information
HBelusca authored and DarkFire01 committed Sep 12, 2023
1 parent 630a2e7 commit 61556f0
Showing 1 changed file with 28 additions and 21 deletions.
49 changes: 28 additions & 21 deletions sdk/tools/winesync/winesync.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,11 @@ def __init__(self, module):
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
Expand All @@ -68,29 +72,32 @@ def create_or_checkout_wine_branch(self, wine_tag, wine_staging_tag):
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', '--no-autoconf']):
# 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 --no-autoconf'])

# 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', '--no-autoconf']):
# 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 --no-autoconf'])

# 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))

Expand Down Expand Up @@ -379,9 +386,9 @@ def sync_to_wine(self, wine_tag, wine_staging_tag):

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()

Expand Down

0 comments on commit 61556f0

Please sign in to comment.