Using PlistBuddy when I want to open Emacs from a link in an HTML file on OS X
Previously, I have discussed How to open Emacs from a link in an HTML file on Mac OS X. This post is just to give a complete overview of how this can be done without too many manual tasks. My complete AppleScript program and its Makefile is available for download. It should only be used with your own modification. It includes the usage of cvs to commit the changes in the bib files to my local cvs-server and the establishment of a VPN connection if I am not on my local university network (since my cvs-server is not available outside the university network). This part should be completely recoded for your usage.
I use BSD make to compile and install the software, and I use PlistBuddy to manipulate the Info.plist
file of the AppleScript application. The focus of this post is how to modify the Info.plist
file of the AppleScript application using PlistBuddy. A lot of resources for PlistBuddy is available online: A Simple PlistBuddy Tutorial, How To Manage Plist Files With PlistBuddy, and OSX: Dealing with property list files.
In the previous post I explained the changes needed to be done in the Info.plist
file of the application. The application is compiled using osacompile
:
osacompile -o EmacsURL.app EmacsURL.applescript
The Info.plist
is now located in the EmacsURL.app/Contents
directory. To add the necessary properties in the Info.plist
file, we perform the following PlistBuddy commands (in the EmacsURL.app/Contents
directory):
PlistBuddy -c 'Add :CFBundleIdentifier string com.apple.AppleScript.EmacsURL’ Info.plist
PlistBuddy -c 'Add :CFBundleURLTypes array’ Info.plist
PlistBuddy -c 'Add :CFBundleURLTypes:0:CFBundleURLName string "Emacs Helper"' Info.plist
PlistBuddy -c 'Add :CFBundleURLTypes:0:CFBundleURLSchemes array' Info.plist
PlistBuddy -c 'Add :CFBundleURLTypes:0:CFBundleURLSchemes:0 string emacs' Info.plist
First we add an identifier for the application (com.apple.AppleScript.EmacsURL
). Then, we add the URL-handling as an array that contains one dictionary with a name (Emacs Helper
) and a scheme. The scheme is an array with a single string element (emacs
). The consequence is that this application will handle the emacs URL protocol (handle URLs with the prefix emacs:
). To activate this on OS X, the application should be run once after it is installed. For other details regarding compiling, modifying the Info.plist
file, and installing the program, see the Makefile file.