|
1 | 1 | #!/usr/bin/env bash |
| 2 | +# set -x |
| 3 | + |
| 4 | +ABIGEN_VERSION=1.14.8-stable |
| 5 | +ABIGEN_VERSION_SOURCE=github.com/ethereum/go-ethereum/cmd/ [email protected] |
| 6 | +ABIGEN_INSTALL_CMD="go install $(echo $ABIGEN_VERSION_SOURCE)" |
| 7 | + |
| 8 | +SOLC_VERSION=0.8.26 |
| 9 | +SOLC_SELECT_CMD_INSTALL="solc-select install $(echo $SOLC_VERSION)" |
| 10 | +SOLC_SELECT_CMD_USE="solc-select use $(echo $SOLC_VERSION)" |
| 11 | + |
| 12 | +install_abigen() { |
| 13 | + echo "Installing abigen version $ABIGEN_VERSION..." |
| 14 | + $ABIGEN_INSTALL_CMD |
| 15 | + if [ $? -ne 0 ]; then |
| 16 | + echo "Error: Failed to install abigen." |
| 17 | + exit 1 |
| 18 | + fi |
| 19 | + echo "abigen version $ABIGEN_VERSION installed successfully." |
| 20 | +} |
2 | 21 |
|
3 | 22 | # Check if abigen is installed |
4 | | -if ! command -v abigen &> /dev/null |
5 | | -then |
6 | | - echo "abigen could not be found, installing..." |
7 | | - go install github.com/ethereum/go-ethereum/cmd/abigen@latest |
| 23 | +if command -v abigen &> /dev/null; then |
| 24 | + INSTALLED_ABIGEN_VERSION=$(abigen --version | grep -o "$ABIGEN_VERSION") |
| 25 | + if [ "$INSTALLED_ABIGEN_VERSION" == "$ABIGEN_VERSION" ]; then |
| 26 | + echo "abigen version $ABIGEN_VERSION is already installed." |
| 27 | + else |
| 28 | + echo "abigen version $ABIGEN_VERSION not found, installing..." |
| 29 | + install_abigen |
| 30 | + fi |
| 31 | +else |
| 32 | + echo "abigen not found, installing..." |
| 33 | + install_abigen |
8 | 34 | fi |
9 | 35 |
|
10 | 36 | # Check if solc is installed and at version 0.8.26 |
11 | 37 | if command -v solc &> /dev/null |
12 | 38 | then |
13 | | - SOLC_VERSION=$(solc --version | grep -o "Version: 0.8.26") |
14 | | - if [ "$SOLC_VERSION" == "Version: 0.8.26" ]; then |
15 | | - echo "solc version 0.8.26 is already installed." |
| 39 | + INSTALLED_SOLC_VERSION=$(solc --version | grep -o "$SOLC_VERSION") |
| 40 | + if [ "$INSTALLED_SOLC_VERSION" == "$SOLC_VERSION" ]; then |
| 41 | + echo "solc version $SOLC_VERSION is already installed." |
16 | 42 | else |
17 | | - echo "solc is installed but not version 0.8.26. Checking for solc-select..." |
| 43 | + echo "solc is installed but not version $SOLC_VERSION. Checking for solc-select..." |
18 | 44 | if command -v solc-select &> /dev/null |
19 | 45 | then |
20 | | - echo "solc-select found, installing and using solc 0.8.26..." |
21 | | - solc-select install 0.8.26 |
22 | | - solc-select use 0.8.26 |
| 46 | + echo "solc-select found, installing and using solc $SOLC_VERSION." |
| 47 | + $SOLC_SELECT_CMD_INSTALL |
| 48 | + $SOLC_SELECT_CMD_USE |
23 | 49 | else |
24 | | - echo "solc-select not found. Please install solc-select or ensure solc 0.8.26 is available." |
| 50 | + echo "solc-select not found. Please install solc-select or ensure solc $SOLC_VERSION is available." |
25 | 51 | exit 1 |
26 | 52 | fi |
27 | 53 | fi |
28 | 54 | else |
29 | 55 | echo "solc is not installed. Checking for solc-select..." |
30 | 56 | if command -v solc-select &> /dev/null |
31 | 57 | then |
32 | | - echo "solc-select found, installing and using solc 0.8.26..." |
33 | | - solc-select install 0.8.26 |
34 | | - solc-select use 0.8.26 |
| 58 | + echo "solc-select found, installing and using solc $SOLC_VERSION." |
| 59 | + $SOLC_SELECT_CMD_INSTALL |
| 60 | + $SOLC_SELECT_CMD_USE |
35 | 61 | else |
36 | | - echo "solc or solc-select could not be found. Please install one of them to proceed." |
| 62 | + echo "solc-select not found. Please install solc-select or ensure solc $SOLC_VERSION is available." |
37 | 63 | exit 1 |
38 | 64 | fi |
39 | 65 | fi |
|
0 commit comments