Fix a couple of tests and add forgotten dependency
[dbsrgits/SQL-Translator.git] / bin / sqlt-graph
diff --git a/bin/sqlt-graph b/bin/sqlt-graph
deleted file mode 100755 (executable)
index e168390..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-#!/usr/bin/env perl
-
-# -------------------------------------------------------------------
-# Copyright (C) 2002-2009 SQLFairy Authors
-#
-# This program is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; version 2.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-# 02111-1307  USA
-# -------------------------------------------------------------------
-
-=head1 NAME 
-
-sqlt-graph - Automatically create a graph from a database schema
-
-=head1 SYNOPSIS
-
-  ./sqlt-graph -d|--db|-f|--from=db_parser [options] schema.sql
-
-  Options:
-
-    -l|--layout        Layout schema for GraphViz
-                       ("dot," "neato," "twopi"; default "dot")
-    -n|--node-shape    Shape of the nodes ("record," "plaintext," 
-                       "ellipse," "circle," "egg," "triangle," "box," 
-                       "diamond," "trapezium," "parallelogram," "house," 
-                       "hexagon," "octagon," default "record")
-    -o|--output        Output file name (default STDOUT)
-    -t|--output-type   Output file type ("canon", "text," "ps," "hpgl,"
-                       "pcl," "mif," "pic," "gd," "gd2," "gif," "jpeg,"
-                       "png," "wbmp," "cmap," "ismap," "imap," "vrml,"
-                       "vtx," "mp," "fig," "svg," "plain," default "png")
-    -c|--color         Add colors
-    --cluster          Cluster tables
-    --no-fields        Don't show field names
-    --height           Image height (in inches, default "11",
-                       set to "0" to undefine)
-    --width            Image width (in inches, default "8.5", 
-                       set to "0" to undefine)
-    --fontsize         custom font size for node and edge labels
-    --fontname         name of custom font (or full path to font file) for 
-                       node, edge, and graph labels
-    --nodeattr         attribute name and value (in key=val syntax) for
-                       nodes; this option may be repeated to specify 
-                       multiple node attributes
-    --edgeattr         same as --nodeattr, but for edge attributes
-    --graphattr        same as --nodeattr, but for graph attributes
-    --natural-join     Perform natural joins
-    --natural-join-pk  Perform natural joins from primary keys only
-    --show-datatypes   Show datatype of each field
-    --show-sizes       Show column sizes for VARCHAR and CHAR fields
-    --show-constraints Show list of constraints for each field
-    -s|--skip          Fields to skip in natural joins
-    --skip-tables      Comma-separated list of table names to exclude 
-    --skip-tables-like Comma-separated list of regexen to exclude tables
-    --debug            Print debugging information
-
-=head1 DESCRIPTION
-
-This script will create a graph of your schema.  Only the database
-driver argument (for SQL::Translator) is required.  If no output file
-name is given, then image will be printed to STDOUT, so you should
-redirect the output into a file.
-
-The default action is to assume the presence of foreign key
-relationships defined via "REFERNCES" or "FOREIGN KEY" constraints on
-the tables.  If you are parsing the schema of a file that does not
-have these, you will find the natural join options helpful.  With
-natural joins, like-named fields will be considered foreign keys.
-This can prove too permissive, however, as you probably don't want a
-field called "name" to be considered a foreign key, so you could
-include it in the "skip" option, and all fields called "name" will be
-excluded from natural joins.  A more efficient method, however, might
-be to simply deduce the foriegn keys from primary keys to other fields
-named the same in other tables.  Use the "natural-join-pk" option
-to acheive this.
-
-If the schema defines foreign keys, then the graph produced will be
-directed showing the direction of the relationship.  If the foreign
-keys are intuited via natural joins, the graph will be undirected.
-
-The syntax for clustering tables into groups is:
-
-  cluster1=table1,table2;cluster2=table3,table4
-
-=cut
-
-# -------------------------------------------------------------------
-
-use strict;
-use warnings;
-use Data::Dumper;
-use Getopt::Long;
-use GraphViz;
-use Pod::Usage;
-use SQL::Translator;
-
-use vars '$VERSION';
-$VERSION = '1.59';
-
-#
-# Get arguments.
-#
-my ( 
-    $layout, $node_shape, $out_file, $output_type, $db_driver, $add_color, 
-    $natural_join, $join_pk_only, $skip_fields, $show_datatypes,
-    $show_sizes, $show_constraints, $debug, $help, $height, $width,
-    $no_fields, $fontsize, $fontname, $skip_tables, $skip_tables_like,
-    $cluster
-);
-
-# multi-valued options:
-my %edgeattrs = ();
-my %nodeattrs = ();
-my %graphattrs = ();
-
-GetOptions(
-    'd|db|f|from=s'      => \$db_driver,
-    'o|output:s'         => \$out_file,
-    'l|layout:s'         => \$layout,
-    'n|node-shape:s'     => \$node_shape,
-    't|output-type:s'    => \$output_type,
-    'height:f'           => \$height,
-    'width:f'            => \$width,
-    'fontsize=i'         => \$fontsize,
-    'fontname=s'         => \$fontname,
-    'nodeattr=s'         => \%nodeattrs,
-    'edgeattr=s'         => \%edgeattrs,
-    'graphattr=s'        => \%graphattrs,
-    'c|color'            => \$add_color,
-    'cluster:s'          => \$cluster,
-    'no-fields'          => \$no_fields,
-    'natural-join'       => \$natural_join,
-    'natural-join-pk'    => \$join_pk_only,
-    's|skip:s'           => \$skip_fields,
-    'skip-tables:s'      => \$skip_tables,
-    'skip-tables-like:s' => \$skip_tables_like,
-    'show-datatypes'     => \$show_datatypes,
-    'show-sizes'         => \$show_sizes,
-    'show-constraints'   => \$show_constraints,
-    'debug'              => \$debug,
-    'h|help'             => \$help,
-) or die pod2usage;
-my @files = @ARGV; # the create script(s) for the original db
-
-pod2usage(1) if $help;
-pod2usage( -message => "No db driver specified" ) unless $db_driver;
-pod2usage( -message => 'No input file'          ) unless @files;
-
-my $translator           =  SQL::Translator->new( 
-    from                 => $db_driver,
-    to                   => 'GraphViz',
-    debug                => $debug || 0,
-    producer_args        => {
-        out_file         => $out_file,
-        layout           => $layout,
-        node_shape       => $node_shape,
-        output_type      => $output_type,
-        add_color        => $add_color,
-        natural_join     => $natural_join,
-        natural_join_pk  => $join_pk_only,
-        skip_fields      => $skip_fields,
-        skip_tables      => $skip_tables,
-        skip_tables_like => $skip_tables_like,
-        show_datatypes   => $show_datatypes,
-        show_sizes       => $show_sizes,
-        show_constraints => $show_constraints,
-        cluster          => $cluster,
-        height           => $height || 0,
-        width            => $width  || 0,
-        fontsize         => $fontsize,
-        fontname         => $fontname,
-        nodeattrs        => \%nodeattrs,
-        edgeattrs        => \%edgeattrs,
-        graphattrs       => \%graphattrs,
-        show_fields      => $no_fields ? 0 : 1,
-    },
-) or die SQL::Translator->error;
-
-for my $file (@files) {
-    my $output = $translator->translate( $file ) or die
-                 "Error: " . $translator->error;
-    if ( $out_file ) {
-        print "Image written to '$out_file'.  Done.\n";
-    }
-    else {
-        print $output;
-    }
-}
-
-# -------------------------------------------------------------------
-
-=pod
-
-=head1 AUTHOR
-
-Ken Youens-Clark E<lt>kclark@cpan.orgE<gt>.
-
-=head1 SEE ALSO
-
-perl, SQL::Translator.
-
-=cut