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"