some comment stripping
[sdbl4j] / bin / gen-db-access-classes.pl
1 #!/usr/bin/perl
2 #
3 # Copyright (C) 2010 Guillaume Cottenceau and MNC S.A.
4 #
5 # This file is part of sdbl4j, and is licensed under the Apache 2.0 license.
6 #
7
8 @ARGV > 0 or die "Usage: gen-db-access-classes.pl <dirname>+\n";
9 -d $_ or die "Parameter $_ not a directory\n" foreach @ARGV;
10
11 my @to_generate = ();
12
13 foreach (@ARGV) {
14     foreach my $dbxml_src (`find $_ -name "*.db.xml"`) {
15         chomp $dbxml_src;
16         my $dbxml_mtime = (stat($dbxml_src))[9];
17         (my $java_src = $dbxml_src) =~ s/\.db\.xml$/.java/;
18         my $java_mtime = (stat($java_src))[9];
19         my $generator_mtime = (stat("bin/db/gen-db-access-class.pl"))[9];
20         if (!defined($java_mtime) || $dbxml_mtime > $java_mtime || $generator_mtime > $java_mtime) {
21             push @to_generate, $dbxml_src;
22         }
23     }
24 }
25
26 #- guess base dir
27 my $basedir = `readlink -f "$0"`;
28 chomp $basedir;
29 $basedir =~ s|/[^/]+$||;
30
31 if (@to_generate) {
32     print "Generating " . int(@to_generate) . " database access source files\n";
33     my $cmd = "$basedir/gen-db-access-class.pl @to_generate";
34     system($cmd) == 0 or die "Failed invoking $cmd: $!\n";
35 }