35 lines
774 B
Python
Executable File
35 lines
774 B
Python
Executable File
#!/usr/bin/env python3
|
|
import sys, os
|
|
from pathlib import Path
|
|
|
|
# Returns a parent path with pack.toml, or None if it can't be found
|
|
def search_recursive(dir: str | os.PathLike) -> Path | None:
|
|
dir = Path(dir)
|
|
pack = dir / "pack.toml"
|
|
|
|
if pack.is_file():
|
|
return dir
|
|
|
|
# If we've made it to / without finding it, return None
|
|
if dir.samefile("/"):
|
|
return None
|
|
|
|
# Otherwise, recurse
|
|
return search_recursive(dir / "..")
|
|
|
|
def search(dir: str | os.PathLike) -> Path:
|
|
new_dir = search_recursive(dir)
|
|
if new_dir is not None:
|
|
return new_dir
|
|
else:
|
|
return Path(dir)
|
|
|
|
def main():
|
|
args = ["packwiz"] + sys.argv[1:]
|
|
os.chdir(search("."))
|
|
os.execvp("packwiz", args)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|