#!/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