X-Git-Url: http://git.pjr.cc/?p=glcas.git;a=blobdiff_plain;f=plugins%2Fadhoc.php;h=7b56ef8a00d5f28362f6d7d5ce89b04c5449df37;hp=6b7d4c1f045cd895bbe9d110af9a91e1b5c88af0;hb=155c0a1bc81dff4fc1bb4bcebb754c961e457499;hpb=c9cd2c7a60256b5d5d82610424c48706695bad5d diff --git a/plugins/adhoc.php b/plugins/adhoc.php index 6b7d4c1..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,61 +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]["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->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 "

Packages

"; - + + /* TODO: to new config + $pkgs = unserialize($this->config->getConfig("adhocpackages")); + */ + $pkgs = $this->config->getData("adhoc"); + //print_r($pkgs); + if($pkgs !== false) { + echo ""; + + 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 ""; + 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 ""; + } + } + } + echo "
NamePackage TypesArchitectureControl
$name$type$archDelete
$type$arch
"; + } + $kos = getKnownOSList(); echo "
"; echo "

Add a Package


"; echo ""; - echo "Name
"; + echo "Name "; + if($pkgs !== false) { + echo "or Add version of
"; + } + else echo "
"; echo "Arch "; echo ""; } + + private $config; } ?>