ipld-eth-server/vendor/github.com/ipfs/go-ipfs/bin/check_gx_program
2019-12-02 13:24:46 -06:00

47 lines
1.3 KiB
Bash
Executable File

#!/bin/sh
#
# Check if a gx program is installed and if its version is at least
# equal to a minimum version number.
#
# Call it for example like this:
#
# $ check_gx_program "gx-go" "0.2.0" "Use 'make gx_upgrade' to install or upgrade gx-go."
#
# or:
#
# $ check_gx_program "gx" "0.3" "Use 'make gx_upgrade' to install or upgrade gx."
#
USAGE="$0 GX_PROGRAM_NAME GX_MIN_VERSION UPGRADE_MSG"
die() {
printf >&2 "fatal: %s\n" "$@"
exit 1
}
# Get arguments
test "$#" -eq "3" || die "This program must be passed exactly 3 arguments" "Usage: $USAGE"
GX_PROGRAM_NAME="$1"
GX_MIN_VERSION="$2"
UPGRADE_MSG="$3"
# Get path to the directory containing this file
# If $0 has no slashes, uses "./"
PREFIX=$(expr "$0" : "\(.*\/\)") || PREFIX='./'
# Include the 'check_at_least_version' function
. ${PREFIX}check_version
# Check that the gx program exists
type "$GX_PROGRAM_NAME" >/dev/null 2>&1 || die_upgrade "Program $GX_PROGRAM_NAME is not installed!"
# Check the gx program version
VERS_STR=$($GX_PROGRAM_NAME -v 2>&1) || die "'$GX_PROGRAM_NAME -v' failed with output: $VERS_STR"
GX_CUR_VERSION=$(expr "$VERS_STR" : ".*$GX_PROGRAM_NAME.* version \(.*\)") || die "Invalid '$GX_PROGRAM_NAME -v' output: $VERS_STR"
check_at_least_version "$GX_MIN_VERSION" "$GX_CUR_VERSION" "$GX_PROGRAM_NAME"