You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.1 KiB
46 lines
1.1 KiB
#!/bin/bash
|
|
|
|
SOURCE="${BASH_SOURCE[0]}"
|
|
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
|
TARGET="$(readlink "$SOURCE")"
|
|
if [[ $TARGET == /* ]]; then
|
|
#echo "SOURCE '$SOURCE' is an absolute symlink to '$TARGET'"
|
|
SOURCE="$TARGET"
|
|
else
|
|
DIR="$( dirname "$SOURCE" )"
|
|
#echo "SOURCE '$SOURCE' is a relative symlink to '$TARGET' (relative to '$DIR')"
|
|
SOURCE="$DIR/$TARGET" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
|
fi
|
|
done
|
|
|
|
SRPATH="$( dirname "$SOURCE" )"
|
|
SFPATH="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
|
if [ "$SFPATH" != "$SRPATH" ]; then
|
|
RDIR=$SRPATH # relativ path directory
|
|
fi
|
|
|
|
cwdir=$PWD
|
|
wdir=$SFPATH
|
|
if [ "$cwdir" != "$wdir" ]; then
|
|
cd $wdir
|
|
fi
|
|
|
|
git fetch
|
|
|
|
UPSTREAM=${1:-'@{u}'}
|
|
LOCAL=$(git rev-parse @)
|
|
REMOTE=$(git rev-parse "$UPSTREAM")
|
|
BASE=$(git merge-base @ "$UPSTREAM")
|
|
|
|
if [ $LOCAL = $REMOTE ]; then
|
|
echo "Up-to-date"
|
|
elif [ $LOCAL = $BASE ]; then
|
|
echo "Update swarmlab hybrid ..."
|
|
git pull origin
|
|
elif [ $REMOTE = $BASE ]; then
|
|
echo "Need to push"
|
|
else
|
|
echo "Diverged"
|
|
fi
|
|
|
|
cd $cwdir
|
|
|