Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A shell script that makes it easy to use Objective-C files for shell script-like tasks.
Shell Objective-C
Branch: master
Pull request Compare This branch is 2 commits behind iljaiwas:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
examples
.travis.yml
LICENSE
ReadMe.md
objc-run
test.bash

ReadMe.md

Build Status

About objc-run

objc-run is a shell script which compiles and executes Objective-C source code files. It integrates with CocoaPods.

It's perfect for small programming tasks you want to handle in Objective-C, that don't justify setting up a complete Xcode project, e.g. manipulating plist files. Think of it as CodeRunner without an user interface.

Installation

If you have homebrew installed, just run

brew install objc-run

Otherwise, download the objc-run shell script file and install it in a directory that's in your $PATH. Make sure the executable bit is set like this:

chmod u+x objc-run

Basic Usage

Inside the Terminal, just enter:

objc-run myfile.m myparam1 myparam2

objc-run will attempt to compile myfile.m into an application called 'myfile'. If the file was successfully compiled, 'myfile' is launched and all remaining parameters are passed to it.

Once 'myfile' is done executing, it's removed.

Advanced usage (#!)

You can omit the explicit invocation of objc-run on the command line and launch it like this:

myfile.m myparam1 myparam2

Just insert this as first line in your .m file:

#!/usr/bin/env objc-run

Make sure objc-run, or a link to it, is accessible from your $PATH.

Please note that as long as this line is present, it will produce an error when compiling it directly.

CocoaPods Integration

You can use CocoaPods modules with objc-run. Just include the contents of your podfile in a C-comment between 'podfile-start' and 'podfile-end', like this:

/*
podfile-start
platform :osx, '10.9'
pod 'Barista'
podfile-end
*/

Here is an example file from the Barista project modified for usage with objc-run.

Self check

There is a little test script that performs some basic checks.

Run:

$ ./test.bash
Done
$ echo $?
0
Something went wrong with that request. Please try again.