install: updates to support building deb/rpm packages that contain python wheels and install core from a single file, updates to core to install scripts by way of python directly
This commit is contained in:
parent
cd6bb319ad
commit
fcf6f30302
54 changed files with 528 additions and 187 deletions
71
daemon/core/scripts/serviceupdate.py
Executable file
71
daemon/core/scripts/serviceupdate.py
Executable file
|
@ -0,0 +1,71 @@
|
|||
import argparse
|
||||
import re
|
||||
from io import TextIOWrapper
|
||||
|
||||
|
||||
def parse_args() -> argparse.Namespace:
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Helps transition older CORE services to work with newer versions"
|
||||
)
|
||||
parser.add_argument(
|
||||
"-f",
|
||||
"--file",
|
||||
dest="file",
|
||||
type=argparse.FileType("r"),
|
||||
help="service file to update",
|
||||
)
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def update_service(service_file: TextIOWrapper) -> None:
|
||||
update = []
|
||||
for line in service_file.readlines():
|
||||
# update service attributes
|
||||
line = re.sub(r"^(\s+)_([a-z])", r"\1\2", line)
|
||||
# rename dirs to directories
|
||||
line = re.sub(r"^(\s+)dirs", r"\1directories", line)
|
||||
# fix import states for service
|
||||
line = re.sub(
|
||||
r"^.+import.+CoreService.+$",
|
||||
r"from core.services.coreservices import CoreService",
|
||||
line,
|
||||
)
|
||||
# fix method signatures
|
||||
line = re.sub(
|
||||
r"def generateconfig\(cls, node, filename, services\)",
|
||||
r"def generate_config(cls, node, filename)",
|
||||
line,
|
||||
)
|
||||
line = re.sub(
|
||||
r"def getvalidate\(cls, node, services\)",
|
||||
r"def get_validate(cls, node)",
|
||||
line,
|
||||
)
|
||||
line = re.sub(
|
||||
r"def getstartup\(cls, node, services\)",
|
||||
r"def get_startup(cls, node)",
|
||||
line,
|
||||
)
|
||||
line = re.sub(
|
||||
r"def getconfigfilenames\(cls, nodenum, services\)",
|
||||
r"def get_configs(cls, node)",
|
||||
line,
|
||||
)
|
||||
# remove unwanted lines
|
||||
if re.search(r"addservice\(", line):
|
||||
continue
|
||||
if re.search(r"from.+\.ipaddr|import ipaddr", line):
|
||||
continue
|
||||
if re.search(r"from.+\.ipaddress|import ipaddress", line):
|
||||
continue
|
||||
# add modified line to make updated copy
|
||||
update.append(line)
|
||||
service_file.close()
|
||||
|
||||
with open(f"{service_file.name}.update", "w") as f:
|
||||
f.writelines(update)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
args = parse_args()
|
||||
update_service(args.file)
|
Loading…
Add table
Add a link
Reference in a new issue