summary refs log tree commit diff
path: root/gen-gdf.pl
diff options
context:
space:
mode:
authorfranck cuny <franck@lumberjaph.net>2009-03-23 17:25:05 +0100
committerfranck cuny <franck@lumberjaph.net>2009-03-23 17:25:05 +0100
commit1448eede680478eef74c51b965815097ef45d02a (patch)
treeac6f16bee23c485a911ac7a9e89fbf57305cec97 /gen-gdf.pl
downloadcpan-graph-1448eede680478eef74c51b965815097ef45d02a.tar.gz
initial import
Diffstat (limited to 'gen-gdf.pl')
-rwxr-xr-xgen-gdf.pl60
1 files changed, 60 insertions, 0 deletions
diff --git a/gen-gdf.pl b/gen-gdf.pl
new file mode 100755
index 0000000..72ce349
--- /dev/null
+++ b/gen-gdf.pl
@@ -0,0 +1,60 @@
+#!/opt/perl/bin/perl -w
+use strict;
+use feature ':5.10';
+use Getopt::Long;
+
+use lib ( 'lib' );
+use CPAN::mapcpan;
+
+my $options = GetOptions(
+    'out=s'   => \my $output_gdf,
+    'dbmap=s' => \my $db_map
+);
+
+my $dbmap = CPAN::cpanmap->connect( "dbi:SQLite:dbname=" . $db_map, "", "" );
+
+my $array_edges;
+my $hash_nodes;
+
+my $packages = $dbmap->resultset( 'packages' )->search;
+say "create nodes";
+while ( my $package = $packages->next ) {
+    $hash_nodes->{ $package->id } = {
+        tests  => $package->tests_success,
+        name   => $package->dist,
+        author => $package->author,
+        date   => $package->released,
+    };
+}
+
+my $edges = $dbmap->resultset( 'edges' )->search;
+say "create edges";
+while ( my $edge = $edges->next ) {
+    push @$array_edges,
+        {
+        node1    => $edge->dist_from,
+        node2    => $edge->dist_to,
+        directed => 'true',
+        };
+}
+
+#my $out = "nodedef>name VARCHAR,label VARCHAR,tests INTEGER,author VARCHAR,date VARCHAR\n";
+#foreach my $key ( keys %$hash_nodes ) {
+    #$out
+        #.= $key . ","
+        #. $hash_nodes->{ $key }->{ name } . ","
+        #. $hash_nodes->{ $key }->{ tests } . ","
+        #. $hash_nodes->{ $key }->{ author } . ","
+        #. $hash_nodes->{ $key }->{ date } . "\n";
+#}
+#$out .= "edgedef>node1 VARCHAR,node2 VARCHAR,directed BOOLEAN\n";
+#foreach my $edge ( @$array_edges ) {
+    #$out
+        #.= $edge->{ node1 } . ","
+        #. $edge->{ node2 } . ","
+        #. $edge->{ directed } . "\n";
+#}
+
+#open my $fh_gdf, '>', $output_gdf or die $!;
+#print $fh_gdf $out;
+#close $fh_gdf;
\ No newline at end of file