// Copyright lowRISC contributors.
// Licensed under the Apache License, Version 2.0, see LICENSE for details.
// SPDX-License-Identifier: Apache-2.0
{
  project:          opentitan
  repo_server:      "github.com/lowrisc/opentitan"
  doc_server:       docs.opentitan.org
  results_server:   reports.opentitan.org

  // Default directory structure for the output
  scratch_base_path:  "{scratch_root}/{branch}"
  scratch_path:       "{scratch_base_path}/{dut}-{flow}-{tool}"

  exports: [
    { SCRATCH_PATH: "{scratch_path}" },
    { proj_root: "{proj_root}" }
  ]

  // Results server stuff - indicate what command to use to copy over the results.
  // Workaround for gsutil to fall back to using python2.7.
  results_server_prefix:      "gs://"
  results_server_url_prefix:  "https://"
  results_server_cmd:         "CLOUDSDK_PYTHON=/usr/bin/python2.7 /usr/bin/gsutil"

  results_server_path: "{results_server_prefix}{results_server}/{rel_path}"
  results_server_dir:  "{results_server_path}/latest"

  results_server_html: "results.html"
  results_server_page: "{results_server_dir}/{results_server_html}"

  results_summary_server_html: "summary.html"
  results_summary_server_page: "{results_server_path}/{results_summary_server_html}"

  // If defined, this is printed into the results md files
  revision: '''{eval_cmd}
            COMMIT_L=`git rev-parse HEAD`; \
            COMMIT_S=`git rev-parse --short HEAD`; \
            echo "Revision: [\`$COMMIT_S\`]({results_server_url_prefix}{repo_server}/tree/$COMMIT_L)";
            '''

  // The current design level
  design_level:  "ip"
}
