/[dehs]/trunk/dehs_pg.php
ViewVC logotype

Diff of /trunk/dehs_pg.php

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 66 by atomo64-guest, Sun Dec 9 02:03:33 2007 UTC revision 77 by atomo64-guest, Sun Dec 16 01:53:08 2007 UTC
# Line 58  if (!function_exists('file_put_contents' Line 58  if (!function_exists('file_put_contents'
58      }      }
59  }  }
60    
61  if (in_array("-db_add",$argv))  db_add((isset($argv[2])?$argv[2]:''), false);  if (in_array("-db_add",$argv))  db_add((!empty($argv[2])?$argv[2]:''), false);
62      elseif (in_array("-db_query",$argv))  db_query($argv[2],$argv[3] );      elseif (in_array("-db_query",$argv))  db_query($argv[2],(!empty($argv[3])?$argv[3]:'%') );
63      elseif (in_array("-dl_diffs",$argv) || in_array("-keep_diff",$argv))  dl_diffs($argv[2]);      elseif (in_array("-dl_diffs",$argv) || in_array("-keep_diff",$argv))  dl_diffs($argv[2]);
64      elseif (in_array("-keep_sources",$argv) || in_array("-download_sources",$argv))  download_sources();      elseif (in_array("-keep_sources",$argv) || in_array("-download_sources",$argv))  download_sources();
65      elseif (in_array("-db_popcon",$argv))  db_popcon($argv[2]);      elseif (in_array("-db_popcon",$argv))  db_popcon($argv[2]);
# Line 73  if (in_array("-db_add",$argv))  db_add(( Line 73  if (in_array("-db_add",$argv))  db_add((
73      elseif (in_array("-clear_db",$argv))  clear_db();      elseif (in_array("-clear_db",$argv))  clear_db();
74      elseif (in_array("-db_up_error",$argv))  db_up_error();      elseif (in_array("-db_up_error",$argv))  db_up_error();
75      elseif (in_array("-up_changes",$argv))  up_changes($argv[2], true);      elseif (in_array("-up_changes",$argv))  up_changes($argv[2], true);
76      elseif (in_array("-watchf",$argv) || in_array("-wwiz",$argv))  watch_wizard($argv[2]);      elseif (in_array("-watchf",$argv) || in_array("-wwiz",$argv))  watch_wizard((!empty($argv[2])?$argv[2]:''));
77      elseif (in_array("-kb_total",$argv))  print "Diff      elseif (in_array("-kb_total",$argv))  print "Diff
78  #stat_up_error();  #stat_up_error();
79  #stat_up_error();to download Kb => " . kb_total($argv[2]) . "\n" ;  #stat_up_error();to download Kb => " . kb_total($argv[2]) . "\n" ;
# Line 207  function db_add($initial='', $clear_db = Line 207  function db_add($initial='', $clear_db =
207                              $matches[10]=pg_escape_string($matches[10]);                              $matches[10]=pg_escape_string($matches[10]);
208                          }                          }
209                          @pg_exec($db,"INSERT INTO pkgs_atsrc (name,dist) VALUES ('$matches[1]','$dist')") OR die_status("Temp table pkgs_atsrc query error");                          @pg_exec($db,"INSERT INTO pkgs_atsrc (name,dist) VALUES ('$matches[1]','$dist')") OR die_status("Temp table pkgs_atsrc query error");
210                          $rst=@pg_exec($db, "INSERT INTO pkgs (name,version,maint,dir,md5_atsource,bytes,dist,section,uploaders) VALUES ('$matches[1]','$matches[4]','$matches[5]','$matches[6]','$matches[7]','$matches[8]','$dist','$section','$matches[10]')") ;                          $rst=@pg_exec($db, "INSERT INTO pkgs (name,version,dversionmangled,maint,dir,md5_atsource,bytes,dist,section,uploaders) VALUES ('$matches[1]','$matches[4]','$matches[4]','$matches[5]','$matches[6]','$matches[7]','$matches[8]','$dist','$section','$matches[10]')") ;
211                          if (!$rst) {                          if (!$rst) {
212                              $rst=@pg_exec($db, "UPDATE pkgs SET name='$matches[1]',version='$matches[4]',maint='$matches[5]',dir='$matches[6]',md5_atsource='$matches[7]',bytes='$matches[8]',dist='$dist',section='$section',uploaders='$matches[10]' WHERE name='$matches[1]' AND dist='$dist'") OR die_status("\nDb adding error =>" . pg_last_error() . "\n");                              $rst=@pg_exec($db, "UPDATE pkgs SET name='$matches[1]',version='$matches[4]',dversionmangled='$matches[4]',maint='$matches[5]',dir='$matches[6]',md5_atsource='$matches[7]',bytes='$matches[8]',dist='$dist',section='$section',uploaders='$matches[10]' WHERE name='$matches[1]' AND dist='$dist'") OR die_status("\nDb adding error =>" . pg_last_error() . "\n");
213                          }                          }
214                          $bin_names=split(",", $matches[2]);                          $bin_names=split(",", $matches[2]);
215                          foreach ($bin_names as $bin_name) {                          foreach ($bin_names as $bin_name) {
# Line 234  function db_add($initial='', $clear_db = Line 234  function db_add($initial='', $clear_db =
234      clear_db($db);      clear_db($db);
235      pg_close($db);      pg_close($db);
236  }  }
237  function db_query($pkg,$dist) {  function db_query($pkg,$dist='%') {
238      global $dirs,$dbconn;      global $dirs,$dbconn;
239      $db = pg_pconnect($dbconn )  or  die_status(pg_last_error($db));      $db = pg_pconnect($dbconn )  or  die_status(pg_last_error($db));
240      $rsql=pg_exec($db, "SELECT pkgs.* ,mpop_inst FROM (SELECT name,MAX(binpkgs.pop_inst) AS mpop_inst FROM binpkgs GROUP BY name)      $rsql=pg_exec($db, "SELECT pkgs.* ,mpop_inst FROM (SELECT name,MAX(binpkgs.pop_inst) AS mpop_inst FROM binpkgs GROUP BY name)
241                                                                          AS binpkgs INNER JOIN pkgs ON pkgs.name=binpkgs.name                                                                          AS binpkgs INNER JOIN pkgs ON pkgs.name=binpkgs.name
242                                WHERE pkgs.name='$pkg' AND dist='$dist';");                                WHERE pkgs.name='$pkg' AND dist='$dist';");
243      if (pg_numrows($rsql)==1) {      while ($res_array=pg_fetch_array($rsql)) {
         $res_array=pg_fetch_array($rsql);  
244          print "Package=> " . $res_array['name'] . "\n";          print "Package=> " . $res_array['name'] . "\n";
245          print "Version => " . $res_array['version'] . "\n";          print "Version => " . $res_array['version'] . "\n";
246            print "Mangled version => " . $res_array['dversionmangled'] . "\n";
247          print "Diff MD5 Downloaded => " . $res_array['md5_diff'] . "\n";          print "Diff MD5 Downloaded => " . $res_array['md5_diff'] . "\n";
248          print "Diff MD5 at Sources => " . $res_array['md5_atsource'] . "\n";          print "Diff MD5 at Sources => " . $res_array['md5_atsource'] . "\n";
249          print "Distribution => " . $res_array['dist'] . "\n";          print "Distribution => " . $res_array['dist'] . "\n";
# Line 253  function db_query($pkg,$dist) { Line 253  function db_query($pkg,$dist) {
253          if ($res_array['watch']) {          if ($res_array['watch']) {
254              $uscan_res=uscan_foo($res_array['name'] ,$res_array['version'],$res_array['watch']);              $uscan_res=uscan_foo($res_array['name'] ,$res_array['version'],$res_array['watch']);
255              print "Version Upstream => " . $uscan_res[0] . "\n";              print "Version Upstream => " . $uscan_res[0] . "\n";
256              print "Watch => " . $res_array['watch'];              print "Watch => " . trim($res_array['watch'])."\n";
257              print "Watch Warnings => " . $uscan_res[1];              print "Watch Warnings => " . $uscan_res[1];
258          }          }
259          else print "Watch => Not present" . "\n";          else print "Watch => Not present" . "\n";
260          if ($res_array['wwiz_type']) {          if ($res_array['wwiz_type']) {
261              $uscan_res=uscan_foo($res_array['name'] ,$res_array['version'],$res_array['wwiz']);              $uscan_res=uscan_foo($res_array['name'] ,$res_array['version'],$res_array['wwiz']);
262              print "WWiz Upstream => " . $uscan_res[0] . "\n";              print "WWiz Upstream => " . $uscan_res[0] . "\n";
263              print "WWiz => " . $res_array['wwiz'];              print "WWiz => " . $res_array['wwiz']."\n";
264              print "WWiz Warings => " . $uscan_res[1];              print "WWiz Warings => " . $uscan_res[1];
265          }          }
266          print "\n";          print "\n";
267      }      }
268      else echo "Package=> " . $pkg . "\nNot found\n!!";      if (pg_numrows($rsql)==0) echo "Package=> " . $pkg . "\nNot found\n!!";
269      pg_close($db);      pg_close($db);
270  }  }
271  function byte_total(&$db,$initial) {  function byte_total(&$db,$initial) {
# Line 331  function check_db() { Line 331  function check_db() {
331      global $dirs,$dbconn;      global $dirs,$dbconn;
332      $db = pg_pconnect($dbconn) or die_status(1/*pg_last_notice($db)*/);      $db = pg_pconnect($dbconn) or die_status(1/*pg_last_notice($db)*/);
333      if (!pg_table_exists($db,"pkgs")){      if (!pg_table_exists($db,"pkgs")){
334          pg_exec($db, "CREATE TABLE pkgs (id serial PRIMARY KEY,name text,version text,maint text, uploaders text, dir text,watch text,md5_diff text,md5_atsource text,bytes numeric,dist text,section text,up_version text,up_changes text, up_url text,watch_warn text,updated bool, keep_changes bool, wwiz text,wwiz_version text, wwiz_type text)") or die_status('Error creating table pkgs\n');          pg_exec($db, "CREATE TABLE pkgs (id serial PRIMARY KEY,name text,version text, dversionmangled text,maint text, uploaders text, dir text,watch text,md5_diff text,md5_atsource text,bytes numeric,dist text,section text,up_version text,up_changes text, up_url text,watch_warn text,updated bool, keep_changes bool, wwiz text,wwiz_version text, wwiz_type text)") or die_status('Error creating table pkgs\n');
335          pg_exec($db, "CREATE UNIQUE INDEX idxname on pkgs (name,dist)") or die_status('Errore creating index - ' . pg_last_error($db));          pg_exec($db, "CREATE UNIQUE INDEX idxname on pkgs (name,dist)") or die_status('Errore creating index - ' . pg_last_error($db));
336          $sw=true;          $sw=true;
337      }      }
# Line 445  function dl_popcon() { Line 445  function dl_popcon() {
445  }  }
446  function is_updated ($up_vers,$debian_vers) {  function is_updated ($up_vers,$debian_vers) {
447      if ($up_vers=='') return 0;      if ($up_vers=='') return 0;
448      passthru("dpkg --compare-versions '".escapeshellarg($up_vers)."' eq '" . escapeshellarg(vers_conv($debian_vers)) . "'",$great);      passthru("dpkg --compare-versions '".escapeshellarg($up_vers)."' le '" . escapeshellarg(vers_conv($debian_vers)) . "'",$great);
449      if ($great!=0) return 1;      if ($great!=0) return 1;
450      else return 0;      else return 0;
451  }  }
# Line 459  function db_upstream($initial='%') { Line 459  function db_upstream($initial='%') {
459          $uscan_res=uscan_foo($res_array['name'],$res_array['version'],$res_array['watch']);          $uscan_res=uscan_foo($res_array['name'],$res_array['version'],$res_array['watch']);
460          #print $uscan_res[0] . "\n Name => $res_array[name]\n";          #print $uscan_res[0] . "\n Name => $res_array[name]\n";
461          $version=$res_array[version];          $version=$res_array[version];
462            $dversionmangled=$res_array['dversionmangled'];
463          print "\rVersion=>" . $uscan_res[3];          print "\rVersion=>" . $uscan_res[3];
464          if ($uscan_res[3]!=null) $version=$uscan_res[3];          if ($uscan_res[3]!=null) $version=$uscan_res[3];
465          #$updated=is_updated($uscan_res[0],$res_array[version]);          if ($uscan_res[5]!=null) $dversionmangled=$uscan_res[5];
466          $updated=$uscan_res[4];          $updated=$uscan_res[4];
467            if ($updated) {
468                $updated=is_updated($uscan_res[0],$dversionmangled);
469            }
470    
471            if (!$updated) {
472                events::newVersion($res_array['name'], $res_array['version'], $uscan_res[0], $res_array['dist']);
473            }
474    
475          if ($uscan_res[0]!=$res_array[up_version]) ($keep_changes=1);          if ($uscan_res[0]!=$res_array[up_version]) ($keep_changes=1);
476          else $keep_changes=0;          else $keep_changes=0;
477          $up_url=iconv("ISO-8859-1","UTF-8",$uscan_res[2]);          $up_url=iconv("ISO-8859-1","UTF-8",$uscan_res[2]);
# Line 471  function db_upstream($initial='%') { Line 480  function db_upstream($initial='%') {
480          if($uscan_res[1] != null) {          if($uscan_res[1] != null) {
481              $watch_warn=pg_escape_string(iconv("ISO-8859-1","UTF-8",$uscan_res[1]));              $watch_warn=pg_escape_string(iconv("ISO-8859-1","UTF-8",$uscan_res[1]));
482          }          }
483          pg_exec($db, "UPDATE pkgs SET up_version='" . $up_version . "',up_url='" . $up_url . "', watch_warn='" . $watch_warn . "',keep_changes='$keep_changes', wwiz_version=NULL, wwiz_type=NULL, wwiz=NULL, updated='$updated' WHERE id=$res_array[id]") or die_status("Error in update pkgs upstream");          pg_exec($db, "UPDATE pkgs SET up_version='" . pg_escape_string($up_version) . "', dversionmangled='".pg_escape_string($dversionmangled)."',up_url='" . pg_escape_string($up_url) . "', watch_warn='" . $watch_warn . "',keep_changes='$keep_changes', wwiz_version=NULL, wwiz_type=NULL, wwiz=NULL, updated='$updated' WHERE id=$res_array[id]") or die_status("Error in update pkgs upstream");
484          #print "\rUpdated " . $res_array['name'] .  " => $updated Up Version => ". $uscan_res[0];          #print "\rUpdated " . $res_array['name'] .  " => $updated Up Version => ". $uscan_res[0];
485          print "\tUpstream left => " . $tot --;          print "\tUpstream left => " . $tot --;
486          #                               }          #                               }
# Line 595  function uscan_foo($name,$version,$watch Line 604  function uscan_foo($name,$version,$watch
604      $upstream=$vals[$index['UPSTREAM-VERSION'][0]][value];      $upstream=$vals[$index['UPSTREAM-VERSION'][0]][value];
605      $up_url=$vals[$index['UPSTREAM-URL'][0]][value];      $up_url=$vals[$index['UPSTREAM-URL'][0]][value];
606      $deb_vers=$vals[$index['DEBIAN-UVERSION'][0]][value];      $deb_vers=$vals[$index['DEBIAN-UVERSION'][0]][value];
607        $deb_mangled_vers=$vals[$index['DEBIAN-MANGLED-UVERSION'][0]][value];
608      $warnings=$vals[$index['WARNINGS'][0]][value];      $warnings=$vals[$index['WARNINGS'][0]][value];
609      $updated=$vals[$index['STATUS'][0]][value];      $updated=$vals[$index['STATUS'][0]][value];
610    
# Line 605  function uscan_foo($name,$version,$watch Line 615  function uscan_foo($name,$version,$watch
615      if ($up_url=='')  $up_url=null;      if ($up_url=='')  $up_url=null;
616      if ($deb_vers=='') $deb_vers=null;      if ($deb_vers=='') $deb_vers=null;
617      if ($warnings=='') $warnings=null;      if ($warnings=='') $warnings=null;
618        if ($deb_mangled_vers=='') $deb_mangled_vers=null;
619    
620      return array($upstream,$warnings,$up_url,$deb_vers,$updated);      return array($upstream, $warnings, $up_url, $deb_vers, $updated, $deb_mangled_vers);
621  }  }
622  function db_up_error() {  function db_up_error() {
623      global $dbconn;      global $dbconn;
# Line 641  function db_up_error() { Line 652  function db_up_error() {
652      pg_close($db);      pg_close($db);
653  }  }
654  function watch_wizard($src_name='%'){  function watch_wizard($src_name='%'){
655      global $dirs,$dbconn,$sfIgnore,$watchFileExts,$watchFormat;      global $dirs,$dbconn,$sfIgnore,$watchFileExts,$watchFileDversionMangle,$watchFormat;
656      $db = pg_pconnect($dbconn) or die_status ("Db error");      $db = pg_pconnect($dbconn) or die_status ("Db error");
657      $checked=$errors=$notfound=$verok=$notmatch=0;      $checked=$errors=$notfound=$verok=$notmatch=0;
     $sqlstring="SELECT mpop_inst,name,pkgs.version,pkgs.section,pkgs.dist,tot_up_error, tot_avg_error_date, wwiz_version FROM pkgs INNER JOIN  
         (Select max(pop_inst) as mpop_inst,SUM(up_error) as tot_up_error,AVG(avg_error_date) as tot_avg_error_date,name,dist FROM binpkgs GROUP BY name,dist HAVING max(pop_inst) IS NOT NULL) as binpkgs using(name,dist)  
         WHERE (watch IS NULL OR watch='') AND name LIKE '$src_name%' ORDER BY mpop_inst DESC";  
     $rsql=pg_exec($db, $sqlstring);  
658    
659      // prepare some stuff that needs to be done once per run      // prepare some stuff that needs to be done once per run
660      $opts = '';      $opts       = array();
661      $exts  = '(';      $exts       = '';
662        $dvmanglers = '';
663    
664      foreach ($watchFileExts as $ext) {      foreach ($watchFileExts as $ext) {
665          $exts .= $ext . '|';          $exts .= $ext . '|';
666      }      }
667      unset($ext);      unset($ext);
668    
669      $exts = substr($exts, 0, -1) . ')';      if ($exts != '') {
670      if ($exts == '()') {          $opts[] = 'uversionmangle=s/\.(' . substr($exts, 0, -1) . ')$//i';
671          $exts = '';      }
672      } else {  
673          $opts = 'opts=uversionmangle=s/\.' . $exts . '$// \\';      foreach ($watchFileDversionMangle as $dvmangler) {
674            $dvmanglers .= $dvmangler . '|';
675        }
676        unset($dvmangler);
677    
678        if ($dvmanglers != '') {
679            $opts[] = 'dversionmangle=s/[-.+~]?(' . substr($dvmanglers, 0, -1) . ')(.*)$//i';
680        }
681    
682        if (is_array($opts)) {
683            $_opts = '';
684            foreach ($opts as $opt) {
685                $_opts .= $opt . ',';
686            }
687            $opts = '';
688            if ($_opts != ',') {
689                $opts = 'opts=' . substr($_opts, 0, -1) . ' \\';
690            }
691      }      }
692    
693        $sqlstring="SELECT mpop_inst,name,pkgs.version,pkgs.dversionmangled,pkgs.section,pkgs.dist,tot_up_error, tot_avg_error_date, wwiz_version FROM pkgs INNER JOIN
694            (Select max(pop_inst) as mpop_inst,SUM(up_error) as tot_up_error,AVG(avg_error_date) as tot_avg_error_date,name,dist FROM binpkgs GROUP BY name,dist HAVING max(pop_inst) IS NOT NULL) as binpkgs using(name,dist)
695            WHERE (watch IS NULL OR watch='') AND name LIKE '$src_name%' ORDER BY mpop_inst DESC";
696        $rsql=pg_exec($db, $sqlstring);
697    
698      while ($res_array=pg_fetch_array($rsql)) {      while ($res_array=pg_fetch_array($rsql)) {
699    
700          if (substr($res_array["name"],0,3)=='lib')          if (substr($res_array["name"],0,3)=='lib')
# Line 691  function watch_wizard($src_name='%'){ Line 721  function watch_wizard($src_name='%'){
721              $contents=@file_get_contents($url) or '';              $contents=@file_get_contents($url) or '';
722          }          }
723    
724            if (!$contents) {
725                $url="http://packages.debian.org/changelogs/pool/" .
726                $res_array["section"] . "/" .
727                $initial . "/" .
728                $res_array["name"] ."/" .
729                "current/copyright";
730                $contents=@file_get_contents($url) or '';
731            }
732    
733          if ($contents) {          if ($contents) {
734    
735              if (preg_match ('/(sf\.net|sourceforge\.net)/i', $contents, $matches) ||              if (preg_match ('/(sf\.net|sourceforge\.net)/i', $contents, $matches) ||
# Line 704  function watch_wizard($src_name='%'){ Line 743  function watch_wizard($src_name='%'){
743    
744              }              }
745    
746              if (preg_match ('#((ftp://|http://|https://)\S+(html|htm|/(?(?=.+(tar|tgz|zip|gz))|[^>\s\)\a]+)))#i',$contents,$matches)) {              if (preg_match ('#((ftp://|http://|https://)\S+(html|htm|/(?(?=.+(tar|tgz|zip|gz|bz2))|[^>\s\)\a]+)))#i',$contents,$matches)) {
747                  $final=substr($matches[1],-1);                  $final=substr($matches[1],-1);
748                  if ($final=='.') {                  if ($final=='.') {
749                      $matches[1]=substr($matches[1],0,-1);                      $matches[1]=substr($matches[1],0,-1);
# Line 718  function watch_wizard($src_name='%'){ Line 757  function watch_wizard($src_name='%'){
757                  $generatedWatches[]=array('url' => preg_replace("#((http|https|ftp)://.+):(.*)#i",'$1' . '$3', $matches[1],1), 'space' => $space);                  $generatedWatches[]=array('url' => preg_replace("#((http|https|ftp)://.+):(.*)#i",'$1' . '$3', $matches[1],1), 'space' => $space);
758              }              }
759    
760              if (preg_match ('#((ftp|http)\.\S+(html|htm|/(?(?=.+(tar|tgz|zip|gz))|[^>\s\)\a]+)))#i',$contents,$matches)) {              if (preg_match ('#((ftp|http)\.\S+(html|htm|/(?(?=.+(tar|tgz|zip|gz|bz2))|[^>\s\)\a]+)))#i',$contents,$matches)) {
761                  $final=substr($matches[1],-1);                  $final=substr($matches[1],-1);
762                  if ($final=='.') {                  if ($final=='.') {
763                      $matches[1]=substr($matches[1],0,-1);                      $matches[1]=substr($matches[1],0,-1);
# Line 756  function watch_wizard($src_name='%'){ Line 795  function watch_wizard($src_name='%'){
795                      $uscan_res=uscan_foo($res_array['name'] ,$res_array['version'],$watch);                      $uscan_res=uscan_foo($res_array['name'] ,$res_array['version'],$watch);
796    
797                      if ($uscan_res[0]) {                      if ($uscan_res[0]) {
798                          break 2;                          break;
799                      }                      }
800                  }                  }
801    
# Line 770  function watch_wizard($src_name='%'){ Line 809  function watch_wizard($src_name='%'){
809                      } else {                      } else {
810                          $keep_changes = 0;                          $keep_changes = 0;
811                      }                      }
812                      pg_exec($db, "UPDATE pkgs SET wwiz='" . pg_escape_string($watch) ."', wwiz_type='watch', wwiz_version='" . pg_escape_string($uscan_res[0]) . "', up_url='" . pg_escape_string($uscan_res[2]) . "', keep_changes='$keep_changes' where name='" . pg_escape_string($res_array[name]) . "' AND dist='" . $res_array[dist] ."'");  
813                        $dversionmangled = $res_array[version];
814                        if ($uscan_res[5]!=null) $dversionmangled=$uscan_res[5];
815    
816                        $updated=$uscan_res[4];
817                        if ($updated) {
818                            $updated=is_updated($uscan_res[0],$dversionmangled);
819                        }
820    
821                        if (!$updated) {
822                            events::newVersion($res_array['name'], $res_array['version'], $uscan_res[0], $res_array['dist']);
823                        }
824    
825                        pg_exec($db, "UPDATE pkgs SET wwiz='" . pg_escape_string($watch) ."', wwiz_type='watch', wwiz_version='" . pg_escape_string($uscan_res[0]) . "',dversionmangled='".pg_escape_string($dversionmangled)."', up_url='" . pg_escape_string($uscan_res[2]) . "', keep_changes='$keep_changes', updated='$updated' where name='" . pg_escape_string($res_array[name]) . "' AND dist='" . $res_array[dist] ."'");
826                  }                  }
827              }              }
828          } else {          } else {
# Line 799  function dehsqa_db () { Line 851  function dehsqa_db () {
851      foreach ($dists as $dist) {      foreach ($dists as $dist) {
852          $id=dbqa_conn($dir1 . "dehs_qa_" . $dist . ".db",'n');          $id=dbqa_conn($dir1 . "dehs_qa_" . $dist . ".db",'n');
853          $db = pg_pconnect($dbconn) or die_status ("Db error");          $db = pg_pconnect($dbconn) or die_status ("Db error");
854          $sql="SELECT name, id, up_version, wwiz_version, watch, wwiz_type, watch_warn, updated FROM pkgs WHERE dist='$dist'";          $sql="SELECT name, id, up_version, wwiz_version, watch, wwiz_type, watch_warn, version, dversionmangled FROM pkgs WHERE dist='$dist'";
855          $rsql=pg_exec($db, $sql);          $rsql=pg_exec($db, $sql);
856          while($res_array=pg_fetch_array($rsql)) {          while($res_array=pg_fetch_array($rsql)) {
857    
# Line 812  function dehsqa_db () { Line 864  function dehsqa_db () {
864    
865              $xml="<data><id>$res_array[id]</id>" .              $xml="<data><id>$res_array[id]</id>" .
866              "<up_version>$version</up_version>" .              "<up_version>$version</up_version>" .
867                "<dversion>$res_array[version]</dversion>" .
868                "<dversionmangled>$res_array[dversionmangled]</dversionmangled>" .
869              "<wwiz>$wwiz</wwiz>" .              "<wwiz>$wwiz</wwiz>" .
870              "</data>";              "</data>";
871              $value=addslashes($xml);              $value=addslashes($xml);
# Line 869  function update_new() { Line 923  function update_new() {
923          foreach ($res_array as $entry) {          foreach ($res_array as $entry) {
924              db_upstream($entry['name']);              db_upstream($entry['name']);
925              up_changes($entry['name']);              up_changes($entry['name']);
926                watch_wizard($entry['name']);
927          }          }
928          dehsqa_db();          dehsqa_db();
929      }      }
# Line 887  function update_bogus() { Line 942  function update_bogus() {
942      $sql="SELECT name FROM pkgs WHERE up_version='' AND watch!=''";      $sql="SELECT name FROM pkgs WHERE up_version='' AND watch!=''";
943      $rsql=pg_exec($db, $sql);      $rsql=pg_exec($db, $sql);
944      $res_array=pg_fetch_all($rsql);      $res_array=pg_fetch_all($rsql);
945      pg_close($db);      $orig_count = ((!is_array($res_array))?0:count($res_array));
946      if ($res_array !== false) {      if ($res_array !== false) {
947          foreach ($res_array as $entry) {          foreach ($res_array as $entry) {
948              db_upstream($entry['name']);              db_upstream($entry['name']);
# Line 895  function update_bogus() { Line 950  function update_bogus() {
950          }          }
951          dehsqa_db();          dehsqa_db();
952      }      }
953        $sql="SELECT COUNT(name) FROM pkgs WHERE up_version='' AND watch!=''";
954        $rsql=pg_exec($db, $sql);
955        $res_array=pg_fetch_array($rsql);
956        $new_count = (int)$res_array[0];
957        pg_close($db);
958      $endtime=gmdate('D, d M Y H:i:s \C\E\S\T',time()+3600*2);      $endtime=gmdate('D, d M Y H:i:s \C\E\S\T',time()+3600*2);
959      $messaggio="Dehs executed successful\nBegin: $intime\nPackages processed: ".((!is_array($res_array))?'none':count($res_array))."\nEnd: $endtime";      $messaggio="Dehs executed successful\nBegin: $intime\n".
960        "Packages processed: $orig_count\n" .
961        "New bogus watches count: $new_count\nEnd: $endtime";
962      mail($email_all, "DEHS update_bogus report", $messaggio,      mail($email_all, "DEHS update_bogus report", $messaggio,
963      "From: dehs-noreply@{$_SERVER['SERVER_NAME']}\r\n" .      "From: dehs-noreply@{$_SERVER['SERVER_NAME']}\r\n" .
964      "Reply-To: dehs-noreply@{$_SERVER['SERVER_NAME']}\r\n" .      "Reply-To: dehs-noreply@{$_SERVER['SERVER_NAME']}\r\n" .
# Line 912  function die_status($msg = '', $status = Line 974  function die_status($msg = '', $status =
974          die($status);          die($status);
975      }      }
976  }  }
977    
978    class events
979    {
980        function newVersion($sourcePackage, $currentVersion, $newVersion, $distribution, $downloadLink = '')
981        {
982            global $base, $sendNotifications;
983    
984            if (!$sendNotifications) {
985                return null;
986            }
987    
988            $tpl = file_get_contents($base . '/tpls/new_version.mail.tpl');
989    
990            $search  = array();
991            $replace = array();
992    
993            $search [] = '#PACKAGE#';
994            $replace[] = $sourcePackage;
995            $search [] = '#DVERSION#';
996            $replace[] = $currentVersion;
997            $search [] = '#UVERSION#';
998            $replace[] = $newVersion;
999            $search [] = '#DISTRO#';
1000            $replace[] = $distribution;
1001    
1002            $message = str_replace($search, $replace, $tpl);
1003            $subject = events::_extractHeader('subject', $message);
1004            $to      = events::_extractHeader('to', $message);
1005    
1006            $extraHeaders = events::_getTefaultExtraHeaders();
1007            $extraHeaders[] = 'X-DEHS-UVERSION: ' . $newVersion;
1008    
1009            return mail($to, $subject, $message, implode("\r\n", $extraHeaders));
1010        }
1011    
1012        function _extractHeader($header, &$message)
1013        {
1014            $regex  = '/^' . preg_quote($header, '/') . ':([ \t]*)(.*)$/i';
1015    
1016            $matches = array();
1017    
1018            if (preg_match($regex, $message, $matches)) {
1019    
1020                $spacer = $matches[1];
1021                $value  = $matches[2];
1022    
1023                $message = ltrim(preg_replace($regex, '', $message));
1024    
1025                return $value;
1026    
1027            }
1028            return false;
1029        }
1030    
1031        function _getTefaultExtraHeaders()
1032        {
1033            global $notificationsMailFrom;
1034            $headers = array();
1035    
1036            $headers[] = 'From: ' . $notificationsMailFrom;
1037            $headers[] = 'X-PTS-Approved: sure';
1038            $headers[] = 'X-BY-DEHS: sure';
1039    
1040            return $headers;
1041        }
1042    
1043    }
1044    
1045  ?>  ?>

Legend:
Removed from v.66  
changed lines
  Added in v.77

  ViewVC Help
Powered by ViewVC 1.1.5