package com.atsebak.embeddedlinuxjvm.deploy;
import com.atsebak.embeddedlinuxjvm.protocol.ssh.SSHHandlerTarget;
import com.intellij.execution.configurations.RuntimeConfigurationException;
import lombok.Builder;
import org.jetbrains.annotations.NotNull;
import java.io.File;
import java.io.IOException;
@Builder
public class DeploymentTarget {
private final SSHHandlerTarget sshHandlerTarget;
/**
* Uploads to the embedded system for a given Java Project storing it in /home/{username}/IdeaProjects
*
* @param outputDirectory Full of output from compiling
* @param cmd Java Command
* @throws RuntimeConfigurationException
* @throws IOException
* @throws ClassNotFoundException
*/
public void upload(@NotNull final File outputDirectory, @NotNull final String cmd) throws RuntimeConfigurationException, IOException, ClassNotFoundException {
sshHandlerTarget.uploadAndRunJavaApp(outputDirectory, cmd);
}
/**
* Uploads any type of directory/file to the given path the user chose.
*
* @param uploadTo
* @param fileToUpload
*/
public void upload(@NotNull final String uploadTo, @NotNull final File fileToUpload) throws IOException, RuntimeConfigurationException {
sshHandlerTarget.genericUpload(uploadTo, fileToUpload);
}
}