2017-04-21 11:23:45 +02:00
#!/usr/bin/env bash
2017-02-02 00:49:32 +01:00
set -o errexit
set -o pipefail
set -o nounset
####
### Helper script for glide[-vc] to handle specifics for the Traefik repo.
##
GLIDE_ARGS = ( )
GLIDE_VC_ARGS = (
'--use-lock-file' # `glide list` seems to miss test dependencies, e.g., github.com/mattn/go-shellwords
'--only-code'
'--no-tests'
)
2017-07-06 16:28:13 +02:00
SCRIPT_DIR = " $( cd " $( dirname " ${ BASH_SOURCE [0] } " ) " && pwd ) "
readonly SCRIPT_DIR
readonly GLIDE_DIR = " ${ SCRIPT_DIR } /.. "
2017-02-02 00:49:32 +01:00
usage( ) {
echo " usage: $( basename " $0 " ) install | update | get <package> | trim
install: Install all dependencies and trim the vendor folder afterwards ( alternative command: i) .
update: Update all dependencies and trim the vendor folder afterwards ( alternative command: up) .
get: Add a dependency and trim the vendor folder afterwards.
trim: Trim the vendor folder only, do not install or update dependencies.
The current working directory must contain a glide.yaml file." >&2
}
2017-07-03 11:53:31 +02:00
GLIDE_ARGS += ( '--strip-vendor' )
2017-02-02 00:49:32 +01:00
if ! type glide > /dev/null 2>& 1; then
echo "glide not found in PATH." >& 2
exit 1
fi
if ! type glide-vc > /dev/null 2>& 1; then
echo "glide-vc not found in PATH." >& 2
exit 1
fi
2017-07-06 16:28:13 +02:00
if [ [ ! -e " ${ GLIDE_DIR } /glide.yaml " ] ] ; then
2017-02-02 00:49:32 +01:00
echo "no glide.yaml file found in the current working directory" >& 2
exit 1
fi
if [ [ $# -lt 1 ] ] ; then
echo "missing command" >& 2
usage
exit 1
fi
readonly glide_command = " $1 "
shift
skip_glide_command =
case " ${ glide_command } " in
'install' | 'i' )
if [ [ $# -ne 0 ] ] ; then
echo "surplus parameters given" >& 2
usage
exit 1
fi
; ;
'update' | 'up' )
if [ [ $# -ne 0 ] ] ; then
echo "surplus parameters given" >& 2
usage
exit 1
fi
; ;
'get' )
if [ [ $# -ne 1 ] ] ; then
echo 'insufficient/surplus arguments given for "get" command' >& 2
usage
exit 1
fi
2017-04-10 10:42:33 +02:00
GLIDE_ARGS += ( " $1 " )
2017-02-02 00:49:32 +01:00
shift
; ;
'trim' )
if [ [ $# -ne 0 ] ] ; then
echo "surplus parameters given" >& 2
usage
exit 1
fi
skip_glide_command = yes
; ;
*)
echo " unknown command: ${ glide_command } " >& 2
usage
exit 1
esac
readonly skip_glide_command
if [ [ -z " ${ skip_glide_command } " ] ] ; then
# Use parameter substitution to account for an empty glide arguments array
# that would otherwise lead to an "unbound variable" error due to the nounset
# option.
GLIDE_ARGS = ( " ${ GLIDE_ARGS + " ${ GLIDE_ARGS [@] } " } " )
echo " running: glide ${ glide_command } ${ GLIDE_ARGS [*] } "
glide ${ glide_command } ${ GLIDE_ARGS [*] }
fi
echo " trimming vendor folder using: glide-vc ${ GLIDE_VC_ARGS [*] } "
glide-vc ${ GLIDE_VC_ARGS [*] }