#!/bin/bash

remove_line() {
  echo "Remove from $2:"
  echo "  - $1"
  
  i=$(grep -c "$1" "$2")
  if [ $i -eq 0 ]
  then
    echo "    - Nothing found"
  fi
  
  while [ $i -gt 0 ]
  do
    line=$(grep -m1 -nF "$1" "$2")
    lineNumber=$(grep -m1 -nF "$1" "$2" | sed 's/:.*//')
    if [ -n "$lineNumber" ]; then
      echo "    - Remove line ($line)"
      awk -v n=$lineNumber 'NR == n {next} {print}' $2 > $2.bak && mv $2.bak $2
    else
      echo "    - Nothing found"
    fi
    i=`expr $i - 1`
  done
  echo
}

for shell in bash zsh; do
  if [ -f ~/.fzf.${shell} ]
  then
    rm ~/.fzf.${shell}
  fi
  remove_line "source ~/.fzf.${shell}" ~/.${shell}rc
  bind_file="~/.config/fish/functions/fish_user_key_bindings.fish"
  if [ -f $bind_file ]
  then
    remove_line "fzf_key_bindings" "$bind_file"
  fi
done

if [ -d ~/.config/fish/functions ]
then
  if [ -f ~/.config/fish/functions/fzf.fish ]
  then
    rm ~/.config/fish/functions/fzf.fish
  fi

  if [ "$(ls -A ~/.config/fish/functions)" ]
  then
    echo "Can't delete non-empty directory: \"~/.config/fish/functions\""
  else
    rmdir ~/.config/fish/functions
  fi
fi

