summaryrefslogtreecommitdiff
path: root/source/rvs-core/commit
blob: 2f120e0eb5553a9b30f737078435627684d10466 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#!$$SHELL$$
# abomination module:rvs:commit
name='rvs commit'
ver='0.6.0'
usage='[OPTIONS] [FILE]'
# Copyright (C) 2009 Luke Shumaker
# 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.
# 
# Originally written by Luke Shumaker <lukeshu@sbcglobal.net>.

source "`rvs -d`/lib/stdio"
source "`rvs -d`/lib/rvsdb"

# commit FILE
if [ $# -gt 0 ]; then
	file="$1"
else
	file='.'
fi

if [ ! -e $file]; then error "file \`$file' does not exist";
# START file type list
elif [ -l $file ]; type='l';	# symbolic link
elif [ -b $file ]; type='b';	# block       (buffered) special
elif [ -c $file ]; type='c';	# character (unbuffered) special
elif [ -d $file ]; type='d';	# directory
elif [ -p $file ]; type='p';	# named pipe (FIFO)
elif [ -f $file ]; type='f';	# regular file
elif [ -s $file ]; type='s';	# socket
#elif [ -D $file ]; type='D';	# door (Solaris only)
# END   file type list
else error "could not identify file type of \`$file'"
fi

ret=`rvs "commit.$type" "$file"`

tmp=`tempfile`
loginit "$tmp"
logwrite "$tmp" 'name'   "$file"
logwrite "$tmp" 'hash'   "$ret"
logwrite "$tmp" 'type'   "$type"
logwrite "$tmp" 'author' "$user"
logwrite "$tmp" 'owner'  "$owner"
logwrite "$tmp" 'owner'  "$license"

rvs commit.f "$tmp"
rm "$tmp"