#!/bin/sh set -e DATA=/var/lib/duhome case "$1" in init) mkdir -p $DATA cd $DATA git init ;; save) cd $DATA for i in /home/*; do du -shx $i | cut -f1 > ${i#/home/}; git add ${i#/home/} done ;; commit) cd $DATA shift GIT_AUTHOR_NAME="$0" GIT_AUTHOR_EMAIL="$USER@$(hostname -f)" \ git commit --quiet -m 'Automatic commit' "$@" || : ;; status) cd $DATA grep . *|sort -h -k2 -t: ;; log) cd $DATA dir=$2 if ! [ "$dir" ]; then echo "Missing directory name" >&2; exit 1; fi if ! [ -f "$dir" ]; then echo "No information about $dir in $DATA" >&2; exit 1; fi git log --format='%H %ci' -- $dir | while read commit date; do echo $date $(git show $commit:$dir) done ;; help|"") cat < [ ] Commands: - init - save - commit [ ] - status - log EOF ;; esac