This repository was archived by the owner on Oct 11, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrun.pl
executable file
·66 lines (52 loc) · 1.62 KB
/
run.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/usr/bin/perl -w
use strict;
my $HOMEDIR = `pwd`;
chomp ($HOMEDIR);
my $SRC = $HOMEDIR . "/src/main/java";
my $TARGET = $HOMEDIR . "/target";
my $JAVA = "java";
my $JAVA_OPTS = "";
my $BUILD_JAR = "$TARGET/terracotta-hibernate-sample.jar";
unless (-e $BUILD_JAR) {
print "The build jar doesn't exist: $BUILD_JAR. Have you run 'ant dist.jar' yet?\n" and exit(1);
}
my $CLASSPATH = configureClasspath(qw/antlr-2.7.6.jar commons-collections-3.1.jar dom4j-1.6.1.jar ehcache-1.6.2.jar hibernate3.jar hsqldb.jar javassist-3.9.0.GA.jar jta-1.1.jar log4j-1.2.15.jar slf4j-api-1.5.8.jar slf4j-log4j12-1.5.8.jar/);
my %commands = (
'jdbc' => "org.terracotta.hibernate.sample.JDBCTest",
'hibernate' => "org.hibernate.tutorial.EventManager"
);
my ($command, @args) = parseArgs(@ARGV);
print usage() and exit(1) unless $command;
print "my command: $command\n";
if ($commands{$command}) {
runJava($command, $commands{$command}, @args);
} else {
print usage() and exit(1);
}
sub runJava {
my ($command, $class, @args) = @_;
my $argstring = join(' ', @args);
my $cmd = "$JAVA $JAVA_OPTS -cp $CLASSPATH $class $argstring";
print "executing $cmd...\n";
print `$cmd`;
}
sub parseArgs {
if (scalar @_) {
return @_;
} else {
return ("__UNKNOWN__");
}
}
sub configureClasspath {
my @jarnames = @_;
my @jars = ();
my $CLASSPATH = "";
foreach (@jarnames) {
push @jars, "lib/" . $_;
}
push @jars, $BUILD_JAR;
return join (':', @jars);
}
sub usage {
return "\nrun.pl -- run stuff\n\nUsage:\n\trun.pl <command>\n\nCommands:\n\tjdbc\tRuns a JDBC connection test to the hsqldb.\n\n";
}