diff options
author | Luke Shumaker <LukeShu@sbcglobal.net> | 2010-03-30 22:53:01 -0600 |
---|---|---|
committer | Luke Shumaker <lukeshu@sbcglobal.net> | 2015-06-26 00:30:19 -0600 |
commit | a24ba8ab70f657e66c29dc66478a82a0d1d10eed (patch) | |
tree | b4cf10e02df61a2d8e96c8f6331da91aea82cf28 | |
parent | c2f77a2e6fc273f118fa5e9e00f8d26197aefae1 (diff) |
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
-rw-r--r-- | plugins/filecontent/bin/commit.f.sh | 3 | ||||
-rw-r--r-- | plugins/filecontent/bin/get.d.sh | 18 | ||||
-rw-r--r-- | plugins/filecontent/bin/get.f.sh | 8 | ||||
-rw-r--r-- | plugins/filecontent/bin/get.sh (renamed from plugins/filename/bin/get.sh) | 18 | ||||
-rw-r--r-- | plugins/filecontent/bin/gettype.sh | 8 | ||||
-rw-r--r-- | plugins/filecontent/lib/stdio.sh | 2 | ||||
-rw-r--r-- | plugins/filename/bin/commit.sh | 36 | ||||
-rw-r--r-- | plugins/filename/bin/init.sh | 21 | ||||
-rw-r--r-- | plugins/filename/info.mk.in | 3 |
9 files changed, 27 insertions, 90 deletions
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/filename/bin/get.sh b/plugins/filecontent/bin/get.sh index bc08063..d3f046c 100644 --- a/plugins/filename/bin/get.sh +++ b/plugins/filecontent/bin/get.sh @@ -1,5 +1,5 @@ #!/bin/sh -name='rvs files get' +name='rvs filecontent get' ver=0.9 # Copyright (C) 2009 Luke Shumaker # @@ -17,16 +17,16 @@ ver=0.9 # along with this program; see the file COPYING. # If not, see <http://www.gnu.org/licenses>. -# get ID -usage="usage: $RVS get ID [FILENAME]" -id="${1?"$usage"}" +#. "$LIBDIR/@ID@/stdio" + +usage="usage: $RVS get FILENAME ID" +name="${1?"$usage"}" + id="${2?"$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"`" +type="`echo $id | sed 's:/.*::'`" +#hash="`echo $id | sed 's:.*/::'`" -"$RVS" get.$type "$hash" "$name" -rm "$tmp" +"$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 <http://www.gnu.org/licenses>. - -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/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 <http://www.gnu.org/licenses>. - -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 |