github.com/ethereum-optimism/optimism@v1.7.2/packages/contracts-bedrock/scripts/getting-started/versions.sh (about)

     1  #!/usr/bin/env bash
     2  
     3  # This script prints out the versions of the various tools used in the Getting
     4  # Started quickstart guide on the docs site. Simplifies things for users so
     5  # they can easily see if they're using the right versions of everything.
     6  
     7  version() {
     8    local string=$1
     9    local version_regex='([0-9]+(\.[0-9]+)+)'
    10    if [[ $string =~ $version_regex ]]; then
    11      echo "${BASH_REMATCH[1]}"
    12    else
    13      echo "No version found."
    14    fi
    15  }
    16  
    17  versionFoundry() {
    18    local string="$1"
    19    local version_regex='forge ([0-9]+\.[0-9]+\.[0-9]+)'
    20    local commit_hash_regex='\(([a-fA-F0-9]+)'
    21    local full_regex="${version_regex} ${commit_hash_regex}"
    22  
    23    if [[ $string =~ $full_regex ]]; then
    24      echo "${BASH_REMATCH[1]} (${BASH_REMATCH[2]})"
    25    else
    26      echo "No version, commit hash, and timestamp found."
    27    fi
    28  }
    29  
    30  
    31  # Grab versions
    32  ver_git=$(version "$(git --version)")
    33  ver_go=$(version "$(go version)")
    34  ver_node=$(version "$(node --version)")
    35  ver_pnpm=$(version "$(pnpm --version)")
    36  ver_foundry=$(versionFoundry "$(forge --version)")
    37  ver_make=$(version "$(make --version)")
    38  ver_jq=$(version "$(jq --version)")
    39  ver_direnv=$(version "$(direnv --version)")
    40  
    41  # Print versions
    42  echo "Dependency | Minimum         | Actual"
    43  echo "git          2                $ver_git"
    44  echo "go           1.21             $ver_go"
    45  echo "node         20               $ver_node"
    46  echo "pnpm         8                $ver_pnpm"
    47  echo "foundry      0.2.0 (a5efe4f)  $ver_foundry"
    48  echo "make         3                $ver_make"
    49  echo "jq           1.6              $ver_jq"
    50  echo "direnv       2                $ver_direnv"