X-Git-Url: http://git.pjr.cc/?a=blobdiff_plain;f=plugins%2Fadhoc.php;h=7b56ef8a00d5f28362f6d7d5ce89b04c5449df37;hb=155c0a1bc81dff4fc1bb4bcebb754c961e457499;hp=cfffa2e03f3bab71231b12664981f18dd87a3e63;hpb=055302909804ea2ad974c15ade944c74070ddedf;p=glcas.git
diff --git a/plugins/adhoc.php b/plugins/adhoc.php
index cfffa2e..7b56ef8 100644
--- a/plugins/adhoc.php
+++ b/plugins/adhoc.php
@@ -4,6 +4,10 @@ error_log("adhoc loaded");
global $URL_HANDLERS;
$URL_HANDLERS["adhoc.*"] = "GLCASAdhoc";
+global $BASE_URL, $MENU_ITEMS;
+$MENU_ITEMS["20adhoc"]["name"] = "Adhoc Packages";
+$MENU_ITEMS["20adhoc"]["link"] = "$BASE_URL/adhoc";
+
class GLCASAdhoc {
function __construct($config)
@@ -11,7 +15,7 @@ class GLCASAdhoc {
$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");
@@ -21,12 +25,27 @@ 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":
error_log("in updaterepo");
GLCASpageBuilder($this,"addPackage");
return;
+ case "deletepkg":
+ error_log("in delete pkg");
+ GLCASpageBuilder($this, "delPackage");
+ return;
}
}
@@ -35,15 +54,49 @@ 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"];
+
+ $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");
+
+
+ }
+
function addPackage($url)
{
- $repostore = $this->config->getConfigVar("storagelocation");
+ $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;
+ }
}
@@ -70,70 +123,115 @@ 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->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 "
"; - 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"); + } function mainBody($url) { echo "
Name | Package Types | Architecture | Control |
---|---|---|---|
$name | $type | $arch | Delete |
$type | $arch |