#!/usr/bin/env bash set -e rust_toolchain= required_typos_version="" function usage() { echo "$0: install typos-cli" echo echo "--help Print this message" echo "--rust-toolchain The toolchain to use" echo "--typos-version Version of typos-cli to install" echo } while [ -n "$1" ] do case "$1" in "--rust-toolchain" ) shift rust_toolchain="$1" ;; "--typos-version" ) shift required_typos_version="$1" ;; *) echo "Unknown param : $1" exit 1 ;; esac shift done if [[ "${rust_toolchain::1}" != "+" ]]; then rust_toolchain=${rust_toolchain:"+${rust_toolchain}"} fi if ! which typos ; then cargo ${rust_toolchain:+"$rust_toolchain"} install --locked typos-cli --version ~"${required_typos_version}" || \ ( echo "Unable to install typos-cli, unknown error." && exit 1 ) exit 0 fi ver_string="$(typos --version | cut -d ' ' -f 2)" ver_major="$(echo "${ver_string}" | cut -d '.' -f 1)" ver_minor="$(echo "${ver_string}" | cut -d '.' -f 2)" min_ver_major="$(echo "${required_typos_version}" | cut -d '.' -f 1)" min_ver_minor="$(echo "${required_typos_version}" | cut -d '.' -f 2)" if [[ "${ver_major}" -gt "${min_ver_major}" ]]; then exit 0 elif [[ "${ver_major}" -eq "${min_ver_major}" ]] && [[ "${ver_minor}" -ge "${min_ver_minor}" ]]; then exit 0 else cargo ${rust_toolchain:+"$rust_toolchain"} install --locked typos-cli --version ~"${required_typos_version}" || \ ( echo "Unable to install typos-cli, unknown error." && exit 1 ) fi