Skip to content

Embed URL

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
appify — create the simplest possible Mac app from a shell 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"
@subtleGradient

@mathiasbynens FTW!
Much better.

I tried to make it work using cp before but couldn't get it working for some strange reason. I forget the original issue I ran into.

@mathiasbynens

Feel free to backport these changes into your original gist if you like! It’s still your script :) I’ll update my blog post accordingly.

@andrewcase

Great script guys! Thanks!

@subtleGradient

Be sure to check out Appify UI also: https://github.com/subtleGradient/Appify-UI

@jsbieber

I used this today to on a .sh script of mine. When launching the app it states: "You can't open the application...because PowerPC applications are no longer supported. I'm running Mountain Lion. My .sh script runs fine natively, it is small and just uses a couple curl lines to download some tar.gz files. Any ideas?

@PacoH

OS X 10.8.5:
You can’t open the application “My App.app” because it is not supported on this type of Mac

@jayfresh

same error message as PacoH for me, unfortunately!

@bhanquier

Same problem, the end result seems to be a PowerPC app. I guess it's just a matter of changing one of the triggers (?) but which one… If somebody has an idea, it would be great!

@jrmedd

I got around that PowerPC issue by ensuring that #!/bin/bash was at the top of my script ;)

@gregd49

Running on mac OSX 10.10.2
I had trouble with the powerpc error.
I had to add the #!/bin/bash line to my shell script as noted above.
I had to modify my plist to be correct as noted previously.
In particular I had to change CFBundleSignature from ???? to a 4 character string.
It then worked for me.

@davidfavor

Can someone post a simple .plist file that does the following...

1) Allows App to be a drag + drop target.

2) Passes dropped files into script $* to allow files to be dropped on App.

I'll also look around + if I find a good example, post it here.

Thanks.

@andreif

I made it to work on OS X 10.10 by adding file $APPNAME.app/Contents/Info.plist containing <plist><dict></dict></plist>

@bluejamesbond

Neat idea. However, what directory does the script run in so that I can use relative paths?

@CosmicWebServices

-bash: /Users/--------/Desktop/appify.sh: Permission denied

@nueh

@CosmicWebServices
chmod +x /Users/--------/Desktop/appify.sh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Something went wrong with that request. Please try again.