@echo off
rem Licensed under the Apache License, Version 2.0 (the "License"); you may not
rem use this file except in compliance with the License. You may obtain a copy
rem of the License at
rem
rem   http://www.apache.org/licenses/LICENSE-2.0
rem
rem Unless required by applicable law or agreed to in writing, software
rem distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
rem WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
rem License for the specific language governing permissions and limitations
rem under the License.

setlocal
rem First change to the drive with the erlang bin directory
%~d0
rem then change to the erlang bin directory
cd %~dp0

rem Allow a different erlang executable (eg, erl) to be used.
rem When using erl instead of werl, server restarts during test runs can fail
rem intermittently. But using erl should be fine for production use.
if "%ERL%x" == "x" set ERL=werl.exe

echo CouchDB %version% - prepare to relax...
%ERL% -sasl errlog_type error -s couch
