$this->config = $config;
error_log("constructor for GLCASAdhoc");
- $repostore = $this->config->getConfigVar("storagelocation");
+ $repostore = $this->config->getConfig("storagelocation");
if(!is_dir("$repostore/adhoc")) {
error_log("Creating dir for adhoc component");
mkdir("$repostore/adhoc");
function go($url)
{
+ error_log("ADHOC: url is $url in");
+ $tags = explode("/", $url);
+ if(isset($tags[1])) {
+ error_log("tags 1 is set: \"".$tags[1]."\"");
+ if($tags[1] != "") {
+ if($this->doPackageRequest($tags[1])) return 0;
+ } else {
+ GLCASpageBuilder($this, "doPackageList");
+ return 0;
+ }
+ }
if(isset($_REQUEST["action"])) {
switch($_REQUEST["action"]) {
case "addpackage":
}
+ function doPackageList()
+ {
+ echo "im a package list\n";
+ }
+
+ function doPackageRequest($package)
+ {
+ echo "i got a request for $package\n";
+
+ return true;
+ }
+
function delPackage($url)
{
- $repostore = $this->config->getConfigVar("storagelocation");
+ $repostore = $this->config->getConfig("storagelocation");
$pkgid = $_REQUEST["pkgid"];
+ $pkgname = $_REQUEST["pkgname"];
- $pkgs = unserialize($this->config->getConfigVar("adhocpackages"));
-
- if(isset($pkgs[$pkgid])) {
- unset($pkgs[$pkgid]);
- $this->config->setConfigVar("adhocpackages", serialize($pkgs));
- $this->config->saveConfig();
- }
+ $this->config->delAllData("adhocpkgdata", $pkgid);
+ $this->config->delData("adhoc", "pkglist", "$pkgname", "$pkgid");
global $WEB_ROOT_FS, $URL_HANDLERS, $BASE_URL;
- header("Location: $BASE_URL/adhoc/");
+ header("Location: $BASE_URL/adhoc");
+
}
function addPackage($url)
{
- $repostore = $this->config->getConfigVar("storagelocation");
+ $repostore = $this->config->getConfig("storagelocation");
if(!isset($_REQUEST["pkgname"])) {
- echo "<font color=\"red\">Error: No package name set</font><br>";
+ if(isset($_REQUEST["origpkg"])) if($_REQUEST["origpkg"] == -1) {
+ echo "<font color=\"red\">Error: No package name set</font><br>";
+ return 0;
+ }
}
if($_REQUEST["pkgname"] == "") {
- echo "<font color=\"red\">Error: Package name cant be blank</font><br>";
+ if(isset($_REQUEST["origpkg"])) if($_REQUEST["origpkg"] == -1) {
+ echo "<font color=\"red\">Error: Package name cant be blank</font><br>";
+ return 0;
+ }
}
if(!$uploaded && !$fileurl) {
echo "<font color=\"red\">Error: no uploaded file and no file url, you need one or the other buddy</font><br>";
+ return 0;
}
$getfile = "";
if($fileurl) {
$getfile = file_get_contents($_REQUEST["fileurl"]);
- }
+ }
if($uploaded||$fileurl) {
echo "Got a file named $fname, $lname";
}
- $pkgs = unserialize($this->config->getConfigVar("adhocpackages"));
+ $myname = $_REQUEST["pkgname"];
+ $myarch = $_REQUEST["arch"];
+ $mytype = $_REQUEST["type"];
+ $myfileurl = $ultfileurl;
+
+ if(isset($_REQUEST["origpkg"])) if($_REQUEST["origpkg"] != -1) {
+ $n = $_REQUEST["origpkg"];
+ $this->config->addData("adhocpkgdata", "$n", "arch", $myarch);
+ $this->config->addData("adhocpkgdata", "$n", "type", $mytype);
+ $outputfile = "$repostore/adhoc/$n.$myarch.$mytype";
+ if($uploaded) {
+ copy("$fname", "$outputfile");
+ } else {
+ file_put_contents("$outputfile", $getfile);
+ }
+
+ global $WEB_ROOT_FS, $URL_HANDLERS, $BASE_URL;
+ header("Location: $BASE_URL/adhoc");
+ return 0;
+ }
- $n = -1;
- foreach($pkgs as $key => $var) {
- $n = $key;
+ // assuming add a new
+ $n = 0;
+ $pkglist = $this->config->getData("adhoc", "pkglist");
+ if($pkglist !== false) foreach($pkglist as $key => $val) {
+ $n = $val["name"]+1;
}
- $n++;
+
+ error_log("would add package as $n");
- echo "Would add package as $n";
+ $this->config->addData("adhoc", "pkglist", "$myname", $n);
+ $this->config->addData("adhocpkgdata", "$n", "arch", $myarch);
+ $this->config->addData("adhocpkgdata", "$n", "type", $mytype);
- $pkgs[$n]["name"] = $_REQUEST["pkgname"];
- $pkgs[$n]["arch"] = $_REQUEST["arch"];
- $pkgs[$n]["type"] = $_REQUEST["type"];
- $pkgs[$n]["fileurl"] = $ultfileurl;
-
+
+ $outputfile = "$repostore/adhoc/$n.$myarch.$mytype";
if($uploaded) {
- copy("$fname", "$repostore/adhoc/$n");
+ copy("$fname", "$outputfile");
} else {
- file_put_contents("$repostore/adhoc/$n", $fetfile);
+ file_put_contents("$outputfile", $getfile);
}
- $this->config->setConfigVar("adhocpackages", serialize($pkgs));
- $this->config->saveConfig();
-
- echo "Done";
-
-
- echo "<pre>";
- print_r($_SERVER);
- print_r($_FILES);
- print_r($_REQUEST);
- print_r($pkgs);
- echo "</pre>";
+ global $WEB_ROOT_FS, $URL_HANDLERS, $BASE_URL;
+ header("Location: $BASE_URL/adhoc");
+
}
{
echo "<h2>Packages</h2>";
- $pkgs = unserialize($this->config->getConfigVar("adhocpackages"));
- echo "<table border=\"1\"><tr><th>Name</th><th>Package Types</th><th>Architecture</th><th>Control</th></tr>";
-
- foreach($pkgs as $key => $var) {
- $name = $var["pkgname"];
- $arch = $var["arch"];
- $type = $var["type"];
- echo "<tr><td>$name</td><td>$type</td><td>$arch</td><td>Add another arch <a href=\"?action=deletepkg&pkgid=$key\">Delete</a></td></tr>";
+ /* TODO: to new config
+ $pkgs = unserialize($this->config->getConfig("adhocpackages"));
+ */
+ $pkgs = $this->config->getData("adhoc");
+ //print_r($pkgs);
+ if($pkgs !== false) {
+ echo "<table border=\"1\"><tr><th>Name</th><th>Package Types</th><th>Architecture</th><th>Control</th></tr>";
+
+ foreach($pkgs as $key => $var) {
+ $name = $var["name"];
+ $id = $var["val"];
+ $arch_v = $this->config->getData("adhocpkgdata", $id, "arch");
+ $arch = $arch_v[0]["val"];
+ $type_v = $this->config->getData("adhocpkgdata", $id, "type");
+ $type = $type_v[0]["val"];
+ echo "<tr><td>$name</td><td>$type</td><td>$arch</td><td><a href=\"?action=deletepkg&pkgid=$id&pkgname=$name\">Delete</a></td></tr>";
+ if(count($arch_v) > 1) {
+ for($i=1; $i < count($arch_v); $i++) {
+ $arch = $arch_v[$i]["val"];
+ $type_v = $this->config->getData("adhocpkgdata", $id, "type");
+ $type = $type_v[$i]["val"];
+ echo "<tr><td></td><td>$type</td><td>$arch</td><td></td></tr>";
+ }
+ }
+ }
+ echo "<table>";
}
- echo "<table>";
-
+
$kos = getKnownOSList();
echo "<hr>";
echo "<h3>Add a Package</h3><br>";
echo "<form enctype=\"multipart/form-data\" method=\"post\" action=\"?action=addpackage\">";
- echo "Name <input type=\"text\" name=\"pkgname\"> or Add version of <select name=\"origpkg\"></select><br>";
+ echo "Name <input type=\"text\" name=\"pkgname\">";
+ if($pkgs !== false) {
+ echo "or Add version of <select name=\"origpkg\">";
+ echo "<option value=\"-1\" default>None</option>";
+ foreach($pkgs as $key=>$var) {
+ $id = $var["val"];
+ $name = $var["name"];
+ echo "<option value=\"$id\">$name</option>";
+ }
+ echo "</select><br>";
+ }
+ else echo "<br>";
echo "Arch <select name=\"arch\">";
foreach($kos["pkgarch"] as $key => $val) {
echo "<option value=\"$key\">$val</option>";