package io.airlift.airship.shared; import com.google.common.io.Files; import java.io.File; import static com.google.common.base.Charsets.UTF_8; import static com.google.common.io.Files.asByteSink; import static com.google.common.io.Resources.getResource; import static com.google.common.io.Resources.asByteSource; import static io.airlift.airship.shared.FileUtils.createTar; import static io.airlift.airship.shared.FileUtils.createTempDir; public class ArchiveHelper { public static void createArchive(File archive) throws Exception { File tempDir = createTempDir("archive"); try { // copy launcher to bin dir File binDir = new File(tempDir, "bin"); binDir.mkdirs(); File launcher = new File(binDir, "launcher"); asByteSource(getResource(ArchiveHelper.class, "launcher")).copyTo(asByteSink(launcher)); // make launcher executable launcher.setExecutable(true, true); // add a readme file Files.write(ArchiveHelper.class.getName() + " test archive", new File(tempDir, "README.txt"), UTF_8); // tar up the archive createTar(tempDir, archive); } finally { FileUtils.deleteRecursively(tempDir); } } }