dist/debian: fix renaming debian/scylla-* files rule
Current renaming rule of debian/scylla-* files is buggy, it fails to install some .service files when custom product name specified. Introduce regex based rewriting instead of adhoc renaming, and fixed wrong renaming rule. Related scylladb/scylla#8113
This commit is contained in:
parent
3618481e23
commit
8f62d71e11
18
dist/debian/debian_files_gen.py
vendored
18
dist/debian/debian_files_gen.py
vendored
@ -23,8 +23,9 @@
|
||||
|
||||
import string
|
||||
import os
|
||||
import glob
|
||||
import shutil
|
||||
import re
|
||||
from pathlib import Path
|
||||
|
||||
class DebianFilesTemplate(string.Template):
|
||||
delimiter = '%'
|
||||
@ -51,10 +52,19 @@ shutil.copytree('dist/debian/debian', 'build/debian/debian')
|
||||
|
||||
if product != 'scylla':
|
||||
for p in Path('build/debian/debian').glob('scylla-*'):
|
||||
if str(p).endswith('scylla-jmx.service'):
|
||||
p.rename(p.parent / '{}-jmx.{}'.format(product, p.name))
|
||||
# pat1: scylla-server.service
|
||||
# -> scylla-enterprise-server.scylla-server.service
|
||||
# pat2: scylla-server.scylla-fstrim.service
|
||||
# -> scylla-enterprise-server.scylla-fstrim.service
|
||||
# pat3: scylla-conf.install
|
||||
# -> scylla-enterprise-conf.install
|
||||
|
||||
if m := re.match(r'^scylla(-[^.]+)\.service$', p.name):
|
||||
p.rename(p.parent / f'{product}{m.group(1)}.{p.name}')
|
||||
elif m := re.match(r'^scylla(-[^.]+\.scylla-[^.]+\.[^.]+)$', p.name):
|
||||
p.rename(p.parent / f'{product}{m.group(1)}')
|
||||
else:
|
||||
p.rename(p.parent / p.name.replace('scylla-', f'{product}-'))
|
||||
p.rename(p.parent / p.name.replace('scylla', product, 1))
|
||||
|
||||
s = DebianFilesTemplate(changelog_template)
|
||||
changelog_applied = s.substitute(product=product, version=version, release=release, revision='1', codename='stable')
|
||||
|
Loading…
Reference in New Issue
Block a user