diff --git a/scripts/dm.sh b/scripts/dm.sh new file mode 100755 index 00000000000..e8985cdfc8c --- /dev/null +++ b/scripts/dm.sh @@ -0,0 +1,55 @@ +#!/bin/bash + +dmepath="" +retval=1 + +for var; do + if [[ $var != -* && $var == *.dme ]]; then + dmepath=$(echo $var | sed -r 's/.{4}$//') + break + fi +done + +if [[ $dmepath == "" ]]; then + echo "No .dme file specified, aborting." + exit 1 +fi + +if [[ -a $dmepath.mdme ]]; then + rm $dmepath.mdme +fi + +cp $dmepath.dme $dmepath.mdme +if [[ $? != 0 ]]; then + echo "Failed to make modified dme, aborting." + exit 2 +fi + +for var; do + arg=$(echo $var | sed -r 's/^.{2}//') + if [[ $var == -D* ]]; then + sed -i '1s!^!#define '$arg'\n!' $dmepath.mdme + elif [[ $var == -I* ]]; then + sed -i 's!// BEGIN_INCLUDE!// BEGIN_INCLUDE\n#include "'$arg'"!' $dmepath.mdme + elif [[ $var == -M* ]]; then + sed -i '1s/^/#define MAP_OVERRIDE\n/' $dmepath.mdme + sed -i 's!// BEGIN_INCLUDE!// BEGIN_INCLUDE\n#include "_maps\\'$arg'.dm"!' $dmepath.mdme + fi +done + +source "$( dirname "${BASH_SOURCE[0]}" )/sourcedm.sh" + +if [[ $DM == "" ]]; then + echo "Couldn't find the DreamMaker executable, aborting." + exit 3 +fi + +"$DM" $dmepath.mdme +retval=$? + +mv $dmepath.mdme.dmb $dmepath.dmb +mv $dmepath.mdme.rsc $dmepath.rsc + +rm $dmepath.mdme + +exit $retval diff --git a/scripts/sourcedm.sh b/scripts/sourcedm.sh new file mode 100755 index 00000000000..5737d4e6b4a --- /dev/null +++ b/scripts/sourcedm.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +if [[ $(uname) == MINGW* ]] +then + if hash dm.exe 2>/dev/null + then + export DM='dm.exe' + return 0 + elif [[ -a '/c/Program Files (x86)/BYOND/bin/dm.exe' ]] + then + export DM='/c/Program Files (x86)/BYOND/bin/dm.exe' + return 0 + elif [[ -a '/c/Program Files/BYOND/bin/dm.exe' ]] + then + export DM='/c/Program Files/BYOND/bin/dm.exe' + return 0 + fi +else + if hash DreamMaker 2>/dev/null + then + export DM='DreamMaker' + return 0 + elif [[ -a '/usr/bin/DreamMaker' ]] + then + export DM='/usr/bin/DreamMaker' + return 0 + elif [[ -a '/usr/share/byond/bin/DreamMaker' ]] + then + export DM='/usr/share/byond/bin/DreamMaker' + return 0 + fi +fi + +export DM='' +return 1