3 error_log("adhoc loaded");
6 $URL_HANDLERS["adhoc.*"] = "GLCASAdhoc";
7 global $BASE_URL, $MENU_ITEMS;
8 $MENU_ITEMS["20adhoc"]["name"] = "Adhoc Packages";
9 $MENU_ITEMS["20adhoc"]["link"] = "$BASE_URL/adhoc";
13 function __construct($config)
15 $this->config = $config;
16 error_log("constructor for GLCASAdhoc");
18 $repostore = $this->config->getConfigVar("storagelocation");
19 if(!is_dir("$repostore/adhoc")) {
20 error_log("Creating dir for adhoc component");
21 mkdir("$repostore/adhoc");
28 if(isset($_REQUEST["action"])) {
29 switch($_REQUEST["action"]) {
31 error_log("in updaterepo");
32 GLCASpageBuilder($this,"addPackage");
35 error_log("in delete pkg");
36 GLCASpageBuilder($this, "delPackage");
41 GLCASpageBuilder($this,"mainBody");
46 function delPackage($url)
48 $repostore = $this->config->getConfigVar("storagelocation");
50 $pkgid = $_REQUEST["pkgid"];
52 $pkgs = unserialize($this->config->getConfigVar("adhocpackages"));
54 if(isset($pkgs[$pkgid])) {
56 $this->config->setConfigVar("adhocpackages", serialize($pkgs));
57 $this->config->saveConfig();
60 global $WEB_ROOT_FS, $URL_HANDLERS, $BASE_URL;
61 header("Location: $BASE_URL/adhoc/");
65 function addPackage($url)
67 $repostore = $this->config->getConfigVar("storagelocation");
69 if(!isset($_REQUEST["pkgname"])) {
70 echo "<font color=\"red\">Error: No package name set</font><br>";
72 if($_REQUEST["pkgname"] == "") {
73 echo "<font color=\"red\">Error: Package name cant be blank</font><br>";
80 if($_FILES["uploadedfile"]["name"] == "") {
82 $ultfileurl = "uploaded";
84 $fname = $_FILES["uploadedfile"]["tmp_name"];
85 $lname = $_FILES["uploadedfile"]["name"];
89 if($_REQUEST["fileurl"] == "") {
91 $ultfileurl = $_REQUEST["fileurl"];
93 $fname = $_REQUEST["fileurl"];
94 $lname = basename($fname);
98 if(!$uploaded && !$fileurl) {
99 echo "<font color=\"red\">Error: no uploaded file and no file url, you need one or the other buddy</font><br>";
104 $getfile = file_get_contents($_REQUEST["fileurl"]);
107 if($uploaded||$fileurl) {
108 echo "Got a file named $fname, $lname";
111 $pkgs = unserialize($this->config->getConfigVar("adhocpackages"));
114 foreach($pkgs as $key => $var) {
119 echo "Would add package as $n";
121 $pkgs[$n]["name"] = $_REQUEST["pkgname"];
122 $pkgs[$n]["arch"] = $_REQUEST["arch"];
123 $pkgs[$n]["type"] = $_REQUEST["type"];
124 $pkgs[$n]["fileurl"] = $ultfileurl;
127 copy("$fname", "$repostore/adhoc/$n");
129 file_put_contents("$repostore/adhoc/$n", $fetfile);
132 $this->config->setConfigVar("adhocpackages", serialize($pkgs));
133 $this->config->saveConfig();
147 function mainBody($url)
149 echo "<h2>Packages</h2>";
151 $pkgs = unserialize($this->config->getConfigVar("adhocpackages"));
152 echo "<table border=\"1\"><tr><th>Name</th><th>Package Types</th><th>Architecture</th><th>Control</th></tr>";
154 foreach($pkgs as $key => $var) {
155 $name = $var["pkgname"];
156 $arch = $var["arch"];
157 $type = $var["type"];
158 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>";
162 $kos = getKnownOSList();
165 echo "<h3>Add a Package</h3><br>";
166 echo "<form enctype=\"multipart/form-data\" method=\"post\" action=\"?action=addpackage\">";
167 echo "Name <input type=\"text\" name=\"pkgname\"> or Add version of <select name=\"origpkg\"></select><br>";
168 echo "Arch <select name=\"arch\">";
169 foreach($kos["pkgarch"] as $key => $val) {
170 echo "<option value=\"$key\">$val</option>";
172 echo "</select><br>";
173 echo "Type <select name=\"type\">";
174 foreach($kos["pkg"] as $key => $val) {
175 echo "<option value=\"$key\">$val</option>";
177 echo "</select><br>";
178 echo "Upload <input type=\"file\" name=\"uploadedfile\"><br>";
179 echo "From URL <input type=\"text\" name=\"fileurl\"><br>";
180 echo "<input type=\"submit\" name=\"add\" value=\"Add\">";