mirror of
https://github.com/EttusResearch/uhd.git
synced 2026-10-25 17:36:10 +00:00
70 lines
1.9 KiB
Python
Executable File
70 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
#
|
|
# Copyright 2014 Ettus Research LLC
|
|
#
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
#
|
|
"""Command-line utility to create a .zip-file with the current image set."""
|
|
|
|
import argparse
|
|
import os
|
|
import re
|
|
import shutil
|
|
import subprocess
|
|
import sys
|
|
|
|
import populate_images
|
|
|
|
|
|
def parse_args():
|
|
"""Parse args, duh."""
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("--version", help="Specify version. Will detect from tag otherwise.")
|
|
return parser.parse_args()
|
|
|
|
|
|
def download_images(img_root_dir):
|
|
"""Run the images downloader."""
|
|
populate_images.download_images(img_root_dir)
|
|
|
|
|
|
def get_version():
|
|
"""Figure out version based on tag."""
|
|
try:
|
|
git_cmd = ["git", "describe", "--abbrev=0", "--tags"]
|
|
git_output = subprocess.check_output(git_cmd).decode("UTF-8")
|
|
except subprocess.CalledProcessError as ex:
|
|
print((ex.output))
|
|
sys.exit(1)
|
|
print(("Detected tag: {}".format(git_output)))
|
|
version_mobj = re.search(r"[0-9]+\.[0-9]+\.[0-9]+\.[0-9]", git_output)
|
|
if version_mobj is None:
|
|
print("Error: Failure to resolve version from tag!")
|
|
sys.exit(1)
|
|
return version_mobj.group(0)
|
|
|
|
|
|
def main():
|
|
"""Go, go, go."""
|
|
args = parse_args()
|
|
img_root_dir = os.path.join(populate_images.get_images_dir(), "images")
|
|
print(f"== Clearing out the images directory at {img_root_dir}, if present...")
|
|
shutil.rmtree(img_root_dir, ignore_errors=True)
|
|
print("== Downloading images...")
|
|
download_images(img_root_dir)
|
|
print("== Determining version...")
|
|
version = args.version if args.version is not None else get_version()
|
|
print(f"Version string: {version}")
|
|
print("== Creating archives...")
|
|
archive_cmd = ["./make_zip.sh", version]
|
|
try:
|
|
subprocess.call(archive_cmd)
|
|
except subprocess.CalledProcessError as ex:
|
|
print(ex.output)
|
|
sys.exit(1)
|
|
print("== Done!")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|