The script checks if homebrew is installed and outputs the result to a text file on the Desktop. I outputted to a text file on the Desktop for debugging purposes.
Here is the script:
#! /usr/bin/env bash
cd ~/Desktop
(command -v brew >/dev/null 2>&1 || echo >&2 "Installing Homebrew Now") &> result.txt
When I run this script directly from terminal, it outputs nothing. When I package the script with Appify or Platypus and open package contents and run the script from there (by right clicking and hitting open), it outputs nothing. This is expected since I already have homebrew installed. Whenever I double click the .app, it outputs "Installing Homebrew Now". This is unexpected since I have homebrew installed on my computer.
Why is the output different when run as a .app?
Appify Script:
#!/bin/bash
if [ "$1" = "-h" -o "$1" = "--help" -o -z "$1" ]; then cat <<EOF
appify v3.0.1 for Mac OS X - http://mths.be/appify
Creates the simplest possible Mac app from a shell script.
Appify takes a shell script as its first argument:
`basename "$0"` my-script.sh
Note that you cannot rename appified apps. If you want to give your app
a custom name, use the second argument:
`basename "$0"` my-script.sh "My App"
Copyright (c) Thomas Aylott <http://subtlegradient.com/>
Modified by Mathias Bynens <http://mathiasbynens.be/>
EOF
exit; fi
APPNAME=${2:-$(basename "$1" ".sh")}
DIR="$APPNAME.app/Contents/MacOS"
if [ -a "$APPNAME.app" ]; then
echo "$PWD/$APPNAME.app already exists :("
exit 1
fi
mkdir -p "$DIR"
cp "$1" "$DIR/$APPNAME"
chmod +x "$DIR/$APPNAME"
echo "$PWD/$APPNAME.app"
For some reason the $PATH is different when packaged as a .app. I had to check using absolute path:
command -v /usr/local/bin/bash