Scripts
Bash scripts that have made life easier
Phlogging
A little script so I can write my phlog locally
#!/bin/bash
set -e
LOCAL_DIR="$HOME/phlog"
REMOTE="revealing-this-is-probably-not-a-good-idea"
REMOTE_DIR="gopher/phlog"
if [ -z "$1" ]; then
echo "Usage: phlog \"Post title\""
exit 1
fi
TITLE="$1"
DATE=$(date +%F)
SLUG=$(printf '%s' "$TITLE" \
| tr '[:upper:]' '[:lower:]' \
| tr ' ' '-' \
| tr -cd 'a-z0-9-')
FILE="${DATE}-${SLUG}.txt"
LOCAL_FILE="$LOCAL_DIR/$FILE"
mkdir -p "$LOCAL_DIR"
if [ -e "$LOCAL_FILE" ]; then
echo "Refusing to overwrite existing file:"
echo "$LOCAL_FILE"
exit 1
fi
nano "$LOCAL_FILE"
if [ ! -s "$LOCAL_FILE" ]; then
echo "Post is empty. Nothing published."
rm -f "$LOCAL_FILE"
exit 1
fi
echo "Uploading..."
scp "$LOCAL_FILE" "$REMOTE:$REMOTE_DIR/$FILE"
echo "Updating phlog..."
ssh "$REMOTE" "
cd $REMOTE_DIR &&
chmod 644 '$FILE' &&
cp gophermap gophermap.bak &&
{
head -n 4 gophermap.bak
printf '0%s\t%s\n' '$DATE - $TITLE' '$FILE'
tail -n +4 gophermap.bak
} > gophermap &&
rm gophermap.bak
"
echo
echo "Published:"
echo "$TITLE"
echo "$LOCAL_FILE"
[Home]