Skip to content

Instantly share code, notes, and snippets.

@mathiasbynens
Forked from subtleGradient/appify
Created November 12, 2010 13:46
Show Gist options
  • Save mathiasbynens/674099 to your computer and use it in GitHub Desktop.
Save mathiasbynens/674099 to your computer and use it in GitHub Desktop.
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"
@willbprog127
Copy link

willbprog127 commented Mar 30, 2018

Thanks so much for this!

I tried the Automater way of doing it, but it wasn't ideal. After removing the parameter variable from my command ("$@"), it worked fine...the applified app wouldn't launch with it there.

@Bachsau
Copy link

Bachsau commented Apr 14, 2018

When you're troubleshooting problems, it might look like changes to the shebang line or such things could do the trick, but they do not. The problem is that macOS caches app information which might result in things not working even after you modified the bundle. If that is the case, just run "touch" on your application's bundle. That will make macOS re-read your Info.plist.

@Geri-Borbas
Copy link

Adding plist and make sure that schell scripts and plist values have the same name as the app made it work fine.

@thedzy
Copy link

thedzy commented Oct 21, 2018

You can grab out of my frameworks and just edit the script continained.
https://github.com/thedzy/Run-script-as-an-Applicaiton

@dlpigpen
Copy link

How to add icon to this mac app generated?

@timelessthee
Copy link

You can grab out of my frameworks and just edit the script continained.
https://github.com/thedzy/Run-script-as-an-Applicaiton

Thank you for this. Much appreciated.

@Inthenew
Copy link

don't do /Users/--------/Desktop/appify.sh: Permission denied
instead do sh /Users/--------/Desktop/appify.sh

@mgdmdz
Copy link

mgdmdz commented Jul 28, 2022

Hi, is there an option to run the app as hidden?

@80N35
Copy link

80N35 commented Aug 3, 2022

This is the only "appify" script that is working on Catalina. Thanks, friend. Do you want to fork Conky-Mac with me. I have great configs but really haven't done serious code since the 90's in LA.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment