blob: 0061a4f38aa7d4b49e6547a2fc895c4d842d6775 (
plain) (
tree)
|
|
package org.openslx.taskmanager.tasks;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.openslx.taskmanager.api.SystemCommandTask;
import com.google.gson.annotations.Expose;
public class DozmodLauncher extends SystemCommandTask
{
/**
* What to do: start, stop...
*/
@Expose
private String operation;
private StatusObject status = new StatusObject();
@Override
protected String[] initCommandLine()
{
List<String> params = new ArrayList<>();
params.addAll(
Arrays.asList(
"/usr/bin/sudo",
"-n",
"-u", "dmsd",
"/opt/dmsd/control.sh" ) );
switch ( operation ) {
case "start":
case "stop":
params.add( operation );
break;
default:
status.addMsg( "Unknown operation: " + operation );
return null;
}
this.timeoutSeconds = 5;
return params.toArray( new String[ 0 ] );
}
private boolean errorIfNull( String check, String message )
{
if ( check == null )
status.addMsg( message );
return check == null;
}
@Override
protected boolean processEnded( int exitCode )
{
return exitCode == 0;
}
@Override
protected void processStdOut( String line )
{
status.addMsg( line );
}
@Override
protected void processStdErr( String line )
{
status.addMsg( line );
}
@Override
protected boolean initTask()
{
this.setStatusObject( this.status );
return !errorIfNull( operation, "No operation given" );
}
class StatusObject
{
private String messages = "";
public void addMsg( String str )
{
messages = messages + "\n" + str;
}
}
}
|