7373# Handle first param being executable name
7474if [ -x " $1 " ] ; then
7575 executable_name=" $1 "
76- echo " Target executable: $1 "
7776 shift
7877fi
7978
@@ -95,7 +94,7 @@ case ${os_type} in
9594 Linux* )
9695 executable_path=" ${executable_name} "
9796 # Handle relative paths
98- if ! echo " $executable_path " | grep " ^/.*$ " ; then
97+ if [ " $executable_path " = " ${executable_path #/ } " ] ; then
9998 executable_path=" ${BASEDIR} /${executable_path} "
10099 fi
101100 lib_extension=" so"
@@ -104,21 +103,24 @@ case ${os_type} in
104103 real_executable_name=" ${executable_name} "
105104
106105 # Handle relative directories
107- if ! echo " $real_executable_name " | grep " ^/.*$ " ; then
106+ if [ " $real_executable_name " = " ${real_executable_name #/ } " ] ; then
108107 real_executable_name=" ${BASEDIR} /${real_executable_name} "
109108 fi
110109
111110 # If we're not even an actual executable, check .app Info for actual executable
112- if ! echo " $real_executable_name " | grep " ^.*\.app/Contents/MacOS/.*" ; then
113- # Add .app to the end if not given
114- if ! echo " $real_executable_name " | grep " ^.*\.app$" ; then
115- real_executable_name=" ${real_executable_name} .app"
116- fi
117- inner_executable_name=$( defaults read " ${real_executable_name} /Contents/Info" CFBundleExecutable)
118- executable_path=" ${real_executable_name} /Contents/MacOS/${inner_executable_name} "
119- else
120- executable_path=" ${executable_name} "
121- fi
111+ case $real_executable_name in
112+ * .app/Contents/MacOS/* )
113+ executable_path=" ${executable_name} "
114+ ;;
115+ * )
116+ # Add .app to the end if not given
117+ if [ " $real_executable_name " = " ${real_executable_name% .app} " ]; then
118+ real_executable_name=" ${real_executable_name} .app"
119+ fi
120+ inner_executable_name=$( defaults read " ${real_executable_name} /Contents/Info" CFBundleExecutable)
121+ executable_path=" ${real_executable_name} /Contents/MacOS/${inner_executable_name} "
122+ ;;
123+ esac
122124 lib_extension=" dylib"
123125 ;;
124126 * )
@@ -153,9 +155,8 @@ resolve_executable_path () {
153155 echo " ${e_path} "
154156}
155157
156- # Get absolute path of executable and show to user
158+ # Get absolute path of executable
157159executable_path=$( resolve_executable_path " ${executable_path} " )
158- echo " ${executable_path} "
159160
160161# Figure out the arch of the executable with file
161162file_out=" $( LD_PRELOAD=" " file -b " ${executable_path} " ) "
0 commit comments