/** * @param exports keys are the variables to export in UPPER_UNDERSCORE case format */ protected InitScript(String instanceName, String instanceHome, String logDir, Map<String, String> exports, StatementList init, StatementList run) { this.instanceName = checkNotNull(instanceName, "INSTANCE_NAME"); this.instanceHome = checkNotNull(instanceHome, "INSTANCE_HOME"); this.logDir = checkNotNull(logDir, "LOG_DIR"); this.exports = ImmutableMap.<String, String> copyOf(checkNotNull(exports, "exports")); this.init = checkNotNull(init, "init"); this.run = checkNotNull(run, "run"); checkArgument(!run.delegate().isEmpty(), "you must specify at least one statement to run"); this.delegate = makeInitScriptStatement(instanceName, instanceHome, logDir, exports, init, run); }
@Override public void accept(StatementVisitor visitor) { for (Statement statement : delegate()) { visitor.visit(statement); } }
public String render(OsFamily family) { StringBuilder statementsBuilder = new StringBuilder(); for (Statement statement : delegate()) { statementsBuilder.append(statement.render(family)); } return statementsBuilder.toString(); }
@Override public Iterable<String> functionDependencies(OsFamily family) { Builder<String> functions = ImmutableList.builder(); for (Statement statement : delegate()) { functions.addAll(statement.functionDependencies(family)); } return functions.build(); }
public String render(OsFamily family) { StringBuilder statementsBuilder = new StringBuilder(); for (Statement statement : delegate()) { statementsBuilder.append(statement.render(family)); } return statementsBuilder.toString(); }
@Override public void accept(StatementVisitor visitor) { for (Statement statement : delegate()) { visitor.visit(statement); } }
public String render(OsFamily family) { StringBuilder statementsBuilder = new StringBuilder(); for (Statement statement : delegate()) { statementsBuilder.append(statement.render(family)); } return statementsBuilder.toString(); }
@Override public Iterable<String> functionDependencies(OsFamily family) { Builder<String> functions = ImmutableList.builder(); for (Statement statement : delegate()) { functions.addAll(statement.functionDependencies(family)); } return functions.build(); }
@Override public Iterable<String> functionDependencies(OsFamily family) { Builder<String> functions = ImmutableList.builder(); for (Statement statement : delegate()) { functions.addAll(statement.functionDependencies(family)); } return functions.build(); }
@Override public Iterable<String> functionDependencies(OsFamily family) { Builder<String> functions = ImmutableList.builder(); for (Statement statement : delegate()) { functions.addAll(statement.functionDependencies(family)); } return functions.build(); }
@Override public void accept(StatementVisitor visitor) { for (Statement statement : delegate()) { visitor.visit(statement); } }
@Override public Iterable<String> functionDependencies(OsFamily family) { Builder<String> functions = ImmutableList.builder(); for (Statement statement : delegate()) { functions.addAll(statement.functionDependencies(family)); } return functions.build(); }
public String render(OsFamily family) { StringBuilder statementsBuilder = new StringBuilder(); for (Statement statement : delegate()) { statementsBuilder.append(statement.render(family)); } return statementsBuilder.toString(); }
@Override public void accept(StatementVisitor visitor) { for (Statement statement : delegate()) { visitor.visit(statement); } }
@Override public void accept(StatementVisitor visitor) { for (Statement statement : delegate()) { visitor.visit(statement); } }
public String render(OsFamily family) { StringBuilder statementsBuilder = new StringBuilder(); for (Statement statement : delegate()) { statementsBuilder.append(statement.render(family)); } return statementsBuilder.toString(); }
@Override public void accept(StatementVisitor visitor) { for (Statement statement : delegate()) { visitor.visit(statement); } }
public String render(OsFamily family) { StringBuilder statementsBuilder = new StringBuilder(); for (Statement statement : delegate()) { statementsBuilder.append(statement.render(family)); } return statementsBuilder.toString(); }
@Override public Iterable<String> functionDependencies(OsFamily family) { Builder<String> functions = ImmutableList.builder(); for (Statement statement : delegate()) { functions.addAll(statement.functionDependencies(family)); } return functions.build(); }
private void addUnixRunScript(String runScript, StringBuilder builder) { builder.append("# add desired commands from the user\n"); Builder<String> userCommands = ImmutableList.builder(); userCommands.add("cd " + pwd); for (Statement statement : statements) { if (statement instanceof Call || (statement instanceof StatementList && any(StatementList.class.cast(statement).delegate(), instanceOf(Call.class)))) { statement = new ExitInsteadOfReturn(statement); } userCommands.addAll(Splitter.on('\n').split(statement.render(OsFamily.UNIX))); } builder.append(appendFile(runScript, userCommands.build(), DELIMITER).render(OsFamily.UNIX)); }