$actionurl = "$url/repodata/repomd.xml";
$repomdxml = file_get_contents($actionurl);
-file_put_contents("$file/repodata/repomd.xml", $repomdxml);
+if(file_exists("$file/repodata/repomd.xml.new")) unlink("$file/repodata/repomd.xml.new");
+file_put_contents("$file/repodata/repomd.xml.new", $repomdxml);
-$xml = simplexml_load_file("$file/repodata/repomd.xml");
+$xml = simplexml_load_file("$file/repodata/repomd.xml.new");
foreach($xml as $key => $var) {
}
unlink("$file/repodata/repoupdate.lock");
+if(file_exists("$file/repodata/repomd.xml")) {
+ unlink("$file/repodata/repomd.xml");
+}
+rename("$file/repodata/repomd.xml.new", "$file/repodata/repomd.xml")
+// TODO: check for outdated repodata files and delete
?>
\ No newline at end of file
}
}
+function glcas_getWebConfigPath()
+{
+ global $WEB_ROOT_FS, $URL_HANDLERS, $BASE_URL;
+
+ // if you wish to add more places to find webconfig, add them here.
+ $configpath = false;
+ if(file_exists($WEB_ROOT_FS."/../var/glcas/webconfig")) return realpath($WEB_ROOT_FS."/../var/glcas/webconfig");
+ if(file_exists("/var/lib/glcas/webconfig")) return realpath("/var/lib/glcas/webconfig");
+ if(file_exists("/var/run/glcas/webconfig")) return realpath("/var/run/glcas/webconfig");
+
+ return $configpath;
+ //return false;
+}
+
?>
\ No newline at end of file
}
+function glcas_startInstaller()
+{
+ global $WEB_ROOT_FS, $BASE_URL;
+
+ $uid = posix_geteuid();
+ $gid = posix_getegid();
+ $uid_a = posix_getpwuid($uid);
+ $uid = $uid_a["name"];
+
+ $gid_a = posix_getgrgid($gid);
+ $gid = $gid_a["name"];
+ error_log("user id is $uid, group id is $gid");
+
+?>
+<html>
+<h1>Welcome to GLCAS</h1>
+Welcome to GLCAS, I cant find my configuration file so im assuming you installing me for the first time<br>
+If this is not correct then we have a big problem that needs to be solved, i hope you have a backup of the old
+config, cause that will make life easier.<br><br>
+However, if this is the first time you have run this app, then all is good with the world. All I need right
+now is a place where i can store my config. I search the following directories for the location of my
+configuration (webconfig)<br>
+<li> /var/run/glcas/
+<li> /var/lib/glcas/
+<li> <?php echo $WEB_ROOT_FS?>/var/glcas/
+<br><br>
+
+As root, you must now create one of these directories and change the ownership of the directory to the web owner.
+(chown <?php echo $uid?>:<?php echo $gid ?> the_path_you_choose).<br>
+
+Now, tell me where you want me to create the webconfig file:<br>
+<form method="post">
+<select name="installdir">
+<option value="/var/run/glcas">/var/run/glcas</option>
+<option value="/var/lib/glcas">/var/lib/glcas</option>
+<option value="<?php echo $WEB_ROOT_FS?>/var/glcas/"><?php echo $WEB_ROOT_FS?>/var/glcas/</option>
+</select>
+<input type="submit" name="Go" value="Go">
+
+</select>
+</form>
+
+</html>
+<?php
+}
+
?>
\ No newline at end of file
global $URL_HANDLERS;
$URL_HANDLERS["admin.*"] = "GLCASAdmin";
+global $CRON_CLASSES;
+$CRON_CLASSES["GLCASAdmin"] = "GLCASAdmin";
class GLCASAdmin {
function __construct($config)
GLCASpageBuilder($this, "body");
}
+ function cron()
+ {
+ echo "ADMIN CRON: nothing to see here<br>";
+ // TODO: touch cronstamp file here
+ }
+
function body($url)
{
// for the main admin body, we hae the following components
$configpath = "";
// TODO: do this better
-if(file_exists($WEB_ROOT_FS."/../var")) {
-
- // is it there?
- if(file_exists($WEB_ROOT_FS."/../var/glcas/webconfig")) {
- $configpath = realpath("$WEB_ROOT_FS/../var/glcas/webconfig");
- } else {
- // if not, attempt to create
- if(!file_exists($WEB_ROOT_FS."/../var/glcas")) {
- mkdir($WEB_ROOT_FS."/../var/glcas");
- }
- // success!
- touch("$WEB_ROOT_FS/../var/glcas/webconfig");
- $configpath = realpath("$WEB_ROOT_FS/../var/glcas/webconfig");
- }
-}
-
+$configpath = glcas_getWebConfigPath();
header("Accept-Ranges: bytes");
+if($configpath == false) {
+ glcas_startInstaller();
+ return;
+}
+
$glconfig = new GLCASConfig();
$glconfig->loadConfig($configpath);
$webResponder = new GLCASWeb($glconfig);