Skip to content

Commit 34c744b

Browse files
authored
Merge pull request tfutils#351 from denizgenc/fix_mac_arch_selection
Improve `TFENV_ARCH` initialisation for Apple Silicon Macs
2 parents 978ef3a + 94f0d2c commit 34c744b

File tree

1 file changed

+45
-30
lines changed

1 file changed

+45
-30
lines changed

libexec/tfenv-install

+45-30
Original file line numberDiff line numberDiff line change
@@ -82,49 +82,64 @@ if [ -f "${dst_path}/terraform" ]; then
8282
exit 0;
8383
fi;
8484

85-
# Add support of ARM64 for Linux & Apple Silicon
86-
case "$(uname -m)" in
87-
aarch64* | arm64*)
88-
# There is no arm64 support for versions:
89-
# < 0.11.15
90-
# >= 0.12.0, < 0.12.30
91-
# >= 0.13.0, < 0.13.5
92-
if [[ "${version}" =~ 0\.(([0-9]|10))\.\d* ||
93-
"${version}" =~ 0\.11\.(([0-9]|1[0-4]))$ ||
94-
"${version}" =~ 0\.12\.(([0-9]|[1-2][0-9]))$ ||
95-
"${version}" =~ 0\.13\.[0-4]$
96-
]]; then
97-
TFENV_ARCH="${TFENV_ARCH:-amd64}";
98-
else
99-
TFENV_ARCH="${TFENV_ARCH:-arm64}";
100-
fi;
101-
;;
102-
*)
103-
TFENV_ARCH="${TFENV_ARCH:-amd64}";
104-
;;
105-
esac;
106-
10785
case "$(uname -s)" in
10886
Darwin*)
109-
os="darwin_${TFENV_ARCH}";
87+
kernel="darwin";
11088
;;
11189
MINGW64*)
112-
os="windows_${TFENV_ARCH}";
90+
kernel="windows";
11391
;;
114-
MSYS_NT*)
115-
os="windows_${TFENV_ARCH}";
92+
MSYSNT*)
93+
kernel="windows";
11694
;;
117-
CYGWIN_NT*)
118-
os="windows_${TFENV_ARCH}";
95+
CYGWINNT*)
96+
kernel="windows";
11997
;;
12098
FreeBSD*)
121-
os="freebsd_${TFENV_ARCH}";
99+
kernel="freebsd";
122100
;;
123101
*)
124-
os="linux_${TFENV_ARCH}";
102+
kernel="linux";
125103
;;
126104
esac;
127105

106+
# Add support of ARM64 for Linux & Apple Silicon
107+
case "$(uname -m)" in
108+
aarch64* | arm64*)
109+
case "${kernel}" in
110+
"linux")
111+
# There is no arm64 support for versions:
112+
# < 0.11.15
113+
# >= 0.12.0, < 0.12.30
114+
# >= 0.13.0, < 0.13.5
115+
if [[ "${version}" =~ 0\.(([0-9]|10))\.\d* ||
116+
"${version}" =~ 0\.11\.(([0-9]|1[0-4]))$ ||
117+
"${version}" =~ 0\.12\.(([0-9]|[1-2][0-9]))$ ||
118+
"${version}" =~ 0\.13\.[0-4]$
119+
]]; then
120+
TFENV_ARCH="${TFENV_ARCH:-amd64}";
121+
else
122+
TFENV_ARCH="${TFENV_ARCH:-arm64}";
123+
fi;
124+
;;
125+
"darwin")
126+
# No Apple Silicon builds before 1.0.2
127+
if [[ "${version}" =~ 0\..+$ || "${version}" =~ 1\.0\.0|1$
128+
]]; then
129+
TFENV_ARCH="${TFENV_ARCH:-amd64}";
130+
else
131+
TFENV_ARCH="${TFENV_ARCH:-arm64}";
132+
fi;
133+
;;
134+
esac;
135+
;;
136+
*)
137+
TFENV_ARCH="${TFENV_ARCH:-amd64}";
138+
;;
139+
esac;
140+
141+
os="${kernel}_${TFENV_ARCH}"
142+
128143
keybase_bin="$(command -v keybase 2>/dev/null)";
129144
shasum_bin="$(command -v shasum 2>/dev/null)";
130145
sha256sum_bin="$(command -v sha256sum 2>/dev/null)";

0 commit comments

Comments
 (0)