mirror of
https://github.com/clearlinux/common.git
synced 2026-06-17 03:26:29 +00:00
Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9bfaefc491 | |||
| 64a20fa5c2 | |||
| e0b152250f | |||
| 70ca088ce6 | |||
| a3c7b734fa |
@@ -1238,6 +1238,7 @@ byobu
|
||||
bz2file
|
||||
bzip2
|
||||
c-ares
|
||||
c-blosc
|
||||
c-blosc2
|
||||
cJSON
|
||||
c_rehash
|
||||
@@ -1332,6 +1333,7 @@ colord-kde
|
||||
colordiff
|
||||
columbiad
|
||||
compat-Botan-soname2
|
||||
compat-abseil-cpp-rolling
|
||||
compat-atkmm-soname16
|
||||
compat-babeltrace-one
|
||||
compat-cairomm-soname10
|
||||
@@ -1343,6 +1345,7 @@ compat-gcc-10
|
||||
compat-gcr-soname1
|
||||
compat-glibmm-soname24
|
||||
compat-gnome-bluetooth-soname-13
|
||||
compat-grpc-soname66
|
||||
compat-gsl-soname27
|
||||
compat-gtksourceview-soname3
|
||||
compat-icu4c-rolling
|
||||
@@ -1399,6 +1402,7 @@ cups-filters
|
||||
cups-pk-helper
|
||||
curl
|
||||
cycler
|
||||
cyme
|
||||
cyrus-sasl
|
||||
dapl
|
||||
darktable
|
||||
@@ -3816,6 +3820,8 @@ pypi-blessed
|
||||
pypi-blinker
|
||||
pypi-blivet
|
||||
pypi-blockdiag
|
||||
pypi-blosc
|
||||
pypi-blosc2
|
||||
pypi-bokeh
|
||||
pypi-boolean.py
|
||||
pypi-booleanoperations
|
||||
@@ -4244,12 +4250,14 @@ pypi-nbformat
|
||||
pypi-nbsphinx
|
||||
pypi-nbval
|
||||
pypi-ndg_httpsclient
|
||||
pypi-ndindex
|
||||
pypi-neat_python
|
||||
pypi-nest_asyncio
|
||||
pypi-netapp_lib
|
||||
pypi-netdisco
|
||||
pypi-netifaces
|
||||
pypi-networkx
|
||||
pypi-nftables
|
||||
pypi-nh3
|
||||
pypi-nibabel
|
||||
pypi-nltk
|
||||
@@ -4381,6 +4389,7 @@ pypi-pycollada
|
||||
pypi-pycosat
|
||||
pypi-pycountry
|
||||
pypi-pycparser
|
||||
pypi-pycrdt
|
||||
pypi-pycryptodome
|
||||
pypi-pycryptodomex
|
||||
pypi-pycups
|
||||
@@ -4630,6 +4639,7 @@ pypi-subprocess_tee
|
||||
pypi-suds
|
||||
pypi-sure
|
||||
pypi-svg.path
|
||||
pypi-tables
|
||||
pypi-tabulate
|
||||
pypi-tap.py
|
||||
pypi-tblib
|
||||
|
||||
@@ -50,16 +50,17 @@ def setup_content(url):
|
||||
|
||||
|
||||
def setup_cargo_vendor(path):
|
||||
cargo_paths = []
|
||||
for dirpath, _, files in os.walk(path):
|
||||
for fname in files:
|
||||
if fname == "Cargo.toml":
|
||||
return dirpath
|
||||
return False
|
||||
cargo_paths.append(os.path.join(dirpath, fname))
|
||||
return cargo_paths
|
||||
|
||||
|
||||
def update_cargo_vendor(path, name, git):
|
||||
def update_cargo_vendor(tmpdir, cargo_paths, name, git):
|
||||
git_uri = os.path.join(git, name)
|
||||
vendor_path = os.path.join(path, 'vendor')
|
||||
vendor_path = os.path.join(tmpdir, 'vendor')
|
||||
subprocess.run(f"git clone {git_uri} {vendor_path}", shell=True, check=True,
|
||||
stdout=subprocess.DEVNULL)
|
||||
vendor_git = os.path.join(vendor_path, '.git')
|
||||
@@ -69,16 +70,18 @@ def update_cargo_vendor(path, name, git):
|
||||
stdout=subprocess.DEVNULL)
|
||||
subprocess.run(f"git remote add origin {git_uri}", cwd=vendor_path,
|
||||
shell=True, check=True, stdout=subprocess.DEVNULL)
|
||||
backup_vendor_git = os.path.join(path, 'clear-linux-vendor-git')
|
||||
subprocess.run(f"cp -a {vendor_git} {backup_vendor_git}", cwd=path,
|
||||
backup_vendor_git = os.path.join(tmpdir, 'clear-linux-vendor-git')
|
||||
subprocess.run(f"cp -a {vendor_git} {backup_vendor_git}", cwd=tmpdir,
|
||||
shell=True, check=True, stdout=subprocess.DEVNULL)
|
||||
shutil.rmtree(vendor_path)
|
||||
cargo_vendors = subprocess.run('cargo vendor', cwd=path, shell=True,
|
||||
vendor_cmd = 'cargo vendor ' + ' '.join([f"-s {x}" for x in cargo_paths[:-1]])
|
||||
vendor_cmd += f" --manifest-path {cargo_paths[-1]}"
|
||||
cargo_vendors = subprocess.run(vendor_cmd, cwd=tmpdir, shell=True,
|
||||
check=True, stdout=subprocess.PIPE,
|
||||
universal_newlines=True).stdout
|
||||
with open(os.path.join(vendor_path, ".gitattributes"), "w", encoding='utf8') as gafile:
|
||||
gafile.write("* text=false\n")
|
||||
subprocess.run(f"cp -a {backup_vendor_git} {vendor_git}", cwd=path,
|
||||
subprocess.run(f"cp -a {backup_vendor_git} {vendor_git}", cwd=tmpdir,
|
||||
shell=True, check=True, stdout=subprocess.DEVNULL)
|
||||
repo = Repo(vendor_path)
|
||||
if not (len(repo.untracked_files) > 0 or repo.is_dirty()):
|
||||
@@ -111,11 +114,11 @@ def update_cargo_sources(name, tag, cargo_vendors):
|
||||
with open('Makefile', encoding='utf8') as mfile:
|
||||
for line in mfile.readlines():
|
||||
if line.startswith('ARCHIVES'):
|
||||
if re.search(archive_match + r'[a-zA-Z0-9_\-.]+\.tar\.xz', line):
|
||||
new_archives = re.sub(archive_match + r'[a-zA-Z0-9_\-.]+\.tar\.xz',
|
||||
f"{archive_replace}-{tag}.tar.xz", line)
|
||||
if re.search(archive_match + r'[a-zA-Z0-9_\-.]+\.tar\.gz', line):
|
||||
new_archives = re.sub(archive_match + r'[a-zA-Z0-9_\-.]+\.tar\.gz',
|
||||
f"{archive_replace}-{tag}.tar.gz", line)
|
||||
else:
|
||||
new_archives = f"{line[:-1]} {archive_replace}-{tag}.tar.xz ./vendor\n"
|
||||
new_archives = f"{line[:-1]} {archive_replace}-{tag}.tar.gz ./vendor\n"
|
||||
print(new_archives.replace('ARCHIVES = ', '', 1))
|
||||
makefile.append(new_archives)
|
||||
else:
|
||||
@@ -128,11 +131,11 @@ def update_cargo_sources(name, tag, cargo_vendors):
|
||||
with open('options.conf', encoding='utf8') as ofile:
|
||||
for line in ofile.readlines():
|
||||
if line.startswith('archives'):
|
||||
if re.search(archive_match + r'[a-zA-Z0-9_\-.]+\.tar\.xz', line):
|
||||
new_archives = re.sub(archive_match + r'[a-zA-Z0-9_\-.]+\.tar\.xz',
|
||||
f"{archive_match}-{tag}.tar.xz", line)
|
||||
if re.search(archive_match + r'[a-zA-Z0-9_\-.]+\.tar\.gz', line):
|
||||
new_archives = re.sub(archive_match + r'[a-zA-Z0-9_\-.]+\.tar\.gz',
|
||||
f"{archive_match}-{tag}.tar.gz", line)
|
||||
else:
|
||||
new_archives = f"{line[:-1]} {archive_match}-{tag}.tar.xz ./vendor\n"
|
||||
new_archives = f"{line[:-1]} {archive_match}-{tag}.tar.gz ./vendor\n"
|
||||
options.append(new_archives)
|
||||
else:
|
||||
options.append(line)
|
||||
@@ -152,11 +155,11 @@ def main():
|
||||
|
||||
tdir = setup_content(args.url)
|
||||
if vtype == 'cargo':
|
||||
vdir = setup_cargo_vendor(tdir)
|
||||
if not vdir:
|
||||
cargo_paths = setup_cargo_vendor(tdir)
|
||||
if len(cargo_paths) == 0:
|
||||
print(args.archives)
|
||||
else:
|
||||
tag, cargo_vendors = update_cargo_vendor(vdir, args.name, args.git)
|
||||
tag, cargo_vendors = update_cargo_vendor(tdir, cargo_paths, args.name, args.git)
|
||||
update_cargo_sources(args.name, tag, cargo_vendors)
|
||||
shutil.rmtree(tdir)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user