forked from suse-edge/Factory
Import first batch of Edge 3.1 packages
Signed-off-by: Nicolas Belouin <nicolas.belouin@suse.com>
This commit is contained in:
44
.obs/sync_packages.py
Normal file
44
.obs/sync_packages.py
Normal file
@@ -0,0 +1,44 @@
|
||||
import argparse
|
||||
import subprocess
|
||||
import pathlib
|
||||
from typing import Set
|
||||
import add_package
|
||||
import delete_package
|
||||
|
||||
from common import PROJECT
|
||||
|
||||
def get_obs_packages() -> Set[str]:
|
||||
packages = subprocess.run(["osc", "ls", PROJECT], encoding='utf-8' , capture_output=True)
|
||||
return set(packages.stdout.splitlines())
|
||||
|
||||
def get_local_packages() -> Set[str]:
|
||||
p = pathlib.Path('.')
|
||||
return {x.name for x in p.iterdir() if x.is_dir() if not x.name.startswith('.')}
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(prog="sync_packages")
|
||||
parser.add_argument('--dry-run', action="store_true")
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
local_packages = get_local_packages()
|
||||
obs_packages = get_obs_packages()
|
||||
|
||||
packages_to_add = local_packages - obs_packages
|
||||
packages_to_delete = obs_packages - local_packages
|
||||
|
||||
for p in packages_to_add:
|
||||
print(f"Adding {p}")
|
||||
if not args.dry_run:
|
||||
add_package.add_package(p)
|
||||
|
||||
for p in packages_to_delete:
|
||||
print(f"Removing {p}")
|
||||
if not args.dry_run:
|
||||
delete_package.delete_package(p)
|
||||
|
||||
print("Package synced in OBS, you can now push the modified workflow file")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
Reference in New Issue
Block a user