{
  "repo": "pingcap/benchmarksql",
  "binary": "run-benchmark",
  "binary_path": "run/runBenchmark.sh",
  "dependencies": {
    "RunBenchmarkCLI.Execute": {
      "infrastructure": {
        "filesystem": {
          "conditions": [
            "Always when the command is invoked"
          ],
          "operations": [
            {
              "operation": "READ FILE",
              "trigger": "Read the provided properties file and the local sequence file",
              "conditions": [
                "PROPS_FILE argument is present"
              ],
              "implementation": "source funcs.sh $1; read/write ./.jTPCC_run_seq.dat"
            },
            {
              "operation": "WRITE FILE",
              "trigger": "Persist the next benchmark run sequence number",
              "conditions": [
                "Sequence file can be created or updated"
              ],
              "implementation": "echo \"${SEQ}\" > ./.jTPCC_run_seq.dat"
            }
          ]
        },
        "jvm": {
          "conditions": [
            "Only after classpath resolution succeeds"
          ],
          "operations": [
            {
              "operation": "EXECUTE JVM MAIN",
              "trigger": "Launch the benchmark driver",
              "conditions": [
                "setCP succeeded"
              ],
              "implementation": "java -cp \"$myCP\" -Dprop=$1 -DrunID=${SEQ} jTPCC"
            }
          ]
        }
      },
      "services": []
    }
  }
}
