
# Baseline Single Job Linux Batch file

# Environment setup macros (kept as-is)
$VCAST_ENVIRONMENT_SETUP_LINUX
$VCAST_USE_CI_LICENSES_LINUX

export VCAST_RPTS_PRETTY_PRINT_HTML=FALSE
export VCAST_NO_FILE_TRUNCATION=1
export VCAST_RPTS_SELF_CONTAINED=FALSE

# --- Use strict testcase import ---
if [ "${VCAST_USE_STRICT_IMPORT}" -eq 1 ]; then
  "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/managewait.py" --wait_time "${VCAST_WAIT_TIME}" --wait_loops "${VCAST_WAIT_LOOPS}" --command_line="--project \"${VCAST_PROJECT_NAME}\" --config=VCAST_STRICT_TEST_CASE_IMPORT=TRUE"
fi

# --- Default Setup ---
"$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/managewait.py" --wait_time "${VCAST_WAIT_TIME}" --wait_loops "${VCAST_WAIT_LOOPS}" --command_line="--project \"${VCAST_PROJECT_NAME}\" --full-status"
"$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/managewait.py" --wait_time "${VCAST_WAIT_TIME}" --wait_loops "${VCAST_WAIT_LOOPS}" --command_line="--project \"${VCAST_PROJECT_NAME}\" --force --release-locks"
"$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/managewait.py" --wait_time "${VCAST_WAIT_TIME}" --wait_loops "${VCAST_WAIT_LOOPS}" --command_line="--project \"${VCAST_PROJECT_NAME}\" --config VCAST_CUSTOM_REPORT_FORMAT=${VCAST_REPORT_FORMAT}"

# --- Use Imported Results ---
if [ "${VCAST_USE_IMPORTED_RESULTS}" -eq 1 ]; then
  if [ "${VCAST_USE_LOCAL_IMPORTED_RESULTS}" -eq 1 ] && [ -f "${VCAST_PROJECT_BASENAME}_results.vcr" ]; then
    "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/managewait.py" --wait_time "${VCAST_WAIT_TIME}" --wait_loops "${VCAST_WAIT_LOOPS}" --command_line="--project \"${VCAST_PROJECT_NAME}\" --import-result=${VCAST_PROJECT_BASENAME}_results.vcr"
    "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/managewait.py" --wait_time "${VCAST_WAIT_TIME}" --wait_loops "${VCAST_WAIT_LOOPS}" --command_line="--project \"${VCAST_PROJECT_NAME}\" --full-status"
    if [ -f "${VCAST_PROJECT_BASENAME}_results.vcr" ]; then
      cp -p "${VCAST_PROJECT_BASENAME}_results.vcr" "${VCAST_PROJECT_BASENAME}_results_orig.vcr"
    fi
  fi

  if [ "${VCAST_USE_EXTERNAL_IMPORTED_RESULTS}" -eq 1 ] && [ -f "${VCAST_USE_EXTERNAL_FILENAME}" ]; then
    "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/managewait.py" --wait_time "${VCAST_WAIT_TIME}" --wait_loops "${VCAST_WAIT_LOOPS}" --command_line="--project \"${VCAST_PROJECT_NAME}\" --import-result=\"${VCAST_USE_EXTERNAL_FILENAME}\""
    "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/managewait.py" --wait_time "${VCAST_WAIT_TIME}" --wait_loops "${VCAST_WAIT_LOOPS}" --command_line="--project \"${VCAST_PROJECT_NAME}\" --full-status"
  fi
fi

# --- Clean up old files ---
rm -f command.log *_rebuild.html coverage_diffs.html_tmp combined_incr_rebuild.tmp "${VCAST_PROJECT_BASENAME}_full_report.html_tmp" "${VCAST_PROJECT_BASENAME}_metrics_report.html"

# --- Build & Execute ---
$VCAST_EXECUTE_PREAMBLE_LINUX "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/managewait.py" --wait_time "${VCAST_WAIT_TIME}" --wait_loops "${VCAST_WAIT_LOOPS}" --command_line="--project \"${VCAST_PROJECT_NAME}\" --build-execute ${VCAST_USE_CBT} --output ${VCAST_PROJECT_BASENAME}_rebuild.html"

cp -p command.log complete_build.log

if [ -f "${VCAST_PROJECT_BASENAME}_rebuild.${VCAST_HTML_OR_TEXT}" ]; then
  cp -p "${VCAST_PROJECT_BASENAME}_rebuild.${VCAST_HTML_OR_TEXT}" "${VCAST_PROJECT_BASENAME}_rebuild.${VCAST_HTML_OR_TEXT}_tmp"
  "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/fixup_reports.py" "${VCAST_PROJECT_BASENAME}_rebuild.${VCAST_HTML_OR_TEXT}_tmp"
fi

# --- Reporting / Plugins ---
if [ "${VCAST_OPTION_USE_REPORTING}" -eq 1 ]; then
  "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/managewait.py" --wait_time "${VCAST_WAIT_TIME}" --wait_loops "${VCAST_WAIT_LOOPS}" --command_line="--project \"${VCAST_PROJECT_NAME}\" --config VCAST_CUSTOM_REPORT_FORMAT=HTML"
  "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/generate-results.py" --junit --wait_time "${VCAST_WAIT_TIME}" --wait_loops "${VCAST_WAIT_LOOPS}" "${VCAST_PROJECT_NAME}" --buildlog complete_build.log

  if [ "${VCAST_USE_RGW3}" -eq 1 ]; then
    "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/managewait.py" --wait_time "${VCAST_WAIT_TIME}" --wait_loops "${VCAST_WAIT_LOOPS}" --command_line="--project \"${VCAST_PROJECT_NAME}\" --clicast-args rgw export"
  fi

  if [ "${VCAST_USE_COVERAGE_PLUGIN}" -eq 1 ]; then
    "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/cobertura.py" --extended "${VCAST_PROJECT_NAME}"
  fi

  "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/full_report_no_toc.py" "${VCAST_PROJECT_NAME}"
  "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/managewait.py" --wait_time "${VCAST_WAIT_TIME}" --wait_loops "${VCAST_WAIT_LOOPS}" --command_line="--project \"${VCAST_PROJECT_NAME}\" --create-report=aggregate --output=${VCAST_PROJECT_BASENAME}_aggregate_report.html"

  if [ "${VCAST_USE_IMPORTED_RESULTS}" -eq 1 ] && [ "${VCAST_USE_LOCAL_IMPORTED_RESULTS}" -eq 1 ]; then
    "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/managewait.py" --wait_time "${VCAST_WAIT_TIME}" --wait_loops "${VCAST_WAIT_LOOPS}" --command_line="--project \"${VCAST_PROJECT_NAME}\" --export-result=${VCAST_PROJECT_BASENAME}_results.vcr"
    "$VECTORCAST_DIR/vpython" "${WORKSPACE}/vc_scripts/merge_vcr.py" --orig "${VCAST_PROJECT_BASENAME}_results_orig.vcr" --new "${VCAST_PROJECT_BASENAME}_results.vcr"
  fi
fi
