Initial commit
[zit] / zit
1 #!/bin/bash
2
3 abort() {
4         echo $1
5         exit 1
6 }
7
8 cmd="$1"
9 shift
10
11 case $cmd in
12         init)
13
14         file="$1"
15         shift
16         test -f $file || abort "No such file $file"
17         file=`readlink -f $file`
18         fname="`basename $file`"
19         ZIT_DIR="`dirname $file`/.zit.$fname"
20         test -e $ZIT_DIR && abort "$ZIT_DIR exists already, is $file tracked already?"
21         mkdir $ZIT_DIR && echo "Initializing Zit repository in $ZIT_DIR"
22         test -d $ZIT_DIR || abort "Failed to create $ZIT_DIR"
23         cd $ZIT_DIR
24         git init || abort "Failed to initialize Git repository in $ZIT_DIR" 
25         ln $file $fname || abort "Failed to link $file into $ZIT_DIR"
26         git add $fname || abort "Failed to add $fname"
27         git commit "$@" || abort "Failed to make first commit for $fname"
28         ;;
29 esac