11f5207b7SJohn Levon#!/usr/bin/perl -w 21f5207b7SJohn Levon 31f5207b7SJohn Levonuse strict; 41f5207b7SJohn Levonuse warnings; 51f5207b7SJohn Levonuse bigint; 61f5207b7SJohn Levonuse DBI; 71f5207b7SJohn Levonuse Data::Dumper; 81f5207b7SJohn Levonuse File::Basename; 91f5207b7SJohn Levon 101f5207b7SJohn Levonmy $project = shift; 111f5207b7SJohn Levon$project =~ s/.*=(.*)/$1/; 121f5207b7SJohn Levonmy $warns = shift; 131f5207b7SJohn Levonmy $db_file = shift; 141f5207b7SJohn Levon 151f5207b7SJohn Levonmy $db; 161f5207b7SJohn Levon 171f5207b7SJohn Levonsub connect_to_db($) 181f5207b7SJohn Levon{ 191f5207b7SJohn Levon my $name = shift; 201f5207b7SJohn Levon 211f5207b7SJohn Levon $db = DBI->connect("dbi:SQLite:$name", "", "", {AutoCommit => 0}); 221f5207b7SJohn Levon 231f5207b7SJohn Levon $db->do("PRAGMA cache_size = 800000"); 241f5207b7SJohn Levon $db->do("PRAGMA journal_mode = OFF"); 251f5207b7SJohn Levon $db->do("PRAGMA count_changes = OFF"); 261f5207b7SJohn Levon $db->do("PRAGMA temp_store = MEMORY"); 271f5207b7SJohn Levon $db->do("PRAGMA locking = EXCLUSIVE"); 281f5207b7SJohn Levon} 291f5207b7SJohn Levon 301f5207b7SJohn Levonsub load_manual_constraints($$) 311f5207b7SJohn Levon{ 321f5207b7SJohn Levon my $full_path = shift; 331f5207b7SJohn Levon my $project = shift; 341f5207b7SJohn Levon my $dir = dirname($full_path); 351f5207b7SJohn Levon my ($data, $op, $limit); 361f5207b7SJohn Levon 37*efe51d0cSJohn Levon if ($project =~ /^$/) { 38*efe51d0cSJohn Levon return; 39*efe51d0cSJohn Levon } 40*efe51d0cSJohn Levon 411f5207b7SJohn Levon open(FILE, "$dir/$project.constraints_required"); 421f5207b7SJohn Levon while (<FILE>) { 431f5207b7SJohn Levon ($data, $op, $limit) = split(/,/); 441f5207b7SJohn Levon $op =~ s/ //g; 451f5207b7SJohn Levon $limit =~ s/^ +//; 461f5207b7SJohn Levon $limit =~ s/\n//; 471f5207b7SJohn Levon $db->do("insert into constraints_required values (?, ?, ?);", undef, $data, $op, $limit); 481f5207b7SJohn Levon } 491f5207b7SJohn Levon close(FILE); 501f5207b7SJohn Levon 511f5207b7SJohn Levon $db->commit(); 521f5207b7SJohn Levon} 531f5207b7SJohn Levon 541f5207b7SJohn Levonconnect_to_db($db_file); 551f5207b7SJohn Levonload_manual_constraints($0, $project); 561f5207b7SJohn Levon 571f5207b7SJohn Levon$db->commit(); 581f5207b7SJohn Levon$db->disconnect(); 59