--- /dev/null
+<?php
+
+error_log("adhoc loaded");
+
+global $URL_HANDLERS;
+$URL_HANDLERS["adhoc.*"] = "GLCASAdhoc";
+
+class GLCASAdhoc {
+ function __construct($config)
+ {
+ $this->config = $config;
+ error_log("constructor for GLCASAdhoc");
+
+ $repostore = $this->config->getConfigVar("storagelocation");
+ if(!is_dir("$repostore/adhoc")) {
+ error_log("Creating dir for adhoc component");
+ mkdir("$repostore/adhoc");
+ }
+
+ }
+
+ function go($url)
+ {
+ if(isset($_REQUEST["action"])) {
+ switch($_REQUEST["action"]) {
+ case "addpackage":
+ error_log("in updaterepo");
+ GLCASpageBuilder($this,"addPackage");
+ return;
+ }
+ }
+
+ GLCASpageBuilder($this,"mainBody");
+ return;
+
+ }
+
+ function addPackage($url)
+ {
+ $repostore = $this->config->getConfigVar("storagelocation");
+
+ if(!isset($_REQUEST["pkgname"])) {
+ echo "<font color=\"red\">Error: No package name set</font><br>";
+ }
+ if($_REQUEST["pkgname"] == "") {
+ echo "<font color=\"red\">Error: Package name cant be blank</font><br>";
+ }
+
+
+ $fname = "";
+ $lname = "";
+ $ultfileurl = "";
+ if($_FILES["uploadedfile"]["name"] == "") {
+ $uploaded = false;
+ $ultfileurl = "uploaded";
+ } else {
+ $fname = $_FILES["uploadedfile"]["tmp_name"];
+ $lname = $_FILES["uploadedfile"]["name"];
+ $uploaded = true;
+ }
+
+ if($_REQUEST["fileurl"] == "") {
+ $fileurl = false;
+ $ultfileurl = $_REQUEST["fileurl"];
+ } else {
+ $fname = $_REQUEST["fileurl"];
+ $lname = basename($fname);
+ $fileurl = true;
+ }
+
+ if(!$uploaded && !$fileurl) {
+ echo "<font color=\"red\">Error: no uploaded file and no file url, you need one or the other buddy</font><br>";
+ }
+
+ $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"));
+
+ $n = -1;
+ foreach($pkgs as $key => $var) {
+ $n = $key;
+ }
+ $n++;
+
+ echo "Would add package as $n";
+
+ $pkgs[$n]["arch"] = $_REQUEST["arch"];
+ $pkgs[$n]["type"] = $_REQUEST["type"];
+ $pkgs[$n]["fileurl"] = $ultfileurl;
+
+ if($uploaded) {
+ copy("$fname", "$repostore/adhoc/$n");
+ } else {
+ file_put_contents("$repostore/adhoc/$n", $fetfile);
+ }
+
+ $this->config->saveConfig();
+
+ echo "Done";
+
+
+ echo "<pre>";
+ print_r($_SERVER);
+ print_r($_FILES);
+ print_r($_REQUEST);
+ print_r($pkgs);
+ echo "</pre>";
+ }
+
+
+ function mainBody($url)
+ {
+ echo "<h2>Packages</h2>";
+
+ $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\"><br>";
+ echo "Arch <select name=\"arch\">";
+ foreach($kos["pkgarch"] as $key => $val) {
+ echo "<option value=\"$key\">$val</option>";
+ }
+ echo "</select><br>";
+ echo "Type <select name=\"type\">";
+ foreach($kos["pkg"] as $key => $val) {
+ echo "<option value=\"$key\">$val</option>";
+ }
+ echo "</select><br>";
+ echo "Upload <input type=\"file\" name=\"uploadedfile\"><br>";
+ echo "From URL <input type=\"text\" name=\"fileurl\"><br>";
+ echo "<input type=\"submit\" name=\"add\" value=\"Add\">";
+ echo "</form>";
+ }
+}
+
+?>