You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.4 KiB
40 lines
1.4 KiB
#!/usr/bin/env python |
|
|
|
import os |
|
import re |
|
from datetime import date |
|
|
|
repo = os.path.dirname(os.path.realpath(__file__)) |
|
changelog = os.path.join(repo, 'CHANGELOG.md') |
|
|
|
code = 'android:versionCode="%s"' |
|
name = 'android:versionName="%s"' |
|
in_code = code % r'(\d+)' |
|
in_name = name % r'([^"]+)' |
|
new_code = None |
|
new_name = None |
|
|
|
# Update manifest files |
|
for dirpath, dirnames, filenames in os.walk(repo): |
|
for filename in filenames: |
|
if filename == 'AndroidManifest.xml': |
|
filepath = os.path.join(dirpath, filename) |
|
with open(filepath) as f: |
|
contents = f.read() |
|
if new_code is None: |
|
print('Current version code: ' + re.search(in_code, contents).group(1)) |
|
new_code = raw_input('New version code: ') |
|
print('Current version name: ' + re.search(in_name, contents).group(1)) |
|
new_name = raw_input('New version name: ') |
|
contents = re.sub(in_code, code % new_code, contents) |
|
contents = re.sub(in_name, name % new_name, contents) |
|
with open(filepath, 'w') as f: |
|
f.write(contents) |
|
|
|
# Update change log |
|
with open(changelog) as f: |
|
contents = f.read() |
|
if 'In Development' in contents: |
|
contents = contents.replace('In Development', date.today().strftime('%Y-%m-%d')) |
|
with open(changelog, 'w') as f: |
|
f.write(contents)
|
|
|