uhd/images/create_imgs_package.py
Martin Braun 094a655107 images: Update create_imgs_package.py
- point to python3
- Fix linter & autoformatting issues
2024-07-05 13:51:20 +02:00

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()