1
0
Fork 0
baconscript/bs.py

35 lines
920 B
Python
Executable File

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""Interactive BaconScript shell."""
import logging
import sys
from .bacon import comment, LISTENER, HogNet, load_servers
logging.basicConfig(level=logging.INFO)
log = logging.getLogger(__name__)
LISTENER.osc = HogNet(load_servers('server.cfg'))
# handle user input if run directly
if __name__ == '__main__':
if len(sys.argv) > 1:
# look for macros passed as arguments
logging.debug("found macro at argv[1]")
comment(sys.argv[1])
else:
# be an interactive shell
while True:
# get user input
try:
TEXT = input("comment# ")
except (KeyboardInterrupt, EOFError):
TEXT = 'exit'
print(TEXT)
# catch exit keyword
if TEXT.lower() == 'exit':
break
# exec user input
comment(TEXT)