#! /usr/bin/env python

import logging
import os
import platform

from lab.calls.call import Call
from lab import tools

tools.configure_logging()

logging.info(f"node: {platform.node()}")

run_log = open("run.log", "w")
run_err = open("run.err", "w", buffering=1)  # line buffering
redirects = {"stdout": run_log, "stderr": run_err}

# Make sure we're in the run directory.
os.chdir(os.path.dirname(os.path.abspath(__file__)))

Call(['/infai/buecle01/.venv-rubiks-cube/bin/python', '../../code-cdc1df0_e5e41175/fast-downward.py', '--overall-time-limit', '30m', '--overall-memory-limit', '3584M', 'task.sas', '--search', 'astar(maximize([projections(manual_patterns([[ 0,  1,  2,  3]]), create_complete_transition_system=true), projections(manual_patterns([[ 4,  5,  6,  7]]), create_complete_transition_system=true), projections(manual_patterns([[ 8,  9, 10, 11]]), create_complete_transition_system=true), projections(manual_patterns([[12, 13, 14, 15]]), create_complete_transition_system=true), projections(manual_patterns([[16, 17, 18, 19]]), create_complete_transition_system=true)]))'], hard_stderr_limit=10240, hard_stdout_limit=10240, memory_limit=None, name='planner', soft_stderr_limit=64, soft_stdout_limit=1536.0, time_limit=None, **redirects).wait()

Call(['/infai/buecle01/.venv-rubiks-cube/bin/python', '../../exitcode-parser.py'], hard_stderr_limit=10240, hard_stdout_limit=10240, memory_limit=None, name='exitcode_parser', soft_stderr_limit=64, soft_stdout_limit=1024, time_limit=None, **redirects).wait()

Call(['/infai/buecle01/.venv-rubiks-cube/bin/python', '../../translator-parser.py'], hard_stderr_limit=10240, hard_stdout_limit=10240, memory_limit=None, name='translator_parser', soft_stderr_limit=64, soft_stdout_limit=1024, time_limit=None, **redirects).wait()

Call(['/infai/buecle01/.venv-rubiks-cube/bin/python', '../../single-search-parser.py'], hard_stderr_limit=10240, hard_stdout_limit=10240, memory_limit=None, name='single_search_parser', soft_stderr_limit=64, soft_stdout_limit=1024, time_limit=None, **redirects).wait()

Call(['/infai/buecle01/.venv-rubiks-cube/bin/python', '../../planner-parser.py'], hard_stderr_limit=10240, hard_stdout_limit=10240, memory_limit=None, name='planner_parser', soft_stderr_limit=64, soft_stdout_limit=1024, time_limit=None, **redirects).wait()

Call(['/infai/buecle01/.venv-rubiks-cube/bin/python', '../../parser.py'], hard_stderr_limit=10240, hard_stdout_limit=10240, memory_limit=None, name='parser', soft_stderr_limit=64, soft_stdout_limit=1024, time_limit=None, **redirects).wait()


for f in [run_log, run_err]:
    f.close()
    if os.path.getsize(f.name) == 0:
        os.remove(f.name)
