Hacker Public Radio

HPR4342: How I use Git to blog on the web and gopherspace


Listen Later

This show has been flagged as Clean by the host.

First, I create a Git repository some place on the server. This

is the Git repo that's going to be populated with your content,
but it doesn't have to be in a world-viewable location on your
server. Instead, you can place this anywhere, and then use a Git
hook or a cronjob to copy files from it to a world-viewable
directory. I don't cover that here. I refer to this location as
the staging directory.

Next, create a bare repository on your server. In its hooks

directory, create a shell script called post-receive:

#!/usr/bin/bash
#
while read oldrev newrev refname
do
BR=`git rev-parse --symbolic --abbrev-ref $refname`
if [ "$BR" == "master" ]; then
WEB_DIR="/my/staging/dir"
export GIT_DIR="$WEB_DIR/.git"
pushd $WEB_DIR > /dev/null
git pull
popd > /dev/null
fi
done
Now when you push to your bare repository, you are triggering the
post-receive script to run, which in turn triggers a git pull in
your staging directory.

Once your staging directory contains the content you want to

distribute, you can copy them to live directories, or you could
make your staging directory live (remember to exclude the .git
directory though), or whatever you want.

For gopher, I create a file listing by date using a shell

script:

#!/usr/bin/bash
SED=/usr/bin/sed
DIR_BASE=/my/live/dir
DIR_LIVE=blog
DIR_STAGING=staging
DATE=${DATE:-`date --rfc-3339=date`}
for POST in `find "$DIR_BASE"/"$DIR_STAGING" \
-type f -name "item.md" -exec grep -Hl "$DATE" {} \;`;
do
POSTDIR=`dirname "$POST"`
cp "$POST" "$DIR_BASE"/"$DIR_LIVE"/`basename $POSTDIR`.txt
echo -e 0Latest'\t'../"$DIR_LIVE"/`basename $POSTDIR`.txt > /tmp/updater.tmp
echo -e 0"$DATE" `basename $POSTDIR`'\t'../"$DIR_LIVE"/`basename $POSTDIR`.txt \
>> /tmp/updater.tmp
"${SED}" -i "/0Latest/ r /tmp/updater.tmp" "$DIR_BASE"/date/gophermap
"${SED}" -i '0,/0Latest/{/0Latest/d;}' "$DIR_BASE"/date/gophermap
/usr/bin/rm /tmp/updater.tmp
done

Provide feedback on this episode.

...more
View all episodesView all episodes
Download on the App Store

Hacker Public RadioBy Hacker Public Radio

  • 4.2
  • 4.2
  • 4.2
  • 4.2
  • 4.2

4.2

34 ratings


More shows like Hacker Public Radio

View all
The Infinite Monkey Cage by BBC Radio 4

The Infinite Monkey Cage

1,963 Listeners

Click Here by Recorded Future News

Click Here

418 Listeners

Hacker And The Fed by Chris Tarbell & Hector Monsegur

Hacker And The Fed

167 Listeners