1*1f5207b7SJohn Levon#!/usr/bin/perl -w
2*1f5207b7SJohn Levon
3*1f5207b7SJohn Levonuse strict;
4*1f5207b7SJohn Levonuse warnings;
5*1f5207b7SJohn Levonuse bigint;
6*1f5207b7SJohn Levonuse DBI;
7*1f5207b7SJohn Levonuse Data::Dumper;
8*1f5207b7SJohn Levonuse File::Basename;
9*1f5207b7SJohn Levonuse Try::Tiny;
10*1f5207b7SJohn Levon
11*1f5207b7SJohn Levonmy $project = shift;
12*1f5207b7SJohn Levon$project =~ s/.*=(.*)/$1/;
13*1f5207b7SJohn Levonmy $warns = shift;
14*1f5207b7SJohn Levonmy $db_file = shift;
15*1f5207b7SJohn Levon
16*1f5207b7SJohn Levonmy $db;
17*1f5207b7SJohn Levon
18*1f5207b7SJohn Levonsub connect_to_db($)
19*1f5207b7SJohn Levon{
20*1f5207b7SJohn Levon    my $name = shift;
21*1f5207b7SJohn Levon
22*1f5207b7SJohn Levon    $db = DBI->connect("dbi:SQLite:$name", "", "", {AutoCommit => 0});
23*1f5207b7SJohn Levon
24*1f5207b7SJohn Levon    $db->do("PRAGMA cache_size = 800000");
25*1f5207b7SJohn Levon    $db->do("PRAGMA journal_mode = OFF");
26*1f5207b7SJohn Levon    $db->do("PRAGMA count_changes = OFF");
27*1f5207b7SJohn Levon    $db->do("PRAGMA temp_store = MEMORY");
28*1f5207b7SJohn Levon    $db->do("PRAGMA locking = EXCLUSIVE");
29*1f5207b7SJohn Levon}
30*1f5207b7SJohn Levon
31*1f5207b7SJohn Levonsub copy_constraints($$)
32*1f5207b7SJohn Levon{
33*1f5207b7SJohn Levon    my $full_path = shift;
34*1f5207b7SJohn Levon    my $project = shift;
35*1f5207b7SJohn Levon    my $dir = dirname($full_path);
36*1f5207b7SJohn Levon
37*1f5207b7SJohn Levon    $db->do('insert or ignore into constraints (str) select bound from constraints_required');
38*1f5207b7SJohn Levon
39*1f5207b7SJohn Levon    $db->commit();
40*1f5207b7SJohn Levon}
41*1f5207b7SJohn Levon
42*1f5207b7SJohn Levonconnect_to_db($db_file);
43*1f5207b7SJohn Levoncopy_constraints($0, $project);
44*1f5207b7SJohn Levon
45*1f5207b7SJohn Levon$db->commit();
46*1f5207b7SJohn Levon$db->disconnect();
47