mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00

There is uncertainty about the default branch name in git going forward. To try and cover the different possible outcomes, add branch names to all git:// and gitsm:// SRC_URI entries. This update was made with the script added to contrib in this patch which aims to help others convert other layers. (From OE-Core rev: 37b4f66fa23979cbfe82679a74ce21b11fc61557) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> (cherry picked from commit b51c405faf6f8c0365f7533bfaf470d79152a463) Signed-off-by: Anuj Mittal <anuj.mittal@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
64 lines
1.9 KiB
Python
Executable File
64 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#
|
|
# Conversion script to update SRC_URI to add branch to git urls
|
|
#
|
|
# Copyright (C) 2021 Richard Purdie
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-only
|
|
#
|
|
|
|
import re
|
|
import os
|
|
import sys
|
|
import tempfile
|
|
import shutil
|
|
import mimetypes
|
|
|
|
if len(sys.argv) < 2:
|
|
print("Please specify a directory to run the conversion script against.")
|
|
sys.exit(1)
|
|
|
|
def processfile(fn):
|
|
print("processing file '%s'" % fn)
|
|
try:
|
|
fh, abs_path = tempfile.mkstemp()
|
|
modified = False
|
|
with os.fdopen(fh, 'w') as new_file:
|
|
with open(fn, "r") as old_file:
|
|
for line in old_file:
|
|
if ("git://" in line or "gitsm://" in line) and "branch=" not in line and "MIRROR" not in line and ".*" not in line:
|
|
if line.endswith('"\n'):
|
|
line = line.replace('"\n', ';branch=master"\n')
|
|
elif line.endswith(" \\\n"):
|
|
line = line.replace(' \\\n', ';branch=master \\\n')
|
|
modified = True
|
|
new_file.write(line)
|
|
if modified:
|
|
shutil.copymode(fn, abs_path)
|
|
os.remove(fn)
|
|
shutil.move(abs_path, fn)
|
|
except UnicodeDecodeError:
|
|
pass
|
|
|
|
ourname = os.path.basename(sys.argv[0])
|
|
ourversion = "0.1"
|
|
|
|
if os.path.isfile(sys.argv[1]):
|
|
processfile(sys.argv[1])
|
|
sys.exit(0)
|
|
|
|
for targetdir in sys.argv[1:]:
|
|
print("processing directory '%s'" % targetdir)
|
|
for root, dirs, files in os.walk(targetdir):
|
|
for name in files:
|
|
if name == ourname:
|
|
continue
|
|
fn = os.path.join(root, name)
|
|
if os.path.islink(fn):
|
|
continue
|
|
if "/.git/" in fn or fn.endswith(".html") or fn.endswith(".patch") or fn.endswith(".m4") or fn.endswith(".diff"):
|
|
continue
|
|
processfile(fn)
|
|
|
|
print("All files processed with version %s" % ourversion)
|