mirror of
https://github.com/encounter/ph.git
synced 2026-03-30 11:34:37 -07:00
54 lines
1.4 KiB
Python
54 lines
1.4 KiB
Python
import argparse
|
|
from pathlib import Path
|
|
from get_platform import get_platform
|
|
import zipfile
|
|
import io
|
|
import requests
|
|
import stat
|
|
|
|
root_path = Path(__file__).parent.parent
|
|
|
|
|
|
platform = get_platform()
|
|
if platform is None:
|
|
exit(1)
|
|
|
|
parser = argparse.ArgumentParser()
|
|
parser.add_argument("tool")
|
|
parser.add_argument("tag")
|
|
parser.add_argument("--path", type=Path, required=True)
|
|
args = parser.parse_args()
|
|
|
|
|
|
def dsd_url(tag: str) -> str:
|
|
return f'https://github.com/AetiasHax/ds-decomp/releases/download/{tag}/dsd-{platform.system}-{platform.machine}{platform.exe}'
|
|
|
|
def mwccarm_url(tag: str) -> str:
|
|
return 'http://decomp.aetias.com/files/mwccarm.zip'
|
|
|
|
def wibo_url(tag: str) -> str:
|
|
return f'https://github.com/decompals/wibo/releases/download/{tag}/wibo'
|
|
|
|
def objdiff_url(tag: str) -> str:
|
|
return f'https://github.com/encounter/objdiff/releases/download/{tag}/objdiff-cli-{platform.system}-{platform.machine}{platform.exe}'
|
|
|
|
TOOLS = {
|
|
"dsd": dsd_url,
|
|
"mwccarm": mwccarm_url,
|
|
"wibo": wibo_url,
|
|
"objdiff": objdiff_url,
|
|
}
|
|
|
|
|
|
download_url = TOOLS[args.tool](args.tag)
|
|
print(f'\nDownloading {args.tool} {args.tag}...')
|
|
response = requests.get(download_url)
|
|
if download_url.endswith('.zip'):
|
|
zip_file = zipfile.ZipFile(io.BytesIO(response.content))
|
|
zip_file.extractall(args.path)
|
|
else:
|
|
out_path: Path = args.path
|
|
with out_path.open('wb') as f:
|
|
f.write(response.content)
|
|
out_path.chmod(out_path.stat().st_mode | stat.S_IEXEC)
|