mirror of
https://github.com/scm-manager/scm-manager.git
synced 2025-11-13 17:05:43 +01:00
improve Command
This commit is contained in:
@@ -9,6 +9,7 @@ package sonia.scm.io;
|
|||||||
|
|
||||||
//~--- JDK imports ------------------------------------------------------------
|
//~--- JDK imports ------------------------------------------------------------
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -27,4 +28,14 @@ public interface Command
|
|||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
public CommandResult execute() throws IOException;
|
public CommandResult execute() throws IOException;
|
||||||
|
|
||||||
|
//~--- set methods ----------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method description
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param file
|
||||||
|
*/
|
||||||
|
public void setWorkDirectory(File file);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import sonia.scm.util.Util;
|
|||||||
//~--- JDK imports ------------------------------------------------------------
|
//~--- JDK imports ------------------------------------------------------------
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
@@ -63,6 +64,22 @@ public class SimpleCommand implements Command
|
|||||||
return getResult(process);
|
return getResult(process);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//~--- set methods ----------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method description
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param workDirectory
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public void setWorkDirectory(File workDirectory)
|
||||||
|
{
|
||||||
|
this.workDirectory = workDirectory;
|
||||||
|
}
|
||||||
|
|
||||||
|
//~--- methods --------------------------------------------------------------
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method description
|
* Method description
|
||||||
*
|
*
|
||||||
@@ -75,9 +92,12 @@ public class SimpleCommand implements Command
|
|||||||
{
|
{
|
||||||
ProcessBuilder processBuilder = new ProcessBuilder(command);
|
ProcessBuilder processBuilder = new ProcessBuilder(command);
|
||||||
|
|
||||||
processBuilder.redirectErrorStream(true);
|
if (workDirectory != null)
|
||||||
|
{
|
||||||
|
processBuilder = processBuilder.directory(workDirectory);
|
||||||
|
}
|
||||||
|
|
||||||
return processBuilder.start();
|
return processBuilder.redirectErrorStream(true).start();
|
||||||
}
|
}
|
||||||
|
|
||||||
//~--- get methods ----------------------------------------------------------
|
//~--- get methods ----------------------------------------------------------
|
||||||
@@ -140,4 +160,7 @@ public class SimpleCommand implements Command
|
|||||||
|
|
||||||
/** Field description */
|
/** Field description */
|
||||||
private String[] command;
|
private String[] command;
|
||||||
|
|
||||||
|
/** Field description */
|
||||||
|
private File workDirectory;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -92,6 +92,7 @@ public abstract class AbstractSimpleRepositoryHandler<T extends SimpleRepository
|
|||||||
throw new RepositoryException(msg.toString());
|
throw new RepositoryException(msg.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
postCreate(repository, directory);
|
||||||
repository.setType(getType().getName());
|
repository.setType(getType().getName());
|
||||||
storeRepositoryConfig(repository);
|
storeRepositoryConfig(repository);
|
||||||
}
|
}
|
||||||
@@ -263,6 +264,19 @@ public abstract class AbstractSimpleRepositoryHandler<T extends SimpleRepository
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Method description
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param repository
|
||||||
|
* @param directory
|
||||||
|
*
|
||||||
|
* @throws IOException
|
||||||
|
* @throws RepositoryException
|
||||||
|
*/
|
||||||
|
protected void postCreate(Repository repository, File directory)
|
||||||
|
throws IOException, RepositoryException {}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Method description
|
* Method description
|
||||||
*
|
*
|
||||||
|
|||||||
Reference in New Issue
Block a user