#!/bin/bash # # Generates an RSS feed from Git commit messages # # Copyright (C) 2012 Mike Gerwitz # # This file is part of ease.js. # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program. If not, see . # # url="${1?Missing URL}" count=10 # rss header cat < Mike Gerwitz's Thoughts and Ramblings $url The miscellaneous thoughts and ramblings of a free software hacker EOH # output recent commits as entries (assuming no funny business in the output) while read -r commit ts id subject; do echo "Found $commit: $subject" >&2 # TODO: avoid HTML entities where browsers may decide not to render them (e.g. # the title) cat < <![CDATA[$( ./msgfmt < <( echo "$subject"; echo ) )]]> $( printf "%s/%(%Y)T/%(%m)T/%s.html" "$url" "$ts" "$ts" "$id" ) $( date --date="1970-01-01 $ts sec" +%Y-%m-%d ) EOE done < <( ( git log --pretty='format:%h %at %f %s' && echo ) \ | head -n"$count" ) # footer cat < EOF