Make install.sh sh-compatible (#12899)
Conrad Irwin
,
Max
, and
Shyim
created
Co-Authored-By: Max <max@zed.dev>
Release Notes:
- N/A
---------
Co-authored-by: Max <max@zed.dev>
Co-authored-by: Shyim <github@shyim.de>
Change summary
script/install.sh | 44 ++++++++++++++++++++++++--------------------
1 file changed, 24 insertions(+), 20 deletions(-)
Detailed changes
@@ -1,5 +1,5 @@
-#!/usr/bin/env bash
-set -euo pipefail
+#!/usr/bin/env sh
+set -eu
main() {
platform="$(uname -s)"
@@ -7,9 +7,9 @@ main() {
channel="${ZED_CHANNEL:-stable}"
temp="$(mktemp -d "/tmp/zed-XXXXX")"
- if [[ $platform == "Darwin" ]]; then
+ if [ "$platform" = "Darwin" ]; then
platform="macos"
- elif [[ $platform == "Linux" ]]; then
+ elif [ "$platform" = "Linux" ]; then
platform="linux"
channel="${ZED_CHANNEL:-preview}"
else
@@ -17,14 +17,18 @@ main() {
exit 1
fi
- if [[ $platform == "macos" ]] && [[ $arch == arm64* ]]; then
- arch="aarch64"
- elif [[ $arch = x86* || $arch == i686* ]]; then
- arch="x86_64"
- else
- echo "Unsupported architecture $arch"
- exit 1
- fi
+ case "$platform-$arch" in
+ macos-arm64*)
+ arch="aarch64"
+ ;;
+ macos-x86* | linux-x86* | linux-i686*)
+ arch="x86_64"
+ ;;
+ *)
+ echo "Unsupported platform or architecture"
+ exit 1
+ ;;
+ esac
if which curl >/dev/null 2>&1; then
curl () {
@@ -33,7 +37,7 @@ main() {
elif which wget >/dev/null 2>&1; then
curl () {
wget -O- "$@"
- }
+ }
else
echo "Could not find 'curl' or 'wget' in your path"
exit 1
@@ -51,7 +55,7 @@ linux() {
fi
suffix=""
- if [[ $channel != "stable" ]]; then
+ if [ "$channel" != "stable" ]; then
suffix="-$channel"
fi
@@ -84,16 +88,16 @@ linux() {
mkdir -p "$HOME/.local/bin" "$HOME/.local/share/applications"
# Link the binary
- if [ -f ~/.local/zed$suffix.app/bin/zed ]; then
- ln -sf ~/.local/zed$suffix.app/bin/zed "$HOME/.local/bin/zed"
+ if [ -f "$HOME/.local/zed$suffix.app/bin/zed" ]; then
+ ln -sf "$HOME/.local/zed$suffix.app/bin/zed" "$HOME/.local/bin/zed"
else
# support for versions before 0.139.x.
- ln -sf ~/.local/zed$suffix.app/bin/cli "$HOME/.local/bin/zed"
+ ln -sf "$HOME/.local/zed$suffix.app/bin/cli" "$HOME/.local/bin/zed"
fi
# Copy .desktop file
desktop_file_path="$HOME/.local/share/applications/${appid}.desktop"
- cp ~/.local/zed$suffix.app/share/applications/zed$suffix.desktop "${desktop_file_path}"
+ cp "$HOME/.local/zed$suffix.app/share/applications/zed$suffix.desktop" "${desktop_file_path}"
sed -i "s|Icon=zed|Icon=$HOME/.local/zed$suffix.app/share/icons/hicolor/512x512/apps/zed.png|g" "${desktop_file_path}"
sed -i "s|Exec=zed|Exec=$HOME/.local/zed$suffix.app/libexec/zed-editor|g" "${desktop_file_path}"
@@ -114,7 +118,7 @@ macos() {
hdiutil attach -quiet "$temp/Zed-$arch.dmg" -mountpoint "$temp/mount"
app="$(cd "$temp/mount/"; echo *.app)"
echo "Installing $app"
- if [[ -d "/Applications/$app" ]]; then
+ if [ -d "/Applications/$app" ]; then
echo "Removing existing $app"
rm -rf "/Applications/$app"
fi
@@ -123,7 +127,7 @@ macos() {
mkdir -p "$HOME/.local/bin"
# Link the binary
- ln -sf /Applications/$app/Contents/MacOS/cli "$HOME/.local/bin/zed"
+ ln -sf "/Applications/$app/Contents/MacOS/cli" "$HOME/.local/bin/zed"
if which "zed" >/dev/null 2>&1; then
echo "Zed has been installed. Run with 'zed'"