diff options
Diffstat (limited to 'src/core/plugins.d/repo/commit.sh')
-rw-r--r-- | src/core/plugins.d/repo/commit.sh | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/core/plugins.d/repo/commit.sh b/src/core/plugins.d/repo/commit.sh new file mode 100644 index 0000000..0c8cfc5 --- /dev/null +++ b/src/core/plugins.d/repo/commit.sh @@ -0,0 +1,51 @@ +#!$$SHELL$$ +name='rvs commit' +ver='0.7.0' +# 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 "$RVSDIR/lib/stdio" + +# commit FILE +if [ $# -gt 0 ]; then + file="$1" +else + file='.' +fi + +warn "$file" + +if [ ! -e $file ]; then error "file \`$file' does not exist"; +# START file type list +elif [ -L $file ]; then type='l'; # symbolic link +elif [ -b $file ]; then type='b'; # block (buffered) special +elif [ -c $file ]; then type='c'; # character (unbuffered) special +elif [ -d $file ]; then type='d'; # directory +elif [ -p $file ]; then type='p'; # named pipe (FIFO) +elif [ -f $file ]; then type='f'; # regular file +elif [ -s $file ]; then 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` +cat << __EOF__ > "$tmp" +name:$file +hash:$ret +type:$type +author:$user +owner:$owner +license:$license +__EOF__ + +rvs commit.f "$tmp" +rm "$tmp" + |