Writing code alone at home can be an isolating experience. There you are, day in day out, quietly making magic with your mind (sarcasm, obv.) only to silently commit the fruits of your labor into the void of your source control repository, appreciated by no one. If only a crowd of children could be retained for the sole purpose of cheering you on every time you complete something.
Amazingly, Brandon Keepers over at Collective Idea had the same exact same thought (almost; he was substantially less melodramatic in his blog post about it). Â Anyway, here is what my version of his script looks like:
#!/bin/sh toplevel_path=`git rev-parse --show-toplevel` afplay -v 0.1 $toplevel_path/.git/hooks/happykids.wav > /dev/null 2>&1 &
I put this in a file calledÂ
.git/hooks/post-commit.playsound.Â I then trigger this from the main
.git/hooks/post-commit script as follows:
#!/bin/sh toplevel_path=`git rev-parse --show-toplevel` $toplevel_path/.git/hooks/post-commit.tweet $toplevel_path/.git/hooks/post-commit.playsound
post-commit.tweet script is the script from this blog post. If you aren’t also tweeting your commit posts, you’ll want to delete that line.
If you want this to work for every single Git repository from now on, add these scripts to your git-core templates. Youâ€™ll have to figure out where these are (itâ€™s different for every setup). For my Mac, theyâ€™re located here:Â /opt/local/share/git-core/templates/hooks/post-commit.
1. Install XCODE 4. This is actually trickier than it seems. You have to:
a) download XCode;
b) run the .dmg.
c) quit iTunes, then go into Activity Monitor and force quit on anything iTunes related (iTunesHelper as well);
d) go into the Applications folder and find the â€œInstall XCodeâ€ app, and run that. (Yes, you have to run a second Install XCode appâ€¦and I had to run it twice. It failed the first time. If you want to watch it fail, drop into Terminal and type this: tail -f /var/log/install.log.
2. Install MacPorts.
3. Test MacPorts by installing joe. Type:
$ sudo bash $ port install joe.
Enter your password.
4. A bunch of things will be preinstalled with the wrong architecture. Weâ€™re trying to get ruby as an x86_64 architecture. Soâ€¦uninstall libiconv and zlib (you may have to tinker with this a bit because it will ask you which version you want to uninstall â€” the answer is â€œall of themâ€)
$ sudo port uninstall -fÂ libiconv @1.13.1_0 $ sudoÂ port uninstall -f libiconv @1.14_0 $ sudo port uninstall -f zlib $ port uninstall -f readline $ port uninstall -f openssl $ port uninstall -f ncurses @5.8_1 $ port uninstall -f ncurses @5.9_0 $ port uninstall -f ncurses @5.9_1 $ port uninstall -f gdbm
5. Install ruby by doing:
$ port install ruby
7. Update your gems:
$ gem update --system
8. And, finally, install Rails:
$ gem install rails --pre
To makeÂ .htaccessÂ files work as expected, you need to editÂ /etc/apache2/sites-available/default. Look for a section that looks like this:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all # Uncomment this directive is you want to see apache2's # default start page (in /apache2-default) when you go to / #RedirectMatch ^/$ /apache2-default/ </Directory>
You need to modify the line containingÂ AllowOverrideÂ NoneÂ to readÂ AllowOverrideÂ All. This tells Apache that itâ€™s okay to allow.htaccessÂ files to over-ride previous directives. You mustÂ reloadÂ Apache before this change will have an effect:
sudo /etc/init.d/apache2 reload