Read-only mirrors. Development, issues and pull requests are on GitHub.

summaryrefslogtreecommitdiffhomepage
path: root/scripts
diff options
context:
space:
mode:
authorMartin Hořeňovský2018-06-11 22:44:14 +0200
committerMartin Hořeňovský2018-06-11 22:44:14 +0200
commitc5301bf8bf0891c633ac61ca66eb1ae0d3e0aa65 (patch)
tree38ee3277c1c1445ae4d22205cf6d4e5c22f0b133 /scripts
parentd2a130f2433aeaca070e3e4d6298a80049d21cfc (diff)
downloadcatch3-c5301bf8bf0891c633ac61ca66eb1ae0d3e0aa65.tar.gz
Updated release process documentation to reflect vcpkg autoupdate
Diffstat (limited to 'scripts')
-rw-r--r--scripts/updateVcpkgPackage.py108
1 files changed, 0 insertions, 108 deletions
diff --git a/scripts/updateVcpkgPackage.py b/scripts/updateVcpkgPackage.py
deleted file mode 100644
index c1f40b59..00000000
--- a/scripts/updateVcpkgPackage.py
+++ /dev/null
@@ -1,108 +0,0 @@
-#!/usr/bin/env python
-
-import io, os, re, sys, subprocess
-import hashlib
-
-from scriptCommon import catchPath
-from releaseCommon import Version
-
-print(catchPath)
-
-default_path = '../vcpkg/ports/catch2/'
-
-def adjusted_path(path):
- return os.path.join(catchPath, path)
-
-def get_hash(path):
- BUFF_SIZE = 65536
- sha512 = hashlib.sha512()
- # The newlines should be normalized into \n, which is what we want
- # If reused use 'rb' with a file written with io.open(newline='\n')
- with open(path, 'r') as f:
- while True:
- data = f.read(BUFF_SIZE)
- if not data:
- break
- if sys.version_info[0] < 3:
- sha512.update(data)
- else:
- sha512.update(data.encode('utf-8'))
- return sha512.hexdigest()
-
-def update_control(path):
- v = Version()
-
- # Update control
- lines = []
- control_path = os.path.join(path, 'CONTROL')
- with open(control_path, 'r') as f:
- for line in f:
- lines.append(line)
- with open(control_path, 'w') as f:
- for line in lines:
- if 'Version: ' in line:
- line = 'Version: {}\n'.format(v.getVersionString())
- f.write(line)
-
-def update_portfile(path, header_hash, licence_hash):
- print('Updating portfile')
- v = Version()
-
- # Update portfile
- lines = []
- portfile_path = os.path.join(path, 'portfile.cmake')
- with open(portfile_path, 'r') as f:
- for line in f:
- lines.append(line)
- with open(portfile_path, 'w') as f:
- # There are three things we need to change/update
- # 1) CATCH_VERSION cmake variable
- # 2) Hash of header
- # 3) Hash of licence
- # We could assume licence never changes, but where is the fun in that?
- for line in lines:
- # Update the version
- if 'set(CATCH_VERSION' in line:
- line = 'set(CATCH_VERSION v{})\n'.format(v.getVersionString())
-
- # Determine which file we are updating
- if 'vcpkg_download_distfile' in line:
- kind = line.split('(')[-1].strip()
-
- # Update the hashes
- if 'SHA512' in line and kind == 'HEADER':
- line = ' SHA512 {}\n'.format(header_hash)
- if 'SHA512' in line and kind == 'LICENSE':
- line = ' SHA512 {}\n'.format(licence_hash)
- f.write(line)
-
-
-def git_push(path_to_repo):
- v = Version()
- ver_string = v.getVersionString()
-
- os.chdir(path_to_repo)
-
- # Work with git
- # Make sure we branch off master
- subprocess.call('git checkout master', shell=True)
-
- # Update repo to current master, so we don't work off old version of the portfile
- subprocess.call('git pull Microsoft master', shell=True)
- subprocess.call('git push', shell=True)
-
- # Create a new branch for the update
- subprocess.call('git checkout -b catch-{}'.format(ver_string), shell=True)
- # Add changed files (should be only our files)
- subprocess.call('git add -u .', shell=True)
- # Create a commit with these changes
- subprocess.call('git commit -m "Update Catch to {}"'.format(ver_string), shell=True)
- # Don't push, so author can review
- print('Changes were commited to the vcpkg fork. Please check, push and open PR.')
-
-header_hash = get_hash(adjusted_path('single_include/catch.hpp'))
-licence_hash = get_hash(adjusted_path('LICENSE.txt'))
-update_control(adjusted_path(default_path))
-update_portfile(adjusted_path(default_path), header_hash, licence_hash)
-
-git_push(adjusted_path('../vcpkg'))