43 lines
833 B
Bash
Executable file
43 lines
833 B
Bash
Executable file
#!/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
|