send relationship type info in initial load, not as AJAX
[scpubgit/stemmaweb.git] / script / maketestdb.pl
1 #!/usr/bin/env perl
2
3 use strict;
4 use warnings;
5 use feature 'say';
6 use Text::Tradition;
7 use Text::Tradition::Directory;
8
9 my $DBDIR = 'db';
10 my $DBNAME = 'traditions.db';
11 my $DBEXT = 'test';
12 # Delete the old directory if it exists
13 if( -f "$DBDIR/$DBNAME.$DBEXT" ) {
14         unlink( "$DBDIR/$DBNAME.$DBEXT" );
15 }
16 if( -l "$DBDIR/$DBNAME" ) {
17         unlink( "$DBDIR/$DBNAME" );
18 } elsif( -e "$DBDIR/$DBNAME" ) {
19         unlink( "$DBDIR/$DBNAME.bak" ) if -f "$DBDIR/$DBNAME.bak";
20         rename( "$DBDIR/$DBNAME", "$DBDIR/$DBNAME.bak" ) 
21                 or die "Could not rename existing $DBNAME";
22
23 # Set up the test directory
24 symlink( "$DBNAME.$DBEXT", "$DBDIR/$DBNAME" ) or die "Could not set up testing db symlink";
25
26 my $dir = Text::Tradition::Directory->new(
27         dsn => "dbi:SQLite:dbname=$DBDIR/$DBNAME",
28         extra_args => { create => 1 } 
29         );
30 my $scope = $dir->new_scope();
31 say "Created test directory";
32
33 # Create users
34 my $user = $dir->add_user({ username => 'user@example.org', password => 'UserPass' });
35 my $admin = $dir->add_user({ username => 'admin@example.org', 
36         password => 'AdminPass', role => 'admin' });
37 die "Failed to create test users" unless $user && $admin;
38 say "Created users";
39
40 my $t1 = Text::Tradition->new( input => 'Self', file => 't/data/besoin.xml' );
41 die "Failed to create test tradition #1" unless $t1;
42 $user->add_tradition( $t1 );
43 $dir->store( $user );
44 say "Created test user tradition";
45
46 my $t2 = Text::Tradition->new( input => 'Tabular', sep_char => ',', 
47         file => 't/data/florilegium.csv' );
48 $t2->add_stemma( dotfile => 't/data/florilegium.dot' );
49 die "Failed to create test tradition #2" unless $t2;
50 $t2->public( 1 );
51 $dir->store( $t2 );
52 my $t3 = Text::Tradition->new( input => 'Self', file => 't/data/john.xml' );
53 $t3->public( 1 );
54 $t3->name( 'John verse' );
55 $dir->store( $t3 );
56 say "Created test public traditions";
57