From a24ba8ab70f657e66c29dc66478a82a0d1d10eed Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Tue, 30 Mar 2010 22:53:01 -0600 Subject: so, I realised that because: * filedata was stipped down to just filename * the directory structure of files/filecontent stored member names then: * all filedata was really doing is storing filetype so, I decided to make filetype inherent of ID in a fairly elegant way --- plugins/filecontent/bin/commit.f.sh | 3 ++- plugins/filecontent/bin/get.d.sh | 18 +++++++----------- plugins/filecontent/bin/get.f.sh | 8 ++++---- plugins/filecontent/bin/get.sh | 32 ++++++++++++++++++++++++++++++++ plugins/filecontent/bin/gettype.sh | 8 ++++---- plugins/filecontent/lib/stdio.sh | 2 +- plugins/filename/bin/commit.sh | 36 ------------------------------------ plugins/filename/bin/get.sh | 32 -------------------------------- plugins/filename/bin/init.sh | 21 --------------------- plugins/filename/info.mk.in | 3 --- 10 files changed, 50 insertions(+), 113 deletions(-) create mode 100644 plugins/filecontent/bin/get.sh delete mode 100644 plugins/filename/bin/commit.sh delete mode 100644 plugins/filename/bin/get.sh delete mode 100644 plugins/filename/bin/init.sh delete mode 100644 plugins/filename/info.mk.in diff --git a/plugins/filecontent/bin/commit.f.sh b/plugins/filecontent/bin/commit.f.sh index 726a7e3..17de155 100644 --- a/plugins/filecontent/bin/commit.f.sh +++ b/plugins/filecontent/bin/commit.f.sh @@ -25,7 +25,8 @@ file="${1?"$usage"}" prefix="${2-f}" hash=`sha1sum $file | sed "s/ .*$//"` -if [ ! -f "$REPO/@ID@/$hash" ]; then +if [ ! -f "$REPO/@ID@/$prefix/$hash" ]; then + mkdir -p "$REPO/@ID@/$prefix" install -m 644 -o $USER -g $USER -T "$file" "$REPO/@ID@/$prefix/$hash" fi echo "$prefix/$hash" diff --git a/plugins/filecontent/bin/get.d.sh b/plugins/filecontent/bin/get.d.sh index 1723d8a..1a001d3 100644 --- a/plugins/filecontent/bin/get.d.sh +++ b/plugins/filecontent/bin/get.d.sh @@ -19,12 +19,12 @@ ver=0.9 #. "$LIBDIR/@ID@/stdio" -# get.d ID DIRNAME -id="$1" -dir="$2" +usage="usage: $RVS get.d DIRNAME ID" +dir="${1?"$usage"}" + id="${2?"$usage"}" tmp=`mktemp` -"$RVS" get.f "$id" "$tmp" +"$RVS" get.f "$tmp" "$id" #install -d "$dir" mkdir -p "$dir" @@ -32,13 +32,9 @@ mkdir -p "$dir" cd "$dir" rm -rf ./* while read line; do - # GNU bash optimized version - #hash=${line/#*:/} - #name=${line/%:${hash}/} - # POSIX version - hash=`echo "$line" | sed 's/^.*://'` - name=`echo "$line" | sed "s/:$hash$//"` - "$RVS" get "$hash" "$name" + _id="`echo "$line" | sed 's/^.*://'`" + _name="`echo "$line" | sed 's@:'"$_id"'$@@'`" + "$RVS" get "$_name" "$_id" done < "$tmp" rm "$tmp" diff --git a/plugins/filecontent/bin/get.f.sh b/plugins/filecontent/bin/get.f.sh index c706931..b137911 100644 --- a/plugins/filecontent/bin/get.f.sh +++ b/plugins/filecontent/bin/get.f.sh @@ -19,9 +19,9 @@ ver=0.9 #. "$LIBDIR/@ID@/stdio" -# get.f ID FILENAME -id="$1" -file="$2" +usage="usage: $RVS get.f FILENAME ID" +name="${1?"$usage"}" + id="${2?"$usage"}" -install -T "$REPO/@ID@/$id" "$file" +install -T "$REPO/@ID@/$id" "$name" diff --git a/plugins/filecontent/bin/get.sh b/plugins/filecontent/bin/get.sh new file mode 100644 index 0000000..d3f046c --- /dev/null +++ b/plugins/filecontent/bin/get.sh @@ -0,0 +1,32 @@ +#!/bin/sh +name='rvs filecontent get' +ver=0.9 +# Copyright (C) 2009 Luke Shumaker +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# 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. +# +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING. +# If not, see . + +#. "$LIBDIR/@ID@/stdio" + +usage="usage: $RVS get FILENAME ID" +name="${1?"$usage"}" + id="${2?"$usage"}" + +file="$REPO/@ID@/$id" + +type="`echo $id | sed 's:/.*::'`" +#hash="`echo $id | sed 's:.*/::'`" + +"$RVS" "get.$type" "$name" "$id" + diff --git a/plugins/filecontent/bin/gettype.sh b/plugins/filecontent/bin/gettype.sh index 4592ee7..84eb9da 100644 --- a/plugins/filecontent/bin/gettype.sh +++ b/plugins/filecontent/bin/gettype.sh @@ -1,5 +1,5 @@ #!/bin/sh -name='rvs filecontent gettype' +name='rvs @ID@ gettype' ver=0.9 # Copyright (C) 2009-2010 Luke Shumaker # @@ -23,17 +23,17 @@ usage="usage: $RVS gettype FILE" file=${1?"$usage"} if [ ! -e "$file" ]; then - error "file \`$file' does not exist"; + fatal "file \`$file' does not exist"; else type='' for check in "$ETCDIR/@ID@/"*; do type=`"$check" "$file"` if [ -n "$type" ]; then break; fi done - if [ -z "$type" ]; then + if [ -n "$type" ]; then echo "$type" else - error "cannot handle file type of \`$file'" + fatal "cannot handle file type of \`$file'" fi fi diff --git a/plugins/filecontent/lib/stdio.sh b/plugins/filecontent/lib/stdio.sh index ca4a86a..09d2ec7 100644 --- a/plugins/filecontent/lib/stdio.sh +++ b/plugins/filecontent/lib/stdio.sh @@ -1,5 +1,5 @@ #!/bin/sh -#name='rvs files stdio' +#name='rvs @ID@ stdio' #ver=0.9 # Copyright (C) 2009 Luke Shumaker # diff --git a/plugins/filename/bin/commit.sh b/plugins/filename/bin/commit.sh deleted file mode 100644 index f4fd0f0..0000000 --- a/plugins/filename/bin/commit.sh +++ /dev/null @@ -1,36 +0,0 @@ -#!/bin/sh -name='rvs filename commit' -ver=0.9 -# Copyright (C) 2009 Luke Shumaker -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of the -# License, or (at your option) any later version. -# -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program; see the file COPYING. -# If not, see . - -file="${1-.}" -string="`cat "$TMPDIR/commit/filecontent"`" -type=`echo $string | sed 's/:.*$//'` -hash=`echo $string | sed 's/^.://'` - -temp=`mktemp` -echo "#rvs-filename-0.9" > "$temp" -echo "name:$file" >> "$temp" -echo "type:$type" >> "$temp" -echo "hash:$hash" >> "$temp" - -meta=`sha1sum "$temp" | sed "s/ .*$//"` -if [ ! -f "$REPO/@ID@/$hash" ]; then - install -m 644 -o $USER -g $USER -T "$temp" "$REPO/@ID@/$meta" -fi -echo "$meta" - diff --git a/plugins/filename/bin/get.sh b/plugins/filename/bin/get.sh deleted file mode 100644 index bc08063..0000000 --- a/plugins/filename/bin/get.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh -name='rvs files get' -ver=0.9 -# Copyright (C) 2009 Luke Shumaker -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of the -# License, or (at your option) any later version. -# -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program; see the file COPYING. -# If not, see . - -# get ID -usage="usage: $RVS get ID [FILENAME]" -id="${1?"$usage"}" - -file="$REPO/@ID@/$id" - - type="`sed -n 's/^type://p' "$file"`" -name="${2-`sed -n 's/^name://p' "$file"`}" - hash="`sed -n 's/^hash://p' "$file"`" - -"$RVS" get.$type "$hash" "$name" -rm "$tmp" - diff --git a/plugins/filename/bin/init.sh b/plugins/filename/bin/init.sh deleted file mode 100644 index 71a2aa8..0000000 --- a/plugins/filename/bin/init.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/sh -name='rvs generic init' -ver=0.9 -# Copyright (C) 2009 Luke Shumaker -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License as -# published by the Free Software Foundation; either version 2 of the -# License, or (at your option) any later version. -# -# 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. -# -# You should have received a copy of the GNU General Public License -# along with this program; see the file COPYING. -# If not, see . - -mkdir -p "$REPO/@ID@" - diff --git a/plugins/filename/info.mk.in b/plugins/filename/info.mk.in deleted file mode 100644 index 3cd3a0d..0000000 --- a/plugins/filename/info.mk.in +++ /dev/null @@ -1,3 +0,0 @@ -name = filename -ver = 0.9 -priority = 1 -- cgit v1.2.3-2-g168b