1 package org.codehaus.mojo.rspec;
2
3 public class ShellScriptFactory extends AbstractScriptFactory {
4
5 public ShellScriptFactory() {
6
7 }
8
9 public String getScript() {
10 StringBuilder builder = new StringBuilder();
11
12 boolean first = true;
13 for (String classpathElement : this.classpathElements) {
14 if (first) {
15 first = false;
16 builder.append("CLASSPATH=").append(classpathElement).append("\n");
17 } else {
18 builder.append("CLASSPATH=$CLASSPATH:").append(classpathElement).append("\n");
19 }
20 }
21
22 builder.append("export CLASSPATH\n");
23 builder.append("this_dir=$(dirname $0)\n");
24 builder.append("$JRUBY_HOME/bin/jruby\\\n");
25 builder.append( " -J-Dbasedir=").append( baseDir ).append( "\\\n" );
26 for (Object propName : systemProperties.keySet()) {
27 String propValue = systemProperties.getProperty(propName.toString());
28 builder.append(" -J-D").append(propName).append("=").append(propValue).append("\\\n");
29 }
30 builder.append(" $this_dir/rspec-runner.rb $*");
31
32 return builder.toString();
33 }
34
35 @Override
36 protected String getScriptName() {
37 return "run-rspecs.sh";
38 }
39
40 }