{"id":19399608,"url":"https://github.com/ksherlock/prez","last_synced_at":"2026-06-14T08:32:59.417Z","repository":{"id":145892887,"uuid":"283328802","full_name":"ksherlock/prez","owner":"ksherlock","description":"iigs resource compiler","archived":false,"fork":false,"pushed_at":"2024-01-13T00:48:39.000Z","size":166,"stargazers_count":3,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-23T20:31:00.226Z","etag":null,"topics":["apple-iigs","iigs","resource-fork","rez"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ksherlock.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-07-28T21:10:25.000Z","updated_at":"2025-06-21T05:53:52.000Z","dependencies_parsed_at":"2024-01-04T19:39:50.477Z","dependency_job_id":"4d7c7827-7505-48f4-a01e-1001014c9f32","html_url":"https://github.com/ksherlock/prez","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ksherlock/prez","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ksherlock%2Fprez","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ksherlock%2Fprez/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ksherlock%2Fprez/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ksherlock%2Fprez/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ksherlock","download_url":"https://codeload.github.com/ksherlock/prez/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ksherlock%2Fprez/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34315072,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apple-iigs","iigs","resource-fork","rez"],"created_at":"2024-11-10T11:10:24.678Z","updated_at":"2026-06-14T08:32:59.400Z","avatar_url":"https://github.com/ksherlock.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# prez\niigs resource compiler\n\nAn experimental alternative to rez.\n\nUsage:\n\n```\nprez [options] file....\n```\n\nOptions:\n\n* `--hex`: generate rez data statements\n* `--rez`: generate rez resource statements\n* `--data-fork`: save resource fork to a data fork (only win32/macos can generate a resource fork)\n* `-o file`: output file\n\n\nExample:\n\n```\nrMenuBar(\n  rMenu(\" @ \",\n    rMenuItem(\"About My App…\", export=\"kAboutMenuItem\"),\n    rMenuItem(\"Preferences…\", \",\", export=\"kPreferencesMenuItem\")\n  ),\n  rMenu(\" File \",\n    rMenuItem(\"New \", \"Nn\", export=\"kNewMenuItem\"),\n    rMenuItem(\"Open…\", \"Oo\", export=\"kOpenMenuItem\"),\n    rMenuItem(\"Save\", \"Ss\", disabled=True, export=\"kSaveMenuItem\"),\n    DividerMenuItem(),\n    rMenuItem(\"Close\", \"Ww\", id=0xff, export=\"kCloseMenuItem\"),\n    export = \"kFileMenu\"\n  ),\n  rMenu(\" Edit \",\n    UndoMenuItem(), # shortcut for doing it manually,\n    DividerMenuItem(),\n    CutMenuItem(),\n    CopyMenuItem(),\n    PasteMenuItem(),\n    ClearMenuItem(),\n    export = \"kEditMenu\"\n  ),\n  export = \"kMenuBar\"\n)\n```\n\nThis will generate rMenuBar, rMenu, rMenuItem, and rPString resources.\n\nNote that the input file is actually a python program that generates a \nresource fork as a side effect.\n\n\n```\nresource rMenuItem($00000101) {\n  0x0100, /* id */\n  \"\", \"\", /* chars */\n  0x0000, /* check */\n  0x8000, /* flags */\n  0x0001 /* title ref (rPString) */\n}\n\nresource rMenuItem($00000103) {\n  0x0102, /* id */\n  \",\", \",\", /* chars */\n  0x0000, /* check */\n  0x8000, /* flags */\n  0x0002 /* title ref (rPString) */\n}\n\nresource rMenuItem($00000105) {\n  0x0104, /* id */\n  \"N\", \"n\", /* chars */\n  0x0000, /* check */\n  0x8000, /* flags */\n  0x0003 /* title ref (rPString) */\n}\n\nresource rMenuItem($00000107) {\n  0x0106, /* id */\n  \"O\", \"o\", /* chars */\n  0x0000, /* check */\n  0x8000, /* flags */\n  0x0004 /* title ref (rPString) */\n}\n\nresource rMenuItem($00000109) {\n  0x0108, /* id */\n  \"S\", \"s\", /* chars */\n  0x0000, /* check */\n  0x8080, /* flags */\n  0x0005 /* title ref (rPString) */\n}\n\nresource rMenuItem($0000010b) {\n  0x010a, /* id */\n  \"\", \"\", /* chars */\n  0x0000, /* check */\n  0x8080, /* flags */\n  0x0006 /* title ref (rPString) */\n}\n\nresource rMenuItem($000000ff) {\n  0x00ff, /* id */\n  \"W\", \"w\", /* chars */\n  0x0000, /* check */\n  0x8000, /* flags */\n  0x0007 /* title ref (rPString) */\n}\n\nresource rMenuItem($0000010c) {\n  0x00fa, /* id */\n  \"Z\", \"z\", /* chars */\n  0x0000, /* check */\n  0x8000, /* flags */\n  0x0008 /* title ref (rPString) */\n}\n\nresource rMenuItem($0000010e) {\n  0x010d, /* id */\n  \"\", \"\", /* chars */\n  0x0000, /* check */\n  0x8080, /* flags */\n  0x0009 /* title ref (rPString) */\n}\n\nresource rMenuItem($0000010f) {\n  0x00fb, /* id */\n  \"X\", \"x\", /* chars */\n  0x0000, /* check */\n  0x8000, /* flags */\n  0x000a /* title ref (rPString) */\n}\n\nresource rMenuItem($00000110) {\n  0x00fc, /* id */\n  \"C\", \"c\", /* chars */\n  0x0000, /* check */\n  0x8000, /* flags */\n  0x000b /* title ref (rPString) */\n}\n\nresource rMenuItem($00000111) {\n  0x00fd, /* id */\n  \"V\", \"v\", /* chars */\n  0x0000, /* check */\n  0x8000, /* flags */\n  0x000c /* title ref (rPString) */\n}\n\nresource rMenuItem($00000112) {\n  0x00fe, /* id */\n  \"\", \"\", /* chars */\n  0x0000, /* check */\n  0x8000, /* flags */\n  0x000d /* title ref (rPString) */\n}\n\nresource rPString($0000000e) {\n  \"About My App\\$c9\"\n}\n\nresource rPString($0000000f) {\n  \"Preferences\\$c9\"\n}\n\nresource rPString($00000010) {\n  \" @ \"\n}\n\nresource rPString($00000011) {\n  \"New \"\n}\n\nresource rPString($00000012) {\n  \"Open\\$c9\"\n}\n\nresource rPString($00000013) {\n  \"Save\"\n}\n\nresource rPString($00000014) {\n  \"-\"\n}\n\nresource rPString($00000015) {\n  \"Close\"\n}\n\nresource rPString($00000016) {\n  \" File \"\n}\n\nresource rPString($00000017) {\n  \"Undo\"\n}\n\nresource rPString($00000018) {\n  \"-\"\n}\n\nresource rPString($00000019) {\n  \"Cut\"\n}\n\nresource rPString($0000001a) {\n  \"Copy\"\n}\n\nresource rPString($0000001b) {\n  \"Paste\"\n}\n\nresource rPString($0000001c) {\n  \"Clear\"\n}\n\nresource rPString($0000001d) {\n  \" Edit \"\n}\n\nresource rMenu($00000002) {\n  0x0001, /* menu ID */\n  0xa000, /* flags */\n  0x0000001e, /* title ref (rPString) */\n  {\n    0x00000113,\n    0x00000114\n  }\n}\n\nresource rMenu($00000004) {\n  0x0003, /* menu ID */\n  0xa000, /* flags */\n  0x0000001f, /* title ref (rPString) */\n  {\n    0x00000115,\n    0x00000116,\n    0x00000117,\n    0x00000118,\n    0x000000ff\n  }\n}\n\nresource rMenu($00000006) {\n  0x0005, /* menu ID */\n  0xa000, /* flags */\n  0x00000020, /* title ref (rPString) */\n  {\n    0x00000119,\n    0x0000011a,\n    0x0000011b,\n    0x0000011c,\n    0x0000011d,\n    0x0000011e\n  }\n}\n\nresource rMenuBar($00000001) {\n  {\n    0x00000007,\n    0x00000008,\n    0x00000009\n  }\n}\n```\n\n```\n#define kAboutMenuItem 0x0000011f\n#define kPreferencesMenuItem 0x00000120\n#define kNewMenuItem 0x00000121\n#define kOpenMenuItem 0x00000122\n#define kSaveMenuItem 0x00000123\n#define kCloseMenuItem 0x000000ff\n#define kFileMenu 0x0000000a\n#define kEditMenu 0x0000000b\n#define kMenuBar 0x00000002\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fksherlock%2Fprez","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fksherlock%2Fprez","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fksherlock%2Fprez/lists"}