Hackety hack hack

Atypisches Nutzerverhalten mit Rat und Tat.

git blog — mein Zusatzkommando für Octopress

Für dieses Blog benutze ich Octopress, das “blogging framework for hackers”. Theoretisch gibt es da auch ein rake-Kommando, um neue Posts abzusetzen (nämlich rake new_post), ich hatte allerdings schon ein halbfertiges Skript da, welches ich als /usr/local/bin/git-blog gespeichert habe.

Mit diesem Skript wird ein neues Posting angelegt und mein Lieblingseditor geöffnet. Sobald es gespeichert ist, verfügt meine lokale Git-Installation über einen neuen Befehl, git blog. Nifty, was?

/usr/local/bin/git-blog
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
#!/bin/sh
if test $# -eq 0; then
  echo "blog title required" && exit 1
else
    cd $(git config blog.path)
    title=$@
    date=`date +"%Y-%m-%d %H:%M"`
    filename="_posts/$(date +"%Y-%m-%d")-$(echo $@|sed -e 's/[^ -~]//g'|sed -e 's/ /-/g'|sed -e 'y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/').markdown"
    if [ ! -f $filename ];
        then
            echo "---" >> $filename
            echo "layout: post" >> $filename
            echo "title:" $title >> $filename
            echo "date: " $date >> $filename
            echo "comments: true" >> $filename
            echo "categories:" >> $filename
            echo "---" >> $filename;
        fi
    $(git config core.editor) $filename
fi

Vorher sollte noch git konfiguriert werden. Dabei sollte das blog.path-Verzeichnis das sein, in dem sich das _posts-Verzeichnis befindet (bei Octopress ist das unterhalb von source):

 
 
$ git config --global blog.path /pfad/zu/meinem/octopress
$ git config --global core.editor /pfad/zu/meinem/lieblingseditor

Wer Lust hat, kann sich danach noch einen git-Befehl namens git blog-deploy anlegen:

/usr/local/bin/git-blog-deploy
 
 
 
 
 
 
 
 
 
 
#!/bin/sh
cd $(git config blog.path)
git add _posts/
git status | grep "Changes to be committed:"
if test $? -eq 0; then
    git commit -a -m "Automatically commited."
    cd .. && `cat $(git config blog.path)/../.rvmrc` rake generate && `cat $(git config blog.path)/../.rvmrc` rake deploy
else
    exit
fi

Ach ja. Nebenbei bemerkt: Hallo Welt!