forked from suse-edge/Factory
Steven Hardy
784cd801cd
Without this it launches an editor to interactively specify the message which doesn't seem to work from inside the python script
52 lines
1.2 KiB
Python
Executable File
52 lines
1.2 KiB
Python
Executable File
#!/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):
|
|
p = subprocess.run(["osc", "rdelete", PROJECT, name, "-m \"Deleted via delete_package.py\"" ], stdout=subprocess.PIPE)
|
|
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()
|