#!/bin/sh

exec 2>&1
set -ex

tmpdir="$AUTOPKGTEST_TMP"
if [ -x "$tmpdir" ]; then
  tmpdir=$(mktemp -d)
  remove_tmpdir() {
    rm -rf "$tmpdir"
  }
  trap remove_tmpdir INT TERM EXIT
fi

cd $tmpdir

mkdir -p repos/test.git
git init --bare repos/test.git

cat > config.ru <<EOF
require 'grack'
config = {
  :project_root => File.join(File.dirname(__FILE__), 'repos'),
  :upload_pack => true,
  :receive_pack => true,
}
run Grack::Server.new(config)
EOF

rackup -p 6666 &
server=$!
stop_server() {
  kill $server
}
trap stop_server INT TERM EXIT

sleep 2 # wait for the server to get up

# clone
git clone http://localhost:6666/test.git
cd test

# config
git config push.default simple
git config user.email "user@example.com"
git config user.name "Happy User"

# add files and push
touch README
git add README
git commit -m 'Initial commit'
git push

