2015-12-03 18:21:31 -05:00
< img src = "https://cdn.rawgit.com/herrbischoff/awesome-osx-command-line/master/assets/logo.svg" width = "600" >
# Functions
> An assorted collection of useful OS X specific Bash-style functions. Part of [Awesome OS X Command Line](https://github.com/herrbischoff/awesome-osx-command-line).
## Table of Contents
2015-12-03 19:08:07 -05:00
- [Developer ](#developer )
- [App Icons ](#app-icons )
2016-11-10 17:18:42 -05:00
- [Create App Icon ](#create-app-icon )
2016-11-10 11:04:31 -05:00
- [Helper Functions ](#helper-functions )
2016-11-10 17:18:42 -05:00
- [Ask User for Password ](#ask-user-for-password )
2016-11-10 11:04:31 -05:00
2015-12-03 18:21:31 -05:00
- [Finder ](#finder )
2015-12-03 19:36:04 -05:00
- [Get Path of Frontmost Finder Window ](#get-path-of-frontmost-finder-window )
2016-02-29 11:35:23 -05:00
- [Print Files Selected in Finder ](#print-files-selected-in-finder )
2015-12-03 19:36:04 -05:00
- [Set Current Directory's Finder View to Column View ](#set-current-directorys-finder-view-to-column-view )
- [Set Current Directory's Finder View to Icon View ](#set-current-directorys-finder-view-to-icon-view )
- [Set Current Directory's Finder View to List View ](#set-current-directorys-finder-view-to-list-view )
2015-12-03 18:21:31 -05:00
2015-12-03 19:08:07 -05:00
## Developer
### App Icons
#### Create App Icon
2016-05-06 13:37:23 -04:00
2015-12-03 19:08:07 -05:00
Function to quickly create an application icon from 1024px master file.
2016-05-06 13:37:23 -04:00
2015-12-03 19:08:07 -05:00
```bash
function mkicns() {
if [[ -z "$@" ]]; then
echo "Input file missing"
else
filename=${1%.*}
mkdir $filename.iconset
sips -z 16 16 $1 --out $filename.iconset/icon_16x16.png
sips -z 32 32 $1 --out $filename.iconset/icon_16x16@2x.png
sips -z 32 32 $1 --out $filename.iconset/icon_32x32.png
sips -z 64 64 $1 --out $filename.iconset/icon_32x32@2x.png
sips -z 128 128 $1 --out $filename.iconset/icon_128x128.png
sips -z 256 256 $1 --out $filename.iconset/icon_128x128@2x.png
sips -z 256 256 $1 --out $filename.iconset/icon_256x256.png
sips -z 512 512 $1 --out $filename.iconset/icon_256x256@2x.png
sips -z 512 512 $1 --out $filename.iconset/icon_512x512.png
cp $1 $filename.iconset/icon_512x512@2x.png
iconutil -c icns $filename.iconset
rm -r $filename.iconset
fi
}
```
2016-11-10 11:02:18 -05:00
### Helper Functions
2016-05-06 13:37:23 -04:00
2016-11-10 11:02:18 -05:00
#### Ask User for Password
2016-05-06 13:37:23 -04:00
This function will use AppleScript to present a password entry dialog to make
your scripts a little more user friendly.
```bash
function gui_password {
2016-11-10 11:02:18 -05:00
if [[ -z $1 ]]; then
gui_prompt="Password:"
else
gui_prompt="$1"
fi
PW=$(osascript < < EOF
tell application "System Events"
activate
text returned of (display dialog "${gui_prompt}" default answer "" with hidden answer)
end tell
2016-05-06 13:37:23 -04:00
EOF
2016-11-10 11:30:16 -05:00
)
2016-05-06 13:37:23 -04:00
2016-11-10 11:02:18 -05:00
echo -n "${PW}"
2016-05-06 13:37:23 -04:00
}
```
2015-12-03 18:21:31 -05:00
## Finder
2015-12-03 19:36:04 -05:00
### Get Path of Frontmost Finder Window
2015-12-03 18:21:31 -05:00
2015-12-03 19:36:04 -05:00
```bash
function finder_path {
osascript -e 'tell application "Finder"'\
-e "if (${1-1} < = (count Finder windows)) then"\
-e "get POSIX path of (target of window ${1-1} as alias)"\
-e 'else' \
-e 'get POSIX path of (desktop as alias)'\
-e 'end if' \
-e 'end tell';
}
```
2016-02-29 11:35:23 -05:00
### Print Files Selected in Finder
```bash
selected() {
osascript < < EOT
tell application "Finder"
set theFiles to selection
set theList to ""
repeat with aFile in theFiles
set theList to theList & POSIX path of (aFile as alias) & "\n"
end repeat
theList
end tell
EOT
}
```
2015-12-03 19:36:04 -05:00
### Set Current Directory's Finder View to Column View
```bash
function column_view {
osascript -e 'set cwd to do shell script "pwd"'\
-e 'tell application "Finder"'\
-e "if (${1-1} < = (count Finder windows)) then"\
-e "set the target of window ${1-1} to (POSIX file cwd) as string"\
-e "set the current view of the front Finder window to column view"\
-e 'else' -e "open (POSIX file cwd) as string"\
-e "set the current view of the front Finder window to column view"\
-e 'end if' -e 'end tell';
}
```
### Set Current Directory's Finder View to Icon View
```bash
function icon_view {
osascript -e 'set cwd to do shell script "pwd"'\
-e 'tell application "Finder"'\
-e "if (${1-1} < = (count Finder windows)) then"\
-e "set the target of window ${1-1} to (POSIX file cwd) as string"\
-e "set the current view of the front Finder window to icon view"\
-e 'else' -e "open (POSIX file cwd) as string"\
-e "set the current view of the front Finder window to icon view"\
-e 'end if' -e 'end tell';
};
```
### Set Current Directory's Finder View to List View
```bash
function list_view {
osascript -e 'set cwd to do shell script "pwd"'\
-e 'tell application "Finder"'\
-e "if (${1-1} < = (count Finder windows)) then"\
-e "set the target of window ${1-1} to (POSIX file cwd) as string"\
-e "set the current view of the front Finder window to list view"\
-e 'else' -e "open (POSIX file cwd) as string"\
-e "set the current view of the front Finder window to list view"\
-e 'end if' -e 'end tell';\
}
```
2015-12-03 18:21:31 -05:00
## License
< a rel = "license" href = "http://creativecommons.org/licenses/by-sa/4.0/" > < img alt = "Creative Commons License" style = "border-width:0" src = "https://i.creativecommons.org/l/by-sa/4.0/88x31.png" / > < / a > < br / > This work is licensed under a < a rel = "license" href = "http://creativecommons.org/licenses/by-sa/4.0/" > Creative Commons Attribution-ShareAlike 4.0 International License< / a > .