]> rtime.felk.cvut.cz Git - sojka/duhome.git/blob - duhome
2cebe27e7462d9bcc07c40391000b0bb5255d7e6
[sojka/duhome.git] / duhome
1 #!/bin/sh
2
3 set -e
4
5 DATA=/var/lib/duhome
6
7 case "$1" in
8     init)
9         mkdir -p $DATA
10         cd $DATA
11         git init
12         ;;
13     save)
14         cd $DATA
15         for i in /home/*; do
16             du -shx $i | cut -f1 > ${i#/home/};
17             git add ${i#/home/}
18         done
19         ;;
20     commit)
21         cd $DATA
22         shift
23         GIT_AUTHOR_NAME="$0" GIT_AUTHOR_EMAIL="$USER@$(hostname -f)" \
24             git commit --quiet -m 'Automatic commit' "$@" || :
25         ;;
26     status)
27         cd $DATA
28         grep . *|sort -h -k2 -t:
29         ;;
30     log)
31         cd $DATA
32         dir=$2
33         if ! [ "$dir" ]; then echo "Missing directory name" >&2; exit 1; fi
34         if ! [ -f "$dir" ]; then echo "No information about $dir in $DATA" >&2; exit 1; fi
35         git log --format='%H %ci' -- $dir | while read commit date; do
36             echo $date $(git show $commit:$dir)
37         done
38         ;;
39     help|"")
40         cat <<EOF
41 Usage: $0 <command> [ <options> ]
42
43 Commands:
44 - init
45 - save
46 - commit [ <git commit arguments> ]
47 - status
48 - log <directory>
49 EOF
50         ;;
51 esac