PLATYPUS(1) BSD General Commands Manual PLATYPUS(1) NAME platypus -- create a macOS application bundle from a command line script. SYNOPSIS platypus [OPTIONS] scriptPath [destinationPath] DESCRIPTION platypus is the command line counterpart to the Platypus Mac application. It creates a macOS application bundle from a command line script. See https://sveinbjorn.org/platypus for details. platypus defaults to creating application bundles, but can also create Platypus profiles that are loadable by both the command line program and the Platypus application. If the scriptPath parameter is '-', script text is read from standard input. The following option flags are supported (parsed in the order in which they are passed): -O, --generate-profile Create a profile document instead of creating an application bundle. When this option is enabled, the "destinationPath" paramater (i.e. the final argument to the program) should have a .platypus suffix. If the string '-' is provided as destination path, the profile prop- erty list XML will be dumped to STDOUT. -P, --load-profile profilePath Loads all settings from a Platypus profile document. It is still necessary to specify a destination path for the application. Subse- quent arguments can override profile settings. -a, --name appName Specifies the name of the application. This is can be different from the name of the .app bundle itself, and is displayed in the application's menus, "About" window and Info.plist property list. -o, --interface-type interfaceType Specifies the application's interface type, which should be one of the following: 'None' The application does not display any user interface except for Dock icon & menu. 'Progress Bar' The application displays a progress bar while run- ning. 'Text Window' The application displays a window with a text field with all script output. 'Web View' The application displays a window with a web view which renders script output as HTML. 'Status Menu' The application displays a status menu item in the menubar which runs the script and displays its output when clicked. 'Droplet' The application displays a droplet window for dropping files on for processing by the script. The default interface type is 'Text Window'. -i, --app-icon iconPath Specifies a file to use as the icon for the application bundle. The file must be an Apple .icns file. If not specified, the default Platypus app icon will be used. If specified, but left empty (''), no application icon will be set for the app. -Q, --document-icon iconPath Specifies a file to use as icon for the application's documents. Must be an Apple .icns file. -p, --interpreter interpreterPath Sets script interpreter (e.g. /usr/bin/python or /bin/sh). If the interpreter is not specified, the command line tool will try to guess the correct interpreter. If this fails, the default shell interpreter /bin/sh is used. -V, --app-version version Sets the application bundle's version. This is displayed in the Info.plist property list and About window. -u, --author authorName Sets the name of the application author (e.g. "Apple Computer" or "John Smith"). If not specified, this defaults to the current user's full user name. -f, --bundled-file filePath Specifies a file to be bundled with the application. The file will be copied over to the Resources folder of the application bundle, which is the same folder in which the script runs. Any number of files can be bundled in this way. -I, --bundle-identifier bundleIdentifier Sets the application's bundle identifier. An application identifier is a reverse DNS name (e.g. com.apple.iTunes) that uniquely identi- fies the application. If this option is left empty, it will default to an identifier of the format "org.username.appname" (e.g. org.sveinbjorn.Platypus). -A, --admin-privileges This flag makes the application request administrator privileges via Apple's Security Framework (i.e. prompt for a password) and then executes the script with those privileges. For details on the nature of these privileges, see the Apple documentation for the Authoriza- tionExecuteWithPrivileges() in Security.framework. This is not strictly equivalent to running as root. -D, --droppable Makes the application droppable, i.e. capable of receiving dragged and dropped files as arguments to the script. The application bun- dle's property list is modified so that it can receive dropped files in the Dock and Finder. These files are then passed on to the script as arguments. -F, --text-droppable Makes the application text droppable, i.e. makes it accept dragged text snippets, which are then passed to script via STDIN. -N, --service Makes the app register as a Dynamic Service accessible from the Ser- vices application submenu. -B, --background This option causes the application to run in the background so its icon will not appear in the Dock. This is done by registering the application with LaunchServices as a user interface element (LSUIElement). -R, --quit-after-execution This option makes the application quit once the script has been exe- cuted. -X, --suffixes suffixes Only relevant if the application accepts dropped files. This flag specifies the file suffixes (e.g. .txt, .wav) that the application can open. This should be a |-separated string (e.g. "txt|wav|jpg"). -T, --uniform-type-identifiers utis Only relevant if the application accepts dropped files. This flag specifies the Uniform Type Identifiers (UTIs) that the application can open. This should be a |-separated string (e.g. "pub- lic.item|public.folder"). Suffixes are ignored if this flag is used. -U, --uri-schemes schemes Set application as handler for URI schemes. These can be either standard URI schemes such as http or custom URI schemes of your choice. See documentation for details. Multiple items should be a |-separated string (e.g. "ftp|myscheme|someotherscheme"). -Z, --file-prompt Show an Open File dialog when the application launches. -G, --interpreter-args arguments Arguments for the script interpreter. These should be specified as a |-separated string (e.g. '-w|-s|-l'). -C, --script-args arguments Arguments for the script. These should be specified as a |-sepa- rated string (e.g. '-w|-s|-l'). -b, --text-background-color hexColor Set background color of text (e.g. #ffffff). -g, --text-foreground-color hexColor Set foreground color of text (e.g. #000000). -n, --text-font fontName Set font and font size for text view (e.g. 'Monaco 10'). -K, --status-item-kind kind For Status Menu interface type only. Set display kind for Status Menu interface type. This can be "Text" or "Icon". -Y, --status-item-title title For Status Menu interface type only. Set the display title for the status item in Status Menu interface type. -L, --status-item-icon imagePath For Status Menu interface type only. Set the icon image for the status item in Status Menu interface type. Must be an image file in one of the formats supported by the Cocoa APIs (e.g. PNG, JPEG, TIFF etc.) -c, --status-item-sysfont For Status Menu interface type only. Makes menu use system font instead of user-defined styling. -d, --symlink A symlink to the original script is created inside the application bundle instead of copying the script over. Symlinks are also created to any bundled files. -l, --optimize-nib Strip the bundled application nib file to reduce its size. Makes the nib uneditable. Only works if Apple's Xcode is installed. -y, --overwrite Overwrite any pre-existing files or folders in destination path. -v, --version Print the version of this program -h, --help Print help and usage string Exits 0 on success, and >0 if an error occurs. FILES /opt/local/bin/platypus program binary /opt/local/share/platypus/ScriptExec executable binary /opt/local/share/platypus/MainMenu.nib nib file for app /opt/local/share/platypus/PlatypusDefault.icns default icon EXAMPLES platypus -P myProfile.platypus ~/Desktop/MyApplication.app platypus -o 'Text Window' script.pl PerlScript.app platypus -a 'My App' -p /usr/bin/python myPythonScript.py platypus -D -a MyDroplet -o 'Droplet' ~/droplet.sh AUTHORS Sveinbjorn Thordarson <sveinbjorn@sveinbjorn.org> Darwin January 18, 2022 Darwin