X-Git-Url: http://git.pjr.cc/?p=glcas.git;a=blobdiff_plain;f=plugins%2Fadhoc.php;fp=plugins%2Fadhoc.php;h=7b56ef8a00d5f28362f6d7d5ce89b04c5449df37;hp=9bfbb65451b6109694a2b3a47f6f71ed2eeb781c;hb=155c0a1bc81dff4fc1bb4bcebb754c961e457499;hpb=58365ecc64413d416dadaa82607e57a1f76eca7e
diff --git a/plugins/adhoc.php b/plugins/adhoc.php
index 9bfbb65..7b56ef8 100644
--- a/plugins/adhoc.php
+++ b/plugins/adhoc.php
@@ -25,6 +25,17 @@ class GLCASAdhoc {
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":
@@ -43,22 +54,31 @@ class GLCASAdhoc {
}
+ 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->getConfig("storagelocation");
$pkgid = $_REQUEST["pkgid"];
+ $pkgname = $_REQUEST["pkgname"];
- $pkgs = unserialize($this->config->getConfig("adhocpackages"));
-
- if(isset($pkgs[$pkgid])) {
- unset($pkgs[$pkgid]);
- $this->config->setConfig("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");
+
}
@@ -67,10 +87,16 @@ class GLCASAdhoc {
$repostore = $this->config->getConfig("storagelocation");
if(!isset($_REQUEST["pkgname"])) {
- echo "Error: No package name set
";
+ if(isset($_REQUEST["origpkg"])) if($_REQUEST["origpkg"] == -1) {
+ echo "Error: No package name set
";
+ return 0;
+ }
}
if($_REQUEST["pkgname"] == "") {
- echo "Error: Package name cant be blank
";
+ if(isset($_REQUEST["origpkg"])) if($_REQUEST["origpkg"] == -1) {
+ echo "Error: Package name cant be blank
";
+ return 0;
+ }
}
@@ -97,50 +123,63 @@ class GLCASAdhoc {
if(!$uploaded && !$fileurl) {
echo "Error: no uploaded file and no file url, you need one or the other buddy
";
+ 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->getConfig("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->setConfig("adhocpackages", serialize($pkgs));
- $this->config->saveConfig();
-
- echo "Done";
-
-
- echo "
";
- print_r($_SERVER);
- print_r($_FILES);
- print_r($_REQUEST);
- print_r($pkgs);
- echo "
";
+ global $WEB_ROOT_FS, $URL_HANDLERS, $BASE_URL;
+ header("Location: $BASE_URL/adhoc");
+
}
@@ -148,23 +187,51 @@ class GLCASAdhoc {
{
echo "Packages
";
+ /* TODO: to new config
$pkgs = unserialize($this->config->getConfig("adhocpackages"));
- echo "Name | Package Types | Architecture | Control |
";
-
- foreach($pkgs as $key => $var) {
- $name = $var["pkgname"];
- $arch = $var["arch"];
- $type = $var["type"];
- echo "$name | $type | $arch | Add another arch Delete |
";
+ */
+ $pkgs = $this->config->getData("adhoc");
+ //print_r($pkgs);
+ if($pkgs !== false) {
+ echo "Name | Package Types | Architecture | Control |
";
+
+ 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 "$name | $type | $arch | Delete |
";
+ 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 " | $type | $arch | |
";
+ }
+ }
+ }
+ echo "";
}
- echo "";
-
+
$kos = getKnownOSList();
echo "
";
echo "Add a Package
";
echo "