X-Git-Url: http://git.pk910.de/?p=GITManagedWebpage.git;a=blobdiff_plain;f=GITManagedWebpage.class.php;h=0522cc8ea39ac14b08691be4753000d503ef912a;hp=5b15d8cbf32293e6209683935ce3756d0628e306;hb=544c09a8193efa6a76865150797bec1bd4fba1c1;hpb=33287094dd6fb43d7329c0f06507db63afbbc35b diff --git a/GITManagedWebpage.class.php b/GITManagedWebpage.class.php index 5b15d8c..0522cc8 100644 --- a/GITManagedWebpage.class.php +++ b/GITManagedWebpage.class.php @@ -103,6 +103,16 @@ class GITManagedWebpage { $this->config_changed = true; } + private function checkConfigIntegrity() { + foreach($this->config as $key => $value) { + if(substr($key, 0, strlen('branch_')) == 'branch_') { + if(!file_exists($this->workdir.$key)) { + unset($this->config['key']); + } + } + } + } + /* private function getConfig($name) * get an option from the configuration */ @@ -113,6 +123,7 @@ class GITManagedWebpage { if(file_exists($this->workdir."config.txt")) { $config_txt = @file_get_contents($this->workdir."config.txt"); $this->config = unserialize($config_txt); + $this->checkConfigIntegrity(); } else { $this->config = array(); return null; @@ -228,7 +239,7 @@ class GITManagedWebpage { return false; } - private function updateBranch($branch, $path) { + private function updateBranch($branch, $path, $force = false) { if(substr($path, -1) != '/') $path .= '/'; $current_branch = str_replace(array("\r", "\n"), array("", ""), $this->gitcmd("rev-parse", "--abbrev-ref", "HEAD")); @@ -241,7 +252,7 @@ class GITManagedWebpage { $deleted_files = array(); if(($current_version = $this->getConfig('version_'.$branch))) { - if($current_version == $newest_version) + if($current_version == $newest_version && !$force) return; else { $override_all = true; @@ -291,20 +302,18 @@ class GITManagedWebpage { return; if(!$this->branchExists($branch)) { - if($this->branchExists('origin/'.$branch)) - $branch = 'origin/'.$branch; - else + if(!$this->branchExists('origin/'.$branch)) return false; } $this->setActiveBranch($branch, $remember); if(!$this->localBranchPath($branch)) { $dir = $this->localBranchPath($branch, true); - $this->updateBranch($branch, $dir); + $this->updateBranch($branch, $dir, true); } } - public function execute($file = null) { + public function getExecFile($file = null) { if($this->loopedcall) return; define("GITMANAGED_EXECUTED", true); @@ -319,10 +328,12 @@ class GITManagedWebpage { if($active_branch != $default_branch) { if(!($dir = $this->localBranchPath($branch))) { $dir = $this->localBranchPath($active_branch, true); - $this->updateBranch($active_branch, $dir); + $this->updateBranch($active_branch, $dir, true); } - include_once($dir.$file); - die(); + chdir($dir); + return $dir.$file; + } else { + return $file; } }