diff options
Diffstat (limited to 'src/main/java/org/openslx/taskmanager/tasks/BackupRestore.java')
-rw-r--r-- | src/main/java/org/openslx/taskmanager/tasks/BackupRestore.java | 33 |
1 files changed, 25 insertions, 8 deletions
diff --git a/src/main/java/org/openslx/taskmanager/tasks/BackupRestore.java b/src/main/java/org/openslx/taskmanager/tasks/BackupRestore.java index bbb68f5..20f5363 100644 --- a/src/main/java/org/openslx/taskmanager/tasks/BackupRestore.java +++ b/src/main/java/org/openslx/taskmanager/tasks/BackupRestore.java @@ -1,5 +1,8 @@ package org.openslx.taskmanager.tasks; +import java.util.ArrayList; +import java.util.List; + import org.openslx.satserver.util.Constants; import org.openslx.taskmanager.api.SystemCommandTask; @@ -11,6 +14,10 @@ public class BackupRestore extends SystemCommandTask private String mode; @Expose private String backupFile; + @Expose + private boolean restoreOpenslx; + @Expose + private boolean restoreDozmod; private Output status = new Output(); @@ -37,14 +44,24 @@ public class BackupRestore extends SystemCommandTask @Override protected String[] initCommandLine() { - if ( backupFile == null ) - backupFile = "ignored"; - return new String[] { - "/usr/bin/sudo", - "-n", - "-u", "root", Constants.BASEDIR + "/scripts/system-" + mode, - backupFile - }; + List<String> args = new ArrayList<>(); + args.add( "/usr/bin/sudo" ); + args.add( "-n" ); + args.add( "-u" ); + args.add( "root" ); + args.add( Constants.BASEDIR + "/scripts/system-" + mode ); + if ( mode.equals( "restore" ) ) { + if ( backupFile != null ) { + args.add( backupFile ); + } + if ( restoreDozmod ) { + args.add( "dozmod" ); + } + if ( restoreOpenslx ) { + args.add( "openslx" ); + } + } + return args.toArray( new String[ args.size() ] ); } @Override |