-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 4b6bd60
Showing
5 changed files
with
292 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
.idea |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,27 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
<plist version="1.0"> | ||
<dict> | ||
<key>NSServices</key> | ||
<array> | ||
<dict> | ||
<key>NSMenuItem</key> | ||
<dict> | ||
<key>default</key> | ||
<string>Convert to CD Image</string> | ||
</dict> | ||
<key>NSMessage</key> | ||
<string>runWorkflowAsService</string> | ||
<key>NSRequiredContext</key> | ||
<dict> | ||
<key>NSApplicationIdentifier</key> | ||
<string>com.apple.finder</string> | ||
</dict> | ||
<key>NSSendFileTypes</key> | ||
<array> | ||
<string>public.item</string> | ||
</array> | ||
</dict> | ||
</array> | ||
</dict> | ||
</plist> |
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,217 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
<plist version="1.0"> | ||
<dict> | ||
<key>AMApplicationBuild</key> | ||
<string>444.7</string> | ||
<key>AMApplicationVersion</key> | ||
<string>2.8</string> | ||
<key>AMDocumentVersion</key> | ||
<string>2</string> | ||
<key>actions</key> | ||
<array> | ||
<dict> | ||
<key>action</key> | ||
<dict> | ||
<key>AMAccepts</key> | ||
<dict> | ||
<key>Container</key> | ||
<string>List</string> | ||
<key>Optional</key> | ||
<true/> | ||
<key>Types</key> | ||
<array> | ||
<string>com.apple.cocoa.string</string> | ||
</array> | ||
</dict> | ||
<key>AMActionVersion</key> | ||
<string>2.0.3</string> | ||
<key>AMApplication</key> | ||
<array> | ||
<string>Automator</string> | ||
</array> | ||
<key>AMParameterProperties</key> | ||
<dict> | ||
<key>COMMAND_STRING</key> | ||
<dict/> | ||
<key>CheckedForUserDefaultShell</key> | ||
<dict/> | ||
<key>inputMethod</key> | ||
<dict/> | ||
<key>shell</key> | ||
<dict/> | ||
<key>source</key> | ||
<dict/> | ||
</dict> | ||
<key>AMProvides</key> | ||
<dict> | ||
<key>Container</key> | ||
<string>List</string> | ||
<key>Types</key> | ||
<array> | ||
<string>com.apple.cocoa.string</string> | ||
</array> | ||
</dict> | ||
<key>ActionBundlePath</key> | ||
<string>/System/Library/Automator/Run Shell Script.action</string> | ||
<key>ActionName</key> | ||
<string>Shell-Skript ausführen</string> | ||
<key>ActionParameters</key> | ||
<dict> | ||
<key>COMMAND_STRING</key> | ||
<string>handle_error() { | ||
osascript -e 'tell app "System Events" to display dialog "Select a single directory (not a file) and make sure the output ISO file does not exist already."' | ||
} | ||
|
||
trap 'handle_error $LINENO' ERR | ||
|
||
for f in "$@" | ||
do | ||
hdiutil makehybrid -o "$f.iso" "$f" -iso -joliet 2>> /dev/null | ||
done | ||
|
||
exit 0 | ||
|
||
|
||
</string> | ||
<key>CheckedForUserDefaultShell</key> | ||
<true/> | ||
<key>inputMethod</key> | ||
<integer>1</integer> | ||
<key>shell</key> | ||
<string>/bin/bash</string> | ||
<key>source</key> | ||
<string></string> | ||
</dict> | ||
<key>BundleIdentifier</key> | ||
<string>com.apple.RunShellScript</string> | ||
<key>CFBundleVersion</key> | ||
<string>2.0.3</string> | ||
<key>CanShowSelectedItemsWhenRun</key> | ||
<false/> | ||
<key>CanShowWhenRun</key> | ||
<true/> | ||
<key>Category</key> | ||
<array> | ||
<string>AMCategoryUtilities</string> | ||
</array> | ||
<key>Class Name</key> | ||
<string>RunShellScriptAction</string> | ||
<key>InputUUID</key> | ||
<string>1C640013-171B-4B17-B504-8E4AA93A10B0</string> | ||
<key>Keywords</key> | ||
<array> | ||
<string>Shell</string> | ||
<string>Skript</string> | ||
<string>Befehl</string> | ||
<string>Ausführen</string> | ||
<string>Unix</string> | ||
</array> | ||
<key>OutputUUID</key> | ||
<string>159C5A72-E4DA-413B-BA2D-A802BD5B63C6</string> | ||
<key>UUID</key> | ||
<string>BDF74FB8-48F8-4B7B-8ABB-50EE8F189A02</string> | ||
<key>UnlocalizedApplications</key> | ||
<array> | ||
<string>Automator</string> | ||
</array> | ||
<key>arguments</key> | ||
<dict> | ||
<key>0</key> | ||
<dict> | ||
<key>default value</key> | ||
<integer>0</integer> | ||
<key>name</key> | ||
<string>inputMethod</string> | ||
<key>required</key> | ||
<string>0</string> | ||
<key>type</key> | ||
<string>0</string> | ||
<key>uuid</key> | ||
<string>0</string> | ||
</dict> | ||
<key>1</key> | ||
<dict> | ||
<key>default value</key> | ||
<string></string> | ||
<key>name</key> | ||
<string>source</string> | ||
<key>required</key> | ||
<string>0</string> | ||
<key>type</key> | ||
<string>0</string> | ||
<key>uuid</key> | ||
<string>1</string> | ||
</dict> | ||
<key>2</key> | ||
<dict> | ||
<key>default value</key> | ||
<false/> | ||
<key>name</key> | ||
<string>CheckedForUserDefaultShell</string> | ||
<key>required</key> | ||
<string>0</string> | ||
<key>type</key> | ||
<string>0</string> | ||
<key>uuid</key> | ||
<string>2</string> | ||
</dict> | ||
<key>3</key> | ||
<dict> | ||
<key>default value</key> | ||
<string></string> | ||
<key>name</key> | ||
<string>COMMAND_STRING</string> | ||
<key>required</key> | ||
<string>0</string> | ||
<key>type</key> | ||
<string>0</string> | ||
<key>uuid</key> | ||
<string>3</string> | ||
</dict> | ||
<key>4</key> | ||
<dict> | ||
<key>default value</key> | ||
<string>/bin/sh</string> | ||
<key>name</key> | ||
<string>shell</string> | ||
<key>required</key> | ||
<string>0</string> | ||
<key>type</key> | ||
<string>0</string> | ||
<key>uuid</key> | ||
<string>4</string> | ||
</dict> | ||
</dict> | ||
<key>conversionLabel</key> | ||
<integer>0</integer> | ||
<key>isViewVisible</key> | ||
<true/> | ||
<key>location</key> | ||
<string>309.000000:609.000000</string> | ||
<key>nibPath</key> | ||
<string>/System/Library/Automator/Run Shell Script.action/Contents/Resources/German.lproj/main.nib</string> | ||
</dict> | ||
<key>isViewVisible</key> | ||
<true/> | ||
</dict> | ||
</array> | ||
<key>connectors</key> | ||
<dict/> | ||
<key>workflowMetaData</key> | ||
<dict> | ||
<key>serviceApplicationBundleID</key> | ||
<string>com.apple.finder</string> | ||
<key>serviceApplicationPath</key> | ||
<string>/System/Library/CoreServices/Finder.app</string> | ||
<key>serviceInputTypeIdentifier</key> | ||
<string>com.apple.Automator.fileSystemObject</string> | ||
<key>serviceOutputTypeIdentifier</key> | ||
<string>com.apple.Automator.nothing</string> | ||
<key>serviceProcessesInput</key> | ||
<integer>0</integer> | ||
<key>workflowTypeIdentifier</key> | ||
<string>com.apple.Automator.servicesMenu</string> | ||
</dict> | ||
</dict> | ||
</plist> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,47 @@ | ||
## MacOS/Finder context menu entry: Convert to CD image | ||
|
||
Transforms arbitrary files and folders into an ISO 9660 joliet image | ||
from the MacOS Finder file/folder context menu. | ||
|
||
### How to install? | ||
|
||
1. Click on the green button "Clone or Download" -> "Download ZIP". | ||
2. Extract the ZIP and double-click: "Convert to CD image". | ||
3. Click "Install" (prompts if system service should be installed) | ||
|
||
### How to use? | ||
|
||
1. Open Finder | ||
2. Select an arbitrary file or folder | ||
3. Right-click -> "Convert to CD image" | ||
|
||
Use the .iso file of the file/folder created as ISO 9660 joliet image. | ||
|
||
### How it works | ||
|
||
The whole process is using the Automator capabilities of Mac OS. | ||
Automator is a scripting subsystem available since OS X 10.4 (Tiger). | ||
It is set up as a "Service" which takes selected files/folders of | ||
Finder as arguments and registeres as a context menu. | ||
|
||
The command executed (in bash) is: | ||
|
||
handle_error() { | ||
osascript -e 'tell app "System Events" to display dialog "Select a single directory (not a file) and make sure the output ISO file does not exist already."' | ||
} | ||
|
||
trap 'handle_error $LINENO' ERR | ||
|
||
for f in "$@" | ||
do | ||
hdiutil makehybrid -o "$f.iso" "$f" -iso -joliet 2>> /dev/null | ||
done | ||
|
||
exit 0 | ||
|
||
#### Motivation | ||
|
||
Helping PCem, an emulator to run on MacOS brought up the issue how | ||
to transfer files/folders from the host to the guest OS. This works | ||
using CD ROM image mounts but the process wasn't quite elegant and | ||
involved complex terminal interactions. This solution feels better. |