feat(install): Add version option to install script (#5728)

feat(install): Add version option to install script
This commit is contained in:
Luís Santos 2024-03-03 17:00:50 +00:00 committed by GitHub
parent ae711c0f33
commit f66bfd9435
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 21 additions and 3 deletions

View File

@ -157,6 +157,7 @@ usage() {
"-b, --bin-dir" "Override the bin installation directory [default: ${BIN_DIR}]" \ "-b, --bin-dir" "Override the bin installation directory [default: ${BIN_DIR}]" \
"-a, --arch" "Override the architecture identified by the installer [default: ${ARCH}]" \ "-a, --arch" "Override the architecture identified by the installer [default: ${ARCH}]" \
"-B, --base-url" "Override the base URL used for downloading releases [default: ${BASE_URL}]" \ "-B, --base-url" "Override the base URL used for downloading releases [default: ${BASE_URL}]" \
"-v, --version" "Install a specific version of starship [default: ${VERSION}]" \
"-h, --help" "Display this help message" "-h, --help" "Display this help message"
} }
@ -424,6 +425,10 @@ if [ -z "${BASE_URL-}" ]; then
BASE_URL="https://github.com/starship/starship/releases" BASE_URL="https://github.com/starship/starship/releases"
fi fi
if [ -z "${VERSION-}" ]; then
VERSION="latest"
fi
# Non-POSIX shells can break once executing code due to semantic differences # Non-POSIX shells can break once executing code due to semantic differences
verify_shell_is_posix_or_exit verify_shell_is_posix_or_exit
@ -446,6 +451,10 @@ while [ "$#" -gt 0 ]; do
BASE_URL="$2" BASE_URL="$2"
shift 2 shift 2
;; ;;
-v | --version)
VERSION="$2"
shift 2
;;
-V | --verbose) -V | --verbose)
VERBOSE=1 VERBOSE=1
@ -476,6 +485,10 @@ while [ "$#" -gt 0 ]; do
BASE_URL="${1#*=}" BASE_URL="${1#*=}"
shift 1 shift 1
;; ;;
-v=* | --version=*)
VERSION="${1#*=}"
shift 1
;;
-V=* | --verbose=*) -V=* | --verbose=*)
VERBOSE="${1#*=}" VERBOSE="${1#*=}"
shift 1 shift 1
@ -517,13 +530,18 @@ if [ "${PLATFORM}" = "pc-windows-msvc" ]; then
EXT=zip EXT=zip
fi fi
URL="${BASE_URL}/latest/download/starship-${TARGET}.${EXT}" if [ "${VERSION}" != "latest" ]; then
URL="${BASE_URL}/download/${VERSION}/starship-${TARGET}.${EXT}"
else
URL="${BASE_URL}/latest/download/starship-${TARGET}.${EXT}"
fi
info "Tarball URL: ${UNDERLINE}${BLUE}${URL}${NO_COLOR}" info "Tarball URL: ${UNDERLINE}${BLUE}${URL}${NO_COLOR}"
confirm "Install Starship ${GREEN}latest${NO_COLOR} to ${BOLD}${GREEN}${BIN_DIR}${NO_COLOR}?" confirm "Install Starship ${GREEN}${VERSION}${NO_COLOR} to ${BOLD}${GREEN}${BIN_DIR}${NO_COLOR}?"
check_bin_dir "${BIN_DIR}" check_bin_dir "${BIN_DIR}"
install "${EXT}" install "${EXT}"
completed "Starship installed" completed "Starship ${VERSION} installed"
printf '\n' printf '\n'
info "Please follow the steps for your shell to complete the installation:" info "Please follow the steps for your shell to complete the installation:"