Exemplo n.º 1
0
function get_info_or_ask()
{
    if (isset($_GET["id"])) {
        $info = list_load_info($_GET["id"]);
    } else {
        if (isset($_GET["code"]) && isset($_GET["user"])) {
            $info = list_load_info_code($_GET["code"], $_GET['user']);
        } else {
            $info['lcode'] = $info['luser'] = $info['ltitle'] = $info['gcode'] = $info['ldirec'] = "";
        }
    }
    export_list_info_js($info);
    return $info;
}
Exemplo n.º 2
0
function look_if_available($info)
{
    global $dbh;
    if (isset($info["ljob"])) {
        $query = sprintf("SELECT exit_code FROM jobs WHERE rec_id=%u", $info['ljob']);
        $result = $dbh->query($query);
        $ecode = $result->fetchColumn();
        if (isset($ecode) && $ecode == 0) {
            // The results are available
            echo "&available";
            return;
        } else {
            if (isset($ecode) && $ecode != 0) {
                // The processing encountered an error
                echo "&procerror&{$ecode}";
                return;
            } else {
                echo "&waiting";
                return;
            }
        }
    }
    if (gene_names_check($info["ldir"], $info["gdir"], $unfound, $duplicates)) {
        echo "&synon";
        return;
    }
    $jid = start_job("graficatore/cluster.sh {$info['ldir']} {$info['gdir']} " . "10000 {$info['lcode']}", $info['ldir'] . "/jobout.txt", $info['ldir'] . "/joberr.txt");
    $query = sprintf("UPDATE lists SET job_id=%u WHERE rec_id=%u", $jid, $info['lid']);
    if ($dbh->exec($query) != 1) {
        echo "&procerror&12";
        return;
    }
    $info = list_load_info($info['lid']);
    // waiting
    echo "&waiting";
    return;
}
Exemplo n.º 3
0
        if ($i === $gene) {
            $genes[$k] = $syn;
        }
        $genes[$k] .= "\n";
    }
    file_put_contents($filename, $genes, LOCK_EX);
    $genes = file($filename, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
    if (in_array($gene, $genes, true)) {
        echo "&error 4";
    } else {
        return_unfound_and_duplicates($info);
    }
}
# Main
if (isset($_GET["id"])) {
    $info = list_load_info($_GET["id"]);
} else {
    if (isset($_GET["code"]) && isset($_GET["user"])) {
        $info = list_load_info_code($_GET["code"], $_GET["user"]);
    } else {
        echo "&error 1";
        exit(0);
    }
}
// synonim lock
$fp = fopen($info['ldir'] . "/synonim.lock", "w");
if (!flock($fp, LOCK_EX)) {
    // do an exclusive lock
    echo "&error 5";
    exit(0);
}
Exemplo n.º 4
0
function list_load_info_code($code, $user)
{
    global $dbh;
    $query = sprintf("SELECT lists.rec_id FROM lists\n                  INNER JOIN users ON lists.user_id = users.rec_id \n                  WHERE lists.code=%s AND users.user=%s", $dbh->quote($code), $dbh->quote($user));
    $result = $dbh->query($query);
    $linfo = $result->fetchColumn();
    return list_load_info($linfo);
}