rsrce(1) editor for raw MacOS resource forks


rsrce [-e] [-f script] [-o output-file] [input-file]


Rsrce is a command driven Macintosh resource fork editor for Unix-like operating systems. It works with raw resource forks stored in Unix files, such as the .rsrc files produced by the macutil package.

Rsrce doesn't allow you to edit the resource data directly. It only knows to import/export them from/to files, performing conversion for the few resource types it knows.


When this option is given, the failure of an editor command will cause rsrce to quit immediately with a non-zero exit status. This is similar to the -e option to /bin/sh.

-f script
Instructs rsrce to read its commands from the given script, instead of using the standard input.

-o output-file
Specifies a default output file for the writecommand. Useful when calling rsrce scripts which save their changes with a write command without a filename.

If an input-file is specified, it is loaded before rsrce starts reading commands, and is used as the default output file if the -o option has not been given.


Rsrce reads commands from the standard input. Unquoted whitespace is ignored, except for the purpose of separating arguments. Empty lines are ignored, and a # at a position where an argument would have started indicates a comment which extends to the end of the line. Text within single quotes is used as-is. An unquoted backslash can be used the way it works in C strings, or to force literal interpretation of the following character.

Resources are referred to by specifing their type and id, separated by a colon. I mean, something like "STR#:128". If the given type has less than 4 letters, spaces are added to complete it.

The following commands are available:

read [file]
read the resources from file

write [file]
write the resources to file

create resource
create a new, empty resource with the given type and id

delete resource
remove the specified resource

rename resource new-name
change the name associated with resource to new-name

chattr resource attr-spec
change the attributes of resource according to attr-spec

list each resource's type, id, attributes, data lenght, and name

hexdump resource
show an hexdump of resource's data

import|export resource file [ext]
import/export resource's data from/to file. The conversion which is performed depends on the extension of the given filename. This extenstion may be overriden by providing the extargument.

edit resource[ext]
invoke an external editor to change resource's data

list available commands

terminate rsrce (without saving, use write before exit if you wish to save your changes)


When rsrce imports or exports resource data, a conversion can be performed depending on the resource type and the extension of the provided filename.

The following extensions are known to rsrce:

causes no conversion, the raw resource data is used regardless of the resource type;
causes the resource data to be converted to plain text. This is possible for STR, STR#andCMDLresources.


Rsrce has only been originally created to change the configuration of the miBoot Linux bootloader for OldWorld PowerMac computers. Since I do not use MacOS, I haven't tested any other usage of this program. You should therefore be very careful when using it, as it could very well produce unusable output.

Another consequence of this is wildly missing functionnality. I'm not going to work on it, since I couldn't test anything in a real situation. Patches and/or usage reports would be very welcome.


Jeremie Koenig <[email protected]>