mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-08-09 02:15:44 -04:00
tp-progress (#1)
This commit is contained in:
+9
-37
@@ -717,43 +717,15 @@ def calculate_progress(build_path: Path, matching: bool, format: str, print_rels
|
||||
)
|
||||
)
|
||||
elif format == "JSON":
|
||||
matching = {}
|
||||
non_matching = {}
|
||||
|
||||
matching["main.dol"] = {
|
||||
"decompiled": dol_progress.decompiled,
|
||||
"total": dol_progress.size,
|
||||
"sections": [
|
||||
{
|
||||
name: {
|
||||
"decompiled": sec.decompiled,
|
||||
"total": sec.size,
|
||||
}
|
||||
}
|
||||
for name, sec in dol_progress.sections.items()
|
||||
],
|
||||
}
|
||||
|
||||
if rels_progress:
|
||||
matching["rels"] = {
|
||||
"decompiled": rel_decompiled,
|
||||
"total": rel_size,
|
||||
}
|
||||
|
||||
for rel in rels_progress:
|
||||
matching[rel.name] = {
|
||||
"decompiled": rel.decompiled,
|
||||
"total": rel.size,
|
||||
}
|
||||
|
||||
print(
|
||||
json.dumps(
|
||||
{
|
||||
"matching": matching,
|
||||
"non-matchgin": non_matching,
|
||||
}
|
||||
)
|
||||
)
|
||||
data = {
|
||||
"code": decompiled_size,
|
||||
"code/total": total_size,
|
||||
"dol": dol_progress.decompiled,
|
||||
"dol/total": dol_progress.size,
|
||||
"rels": rel_decompiled,
|
||||
"rels/total": rel_size,
|
||||
}
|
||||
print(json.dumps(data))
|
||||
else:
|
||||
print(dol_progress.percentage)
|
||||
print(100 * (rel_decompiled / rel_size))
|
||||
|
||||
Executable
+62
@@ -0,0 +1,62 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import json
|
||||
import os
|
||||
import subprocess
|
||||
from pprint import pprint
|
||||
|
||||
import requests
|
||||
|
||||
|
||||
def get_git_commit_timestamp() -> int:
|
||||
return int(subprocess.check_output(['git', 'show', '-s', '--format=%ct']).decode('ascii').rstrip())
|
||||
|
||||
|
||||
def get_git_commit_sha() -> str:
|
||||
return subprocess.check_output(['git', 'rev-parse', 'HEAD']).decode('ascii').strip()
|
||||
|
||||
|
||||
def generate_url(args: argparse.Namespace) -> str:
|
||||
url_components = [args.base_url.rstrip('/'), 'data']
|
||||
|
||||
for arg in [args.project, args.version.replace('.', '-')]:
|
||||
if arg != "":
|
||||
url_components.append(arg)
|
||||
|
||||
return str.join('/', url_components) + '/'
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
parser = argparse.ArgumentParser(description="Upload progress information.")
|
||||
parser.add_argument("-b", "--base_url", help="API base URL", required=True)
|
||||
parser.add_argument("-a", "--api_key", help="API key (env var PROGRESS_API_KEY)")
|
||||
parser.add_argument("-p", "--project", help="Project slug", required=True)
|
||||
parser.add_argument("-v", "--version", help="Version slug", required=True)
|
||||
parser.add_argument("input", help="Progress JSON input")
|
||||
|
||||
args = parser.parse_args()
|
||||
api_key = args.api_key or os.environ.get("PROGRESS_API_KEY")
|
||||
if not api_key:
|
||||
raise "API key required"
|
||||
url = generate_url(args)
|
||||
|
||||
entries = []
|
||||
with open(args.input, "r") as f:
|
||||
data = json.load(f)
|
||||
entries.append({
|
||||
"timestamp": get_git_commit_timestamp(),
|
||||
"git_hash": get_git_commit_sha(),
|
||||
"categories": {
|
||||
"default": data,
|
||||
},
|
||||
})
|
||||
|
||||
print("Publishing entries to", url)
|
||||
pprint(entries)
|
||||
data = {
|
||||
"api_key": api_key,
|
||||
"entries": entries,
|
||||
}
|
||||
r = requests.post(url, json=data)
|
||||
r.raise_for_status()
|
||||
print("Done!")
|
||||
Reference in New Issue
Block a user