Viewing: prepare_tree.sh
#!/usr/bin/bash
die() {
echo -e $* >&2
echo aborting.. >&2
exit 1
}
canon() {
cd $1
CANON=$PWD
cd -
}
canon $(dirname $0)
MYDIR=$CANON
while [ ${#*} -gt 1 ]; do
case "$1" in
-t)
shift;
TREE=$1
;;
-s)
shift;
SERIES=$1
;;
*)
die "unknown argument $1"
break;
;;
esac
shift;
done
[ -z "$TREE" -o -z "$SERIES" ] && die "I need a tree and series:\n\t$0 -t kernel_dir -s series_name"
[ ! -d $TREE ] && die "kernel tree '$TREE' isn't a directory"
SERIES=$(basename $SERIES)
[ ! -f $MYDIR/series/$SERIES ] && die "no series file '$SERIES'"
canon $TREE
TREE=$CANON
# patch scripts wants a relative path from the linux tree to
# its patch pile :(
MY=$(echo $MYDIR | sed -e 's_^/__')
TR=$(echo $TREE | sed -e 's_^/__')
while true ; do
M=$(echo $MY | cut -d/ -f 1)
T=$(echo $TR | cut -d/ -f 1)
if [ $M != $T ]; then
break;
fi
MY=$(echo $MY | cut -d/ -f 2-)
TR=$(echo $TR | cut -d/ -f 2-)
done
[ $MY == $MYDIR ] && die "bad! $MY == $MYDIR"
REVERSE=$(revpath $TR)${MY}
ABSINO=$(stat $MYDIR | awk '($3 == "Inode:") {print $4}')
REVINO=`(cd $TREE ; stat $REVERSE | awk '($3 == "Inode:") {print $4}')`
[ $ABSINO != $REVINO ] && die "inodes differ, my reverse path is bad?"
echo export PATCHSCRIPTS_LIBDIR=$REVERSE
cd $TREE
ln -sf $REVERSE/series/$SERIES series
PATH_ELEMENTS=$(echo $PATH | sed -e 's/:/ /g')
NEW_PATH=$MYDIR/scripts
for p in $PATH_ELEMENTS; do
if echo $p | grep kernel_patches/scripts > /dev/null 2>&1 ; then
continue;
fi
NEW_PATH="$NEW_PATH:$p"
done
echo export PATH=$NEW_PATH
echo "'$TREE' successfully setup" >&2