summaryrefslogtreecommitdiff
path: root/plugins/files
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/files')
-rw-r--r--plugins/files/bin/commit.d.sh34
-rw-r--r--plugins/files/bin/commit.f.sh33
-rw-r--r--plugins/files/bin/commit.sh27
-rw-r--r--plugins/files/bin/get.d.sh41
-rw-r--r--plugins/files/bin/get.f.sh27
-rw-r--r--plugins/files/bin/get.sh32
-rw-r--r--plugins/files/bin/gettype.sh39
-rw-r--r--plugins/files/etc/3-d.sh3
-rw-r--r--plugins/files/etc/5-f.sh3
-rw-r--r--plugins/files/info.mk.in3
-rw-r--r--plugins/files/lib/stdio.sh66
11 files changed, 308 insertions, 0 deletions
diff --git a/plugins/files/bin/commit.d.sh b/plugins/files/bin/commit.d.sh
new file mode 100644
index 0000000..0da1efb
--- /dev/null
+++ b/plugins/files/bin/commit.d.sh
@@ -0,0 +1,34 @@
+#!/bin/sh
+name='rvs files commit.d'
+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>.
+
+. "$LIBDIR/@ID@/stdio"
+
+# commit.d DIRNAME
+dir="${1?'usage: commit.d DIRNAME'}"
+tmp=`mktemp`
+
+cd "$dir"
+for file in *; do
+ id=`"$RVS" commit "$file"`
+ echo "$file:$id" >> "$tmp"
+done
+
+"$RVS" commit.f "$tmp" d
+rm "$tmp"
+
diff --git a/plugins/files/bin/commit.f.sh b/plugins/files/bin/commit.f.sh
new file mode 100644
index 0000000..17de155
--- /dev/null
+++ b/plugins/files/bin/commit.f.sh
@@ -0,0 +1,33 @@
+#!/bin/sh
+name='rvs files commit.f'
+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>.
+
+#. "$LIBDIR/@ID@/stdio"
+
+# commit.f FILENAME
+usage="usage: $RVS commit.f FILENAME [PREFIX]"
+file="${1?"$usage"}"
+prefix="${2-f}"
+
+hash=`sha1sum $file | sed "s/ .*$//"`
+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/files/bin/commit.sh b/plugins/files/bin/commit.sh
new file mode 100644
index 0000000..e8db1eb
--- /dev/null
+++ b/plugins/files/bin/commit.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+name='rvs filecontent commit'
+ver=0.9
+# Copyright (C) 2009-2010 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>.
+
+. "$LIBDIR/@ID@/stdio"
+
+# commit FILE
+file=${1-.} # take arg1 as the file, default to the current directory
+
+type=`"$RVS" gettype "$file"`
+"$RVS" "commit.$type" "$file"
+
diff --git a/plugins/files/bin/get.d.sh b/plugins/files/bin/get.d.sh
new file mode 100644
index 0000000..1a001d3
--- /dev/null
+++ b/plugins/files/bin/get.d.sh
@@ -0,0 +1,41 @@
+#!/bin/sh
+name='rvs files get.d'
+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>.
+
+#. "$LIBDIR/@ID@/stdio"
+
+usage="usage: $RVS get.d DIRNAME ID"
+dir="${1?"$usage"}"
+ id="${2?"$usage"}"
+
+tmp=`mktemp`
+"$RVS" get.f "$tmp" "$id"
+
+#install -d "$dir"
+mkdir -p "$dir"
+
+cd "$dir"
+rm -rf ./*
+while read line; do
+ _id="`echo "$line" | sed 's/^.*://'`"
+ _name="`echo "$line" | sed 's@:'"$_id"'$@@'`"
+ "$RVS" get "$_name" "$_id"
+done < "$tmp"
+
+rm "$tmp"
+
diff --git a/plugins/files/bin/get.f.sh b/plugins/files/bin/get.f.sh
new file mode 100644
index 0000000..b137911
--- /dev/null
+++ b/plugins/files/bin/get.f.sh
@@ -0,0 +1,27 @@
+#!/bin/sh
+name='rvs files get.f'
+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>.
+
+#. "$LIBDIR/@ID@/stdio"
+
+usage="usage: $RVS get.f FILENAME ID"
+name="${1?"$usage"}"
+ id="${2?"$usage"}"
+
+install -T "$REPO/@ID@/$id" "$name"
+
diff --git a/plugins/files/bin/get.sh b/plugins/files/bin/get.sh
new file mode 100644
index 0000000..d3f046c
--- /dev/null
+++ b/plugins/files/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 <http://www.gnu.org/licenses>.
+
+#. "$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/files/bin/gettype.sh b/plugins/files/bin/gettype.sh
new file mode 100644
index 0000000..84eb9da
--- /dev/null
+++ b/plugins/files/bin/gettype.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+name='rvs @ID@ gettype'
+ver=0.9
+# Copyright (C) 2009-2010 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>.
+
+. "$LIBDIR/@ID@/stdio"
+
+usage="usage: $RVS gettype FILE"
+file=${1?"$usage"}
+
+if [ ! -e "$file" ]; then
+ 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 [ -n "$type" ]; then
+ echo "$type"
+ else
+ fatal "cannot handle file type of \`$file'"
+ fi
+fi
+
diff --git a/plugins/files/etc/3-d.sh b/plugins/files/etc/3-d.sh
new file mode 100644
index 0000000..f169cae
--- /dev/null
+++ b/plugins/files/etc/3-d.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+if [ -d "$1" ]; then echo 'd'; fi
+
diff --git a/plugins/files/etc/5-f.sh b/plugins/files/etc/5-f.sh
new file mode 100644
index 0000000..0506894
--- /dev/null
+++ b/plugins/files/etc/5-f.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+if [ -f "$1" ]; then echo 'f'; fi
+
diff --git a/plugins/files/info.mk.in b/plugins/files/info.mk.in
new file mode 100644
index 0000000..7552306
--- /dev/null
+++ b/plugins/files/info.mk.in
@@ -0,0 +1,3 @@
+name = files
+ver = 0.9
+priority = 0
diff --git a/plugins/files/lib/stdio.sh b/plugins/files/lib/stdio.sh
new file mode 100644
index 0000000..09d2ec7
--- /dev/null
+++ b/plugins/files/lib/stdio.sh
@@ -0,0 +1,66 @@
+#!/bin/sh
+#name='rvs @ID@ stdio'
+#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>.
+
+verbose() {
+ if [ "$volume" == '-v' ]; then
+ echo $@ >> /dev/stderr
+ fi
+}
+
+out() {
+ if [ "$volume" != '-q' ]; then
+ echo $@ >> /dev/stderr
+ fi
+}
+
+warn () {
+ echo "$name: $1" >> /dev/stderr
+}
+
+fatal () {
+ warn "$1"
+ exit 1
+}
+
+error() {
+ warn "$1"
+ cat << __error__ >> /dev/stderr
+Usage: $name $usage
+
+Try \`$name --help' for more options.
+__error__
+ exit 1
+}
+
+version() {
+ echo "$name $ver"
+ if [ "$volume" != '-q' ]; then
+ cat << __disclaimer__
+$name is 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>.
+__disclaimer__
+ fi
+ exit 0
+}
+