From 7c3f8b3041b6d904350563fe4437530db029f583 Mon Sep 17 00:00:00 2001 From: epriestley Date: Wed, 21 Mar 2012 18:04:35 -0700 Subject: [PATCH] Resolve arc location through symlinks-of-symlinks, etc Summary: Stole this from stackoverflow; seems to work? http://stackoverflow.com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in Test Plan: Ran a symlink to bin/arc. Reviewers: btrahan, zeeg Reviewed By: btrahan CC: aran, epriestley Maniphest Tasks: T124 Differential Revision: https://secure.phabricator.com/D1968 --- bin/arc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/bin/arc b/bin/arc index bf49fa39..8ca8af85 100755 --- a/bin/arc +++ b/bin/arc @@ -1,7 +1,15 @@ -#!/bin/sh +#!/bin/bash # NOTE: This file is a wrapper script instead of a symlink so it will work in # the Git Bash environment in Windows. -exec `dirname $0`/../scripts/arcanist.php $@ +# Do bash magic to resolve the real location of this script through aliases, +# symlinks, etc. +SOURCE="${BASH_SOURCE[0]}"; +while [ -h "$SOURCE" ]; do + SOURCE="$(readlink "$SOURCE")"; +done; +DIR="$(cd -P "$(dirname "$SOURCE")" && pwd)" + +exec $DIR/../scripts/arcanist.php $@