summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorLéo Lam <leo@leolam.fr>2021-08-12 15:06:10 +0200
committerLéo Lam <leo@leolam.fr>2021-08-12 15:06:10 +0200
commit6635c517f5918b0944c77b2c186bc7f51a9604aa (patch)
treed49416b89a3630fd27bdc2d4a97fa385b786731b /tools
parentb5df2242228ca1989009c442c889f2baea4abfe3 (diff)
tools/setup: Allow setup to be called without NSO for re-setting up tools
Diffstat (limited to 'tools')
-rwxr-xr-xtools/setup.py9
1 files changed, 7 insertions, 2 deletions
diff --git a/tools/setup.py b/tools/setup.py
index 49c17e97..81d467f1 100755
--- a/tools/setup.py
+++ b/tools/setup.py
@@ -5,6 +5,7 @@ import hashlib
from pathlib import Path
import tempfile
import urllib.request
+from typing import Optional
from common import setup_common as setup
@@ -13,7 +14,7 @@ def _download_v160_to_v150_patch(dest: Path):
urllib.request.urlretrieve("https://s.botw.link/v150_downgrade/v160_to_v150.patch", dest)
-def prepare_executable(original_nso: Path):
+def prepare_executable(original_nso: Optional[Path]):
COMPRESSED_V150_HASH = "898dc199301f7c419be5144bb5cb27e2fc346e22b27345ba3fb40c0060c2baf8"
UNCOMPRESSED_V150_HASH = "d9fa308d0ee7c0ab081c66d987523385e1afe06f66731bbfa32628438521c106"
COMPRESSED_V160_HASH = "15cfca7b89348956f85d945fade2e215a6af5991ed1071e181f97ca72f7ae20b"
@@ -26,6 +27,9 @@ def prepare_executable(original_nso: Path):
print(">>> NSO is already set up")
return
+ if original_nso is None:
+ setup.fail("please pass a path to the NSO (refer to the readme for more details)")
+
if not original_nso.is_file():
setup.fail(f"{original_nso} is not a file")
@@ -72,11 +76,12 @@ def prepare_executable(original_nso: Path):
if not setup.TARGET_ELF_PATH.is_file():
setup.fail("internal error while preparing executable (missing ELF); please report")
+
def main():
parser = argparse.ArgumentParser(
"setup.py", description="Set up the Breath of the Wild decompilation project")
parser.add_argument("original_nso", type=Path,
- help="Path to the original NSO (1.5.0 or 1.6.0, compressed or not)")
+ help="Path to the original NSO (1.5.0 or 1.6.0, compressed or not)", nargs="?")
args = parser.parse_args()
setup.install_viking()