47 lines
1.4 KiB
Python
Executable file
47 lines
1.4 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
import os
|
|
import sys
|
|
import tempfile
|
|
import urllib.request
|
|
from zipfile import ZipFile
|
|
|
|
sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), "../../"))
|
|
|
|
from misc.utility.color import Ansi, color_print
|
|
|
|
|
|
def get_latest_tag():
|
|
import json
|
|
|
|
url = "https://api.github.com/repos/google/perfetto/releases/latest"
|
|
with urllib.request.urlopen(url) as response:
|
|
data = json.load(response)
|
|
return data["tag_name"]
|
|
|
|
|
|
# Perfetto
|
|
# Check for latest version: https://github.com/google/perfetto/releases/latest
|
|
perfetto_tag = get_latest_tag()
|
|
perfetto_filename = "perfetto-cpp-sdk-src.zip"
|
|
perfetto_folder = "thirdparty/perfetto"
|
|
|
|
perfetto_archive_destination = os.path.join(tempfile.gettempdir(), perfetto_filename)
|
|
|
|
if os.path.isfile(perfetto_archive_destination):
|
|
os.remove(perfetto_archive_destination)
|
|
|
|
print(f"Downloading Perfetto {perfetto_tag} ...")
|
|
urllib.request.urlretrieve(
|
|
f"https://github.com/google/perfetto/releases/download/{perfetto_tag}/{perfetto_filename}",
|
|
perfetto_archive_destination,
|
|
)
|
|
|
|
print(f"Extracting Perfetto {perfetto_tag} to {perfetto_folder} ...")
|
|
with ZipFile(perfetto_archive_destination, "r") as zip_file:
|
|
zip_file.extractall(perfetto_folder)
|
|
os.remove(perfetto_archive_destination)
|
|
print("Perfetto installed successfully.\n")
|
|
|
|
# Complete message
|
|
color_print(f'{Ansi.GREEN}Perfetto was installed to "{perfetto_folder}" successfully!')
|