diff options
Diffstat (limited to 'plugins/tree/bin')
-rw-r--r-- | plugins/tree/bin/addparent.d.sh | 44 | ||||
-rw-r--r-- | plugins/tree/bin/addparent.f.sh | 27 | ||||
-rw-r--r-- | plugins/tree/bin/addparent.sh | 32 | ||||
-rw-r--r-- | plugins/tree/bin/delparent.f.sh | 34 |
4 files changed, 137 insertions, 0 deletions
diff --git a/plugins/tree/bin/addparent.d.sh b/plugins/tree/bin/addparent.d.sh new file mode 100644 index 0000000..ed21085 --- /dev/null +++ b/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" diff --git a/plugins/tree/bin/addparent.f.sh b/plugins/tree/bin/addparent.f.sh new file mode 100644 index 0000000..61b4f92 --- /dev/null +++ b/plugins/tree/bin/addparent.f.sh @@ -0,0 +1,27 @@ +#!/bin/sh +name='addparent.f' +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"} + +file="$REPO/tree/$child/$parent" +mkdir -p "`dirname "$file"`" +echo "$parent" > "$file" + diff --git a/plugins/tree/bin/addparent.sh b/plugins/tree/bin/addparent.sh new file mode 100644 index 0000000..af60e5a --- /dev/null +++ b/plugins/tree/bin/addparent.sh @@ -0,0 +1,32 @@ +#!/bin/sh +name='addparent' +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"} + +ct="`"$RVS" blob-gettype "$child"`" +pt="`"$RVS" blob-gettype "$parent"`" + +if [ "$ct" = "$pt" ]; then + "$RVS" "addparent.$ct" "$child" "$parent" +else + error "CHILD and PARENT must be type of the same type" +fi + diff --git a/plugins/tree/bin/delparent.f.sh b/plugins/tree/bin/delparent.f.sh new file mode 100644 index 0000000..e53df9b --- /dev/null +++ b/plugins/tree/bin/delparent.f.sh @@ -0,0 +1,34 @@ +#!/bin/sh +name='delparent.f' +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"} + +file="$REPO/tree/$child/$parent" +rm "$file" +if [ -z "$(ls "`dirname "$file"`")" ]; then + rmdir "`dirname "$file"`" +fi + + dir="$REPO/tree/$child" +if [ -z "$(ls "`dirname "$dir"`")" ]; then + rmdir "`dirname "$dir"`" +fi + |