@Override public String render(OsFamily family) { if (family == OsFamily.WINDOWS) { throw new UnsupportedOperationException("windows not yet implemented"); } URI rubygemsUri = URI.create(String.format(RUBYGEMS_URI_TEMPLATE, version.or(DEFAULT_RUBYGEMS_VERSION))); ImmutableList.Builder<Statement> statements = ImmutableList.builder(); statements.add(exec("if ! hash gem 2>/dev/null; then")); statements.add(exec("(")); statements.add(extractTargzAndFlattenIntoDirectory(rubygemsUri, "/tmp/rubygems")); statements.add(exec("{cd} /tmp/rubygems")); statements.add(exec("ruby setup.rb --no-format-executable")); statements.add(exec("{rm} -fr /tmp/rubygems")); statements.add(exec(")")); statements.add(exec("fi")); if (updateSystem) { statements.add(updateSystemVersion.isPresent() ? exec("gem update --system " + updateSystemVersion.get()) : exec("gem update --system")); } if (updateExistingGems) { statements.add(exec("gem update --no-rdoc --no-ri")); } return new StatementList(statements.build()).render(family); }
public void testExtractTargzAndFlattenIntoDirectoryUNIX() { Statement save = Statements .extractTargzAndFlattenIntoDirectory( URI.create("http://www.us.apache.org/dist/maven/binaries/apache-maven-3.0.4-bin.tar.gz"), "/usr/local/maven"); assertEquals( save.render(OsFamily.UNIX), "mkdir /tmp/$$\n" + "curl -q -s -S -L --connect-timeout 10 --max-time 600 --retry 20 -X GET http://www.us.apache.org/dist/maven/binaries/apache-maven-3.0.4-bin.tar.gz |(mkdir -p /tmp/$$ &&cd /tmp/$$ &&tar -xpzf -)\n" + "mkdir -p /usr/local/maven\n" + "mv /tmp/$$/*/* /usr/local/maven\n" + "rm -rf /tmp/$$\n"); }
@Override public String render(OsFamily family) { if (family == OsFamily.WINDOWS) { throw new UnsupportedOperationException("windows not yet implemented"); } URI rubygemsUri = URI.create(String.format(RUBYGEMS_URI_TEMPLATE, version.or(DEFAULT_RUBYGEMS_VERSION))); ImmutableList.Builder<Statement> statements = ImmutableList.builder(); statements.add(exec("if ! hash gem 2>/dev/null; then")); statements.add(exec("(")); statements.add(extractTargzAndFlattenIntoDirectory(rubygemsUri, "/tmp/rubygems")); statements.add(exec("{cd} /tmp/rubygems")); statements.add(exec("ruby setup.rb --no-format-executable")); statements.add(exec("{rm} -fr /tmp/rubygems")); statements.add(exec(")")); statements.add(exec("fi")); if (updateSystem) { statements.add(updateSystemVersion.isPresent() ? exec("gem update --system " + updateSystemVersion.get()) : exec("gem update --system")); } if (updateExistingGems) { statements.add(exec("gem update --no-rdoc --no-ri")); } return new StatementList(statements.build()).render(family); }
@Override public String render(OsFamily family) { if (family == OsFamily.WINDOWS) { throw new UnsupportedOperationException("windows not yet implemented"); } URI rubygemsUri = URI.create(String.format(RUBYGEMS_URI_TEMPLATE, version.or(DEFAULT_RUBYGEMS_VERSION))); ImmutableList.Builder<Statement> statements = ImmutableList.builder(); statements.add(exec("if ! hash gem 2>/dev/null; then")); statements.add(exec("(")); statements.add(extractTargzAndFlattenIntoDirectory(rubygemsUri, "/tmp/rubygems")); statements.add(exec("{cd} /tmp/rubygems")); statements.add(exec("ruby setup.rb --no-format-executable")); statements.add(exec("{rm} -fr /tmp/rubygems")); statements.add(exec(")")); statements.add(exec("fi")); if (updateSystem) { statements.add(updateSystemVersion.isPresent() ? exec("gem update --system " + updateSystemVersion.get()) : exec("gem update --system")); } if (updateExistingGems) { statements.add(exec("gem update --no-rdoc --no-ri")); } return new StatementList(statements.build()).render(family); }
@Override public String render(OsFamily family) { if (family == OsFamily.WINDOWS) { throw new UnsupportedOperationException("windows not yet implemented"); } URI rubygemsUri = URI.create(String.format(RUBYGEMS_URI_TEMPLATE, version.or(DEFAULT_RUBYGEMS_VERSION))); ImmutableList.Builder<Statement> statements = ImmutableList.builder(); statements.add(exec("if ! hash gem 2>/dev/null; then")); statements.add(exec("(")); statements.add(extractTargzAndFlattenIntoDirectory(rubygemsUri, "/tmp/rubygems")); statements.add(exec("{cd} /tmp/rubygems")); statements.add(exec("ruby setup.rb --no-format-executable")); statements.add(exec("{rm} -fr /tmp/rubygems")); statements.add(exec(")")); statements.add(exec("fi")); if (updateSystem) { statements.add(updateSystemVersion.isPresent() ? exec("gem update --system " + updateSystemVersion.get()) : exec("gem update --system")); } if (updateExistingGems) { statements.add(exec("gem update --no-rdoc --no-ri")); } return new StatementList(statements.build()).render(family); }
@Override public String render(OsFamily family) { if (family == OsFamily.WINDOWS) { throw new UnsupportedOperationException("windows not yet implemented"); } URI rubygemsUri = URI.create(String.format(RUBYGEMS_URI_TEMPLATE, version.or(DEFAULT_RUBYGEMS_VERSION))); ImmutableList.Builder<Statement> statements = ImmutableList.builder(); statements.add(exec("if ! hash gem 2>/dev/null; then")); statements.add(exec("(")); statements.add(extractTargzAndFlattenIntoDirectory(rubygemsUri, "/tmp/rubygems")); statements.add(exec("{cd} /tmp/rubygems")); statements.add(exec("ruby setup.rb --no-format-executable")); statements.add(exec("{rm} -fr /tmp/rubygems")); statements.add(exec(")")); statements.add(exec("fi")); if (updateSystem) { statements.add(updateSystemVersion.isPresent() ? exec("gem update --system " + updateSystemVersion.get()) : exec("gem update --system")); } if (updateExistingGems) { statements.add(exec("gem update --no-rdoc --no-ri")); } return new StatementList(statements.build()).render(family); }
public void testExtractTargzAndFlattenIntoDirectoryUNIX() { Statement save = Statements .extractTargzAndFlattenIntoDirectory( URI.create("http://www.us.apache.org/dist/maven/binaries/apache-maven-3.0.4-bin.tar.gz"), "/usr/local/maven"); assertEquals( save.render(OsFamily.UNIX), "export TAR_TEMP=\"$(mktemp -d)\"\n" + "curl -q -s -S -L --connect-timeout 10 --max-time 600 --retry 20 -X GET http://www.us.apache.org/dist/maven/binaries/apache-maven-3.0.4-bin.tar.gz |(mkdir -p \"${TAR_TEMP}\" &&cd \"${TAR_TEMP}\" &&tar -xpzf -)\n" + "mkdir -p /usr/local/maven\n" + "mv \"${TAR_TEMP}\"/*/* /usr/local/maven\n" + "rm -rf \"${TAR_TEMP}\"\n"); }
@Override public String render(OsFamily family) { if (family == OsFamily.WINDOWS) { throw new UnsupportedOperationException("windows not yet implemented"); } URI rubygemsUri = URI.create(String.format(RUBYGEMS_URI_TEMPLATE, version.or(DEFAULT_RUBYGEMS_VERSION))); ImmutableList.Builder<Statement> statements = ImmutableList.builder(); statements.add(exec("if ! hash gem 2>/dev/null; then")); statements.add(exec("(")); statements.add(extractTargzAndFlattenIntoDirectory(rubygemsUri, "/tmp/rubygems")); statements.add(exec("{cd} /tmp/rubygems")); statements.add(exec("ruby setup.rb --no-format-executable")); statements.add(exec("{rm} -fr /tmp/rubygems")); statements.add(exec(")")); statements.add(exec("fi")); if (updateSystem) { statements.add(updateSystemVersion.isPresent() ? exec("gem update --system " + updateSystemVersion.get()) : exec("gem update --system")); } if (updateExistingGems) { statements.add(exec("gem update --no-rdoc --no-ri")); } return new StatementList(statements.build()).render(family); }
public static Statement install() { return new StatementList( AdminAccess.builder().adminUsername("web").build(), InstallJDK.fromOpenJDK(), authorizePortInIpTables(), extractTargzAndFlattenIntoDirectory(JETTY_URL, JETTY_HOME), exec("chown -R web " + JETTY_HOME)); }
public static Statement install() { return new StatementList( AdminAccess.builder().adminUsername("web").build(), InstallJDK.fromOpenJDK(), authorizePortInIpTables(), extractTargzAndFlattenIntoDirectory(JETTY_URL, JETTY_HOME), exec("chown -R web " + JETTY_HOME)); }