Skip to content

Filter to put OSA languages (AppleScript, JavaScript) into git, as if they where plain text-files

License

Notifications You must be signed in to change notification settings

doekman/osagitfilter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

osagitfilter

Filter to put OSA languages into a git-repository. So you can put your .scpt-file (AppleScript, JavaScript) into your git-repository, and get full textual diff support.

Installation

Either clone this repository, or download the latest release and unzip it to a folder where you want to install it.

Configure the filter by running the following command:

./setup.sh configure

For every reporistory you want to use it, put the line *.scpt filter=osa in the gitattributes of your repository. Do this by running the command below in the root of your repository:

echo "*.scpt filter=osa" >> .gitattributes

Extra's

If you want to add your own git configuration, use the following configure command:

./setup.sh configure --no-git

To reset the configuration, run this command:

./setup.sh reset

If you have trouble with the script, switch on logging with:

./setup.sh configure --git-log

Logging can be found in ~/Library/Logs/Catsdeep/osagitfilter.log and can be easy inspected with Console.app.

Some git-clients, like GitHub Desktop, can be quite chatty so log files grow quite fast. With the following command you can create a new log file, while preserving the old ones:

./setup.sh rotate

Default, it prevents from accidently committing AppleScript files with Debugging Mode (from AppleScript Debugger) switched on. Run osagitfilter --help to see more options.

I've setup a demo repository with different .scpt-files.

Problems

If you want to (re-)apply osagitfilter to a repository (for example, if you already added your binary .scpt file to git, but want to use osagitfilter), execute the following statement:

git add --renormalize .

Credits

Based on this answer by Daniel Trebbien on stackoverflow and help from guys on the Script Debugger Forum.