43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
from .server import main
|
|
import argparse
|
|
import pyperclip
|
|
import json
|
|
|
|
def get_overrides(file):
|
|
fd = open(file, "r")
|
|
data = json.loads(fd.read())
|
|
fd.close()
|
|
return data
|
|
|
|
def define_args(parser):
|
|
parser.add_argument('--copy', action="store_true", help="copy the client side JS to clipboard")
|
|
parser.add_argument('--assemble', nargs=2, help="assemble the file INFILE and write the resultant overrides to OUTFILE")
|
|
parser.add_argument('--run', help="specify file to start the desmos server for")
|
|
parser.add_argument('--overrides', help="specify file that contains overrides for desmos expressions")
|
|
|
|
|
|
def entry():
|
|
parser = argparse.ArgumentParser(
|
|
prog="desmosisa",
|
|
description="a smörgåsbord of utilities for desmos, including some implementations of an desmos-based isa",
|
|
)
|
|
|
|
define_args(parser)
|
|
|
|
args = parser.parse_args()
|
|
if args.overrides:
|
|
args.overrides = get_overrides(args.overrides)
|
|
|
|
if args.run:
|
|
main(args.run, args.overrides if args.overrides else {})
|
|
elif args.copy:
|
|
fd = open("console.js", "r")
|
|
buffer = fd.read()
|
|
pyperclip.copy(buffer)
|
|
print("copied")
|
|
else:
|
|
parser.print_help()
|
|
|
|
if __name__ == "__main__":
|
|
entry()
|