| import argparse |
| from sys import exit |
| import subprocess |
| from pathlib import Path |
| from src.generic_eval import main as gmain |
|
|
| def eval_script(path: Path): |
| try: |
| |
| |
| output = subprocess.run( |
| ["ruby", path], check=True, capture_output=True, timeout=5 |
| ) |
| if output.returncode == 0: |
| status = "OK" |
| out = output.stderr |
| error = output.stdout |
| returncode = 0 |
| else: |
| raise Exception("there's an issue with check = True for Ruby, INVESTIGATE!") |
| except subprocess.TimeoutExpired as exc: |
| status = "Timeout" |
| out = exc.stdout |
| error = exc.stderr |
| returncode = -1 |
| except subprocess.CalledProcessError as exc: |
| returncode = exc.returncode |
| out = exc.stdout |
| error = exc.stderr |
| |
| if len(error) < 1: |
| status = "Exception" |
| else: |
| status = "SyntaxError" |
| return { |
| "status": status, |
| "exit_code": returncode, |
| "stdout": out, |
| "stderr": error, |
| } |
|
|
| if __name__ == "__main__": |
| gmain(eval_script, 'Ruby', '.rb') |
|
|