#!/bin/sh

update() {
  url="$1"
  pad="$(basename "$url").txt"
  dst="$pad"
  gitdir="$(dirname "$dst")"
  
  curl --silent -k -o "${dst}" "${url}/export/txt"
  status="$?"
  if [ ${status} -ne 0 ]; then
    echo "Failed to get pad at ${url}"
    return
  fi

  newlength="$(wc -l < "${dst}")"
  if [ "$newlength" -lt 3 ]
  then
    echo "Skipping update of ${url}, because pad has likely been removed"
    return
  fi

  git -C "${gitdir}" add "${dst}"
  changes=$(git -C "${gitdir}" diff --cached | wc -l)
  if [ "$changes" -lt 1 ]; then
    echo "Nothing changed for ${url}"
    return
  fi

  git -C "${gitdir}" commit -m "Updated: ${dst} from ${url}"
}

if ! git rev-parse --is-inside-work-tree
then
  echo "Not a working directory"
  exit 1
fi

while read -r pad
do
  update "$pad"
  git -C "${gitdir}" reset --hard HEAD
done