From e16bbe048f448996559ac23e0927aa9ca9f40f63 Mon Sep 17 00:00:00 2001 From: Conrad Irwin Date: Tue, 11 Jun 2024 19:12:14 -0600 Subject: [PATCH] Make install.sh sh-compatible (#12899) Co-Authored-By: Max Release Notes: - N/A --------- Co-authored-by: Max Co-authored-by: Shyim --- script/install.sh | 44 ++++++++++++++++++++++++-------------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/script/install.sh b/script/install.sh index 621862ec59..b446fb771c 100755 --- a/script/install.sh +++ b/script/install.sh @@ -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'"