2024-10-17 14:11:42 +02:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
import yaml
|
|
|
|
import subprocess
|
|
|
|
import argparse
|
|
|
|
import os
|
|
|
|
import os.path
|
|
|
|
|
|
|
|
from common import PROJECT
|
|
|
|
|
|
|
|
|
|
|
|
def delete_package_from_workflow(name: str):
|
|
|
|
with open(".obs/workflows.yml", "r") as wf_file:
|
|
|
|
workflows = yaml.safe_load(wf_file)
|
|
|
|
workflows["staging_build"]["steps"] = [
|
|
|
|
x
|
|
|
|
for x in workflows["staging_build"]["steps"]
|
|
|
|
if x["branch_package"]["source_package"] != name
|
|
|
|
]
|
|
|
|
with open(".obs/workflows.yml", "w") as wf_file:
|
|
|
|
yaml.dump(workflows, wf_file)
|
|
|
|
|
|
|
|
|
|
|
|
def delete_package_from_project(name: str):
|
2024-11-13 15:05:38 +01:00
|
|
|
p = subprocess.run(["osc", "rdelete", PROJECT, name, "-m \"Deleted via delete_package.py\"" ], stdout=subprocess.PIPE)
|
2024-10-17 14:11:42 +02:00
|
|
|
print(p.stdout)
|
|
|
|
print(p.stderr)
|
|
|
|
p.check_returncode()
|
|
|
|
|
|
|
|
|
|
|
|
def delete_package(package_name: str):
|
|
|
|
if "/" in package_name:
|
|
|
|
print("invalid package name")
|
|
|
|
os.exit(1)
|
|
|
|
|
|
|
|
delete_package_from_project(package_name)
|
|
|
|
delete_package_from_workflow(package_name)
|
|
|
|
|
|
|
|
|
|
|
|
def main():
|
|
|
|
parser = argparse.ArgumentParser(prog="delete_package")
|
|
|
|
parser.add_argument("package")
|
|
|
|
|
|
|
|
args = parser.parse_args()
|
|
|
|
|
|
|
|
delete_package(args.package)
|
|
|
|
|
|
|
|
print("Package deleted in OBS, you can now push the modified workflow file")
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__':
|
|
|
|
main()
|