From 2e9ceb19d914b7f180eaddb45893286ed45585b8 Mon Sep 17 00:00:00 2001 From: Chaitanya Sharma <55058351+Chaitanyabsprip@users.noreply.github.com> Date: Mon, 11 Aug 2025 13:11:56 +0530 Subject: [PATCH] feat: add install.sh script (#120) * feat: add installation script * feat(install): ask install path as an envvar * feat: add help command to installation script * docs(install): say that INSTALL_PATH is required * fix(install): should exit early if curl is not found * refactor: rename install -> install.sh --- install.sh | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100755 install.sh diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..e3ac77e --- /dev/null +++ b/install.sh @@ -0,0 +1,64 @@ +#!/bin/sh + +_have() { type "$1" >/dev/null 2>&1; } + +help() { + cat <.*: "\(.*\)".*>\1>') && test -n "$ver" + ver=${ver##*/} + } + tarname='' + archi=$(uname -sm) + case "$archi" in + Darwin\ arm64) tarname="gitmux_${ver}_macOS_arm64.tar.gz" ;; + Darwin\ x86_64) tarname="gitmux_${ver}_macOS_amd64.tar.gz" ;; + Linux\ aarch64*) tarname="gitmux_${ver}_linux_arm64.tar.gz" ;; + Linux\ *64) tarname="gitmux_${ver}_linux_amd64.tar.gz" ;; + *) echo "Unsupported architecture" && return 1 ;; + esac + tmpdir="$(mktemp -d)" + cd "$tmpdir" || : + curl -sSLO "https://github.com/$repo/releases/download/$ver/$tarname" + tar -xf gitmux*.tar.gz && + mv gitmux "${INSTALL_PATH}" + [ -d "$tmpdir" ] && rm -rf "$tmpdir" +} + +if [ "$1" = "-h" ] || [ "$1" = "--help" ]; then help && exit 0; fi + +! _have curl && echo "This script depends on curl" && exit 1 +[ -z "$INSTALL_PATH" ] && echo "Please set the INSTALL_PATH envvar to specify installation directory" && exit 1 + +echo "Installing gitmux..." +if gh_install "$@"; then + echo "Successfully installed gitmux" +else + echo "Could not install gitmux" && exit 1 +fi