OpenMiInk/third_party/krita-deps-management/tools/replace-branch-in-seed-file.py
Hellings b8c8ff98e2 Hi
2026-10-16 09:05:56 -04:00

41 lines
1.5 KiB
Python

#!/usr/bin/python3
import sys
import os
import yaml
import argparse
# Capture our command line parameters
parser = argparse.ArgumentParser(description='Utility to run builds for multiple projects on CI')
parser.add_argument('seedfile', type=str, help='Seed file for generation of the deps')
parser.add_argument('-s','--src-branch', type=str, default='master', help='The name of the branch to rename', required=False)
parser.add_argument('-d','--dst-branch', type=str, default='master', help='Desired branch name', required=True)
parser.add_argument('-o','--output-file', type=str, help='Output seed file', required=False)
parser.add_argument('-p','--print', action='store_true', help='Print the resulting seed file', required=False)
arguments = parser.parse_args()
workingDirectory = os.getcwd()
configuration = {}
seedFilePath = os.path.abspath(arguments.seedfile)
if not os.path.exists(seedFilePath):
print('ERROR: seed file does not exist: {}'.format(seedFilePath))
sys.exit(1)
if arguments.output_file is None:
arguments.output_file = arguments.seedfile
with open(seedFilePath, 'r') as f:
configuration = yaml.safe_load(f)
for item in configuration:
if 'require' in item:
for dep, branch in item['require'].items():
if branch == arguments.src_branch:
item['require'][dep] = arguments.dst_branch
with open(arguments.output_file, 'w') as f:
yaml.dump(configuration, f, indent = 2)
if arguments.print:
print (yaml.dump(configuration, indent = 2))