#!/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" -gt 0 ]; then
    git -C "${gitdir}" commit -m "Updated: ${dst} from ${url}"
  else
    echo "Nothing changed for ${url}"
  fi
}

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