Skip to content

Commit f33a75c

Browse files
committed
Script to update new RPM spec
1 parent 664ae1f commit f33a75c

File tree

2 files changed

+56
-7
lines changed

2 files changed

+56
-7
lines changed

installers/rpm/update.py

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#! /usr/bin/env -S python3 -u
2+
3+
# Copyright (c) 2022, Eugene Gershnik
4+
# SPDX-License-Identifier: BSD-3-Clause
5+
6+
import re
7+
import json
8+
import datetime
9+
10+
from pathlib import Path
11+
12+
MYPATH = Path(__file__).parent
13+
ROOT = MYPATH.parent.parent
14+
15+
def write_sources(gap: str):
16+
with open(ROOT / 'dependencies.json', 'rt', encoding='utf-8') as f:
17+
deps = json.load(f)
18+
19+
ret = ''
20+
for dep, data in deps.items():
21+
version = data['version']
22+
url: str = data['url']
23+
url = url.replace('${version}', version)
24+
ret += f'Source:{gap}{url}#/{dep}.tgz\n'
25+
return ret
26+
27+
def main():
28+
version = (ROOT / "VERSION").read_text().splitlines()[0]
29+
30+
today = datetime.date.today().strftime("%a %b %d %Y")
31+
32+
33+
spec = (ROOT / "installers/rpm/wsddn.spec").read_text()
34+
new_spec = ''
35+
sources_written = False
36+
for line in spec.splitlines():
37+
if (m := re.match(r'Version:(\s*)\d+(?:\.\d+)*', line)):
38+
new_spec += f'Version:{m.group(1)}{version}\n'
39+
elif (m := re.match(r'Release:(\s*)\d+%\{\?dist\}', line)):
40+
new_spec += f'Release:{m.group(1)}1%{{?dist}}\n'
41+
elif (m := re.match(r'Source:(\s*)\S+', line)):
42+
if not sources_written:
43+
new_spec += line + '\n'
44+
new_spec += write_sources(m.group(1))
45+
sources_written = True
46+
elif (m := re.match(r'^%changelog$', line)):
47+
new_spec += line + '\n'
48+
new_spec += f'* {today} gershnik - {version}-1\n- Release {version}\n\n'
49+
else:
50+
new_spec += line + '\n'
51+
52+
(ROOT / "installers/rpm/wsddn.spec").write_text(new_spec)
53+
54+
if __name__ == '__main__':
55+
main()

tools/create-release

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import sys
44
import re
55
import subprocess
6-
import datetime
76

87
from pathlib import Path
98
from datetime import date
@@ -33,12 +32,7 @@ with open(ROOT / "CHANGELOG.md", "wt", encoding="utf-8") as change_log:
3332

3433
(ROOT / "VERSION").write_text(f'{NEW_VER}\n')
3534

36-
rpmSpec = (ROOT / "installers/rpm/wsddn.spec").read_text()
37-
rpmSpec = re.sub(r'Version:(\s*)\d+(?:\.\d+)*', rf'Version:\g<1>{NEW_VER}', rpmSpec)
38-
rpmSpec = re.sub(r'Release:(\s*)\d+%\{\?dist\}', r'Release:\g<1>1%{?dist}', rpmSpec)
39-
today = datetime.date.today().strftime("%a %b %d %Y")
40-
rpmSpec = re.sub(r'%changelog\n', f'%changelog\n* {today} gershnik - {NEW_VER}-1\n- Release {NEW_VER}\n\n', rpmSpec)
41-
(ROOT / "installers/rpm/wsddn.spec").write_text(rpmSpec)
35+
subprocess.run([ROOT / "installers/rpm/update.py"], check=True)
4236

4337
readme = (ROOT / 'README.md').read_text()
4438
readme = re.subn(r'https://github.com/gershnik/wsdd-native/releases/download/v(?:\d+(?:\.\d+)+)',

0 commit comments

Comments
 (0)