...and remove debug statement
[scpubgit/stemmatology.git] / base / script / make_tradition.pl
index 9b7de44..cea10f9 100755 (executable)
@@ -17,7 +17,8 @@ eval { no warnings; binmode $DB::OUT, ":utf8"; };
 my( $informat, $outformat, $language, $name, $sep, $dsn )  = ( '', '', 'Default', 
        'Tradition', "\t", "dbi:SQLite:dbname=db/traditions.db" );
 # Variables with no default
-my( $inbase, $help, $stemmafile,  $dbuser, $dbpass, $from, $to, $dbid, $debug, $nonlinear );
+my( $inbase, $help, $stemmafile,  $dbuser, $dbpass, $from, $to, $dbid, 
+       $nocalc, $nonlinear );
 
 GetOptions( 'i|in=s'    => \$informat,
             'b|base=s'  => \$inbase,
@@ -33,8 +34,8 @@ GetOptions( 'i|in=s'    => \$informat,
             'nl|nonlinear' => \$nonlinear,
             'sep=s'            => \$sep,
             'dsn=s'            => \$dsn,
-           'dbid=s'    => \$dbid,
-               'debug'     => \$debug
+            'dbid=s'    => \$dbid,
+            'nc|nocalc' => \$nocalc,
     );
 
 if( $help ) {
@@ -88,6 +89,7 @@ if( $informat eq 'db' ) {
        $args{'base'} = $inbase if $inbase;
        $args{'language'} = $language if $language;
        $args{'name'} = $name if $name;
+       $args{'nocalc'} = 1 if $nocalc;
        if( $informat eq 'Tabular' ) {
                if( $excel ) {
                        $args{'excel'} = $excel;
@@ -95,10 +97,22 @@ if( $informat eq 'db' ) {
                        $args{'sep_char'} = $sep;
                }
        }
+       # If we are writing to the database, use that DB as the userstore.
+       if( $outformat eq 'db' ) {
+               unless( $dir ) {
+                       my $extra_args = { 'create' => 1 };
+                       $extra_args->{'user'} = $dbuser if $dbuser;
+                       $extra_args->{'password'} = $dbpass if $dbpass;
+                       $dir = Text::Tradition::Directory->new( 'dsn' => $dsn,
+                               'extra_args' => $extra_args );
+               }
+               $args{'userstore'} = $dir;
+       }
        ### Custom hacking for Stone
        if( $informat eq 'CollateText' ) {
                $args{'sigla'} = [ qw/ S M X V Z Bb B K W L / ];
        }
+       my $scope = $dir->new_scope() if $dir;
        $tradition = Text::Tradition->new( %args );
 }
 if( $stemmafile ) {
@@ -108,7 +122,7 @@ if( $stemmafile ) {
 
 # Now output what we have been asked to.
 if( $outformat eq 'stemma' ) {
-    my $cdata = character_input( $tradition->collation->alignment_table );
+    my $cdata = character_input( $tradition );
     try {
        print phylip_pars( $cdata );
     } catch( Text::Tradition::Error $e ) {
@@ -135,7 +149,7 @@ if( $outformat eq 'stemma' ) {
     my $opts = {};
     $opts->{'from'} = $from if $from;
     $opts->{'to'} = $to if $to;
-    $opts->{'nocalc'} = 1 if $debug;
+    $opts->{'nocalc'} = 1 if $nocalc;
     print $tradition->collation->$output( $opts );
 }