#!/bin/sh

set -e

if [ "$#" -ne 1 ]
then
    echo "Must give exactly one argument (branch version number)"
    exit 1
fi

VERSION="$1"
DIR="ghc-$VERSION"

if [ -e "$DIR" ]
then
    echo "Directory already exists - wimping out" >&2
    exit 1
fi

mkdir "$DIR"
cd "$DIR"
mkdir packages
for r in ghc testsuite nofib `grep . ../ghc/libraries/core-packages | sed "s#^#packages/#"`
do
    darcs get --partial ../"$r" "$r"
    MOTD="$r"/_darcs/prefs/motd
    DEFAULTS="$r"/_darcs/prefs/defaults
    EMAIL="$r"/_darcs/prefs/email
    if [ -e ../"$MOTD" ]
    then
        sed "s/HEAD/$VERSION STABLE/" ../"$MOTD" > "$MOTD"
    fi
    if [ -e ../"$DEFAULTS" ]
    then
        cp ../"$DEFAULTS" "$DEFAULTS"
    fi
    if [ -e ../"$EMAIL" ]
    then
        cp ../"$EMAIL" "$EMAIL"
    fi
    ( cd "$r"; darcs changes --last 1 --xml-output | grep "hash='" | sed "s/^.*hash='\([^']*\)'.*$/\1/" > .current-hash; )
done
sed -i "s#darcs.haskell.org#&/${DIR}#" ghc/darcs-all

