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
|
@ -23,8 +23,9 @@
|
||||||
|
|
||||||
import string
|
import string
|
||||||
import os
|
import os
|
||||||
import glob
|
|
||||||
import shutil
|
import shutil
|
||||||
|
import re
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
class DebianFilesTemplate(string.Template):
|
class DebianFilesTemplate(string.Template):
|
||||||
delimiter = '%'
|
delimiter = '%'
|
||||||
|
@ -51,10 +52,19 @@ shutil.copytree('dist/debian/debian', 'build/debian/debian')
|
||||||
|
|
||||||
if product != 'scylla':
|
if product != 'scylla':
|
||||||
for p in Path('build/debian/debian').glob('scylla-*'):
|
for p in Path('build/debian/debian').glob('scylla-*'):
|
||||||
if str(p).endswith('scylla-jmx.service'):
|
# pat1: scylla-server.service
|
||||||
p.rename(p.parent / '{}-jmx.{}'.format(product, p.name))
|
# -> 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:
|
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)
|
s = DebianFilesTemplate(changelog_template)
|
||||||
changelog_applied = s.substitute(product=product, version=version, release=release, revision='1', codename='stable')
|
changelog_applied = s.substitute(product=product, version=version, release=release, revision='1', codename='stable')
|
||||||
|
|
Loading…
Reference in New Issue