#!/bin/sh   

#exit on error
set -e       

FILE="/usr/libexec/SmartCardServices/drivers/ifd-ccid.bundle/Contents/Info.plist"
UNPATCHED="$FILE.unpatched"

if [ -f $FILE ];
then

  if [ ! -f $UNPATCHED ];
  then
    #Undo old patch (if applied)
    patch -N -R -r- -d/ -p0 < libccid-yubikey-old.diff || true
    #Make a backup of the original
    cp $FILE $UNPATCHED
  fi

  if grep -q 'Yubikey NEO OTP+U2F+CCID' "$FILE"
  then
    echo "Patch already applied"
  else
    #Start with a clean file
    cp "$UNPATCHED" "$FILE"
    /usr/bin/patch -d/ -p0 < libccid-yubikey.diff

    #Kill pcscd if running
    pid=$(ps ax | grep pcscd | grep -v grep | awk '{ print $1 }')
    if [ "$pid" != "" ];
    then
      echo "Killing pcscd..."
      kill -9 $pid || true
    fi
  fi

else
   echo "File $FILE does not exist. Did you install the CCID TOOLS?"
fi
