#!/bin/bash

set -e

#workdir=/home/jonas/src
#origsrcdir=/usr/local/src/linux
#origpatchdir=/usr/local/src/linux
#origtree="v2.4"
#origver="2.4.18"
#nextver="2.4.19"
#patchsets="prepatch mm"
#prepatchpre="patch-"
#prepatchver="$nextver-pre2"
#prepatchtree="$origtree/prepatches"
#mmpre=""
#mmver="$patch1ver-mm1"
#patchmmtree="people/akpm/patches/2.6/$origver/$patchmmver"
#patchmmdocs="$patchmmtree/announce.txt"

. ./linux.conf

for var in origtree origver origsrcdir origpatchdir; do
#	if [ -z "`eval echo '$'$var`" ]; then
	if eval "test -z \"'$'$var\""; then
		echo "Variable '$var' missing. Exiting...!"
		exit 1
	fi
done

treebase="rsync://rsync.kernel.org/pub/linux/kernel"

rsync -av $treebase/$origtree/linux-${origver}.tar.bz2 ${origsrcdir}/
rsync -av $treebase/$origtree/ChangeLog-$origver ${origpatchdir}/
for patchset in $patchsets; do
	eval patchtree=\"'$'patch${patchset}tree\"
	eval patchpre=\"'$'patch${patchset}pre\"
	eval patchver=\"'$'patch${patchset}ver\"
	eval patchdocs=\"'$'patch${patchset}docs\"

	if [ -z "${patchver}" ]; then
		echo "WARNING: Ignoring \"$patchset\" patchset missing version number."
		continue
	fi
	if [ -z "${patchtree}" ]; then
		echo "ERROR: patchtree for \"$patchset\" not defined."
		exit 1
	fi

	rsync -av $treebase/$patchtree/${patchpre}${patchver}.bz2 ${origpatchdir}/
	for file in $patchdocs; do
		rsync -av $treebase/${file} ${origpatchdir}/
	done
done
