SlimFace-demo / scripts /setup_third_party.py
danhtran2mind's picture
Upload 164 files
b7f710c verified
import os
import subprocess
import sys
import argparse
def run_command(command, error_message):
"""Run a shell command and handle errors."""
try:
subprocess.check_call(command, shell=True)
except subprocess.CalledProcessError:
print(f"Error: {error_message}")
sys.exit(1)
def setup_edgeface(repo_url, third_party_dir, branch=None):
"""Set up edgeface as a third-party dependency in the specified directory."""
edgeface_dir = os.path.join(third_party_dir, "edgeface")
# Create third_party directory if it doesn't exist
if not os.path.exists(third_party_dir):
os.makedirs(third_party_dir)
print(f"Created directory: {third_party_dir}")
# Clone edgeface if not already present
if not os.path.exists(edgeface_dir):
print(f"Cloning edgeface into {edgeface_dir}...")
clone_command = f"git clone {repo_url} {edgeface_dir}"
if branch:
clone_command = f"git clone -b {branch} {repo_url} {edgeface_dir}"
run_command(
clone_command,
f"Failed to clone edgeface from {repo_url}"
)
else:
print(f"edgeface already exists at {edgeface_dir}")
# Verify edgeface directory contains expected files
if os.path.exists(edgeface_dir) and os.listdir(edgeface_dir):
print(f"edgeface setup completed successfully at {edgeface_dir}")
else:
print(f"Error: edgeface directory is empty or invalid")
sys.exit(1)
if __name__ == "__main__":
parser = argparse.ArgumentParser(description="Set up edgeface as a third-party dependency.")
parser.add_argument(
"--repo-url",
default="https://github.com/danhtran2mind/edgeface.git",
help="Git repository URL for edgeface (default: %(default)s)"
)
parser.add_argument(
"--third-party-dir",
default=os.path.join("src", "third_party"),
help="Directory to store third-party dependencies (default: %(default)s)"
)
parser.add_argument(
"--branch",
help="Git branch to clone (optional)"
)
args = parser.parse_args()
setup_edgeface(args.repo_url, args.third_party_dir, args.branch)