-
-
Save subtleGradient/672684 to your computer and use it in GitHub Desktop.
#!/usr/bin/env bash | |
# | |
# url : https://gist.github.com/672684 | |
# version : 2.0.2 | |
# name : appify | |
# description : Create the simplest possible mac app from a shell script. | |
# usage : cat my-script.sh | appify MyApp | |
# platform : Mac OS X | |
# author : Thomas Aylott <[email protected]> | |
APPNAME=${1:-Untitled} | |
if [[ -a "$APPNAME.app" ]]; then | |
echo "App already exists :'(" >&2 | |
echo "$PWD/$APPNAME.app" | |
exit 1 | |
fi | |
mkdir -p "$APPNAME.app/Contents/MacOS" | |
touch "$APPNAME.app/Contents/MacOS/$APPNAME" | |
chmod +x "$APPNAME.app/Contents/MacOS/$APPNAME" | |
DONE=false | |
until $DONE ;do | |
read || DONE=true | |
echo "$REPLY" >> "$APPNAME.app/Contents/MacOS/$APPNAME" | |
done | |
echo "$PWD/$APPNAME.app" |
Updated to your 2.0.2!
Thanks Mathias!
You could also add [[ ! $REPLY ]] && continue
after line 25, which will cause all redundant newlines to be skipped. (See my fork.)
Maybe it should just cp the file in there instead and avoid all these silly issues.
Hey @subtleGradient, I just rewrote appify so it uses cp
which avoids a lot of problems. Check it out: https://gist.github.com/674099
It wouldn't work on OS X 10.10 until I added $APPNAME.app/Contents/Info.plist
containing at least <plist><dict></dict></plist>
I created an app, but it won't execute when I double-click on the bundle. It is just a #!/bin/sh
script that has a echo "hello world"
statement in it for testing purposes. Can someone give me some guidance on how to get my app to run from clicking on the bundle? Appify did not create a Info.plist file for me, maybe this is the issue? What needs to be in that file? Thanks!
I forked this and added option-parsing, overridable icons file, and some other bits: https://gist.github.com/oubiwann/453744744da1141ccc542ff75b47e0cf
appify v2.0.1 assumes
my-script.sh
has a newline at the end of the file. If not, it will chop off the last line, effectively breaking the generated app. I’ve fixed this in my fork of this gist, by replacing thewhile read
loop with this:Paul: http://mathiasbynens.be/notes/shell-script-mac-apps#chrome-bootstrappers