triangulations/scripts/triangulation_bookkeeping_output.pl

48 lines
1 KiB
Perl
Executable file

#!/usr/local/bin/polymake --script
### Outputs minimal triangulations into sorted directories
use application "topaz";
use strict;
use warnings;
use DBI;
use File::Copy;
my $dbh = DBI->connect("dbi:Pg:dbname=researchdata_test", '', '', {AutoCommit => 0});
my $types = $dbh->prepare("SELECT DISTINCT(type) FROM complexes;"); ## select the types
my $paths = $dbh->prepare("SELECT signature,vertices,path FROM minimal_triangulations WHERE signature IN (SELECT signature FROM complexes WHERE type = (?));");
my $outdir = "minimal_triangulations";
if (! -d $outdir ) {
mkdir $outdir
}
$types->execute;
while (my @data = $types->fetchrow_array) {
my $type = shift @data;
if (not $type eq "") {
print "$type\n";
$paths->execute($type);
if (! -d "$outdir/$type" ) {
mkdir "$outdir/$type";
}
while (my @p = $paths->fetchrow_array) {
my $sig = shift @p;
my $vert = shift @p;
if (! -d "$outdir/$type/$vert" ) {
mkdir "$outdir/$type/$vert";
}
my $path = shift @p;
copy($path,"$outdir/$type/$vert/$sig.poly");
}
}
}
$dbh->commit;