mirror of
https://github.com/zeldaret/af.git
synced 2026-10-05 08:57:31 -04:00
1ece5c6e6b
* git subrepo pull --force tools/splat subrepo: subdir: "tools/splat" merged: "6ec2b39" upstream: origin: "git@github.com:ethteck/splat.git" branch: "master" commit: "6ec2b39" git-subrepo: version: "0.4.6" origin: "git@github.com:ingydotnet/git-subrepo.git" commit: "110b9eb" * Add FULL_DISASM toggle * Fix bootclear
47 lines
999 B
Python
47 lines
999 B
Python
import sys
|
|
from typing import NoReturn, Optional
|
|
from pathlib import Path
|
|
|
|
from colorama import Fore, init, Style
|
|
|
|
init(autoreset=True)
|
|
|
|
newline = True
|
|
|
|
Status = Optional[str]
|
|
|
|
|
|
def write(*args, status=None, **kwargs):
|
|
global newline
|
|
|
|
if not newline:
|
|
print("")
|
|
newline = True
|
|
|
|
print(status_to_ansi(status) + str(args[0]), *args[1:], **kwargs)
|
|
|
|
|
|
def error(*args, **kwargs) -> NoReturn:
|
|
write(*args, **kwargs, status="error")
|
|
sys.exit(2)
|
|
|
|
|
|
# The line_num is expected to be zero-indexed
|
|
def parsing_error_preamble(path: Path, line_num: int, line: str):
|
|
write("")
|
|
write(f"error reading {path}, line {line_num + 1}:", status="error")
|
|
write(f"\t{line}")
|
|
|
|
|
|
def status_to_ansi(status: Status):
|
|
if status == "ok":
|
|
return Fore.GREEN
|
|
elif status == "warn":
|
|
return Fore.YELLOW + Style.BRIGHT
|
|
elif status == "error":
|
|
return Fore.RED + Style.BRIGHT
|
|
elif status == "skip":
|
|
return Style.DIM
|
|
else:
|
|
return ""
|