package ru.yandex.qatools.allure.command; import io.airlift.command.Command; import retrofit.client.Response; import ru.yandex.qatools.allure.logging.Messages; import ru.yandex.qatools.allure.repository.RepositoryClient; import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; import java.nio.file.Path; import static ru.yandex.qatools.allure.repository.RepositoryClientBuilder.newClient; /** * @author eroshenkoam@yandex-team.ru */ @Command(name = "upgrade", description = "Download and install latest release report version") public class BundleUpgrade extends BundleCommand { /** * {@inheritDoc} */ @Override protected void runUnsafe() throws IOException { RepositoryClient repositoryClient = newClient(); String releaseVersion = repositoryClient.getMetadata().getVersioning().getRelease(); if (isVersionNotInstalled(releaseVersion)) { Path executablePath = getExecutablePath(releaseVersion); Files.createDirectories(executablePath.getParent()); getLogger().info(Messages.COMMAND_REPORT_UPGRADE_BUNDLE_DOWNLOADING, releaseVersion); Response response = repositoryClient.downloadBundle(releaseVersion); try (InputStream stream = response.getBody().in()) { Files.copy(stream, executablePath); getConfig().getInstalledVersions().add(releaseVersion); } } getConfig().switchVersion(releaseVersion); saveConfig(); getLogger().info(Messages.COMMAND_BUNDLE_SWITCH_BUNDLE_VERSION_SWITCHED, releaseVersion); } }