Blob Blame History Raw
#!/bin/sh

set -e +x

function fail {
    echo "$0: $1" >&2
    exit 1
}

USAGE="Usage: $0 dep"

if [ $# -ne 1 ]; then
    fail "$USAGE"
fi

DEP=$1
CABALFILE=$(ls *.cabal)

if [ $(echo $CABALFILE | wc -w) -ne 1 ]; then
   fail "There needs to be one .cabal file in the current dir!"
fi

BREAK=[^[:alnum:]-]

if ! grep -q "$BREAK$DEP$BREAK[^,]*" $CABALFILE; then
   fail "$CABALFILE does not match: $DEP"
fi

if [ ! -f $CABALFILE.orig ]; then
    BACKUP=.orig
fi

if grep -q "$BREAK$DEP$BREAK[^,]*&&" $CABALFILE; then
    sed -i$BACKUP -e "s/\($BREAK$DEP$BREAK[^&,]*[^ ]\+\) *&&[^,]*/\1/g" $CABALFILE
fi

if grep -q "$BREAK$DEP$BREAK[^,]*==" $CABALFILE; then
    sed -i$BACKUP -e "s/\($BREAK$DEP$BREAK[^=,]*\)==\([^,*]*\)\.\*/\1>=\2/g" $CABALFILE
fi