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