From bd9d357c9344f9c23919f5300ce780be2e2ddda0 Mon Sep 17 00:00:00 2001 From: Justin Davis Date: Thu, 23 Feb 2012 19:05:29 -0500 Subject: Start dir-based package trees. Adds catpkgtree. --- bin/catpkgtree | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 bin/catpkgtree diff --git a/bin/catpkgtree b/bin/catpkgtree new file mode 100644 index 0000000..846655c --- /dev/null +++ b/bin/catpkgtree @@ -0,0 +1,67 @@ +#!/bin/sh + +PROG=catpkgtree + +findnode() +{ + for f in * + do + [ "$f" = '*' ] && break + [ -f "$f" ] || continue + case f in + [0-9][0-9]-*) + n=`echo "$f" | sed 's/^...//'` + if [ "$n" = "$1" ] + then + echo "$f" + return 0 + fi + esac + done + return 1 +} + +if [ $# -ne 1 ] +then + echo "usage: $PROG [tree path] < [text to append]" 1>&2 + exit 2 +fi + +if ! cd PKGTREE +then + echo "$PROG: PKGTREE dir must be present in current dir" 1>&2 + exit 100 +fi + +IFS=/ set -- "$1" +if [ $# -lt 2 ] +then + echo "$PROG: path to tree node must be separated by forward slashes" 1>&2 + exit 101 +fi + +if ! cd "$1" +then + echo "$PROG: $1 is not a valid package file" 1>&2 + exit 102 +fi +shift + +while [ $# -gt 1 ] +do + f=`findnode $1` + if [ $? -ne 0 ] || ! cd "$f" + then + echo "$PROG: $1 is not a valid node name" >1&2 + exit 102 + fi + shift +done + +f=`findnode $1` +if [ $? -ne 0 ] || [ ! -f "$f" ] +then + echo "$PROG: $f is not a valid final node" 1>&2 + exit 102 +fi +cat >> "$f" -- cgit v1.2.3-24-g4f1b