<?php

$postData = file_get_contents("php://input");
$postData = json_decode($postData, true);

$uname = $postData['username'];
$filename = $postData['filename'];
$language = $postData['language'];
$input_data = $postData['input_data'];

$ret_stat = 0;

$template = strval(rand(1, 1000000));
$in_fname = "../users/" . $uname . "/" . "temp_in" . $template;

$file = fopen($in_fname, 'w');
file_put_contents($in_fname, $input_data);
fclose($file);

$out_fname = "../users/" . $uname . "/" . "temp_out" . $template;

if(strcmp($language, "cpp") == 0)
{
    $base = basename($filename, ".cpp");
    system("./../users/" . $uname . "/" . $base . " < " . $in_fname . " > " . $out_fname, $ret_stat);
}

else if(strcmp($language, "java") == 0)
{
    $base = basename($filename, ".java");
    system("java -cp ../users/" . $uname . "/ " . $base . " < " . $in_fname . " > " . $out_fname, $ret_stat);
}

else if(strcmp($language, "python") == 0)
{
    system("python3 ../users/" . $uname . "/" . $filename . " < " . $in_fname . " > " . $out_fname, $ret_stat);
}

if($ret_stat != 0)
{
    echo "Runtime Error!!";
}

else
{
    $file = fopen($out_fname, 'r');
    echo fread($file, filesize($out_fname));
    fclose($file);
}

unlink($in_fname);
unlink($out_fname);

?>
