commit-womb
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[commit-womb] gnumaint/fsd gnufsd-psql


From: Kaloian Doganov
Subject: [commit-womb] gnumaint/fsd gnufsd-psql
Date: Sat, 06 Jun 2009 15:10:28 +0000

CVSROOT:        /sources/womb
Module name:    gnumaint
Changes by:     Kaloian Doganov <kaloian>       09/06/06 15:10:28

Modified files:
        fsd            : gnufsd-psql 

Log message:
        Dump information about related projects to a project.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnumaint/fsd/gnufsd-psql?cvsroot=womb&r1=1.8&r2=1.9

Patches:
Index: gnufsd-psql
===================================================================
RCS file: /sources/womb/gnumaint/fsd/gnufsd-psql,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- gnufsd-psql 6 Jun 2009 14:32:41 -0000       1.8
+++ gnufsd-psql 6 Jun 2009 15:10:27 -0000       1.9
@@ -1,5 +1,5 @@
 #!/usr/bin/env perl
-# $Id: gnufsd-psql,v 1.8 2009/06/06 14:32:41 kaloian Exp $
+# $Id: gnufsd-psql,v 1.9 2009/06/06 15:10:27 kaloian Exp $
 # Extract information about GNU packages from the Free Software
 # Directory's PostgreSQL database.
 #
@@ -31,7 +31,8 @@
 
 my ($dbh, $sth_homepage, $sth_download_url, $sth_activity_status,
     $sth_computer_languages, $sth_subprograms, $sth_categories,
-    $sth_category, $sth_versions, $sth_licenses, $sth_interfaces);
+    $sth_category, $sth_related, $sth_versions, $sth_licenses,
+    $sth_interfaces);
 
 my %user_level_enum = (
   0 => "unknown",
@@ -94,6 +95,12 @@
     "SELECT name, slug, parent_category_id  FROM directory_category
      WHERE id = ?;");
 
+  $sth_related = $dbh->prepare (
+    "SELECT p.slug
+     FROM directory_project p, directory_project_related r
+     WHERE r.to_project_id = p.id AND r.from_project_id = ?
+     ORDER BY p.slug ASC;");
+
   $sth_versions = $dbh->prepare (
     "SELECT v.id, v.name, v.date, v.status, v.notes,
        u.first_name || ' ' || u.last_name || ' <' || u.email || '>'
@@ -343,6 +350,17 @@
   return sort (@result);
 }
 
+# Fetch related projects for a project.
+sub related (\%)
+{
+  my ($project) = @_;
+  my $id = $project->{"id"};
+  $sth_related->bind_param (1, $id);
+  my @related = all_col ($sth_related, "slug");
+
+  return @related;
+}
+
 # Fetch computer languages for a project.
 sub computer_languages (\%)
 {
@@ -489,6 +507,9 @@
 
   print "category: $_\n" foreach (categories (%$project));
 
+  my $related = join (" | ", related (%$project));
+  print "related-packages: $related\n" if ! ($related eq '');
+
   print "entry-compiled-by: $project->{entry_compiled_by}\n";
 
   my @updated = iso_date_to_str ($project->{"updated"});




reply via email to

[Prev in Thread] Current Thread [Next in Thread]