code: def _run_bunny(args):
      
      main_file, json_file, project_name = _get_main_and_json(args.directory)
      work_dir = utils.safe_makedir(os.path.join(os.getcwd(), "bunny_work"))
      flags = ["-b", work_dir]
      log_file = os.path.join(work_dir, "%s-bunny.log" % project_name)
      if os.path.exists(work_dir):
          caches = [os.path.join(work_dir, d) for d in os.listdir(work_dir)
                    if os.path.isdir(os.path.join(work_dir, d))]
          if caches:
              flags += ["--cache-dir", max(caches, key=os.path.getmtime)]
      if args.no_container:
          _remove_bcbiovm_path()
          flags += ["--no-container"]
      cmd = ["rabix"] + flags + [main_file, json_file]
      with utils.chdir(work_dir):
          _run_tool(cmd, not args.no_container, work_dir, log_file)
docs: Run CWL with rabix bunny.