#!/usr/bin/env bash
## Lets you checkout several files at once at the version specified by a date.
## Source: git-extra-commands

#
# git-checkout-by-date.sh 2012-03-09 Foo Bar Baz
#

set -e

BASEDIR=$PWD
DATESPEC="$1"
shift

DEFAULT_BRANCH=$(git branch -r | awk -F/ '/HEAD/ {print $NF}')

for i in "$@"; do
	cd "$BASEDIR/$i"
	if [ "$DATESPEC" == "$DEFAULT_BRANCH" ]; then
		git checkout master
	else
		git checkout "$(git rev-list -n1 --before="$DATESPEC" "$DEFAULT_BRANCH")"
	fi
done

cd "$BASEDIR"