All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.rouz.task.proc.Exec Maven / Gradle / Ivy

package io.rouz.task.proc;

import com.google.auto.value.AutoValue;

import java.util.Arrays;

import io.rouz.task.dsl.TaskBuilder.F1;
import io.rouz.task.dsl.TaskBuilder.F2;
import io.rouz.task.dsl.TaskBuilder.F3;

/**
 * TODO: document.
 */
public final class Exec {

  private Exec() {
    // no instantiation
  }

  public static  F1 exec(F1 f) {
    return a -> {
      final String[] args = f.apply(a);
      System.out.println("running " + Arrays.toString(args));
      // exec(args);
      return new AutoValue_Exec_ResultValue(args.length);
    };
  }

  public static  F2 exec(F2 f) {
    return (a, b) -> {
      final String[] args = f.apply(a, b);
      System.out.println("running " + Arrays.toString(args));
      // exec(args);
      return new AutoValue_Exec_ResultValue(args.length);
    };
  }

  public static  F3 exec(F3 f) {
    return (a, b, c) -> {
      final String[] args = f.apply(a, b, c);
      System.out.println("running " + Arrays.toString(args));
      // exec(args);
      return new AutoValue_Exec_ResultValue(args.length);
    };
  }

  public interface Result {
    int exitCode();
  }

  @AutoValue
  static abstract class ResultValue implements Result {
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy