All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.salesforceiq.augmenteddriver.util.saucelabs.SauceLabsUploader Maven / Gradle / Ivy

package com.salesforceiq.augmenteddriver.util.saucelabs;

import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Module;
import com.saucelabs.saucerest.SauceREST;
import com.salesforceiq.augmenteddriver.util.Util;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.nio.file.Files;
import java.util.List;

/**
 * Utility class to upload files to SauceLabs.
 *
 * It reuses the Guice injection for getting the credentials
 */
public class SauceLabsUploader {
    private static final Logger LOG = LoggerFactory.getLogger(SauceLabsUploader.class);

    private static void checkArguments(SauceCommandLineArguments arguments) {
        Preconditions.checkNotNull(arguments.file(), "You should specify a file to upload");
        Preconditions.checkArgument(Files.exists(arguments.file()), "The file should exist " + arguments.file().getFileName());
    }

    /**
     * Should receive the path of the file to upload and the conf with the properties file with the credentials.
     *
     * @param args the command line arguments.
     * @throws Exception if there was an error.
     */
    public static void main(String[] args) throws Exception {
        SauceCommandLineArguments arguments = SauceCommandLineArguments.initialize(args);
        checkArguments(arguments);

        List modules = Lists.newArrayList(new SauceLabsModule());
        Injector injector = Guice.createInjector(modules);
        SauceREST sauceREST = injector.getInstance(SauceREST.class);
        long start = System.currentTimeMillis();
        LOG.info(String.format("Uploading file %s to SauceLabs, overwriting %s",
                arguments.file().getFileName().toString(), arguments.overwrite()));
        sauceREST.uploadFile(arguments.file().toFile(), arguments.file().getFileName().toString(), arguments.overwrite());
        LOG.info(String.format("Finishing uploading file %s in %s", arguments.file().getFileName().toString(),
                Util.TO_PRETTY_FORMAT.apply(System.currentTimeMillis() - start)));
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy