X-Git-Url: http://git.pjr.cc/?a=blobdiff_plain;f=plugins%2Frepo.php;h=0f325049229df92c7b70e530a4d715b70c2d1f52;hb=486854e1f39db5dd0fe2f317d2a586dd6ac39124;hp=f794c29496f6aa3a03faf9264e0eb8cf88804625;hpb=143c8289c2a75a9ff8d1db6136baa56fbb8ac19f;p=glcas.git
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");