#!/bin/sh

cert_dir="/tmp/svnserve_cert/"
svn_dir="/home/sigfred/devel/svn/"

# First we generate a new self signed certificate
# to be used in testing svnserve, if it does not exist.
if [ ! -d ${cert_dir} ]; then
  echo "Generating test certificate"
  mkdir ${cert_dir}
  cd ${cert_dir}
  echo "[ req ]" > cert.cfg
  echo "default_bits = 1024" >> cert.cfg
  echo "encrypt_key = yes" >> cert.cfg
  echo "distinguished_name = req_dn" >> cert.cfg
  echo "x509_extensions = cert_type" >> cert.cfg
  echo "prompt = no" >> cert.cfg
  echo "[ req_dn ]" >> cert.cfg
  echo "C=SE" >> cert.cfg
  echo "ST=SE" >> cert.cfg
  echo "L=Gothenburg" >> cert.cfg
  echo "O=Subversion svnserve TEST certificate" >> cert.cfg
  echo "OU=Automatically-generated svnserve TEST certificate" >> cert.cfg
  echo "CN=localhost" >> cert.cfg
  echo "emailAddress=postmaster@localhost" >> cert.cfg
  echo "[ cert_type ]" >> cert.cfg
  echo "nsCertType = server" >> cert.cfg

  openssl genrsa -out server.key 1024
  openssl req -new -key server.key -out server.csr -config cert.cfg
  openssl x509 -req -days 2 -in server.csr -signkey server.key -out server.crt
fi

# With a test certificate in hand, we can start the SSL enabled svnserve.
echo "Starting SSL enabled svnserve"
cd ${svn_dir}
subversion/svnserve/svnserve --foreground -d -r `pwd`/subversion/tests/clients/cmdline \
    --cert-file ${cert_dir}server.crt \
    --key-file ${cert_dir}server.key    

