diff options
Diffstat (limited to 'rvs/plugins/tree/bin/addparent.d.sh')
-rw-r--r-- | rvs/plugins/tree/bin/addparent.d.sh | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/rvs/plugins/tree/bin/addparent.d.sh b/rvs/plugins/tree/bin/addparent.d.sh new file mode 100644 index 0000000..ed21085 --- /dev/null +++ b/rvs/plugins/tree/bin/addparent.d.sh @@ -0,0 +1,44 @@ +#!/bin/sh +name='addparent.d' +ver=0.1 +# Copyright (C) 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>. + +usage="usage: $RVS $name CHILD PARENT" + child=${1?"$usage"} +parent=${2?"$usage"} + +tc="`mktemp`" +tp="`mktemp`" + +"$RVS" ls "$child" '%n %i' > "$tc" +"$RVS" ls "$parent" '%n %i' > "$tc" + +while read line; do + name="`echo "$line" | sed 's:\t[a-z]/[0-9a-f]$::'`" + nID="`echo "$line" | sed 's:^.*\t::'`" + oID="`sed -n 's:^${name/':'/'\:'}\t\([a-z]/[0-9a-f]\)$:\1:p'`" + + if [ -n "$oID" ] { + nT="`"$RVS" blob-gettype "$nID"`" + oT="`"$RVS" blob-gettype "$oID"`" + if [ "$nT" = "$oT" ]; then + "$RVS" addparent "$nID" "$oID" + fi + } +done < "$tc" + +"$RVS" addparent.f "$child" "$parent" |