diff options
author | Mike Clarke <clarkema@clarkema.org> | 2019-02-17 23:45:12 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-17 23:45:12 +0000 |
commit | ff85243b9c1ed7f492d95a140e3057e64bc4a33f (patch) | |
tree | 6b520f6fea65d97975f995a41092940e51d9939f /ports/darwin_dmg/fileicon | |
parent | 693478cc2034a6baf14b147f2ca39ef81c1068a6 (diff) | |
parent | 46760080c149ce7e61225330765c418b26174098 (diff) |
Merge pull request #126 from clarkema/macos-build
Fix DMG creation on newer versions of macOS
Diffstat (limited to 'ports/darwin_dmg/fileicon')
-rwxr-xr-x | ports/darwin_dmg/fileicon | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/ports/darwin_dmg/fileicon b/ports/darwin_dmg/fileicon new file mode 100755 index 0000000..1e1d2a2 --- /dev/null +++ b/ports/darwin_dmg/fileicon @@ -0,0 +1,33 @@ +#! /usr/bin/swift + +import Darwin +import Cocoa + +func die(_ msg: String) { + fputs("\(msg)\n", stderr) + exit(1) +} + +let name = CommandLine.arguments[0] + +/* + * We don't do anything with the 'set' at the moment; it's just there to + * reserve a space for a subcommand to allow for future expansion without + * changing the interface. + */ +if CommandLine.argc == 4 && CommandLine.arguments[1] == "set" { + let target_file = CommandLine.arguments[2] + let icon_file_name = CommandLine.arguments[3] + + if let icon = Cocoa.NSImage.init(contentsOfFile: icon_file_name) { + if !NSWorkspace.shared.setIcon(icon, forFile: target_file) { + die("Failed to set icon for '\(target_file)'") + } + } + else { + die("Failed to read icon file '\(icon_file_name)'") + } +} +else { + die("Usage: \(name) set FILE ICON_FILE") +} |