X-Git-Url: http://git.pjr.cc/?p=glcas.git;a=blobdiff_plain;f=plugins%2Frepo.php;fp=plugins%2Frepo.php;h=0f325049229df92c7b70e530a4d715b70c2d1f52;hp=f794c29496f6aa3a03faf9264e0eb8cf88804625;hb=c9cd2c7a60256b5d5d82610424c48706695bad5d;hpb=143c8289c2a75a9ff8d1db6136baa56fbb8ac19f diff --git a/plugins/repo.php b/plugins/repo.php index f794c29..0f32504 100644 --- a/plugins/repo.php +++ b/plugins/repo.php @@ -27,6 +27,13 @@ class GLCASRepo { foreach($uconf as $rkey => $repo) { echo "Repo $rkey: ".$repo["desc"]."
"; + if(isset($repo["frozen"])) { + error_log("repo froze set"); + $repofrozen = $repo["frozen"]; + } else { + error_log("repo froze not set"); + $repofrozen = false; + } if(!isset($repo["expiretime"])) { echo " - Expire time not set, setting to 2 days by default
"; $uconf[$rkey]["expiretime"] = 2; @@ -41,44 +48,54 @@ class GLCASRepo { $this->config->setConfigVar("repodata", serialize($uconf)); $this->config->saveConfig(); } else if($repo["repotype"] == "YUM") { - if(file_exists("$repostore/$rkey/repodata/repoupdate.lock")) { - echo " - Repo locked for update
"; - - } - - // we still do this next bit, even if its locked because it may be a stray file - echo " - Expire time is ".$repo["expiretime"]." days, checking repo
"; - error_log("checking $repostore/$rkey/repodata/repomd.xml"); - $tdiff = time() - filemtime("$repostore/$rkey/repodata/repomd.xml"); - $maxtdiff = $repo["expiretime"] * 24 * 3600; - if($tdiff > $maxtdiff) { - echo " - updating repo
"; - $this->updateRepo($rkey); + if($repofrozen) { + error_log("repo frozen"); + echo " - Repo Frozen
"; } else { - echo " - not updating repo
"; + if(file_exists("$repostore/$rkey/repodata/repoupdate.lock")) { + echo " - Repo locked for update
"; + + } + + // we still do this next bit, even if its locked because it may be a stray file + echo " - Expire time is ".$repo["expiretime"]." days, checking repo
"; + error_log("checking $repostore/$rkey/repodata/repomd.xml"); + $tdiff = time() - filemtime("$repostore/$rkey/repodata/repomd.xml"); + $maxtdiff = $repo["expiretime"] * 24 * 3600; + if($tdiff > $maxtdiff) { + echo " - updating repo
"; + $this->updateRepo($rkey); + } else { + echo " - not updating repo
"; + } } } else if($repo["repotype"] == "APT") { - if(file_exists("$repostore/$rkey/update.lock")) { - echo " - Repo locaked for update
"; - } - echo " - Expire time is ".$repo["expiretime"]." days, checking repo
"; - $maxtdiff = $repo["expiretime"] * 24 * 3600; - // now we check for outdated release files - $dh = opendir("$repostore/$rkey/dists/"); - $needsupdate = false; - while(($fn = readdir($dh))!==false) { - if($fn != "." && $fn != "..") { - if(file_exists("$repostore/$rkey/dists/$fn/Release")) { - $tdiff = time() - filemtime("$repostore/$rkey/dists/$fn/Release"); - if($tdiff > $maxtdiff) $needsupdate = true; + if($repofrozen) { + error_log("repo frozen"); + echo " - Repo Frozen
"; + } else { + if(file_exists("$repostore/$rkey/update.lock")) { + echo " - Repo locaked for update
"; + } + echo " - Expire time is ".$repo["expiretime"]." days, checking repo
"; + $maxtdiff = $repo["expiretime"] * 24 * 3600; + // now we check for outdated release files + $dh = opendir("$repostore/$rkey/dists/"); + $needsupdate = false; + while(($fn = readdir($dh))!==false) { + if($fn != "." && $fn != "..") { + if(file_exists("$repostore/$rkey/dists/$fn/Release")) { + $tdiff = time() - filemtime("$repostore/$rkey/dists/$fn/Release"); + if($tdiff > $maxtdiff) $needsupdate = true; + } } } - } - if($needsupdate) { - echo " - Spawn updater
"; - $this->updateRepo($rkey); - } else { - echo " - Up to date
"; + if($needsupdate) { + echo " - Spawn updater
"; + $this->updateRepo($rkey); + } else { + echo " - Up to date
"; + } } } } @@ -725,6 +742,36 @@ class GLCASRepo { return $glt; } + function freezeRepo($rkey) + { + + $uconf = $this->config->getConfigVar("repodata"); + $repostore = $this->config->getConfigVar("storagelocation"); + + if($uconf !== false) { + $conf = unserialize($uconf); + foreach($conf as $key => $vla) { + if($key == $rkey) { + if(isset($conf["$rkey"]["frozen"])) { + if($conf["$rkey"]["frozen"]) { + $conf["$rkey"]["frozen"] = false; + error_log("Unfreeze repo"); + } else { + $conf["$rkey"]["frozen"] = true; + error_log("freeze repo"); + } + } else { + $conf["$rkey"]["frozen"] = true; + } + $nconf = serialize($conf); + error_log("freeze repo as $rkey"); + $this->config->setConfigVar("repodata", $nconf); + $this->config->saveConfig(); + } + } + } + } + function deleteRepo($rkey) { $uconf = $this->config->getConfigVar("repodata"); @@ -793,6 +840,10 @@ class GLCASRepo { { // we only do yum yet $repod = $this->getRepo($repokey); + if(isset($repod["frozen"])) if($repod["frozen"]) { + error_log("in update repo for frozen repo, ignore update"); + return; + } error_log("in update repo");