Browse Source

add support for -n / --no-exec command line flag

master
Jonathan Cobb 3 years ago
parent
commit
6739b8a369
11 changed files with 25 additions and 19 deletions
  1. +2
    -1
      src/main/java/jvcl/main/Jvcl.java
  2. +1
    -0
      src/main/java/jvcl/model/operation/JOperation.java
  3. +1
    -2
      src/main/java/jvcl/operation/exec/ConcatExec.java
  4. +10
    -0
      src/main/java/jvcl/operation/exec/ExecBase.java
  5. +1
    -2
      src/main/java/jvcl/operation/exec/KenBurnsExec.java
  6. +1
    -2
      src/main/java/jvcl/operation/exec/LetterboxExec.java
  7. +1
    -2
      src/main/java/jvcl/operation/exec/OverlayExec.java
  8. +1
    -3
      src/main/java/jvcl/operation/exec/ScaleExec.java
  9. +1
    -2
      src/main/java/jvcl/operation/exec/SplitExec.java
  10. +1
    -3
      src/main/java/jvcl/operation/exec/TrimExec.java
  11. +5
    -2
      src/main/java/jvcl/service/OperationEngine.java

+ 2
- 1
src/main/java/jvcl/main/Jvcl.java View File

@@ -19,6 +19,7 @@ public class Jvcl extends BaseMain<JvclOptions> {
@Override protected void run() throws Exception {
final JvclOptions options = getOptions();
final JSpec spec = options.getSpec();
final boolean noExec = options.isNoExec();

if (empty(spec.getAssets())) {
err(">>> jvcl: no assets defined in spec");
@@ -34,7 +35,7 @@ public class Jvcl extends BaseMain<JvclOptions> {
final AssetManager assetManager = new AssetManager(toolbox, getOptions().scratchDir());
Arrays.stream(spec.getAssets()).forEach(assetManager::defineAsset);

final OperationEngine opEngine = new OperationEngine(toolbox, assetManager);
final OperationEngine opEngine = new OperationEngine(toolbox, assetManager, noExec);
Arrays.stream(spec.getOperations()).forEach(opEngine::perform);

final int opCount = spec.getOperations().length;


+ 1
- 0
src/main/java/jvcl/model/operation/JOperation.java View File

@@ -31,6 +31,7 @@ public abstract class JOperation {

@Getter @Setter private String operation;
@Getter @Setter private JsonNode creates;
@Getter @Setter private boolean noExec = false;

public String hash(JAsset[] sources) { return hash(sources, null); }



+ 1
- 2
src/main/java/jvcl/operation/exec/ConcatExec.java View File

@@ -14,7 +14,6 @@ import java.util.List;
import java.util.Map;

import static org.cobbzilla.util.io.FileUtil.abs;
import static org.cobbzilla.util.system.CommandShell.execScript;

@Slf4j
public class ConcatExec extends ExecBase<ConcatOperation> {
@@ -51,7 +50,7 @@ public class ConcatExec extends ExecBase<ConcatOperation> {
final String script = renderScript(toolbox, ctx, CONCAT_RECODE_TEMPLATE_1);

log.debug("operate: running script: "+script);
final String scriptOutput = execScript(script);
final String scriptOutput = exec(script, op.isNoExec());
log.debug("operate: command output: "+scriptOutput);
assetManager.addOperationAsset(output);
}


+ 10
- 0
src/main/java/jvcl/operation/exec/ExecBase.java View File

@@ -12,6 +12,7 @@ import java.util.Map;

import static org.cobbzilla.util.io.FileUtil.abs;
import static org.cobbzilla.util.io.FileUtil.basename;
import static org.cobbzilla.util.system.CommandShell.execScript;

@Slf4j
public abstract class ExecBase<OP extends JOperation> {
@@ -36,4 +37,13 @@ public abstract class ExecBase<OP extends JOperation> {
return defaultOutfile;
}
}

public String exec(String script, boolean noExec) {
if (noExec) {
System.out.println(script);
return "";
} else {
return execScript(script);
}
}
}

+ 1
- 2
src/main/java/jvcl/operation/exec/KenBurnsExec.java View File

@@ -20,7 +20,6 @@ import static java.math.BigDecimal.ZERO;
import static jvcl.service.Toolbox.TWO;
import static jvcl.service.Toolbox.divideBig;
import static org.cobbzilla.util.io.FileUtil.abs;
import static org.cobbzilla.util.system.CommandShell.execScript;

@Slf4j
public class KenBurnsExec extends ExecBase<KenBurnsOperation> {
@@ -97,7 +96,7 @@ public class KenBurnsExec extends ExecBase<KenBurnsOperation> {
final String script = renderScript(toolbox, ctx, KEN_BURNS_TEMPLATE);

log.debug("operate: running script: "+script);
final String scriptOutput = execScript(script);
final String scriptOutput = exec(script, op.isNoExec());
log.debug("operate: command output: "+scriptOutput);
assetManager.addOperationAsset(output);
}


+ 1
- 2
src/main/java/jvcl/operation/exec/LetterboxExec.java View File

@@ -14,7 +14,6 @@ import java.util.Map;

import static org.cobbzilla.util.daemon.ZillaRuntime.die;
import static org.cobbzilla.util.string.StringUtil.safeShellArg;
import static org.cobbzilla.util.system.CommandShell.execScript;

@Slf4j
public class LetterboxExec extends SingleOrMultiSourceExecBase<LetterboxOperation> {
@@ -71,7 +70,7 @@ public class LetterboxExec extends SingleOrMultiSourceExecBase<LetterboxOperatio
final String script = renderScript(toolbox, ctx, LETTERBOX_TEMPLATE);

log.debug("operate: running script: "+script);
final String scriptOutput = execScript(script);
final String scriptOutput = exec(script, op.isNoExec());
log.debug("operate: command output: "+scriptOutput);
if (output == subOutput) {
assetManager.addOperationAsset(output);


+ 1
- 2
src/main/java/jvcl/operation/exec/OverlayExec.java View File

@@ -15,7 +15,6 @@ import java.util.HashMap;
import java.util.Map;

import static org.cobbzilla.util.io.FileUtil.abs;
import static org.cobbzilla.util.system.CommandShell.execScript;

@Slf4j
public class OverlayExec extends ExecBase<OverlayOperation> {
@@ -59,7 +58,7 @@ public class OverlayExec extends ExecBase<OverlayOperation> {
final String script = renderScript(toolbox, ctx, OVERLAY_TEMPLATE);

log.debug("operate: running script: "+script);
final String scriptOutput = execScript(script);
final String scriptOutput = exec(script, op.isNoExec());
log.debug("operate: command output: "+scriptOutput);
assetManager.addOperationAsset(output);
}


+ 1
- 3
src/main/java/jvcl/operation/exec/ScaleExec.java View File

@@ -13,8 +13,6 @@ import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

import static org.cobbzilla.util.system.CommandShell.execScript;

@Slf4j
public class ScaleExec extends SingleOrMultiSourceExecBase<ScaleOperation> {

@@ -58,7 +56,7 @@ public class ScaleExec extends SingleOrMultiSourceExecBase<ScaleOperation> {
final String script = renderScript(toolbox, ctx, SCALE_TEMPLATE);

log.debug("operate: running script: "+script);
final String scriptOutput = execScript(script);
final String scriptOutput = exec(script, op.isNoExec());
log.debug("operate: command output: "+scriptOutput);
if (output == subOutput) {
assetManager.addOperationAsset(output);


+ 1
- 2
src/main/java/jvcl/operation/exec/SplitExec.java View File

@@ -17,7 +17,6 @@ import java.util.Map;
import static org.cobbzilla.util.daemon.ZillaRuntime.die;
import static org.cobbzilla.util.io.FileUtil.abs;
import static org.cobbzilla.util.io.FileUtil.mkdirOrDie;
import static org.cobbzilla.util.system.CommandShell.execScript;

@Slf4j
public class SplitExec extends ExecBase<SplitOperation> {
@@ -76,7 +75,7 @@ public class SplitExec extends ExecBase<SplitOperation> {
final String script = renderScript(toolbox, ctx, SPLIT_TEMPLATE);

log.debug("operate: running script: "+script);
final String scriptOutput = execScript(script);
final String scriptOutput = exec(script, op.isNoExec());
log.debug("operate: command output: "+scriptOutput);
assetManager.addOperationAssetSlice(output, slice);
}


+ 1
- 3
src/main/java/jvcl/operation/exec/TrimExec.java View File

@@ -13,8 +13,6 @@ import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

import static org.cobbzilla.util.system.CommandShell.execScript;

@Slf4j
public class TrimExec extends SingleOrMultiSourceExecBase<TrimOperation> {

@@ -55,7 +53,7 @@ public class TrimExec extends SingleOrMultiSourceExecBase<TrimOperation> {
final String script = renderScript(toolbox, ctx, TRIM_TEMPLATE);

log.debug("operate: running script: "+script);
final String scriptOutput = execScript(script);
final String scriptOutput = exec(script, op.isNoExec());
log.debug("operate: command output: "+scriptOutput);
if (output == subOutput) {
assetManager.addOperationAsset(output);


+ 5
- 2
src/main/java/jvcl/service/OperationEngine.java View File

@@ -1,18 +1,21 @@
package jvcl.service;

import jvcl.model.operation.JOperation;
import lombok.Getter;

public class OperationEngine {

private final Toolbox toolbox;
private final AssetManager assetManager;
@Getter private final boolean noExec;

public OperationEngine(Toolbox toolbox, AssetManager assetManager) {
public OperationEngine(Toolbox toolbox, AssetManager assetManager, boolean noExec) {
this.toolbox = toolbox;
this.assetManager = assetManager;
this.noExec = noExec;
}

public void perform(JOperation op) {
op.getExec().operate(op, toolbox, assetManager);
op.setNoExec(noExec).getExec().operate(op, toolbox, assetManager);
}
}

Loading…
Cancel
Save