summaryrefslogtreecommitdiff
path: root/travis.sh
diff options
context:
space:
mode:
Diffstat (limited to 'travis.sh')
-rwxr-xr-xtravis.sh117
1 files changed, 117 insertions, 0 deletions
diff --git a/travis.sh b/travis.sh
new file mode 100755
index 000000000..6f2eced20
--- /dev/null
+++ b/travis.sh
@@ -0,0 +1,117 @@
+#!/bin/bash
+
+MODE="$1"
+shift
+
+function foo {
+ for i in "$@"; do
+ echo "> $i"
+ done
+}
+
+function usage {
+ echo "usage:"
+ echo " $0 createdb <dbname> [dbuser] [dbpassword]"
+ echo " $0 importdb <dbname> [dbuser] [dbpassword]"
+ echo " $0 build [configure args]"
+ echo " $0 test <dbname> [dbuser] [dbpassword]"
+ echo " $0 getplugins"
+ exit 1
+}
+
+function aborterror {
+ echo $@
+ exit 1
+}
+
+case "$MODE" in
+ createdb|importdb|test)
+ DBNAME="$1"
+ DBUSER="$2"
+ DBPASS="$3"
+ if [ -z "$DBNAME" ]; then
+ usage
+ fi
+ if [ "$MODE" != "test" ]; then
+ if [ -n "$DBUSER" ]; then
+ DBUSER="-u $DBUSER"
+ fi
+ if [ -n "$DBPASS" ]; then
+ DBPASS="-p$DBPASS"
+ fi
+ fi
+ ;;
+esac
+
+case "$MODE" in
+ createdb)
+ echo "Creating database $DBNAME..."
+ mysql $DBUSER $DBPASS -e "create database $DBNAME;" || aborterror "Unable to create database."
+ ;;
+ importdb)
+ echo "Importing tables into $DBNAME..."
+ mysql $DBUSER $DBPASS $DBNAME < sql-files/main.sql || aborterror "Unable to import main database."
+ mysql $DBUSER $DBPASS $DBNAME < sql-files/logs.sql || aborterror "Unable to import logs database."
+ ;;
+ build)
+ ./configure $@ || aborterror "Configure error, aborting build."
+ make sql -j3 || aborterror "Build failed."
+ if [ -f src/plugins/script_mapquit.c ]; then
+ make plugin.script_mapquit -j3 || aborterror "Build failed."
+ fi
+ ;;
+ test)
+ cat >> conf/import/login_conf.txt << EOF
+ipban.sql.db_username: $DBUSER
+ipban.sql.db_password: $DBPASS
+ipban.sql.db_database: $DBNAME
+account.sql.db_username: $DBUSER
+account.sql.db_password: $DBPASS
+account.sql.db_database: $DBNAME
+account.sql.db_hostname: localhost
+EOF
+ [ $? -eq 0 ] || aborterror "Unable to import configuration, aborting tests."
+ cat >> conf/import/inter_conf.txt << EOF
+sql.db_username: $DBUSER
+sql.db_password: $DBPASS
+sql.db_database: $DBNAME
+sql.db_hostname: localhost
+char_server_id: $DBUSER
+char_server_pw: $DBPASS
+char_server_db: $DBNAME
+char_server_ip: localhost
+map_server_id: $DBUSER
+map_server_pw: $DBPASS
+map_server_db: $DBNAME
+map_server_ip: localhost
+log_db_id: $DBUSER
+log_db_pw: $DBPASS
+log_db_db: $DBNAME
+log_db_ip: localhost
+EOF
+ [ $? -eq 0 ] || aborterror "Unable to import configuration, aborting tests."
+ ARGS="--load-script npc/dev/test.txt "
+ if [ -f src/plugins/script_mapquit.c ]; then
+ ARGS="--load-plugin script_mapquit $ARGS --load-script npc/dev/ci_test.txt"
+ fi
+ echo "Running Hercules with command line: ./map-server --run-once $ARGS"
+ ./map-server --run-once $ARGS || aborterror "Test failed."
+ ;;
+ getplugins)
+ echo "Cloning plugins repository..."
+ git clone http://github.com/HerculesWS/StaffPlugins.git || aborterror "Unable to fetch plugin repository"
+ if [ -f StaffPlugins/Haru/script_mapquit/script_mapquit.c -a -f StaffPlugins/Haru/script_mapquit/examples/ci_test.txt ]; then
+ pushd src/plugins || aborterror "Unable to enter plugins directory."
+ ln -s ../../StaffPlugins/Haru/script_mapquit/script_mapquit.c ./
+ popd
+ pushd npc/dev || aborterror "Unable to enter scripts directory."
+ ln -s ../../StaffPlugins/Haru/script_mapquit/examples/ci_test.txt ./
+ popd
+ else
+ echo "Plugin not found, skipping advanced tests."
+ fi
+ ;;
+ *)
+ usage
+ ;;
+esac