Skip to content

Instantly share code, notes, and snippets.

@Radivarig
Created April 5, 2016 11:38
Show Gist options
  • Select an option

  • Save Radivarig/727a6e07c25babda076358c8c04e23f0 to your computer and use it in GitHub Desktop.

Select an option

Save Radivarig/727a6e07c25babda076358c8c04e23f0 to your computer and use it in GitHub Desktop.
#!/bin/bash
if [ -z "$1" ]; then exit 1; fi
if [ "$1" == "--nologo" ]
then
FILE_PATH="${3%;*}"
FILE_LINE="${3##*;}"
else
FILE_PATH="$1"
FILE_LINE="$2"
fi
if [ "$FILE_LINE" == "-1" ]; then FILE_LINE="0"; fi
if [[ "$FILE_PATH" == *.sln ]]; then FILE_PATH=$(dirname "$FILE_PATH"); fi
SLN_DIR="${FILE_PATH%%/Assets/*}"
SLN_PATH=$(find "$SLN_DIR" -maxdepth 1 -name "*.sln")
SLN_NAME="${SLN_PATH#${SLN_DIR}/}"
SLN_NAME="${SLN_NAME#$?}"
LOCAL_FILE_PATH="${FILE_PATH#$SLN_DIR}"
LOCAL_FILE_DIR=$(dirname "$LOCAL_FILE_PATH")
FILE_NAME="${LOCAL_FILE_PATH#${LOCAL_FILE_DIR}/}"
COUNT="${LOCAL_FILE_PATH//[^\/]}"
COUNT="${#COUNT}"
COUNT="$((COUNT - 2))"
BACKWARD_SLN_DIR=""
for i in $(seq 0 $COUNT); do BACKWARD_SLN_DIR="${BACKWARD_SLN_DIR}../"; done
cd "${SLN_DIR}$LOCAL_FILE_DIR"
PREV_SLN_NAME=$(head -n 1 "${SLN_DIR}/sln_name_of_last_monodevelop_call")
echo "$SLN_NAME" > "${SLN_DIR}/sln_name_of_last_monodevelop_call"
MD_PATH="$(which monodevelop-unity)"
if [[ "$FILE_PATH" == *".sln" ]]
then
if [ -z "$(pidof monodevelop)" ]
then "$MD_PATH" "$SLN_NAME"
fi
else
if [ "$(pidof monodevelop)" ] && [ $PREV_SLN_NAME == $SLN_NAME ]
then "$MD_PATH" "$FILE_NAME;$FILE_LINE"
else "$MD_PATH" "${BACKWARD_SLN_DIR}$SLN_NAME" "$FILE_NAME;$FILE_LINE"
fi
fi
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment