aboutsummaryrefslogtreecommitdiff
path: root/src/cli/install.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli/install.sh')
-rw-r--r--src/cli/install.sh97
1 files changed, 63 insertions, 34 deletions
diff --git a/src/cli/install.sh b/src/cli/install.sh
index 3e487f448..e49d69f64 100644
--- a/src/cli/install.sh
+++ b/src/cli/install.sh
@@ -13,41 +13,40 @@ BGreen=''
if test -t 1; then
# Reset
- Color_Off='\033[0m' # Text Reset
+ Color_Off='\033[0m' # Text Reset
# Regular Colors
- Red='\033[0;31m' # Red
- Green='\033[0;32m' # Green
- White='\033[0;37m' # White
+ Red='\033[0;31m' # Red
+ Green='\033[0;32m' # Green
+ White='\033[0;37m' # White
# Bold
- BGreen='\033[1;32m' # Green
- BWhite='\033[1;37m' # White
+ BGreen='\033[1;32m' # Green
+ BWhite='\033[1;37m' # White
fi
-
if ! command -v unzip >/dev/null; then
- echo -e "${Red}error${Color_Off}: unzip is required to install Bun (see: https://github.com/Jarred-Sumner/bun#unzip-is-required)." 1>&2
- exit 1
+ echo -e "${Red}error${Color_Off}: unzip is required to install Bun (see: https://github.com/Jarred-Sumner/bun#unzip-is-required)." 1>&2
+ exit 1
fi
if [ "$OS" = "Windows_NT" ]; then
- echo "error: Please install Bun using Windows Subsystem for Linux."
+ echo "error: Please install Bun using Windows Subsystem for Linux."
exit 1
else
- case $(uname -sm) in
- "Darwin x86_64") target="darwin-x64" ;;
- "Darwin arm64") target="darwin-aarch64" ;;
- *) target="linux-x64" ;;
- esac
+ case $(uname -sm) in
+ "Darwin x86_64") target="darwin-x64" ;;
+ "Darwin arm64") target="darwin-aarch64" ;;
+ *) target="linux-x64" ;;
+ esac
fi
github_repo="https://github.com/Jarred-Sumner/bun-releases-for-updater"
if [ $# -eq 0 ]; then
- bun_uri="$github_repo/releases/latest/download/bun-${target}.zip"
+ bun_uri="$github_repo/releases/latest/download/bun-${target}.zip"
else
- bun_uri="$github_repo/releases/download/${1}/bun-${target}.zip"
+ bun_uri="$github_repo/releases/download/${1}/bun-${target}.zip"
fi
bun_install="${BUN_INSTALL:-$HOME/.bun}"
@@ -55,27 +54,32 @@ bin_dir="$bun_install/bin"
exe="$bin_dir/bun"
if [ ! -d "$bin_dir" ]; then
- mkdir -p "$bin_dir"
+ mkdir -p "$bin_dir"
+
+ if (($?)); then
+ echo -e "${Red}error${Color_Off}: Failed to create install directory $bin_dir" 1>&2
+ exit 1
+ fi
fi
curl --fail --location --progress-bar --output "$exe.zip" "$bun_uri"
-if (( $? )); then
+if (($?)); then
echo -e "${Red}error${Color_Off}: Failed to download Bun from $bun_uri" 1>&2
exit 1
fi
unzip -d "$bin_dir" -q -o "$exe.zip"
-if (( $? )); then
+if (($?)); then
echo -e "${Red}error${Color_Off}: Failed to extract Bun" 1>&2
exit 1
fi
mv "$bin_dir/bun-${target}/bun" "$exe"
-if (( $? )); then
+if (($?)); then
echo -e "${Red}error${Color_Off}: Failed to extract Bun" 1>&2
exit 1
fi
chmod +x "$exe"
-if (( $? )); then
+if (($?)); then
echo -e "${Red}error${Color_Off}: Failed to set permissions on bun executable." 1>&2
exit 1
fi
@@ -85,22 +89,47 @@ rm "$exe.zip"
echo -e "${Green}Bun was installed successfully to ${BGreen}$exe$Color_Off"
if command -v bun --version >/dev/null; then
+ # Install completions, but we don't care if it fails
+ IS_BUN_AUTO_UPDATE="true" $exe completions >/dev/null 2>&1
+
echo "Run 'bun --help' to get started"
exit 0
fi
if test $(basename $SHELL) == "fish"; then
- echo ""
- echo "Manually add the directory to your \$HOME/.config/fish"
- echo ""
- echo -e " $BWhite set -Ux BUN_INSTALL \"$bun_install\"$Color_Off"
- echo -e " $BWhite set -px --path PATH \"$bin_dir\"$Color_Off"
-elif test $(basename $SHELL) == "zsh"; then
- echo ""
- echo "Manually add the directory to your \$HOME/.zshrc (or similar)"
- echo ""
- echo -e " $BWhite export BUN_INSTALL=\"$bun_install\"$Color_Off"
- echo -e " $BWhite export PATH=\"\$BUN_INSTALL/bin:\$PATH\"$Color_Off"
+ # Install completions, but we don't care if it fails
+ IS_BUN_AUTO_UPDATE="true" SHELL="fish" $exe completions >/dev/null 2>&1
+ if test -f $HOME/.config/fish; then
+ echo -e "\nset -Ux BUN_INSTALL \"$bun_install\"\n" >>"$HOME/.config/fish"
+ echo -e "\nset -px --path PATH \"$bin_dir\"\n" >>"$HOME/.config/fish"
+ echo ""
+ echo -e "$BWhite Added \"$bin_dir\" to PATH in \"$HOME/.config/fish\"$Color_Off"
+ else
+ echo ""
+ echo "Manually add the directory to your \$HOME/.config/fish"
+ echo ""
+ echo -e " $BWhite set -Ux BUN_INSTALL \"$bun_install\"$Color_Off"
+ echo -e " $BWhite set -px --path PATH \"$bin_dir\"$Color_Off"
+ fi
+elif
+ test $(basename $SHELL) == "zsh"
+then
+ # Install completions, but we don't care if it fails
+ IS_BUN_AUTO_UPDATE="true" SHELL="zsh" $exe completions >/dev/null 2>&1
+
+ if test -f $HOME/.zshrc; then
+ echo -e "export BUN_INSTALL=\"$bun_install\"" >>"$HOME/.zshrc"
+ echo -e "export PATH=\"\$BUN_INSTALL/bin:\$PATH\"" >>"$HOME/.zshrc"
+ echo ""
+ echo -e "$BWhite Added \"$bin_dir\" to PATH in \"$HOME/.zshrc\"$Color_Off"
+ else
+ echo ""
+ echo "Manually add the directory to your \$HOME/.zshrc (or similar)"
+ echo ""
+ echo -e " $BWhite export BUN_INSTALL=\"$bun_install\"$Color_Off"
+ echo -e " $BWhite export PATH=\"\$BUN_INSTALL/bin:\$PATH\"$Color_Off"
+ fi
+
else
echo ""
echo "Manually add the directory to your \$HOME/.bashrc (or similar)"
@@ -111,4 +140,4 @@ fi
echo ""
echo -e "To get started, run"
echo -e "$BWhite"
-echo -e " bun --help$Color_Off" \ No newline at end of file
+echo -e " bun --help$Color_Off"