plugin/osx: shellcheck && shfmt
plugins/osx: dead code removal No need for gymnastics to determine if variable had been exported priort to modification. If it was, then it still is. See man bash(1).
This commit is contained in:
@@ -103,6 +103,7 @@ plugins/available/jump.plugin.bash
|
|||||||
plugins/available/less-pretty-cat.plugin.bash
|
plugins/available/less-pretty-cat.plugin.bash
|
||||||
plugins/available/node.plugin.bash
|
plugins/available/node.plugin.bash
|
||||||
plugins/available/nodenv.plugin.bash
|
plugins/available/nodenv.plugin.bash
|
||||||
|
plugins/available/osx.plugin.bash
|
||||||
plugins/available/percol.plugin.bash
|
plugins/available/percol.plugin.bash
|
||||||
plugins/available/plenv.plugin.bash
|
plugins/available/plenv.plugin.bash
|
||||||
plugins/available/pyenv.plugin.bash
|
plugins/available/pyenv.plugin.bash
|
||||||
|
|||||||
@@ -1,23 +1,16 @@
|
|||||||
cite about-plugin
|
# shellcheck shell=bash
|
||||||
about-plugin 'osx-specific functions'
|
about-plugin 'osx-specific functions'
|
||||||
|
|
||||||
# OS X: Open new tabs in same directory
|
# OS X: Open new tabs in same directory
|
||||||
if [[ $OSTYPE == 'darwin'* ]]; then
|
if _is_function update_terminal_cwd; then
|
||||||
if type update_terminal_cwd > /dev/null 2>&1 ; then
|
safe_append_prompt_command 'update_terminal_cwd'
|
||||||
if ! [[ $PROMPT_COMMAND =~ (^|;)update_terminal_cwd($|;) ]] ; then
|
|
||||||
PROMPT_COMMAND="${PROMPT_COMMAND%;};update_terminal_cwd"
|
|
||||||
declared="$(declare -p PROMPT_COMMAND)"
|
|
||||||
[[ "$declared" =~ \ -[aAilrtu]*x[aAilrtu]*\ ]] 2>/dev/null
|
|
||||||
[[ $? -eq 0 ]] && export PROMPT_COMMAND
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
function tab() {
|
function tab() {
|
||||||
about 'opens a new terminal tab'
|
about 'opens a new terminal tab'
|
||||||
group 'osx'
|
group 'osx'
|
||||||
|
|
||||||
osascript 2>/dev/null <<EOF
|
osascript 2> /dev/null << EOF
|
||||||
tell application "System Events"
|
tell application "System Events"
|
||||||
tell process "Terminal" to keystroke "t" using command down
|
tell process "Terminal" to keystroke "t" using command down
|
||||||
end
|
end
|
||||||
@@ -30,147 +23,145 @@ EOF
|
|||||||
|
|
||||||
# renames the current os x terminal tab title
|
# renames the current os x terminal tab title
|
||||||
function tabname {
|
function tabname {
|
||||||
printf "\e]1;$1\a"
|
printf '%b' "\e]1;$1\a"
|
||||||
}
|
}
|
||||||
|
|
||||||
# renames the current os x terminal window title
|
# renames the current os x terminal window title
|
||||||
function winname {
|
function winname {
|
||||||
printf "\e]2;$1\a"
|
printf '%b' "\e]2;$1\a"
|
||||||
}
|
}
|
||||||
|
|
||||||
# this one switches your os x dock between 2d and 3d
|
# this one switches your os x dock between 2d and 3d
|
||||||
# thanks to savier.zwetschge.org
|
# thanks to savier.zwetschge.org
|
||||||
function dock-switch() {
|
function dock-switch() {
|
||||||
about 'switch dock between 2d and 3d'
|
about 'switch dock between 2d and 3d'
|
||||||
param '1: "2d" or "3d"'
|
param '1: "2d" or "3d"'
|
||||||
example '$ dock-switch 2d'
|
example '$ dock-switch 2d'
|
||||||
group 'osx'
|
group 'osx'
|
||||||
|
|
||||||
if [[ "$OSTYPE" = 'darwin'* ]]; then
|
case $OSTYPE in
|
||||||
|
*'darwin'*)
|
||||||
if [[ $1 = 3d ]] ; then
|
case $1 in
|
||||||
defaults write com.apple.dock no-glass -boolean NO
|
3d)
|
||||||
killall Dock
|
defaults write com.apple.dock no-glass -boolean NO
|
||||||
|
killall Dock
|
||||||
elif [[ $1 = 2d ]] ; then
|
;;
|
||||||
defaults write com.apple.dock no-glass -boolean YES
|
2d)
|
||||||
killall Dock
|
defaults write com.apple.dock no-glass -boolean YES
|
||||||
|
killall Dock
|
||||||
else
|
;;
|
||||||
echo "usage:"
|
*)
|
||||||
echo "dock-switch 2d"
|
echo "usage:"
|
||||||
echo "dock-switch 3d."
|
echo "dock-switch 2d"
|
||||||
fi
|
echo "dock-switch 3d."
|
||||||
else
|
;;
|
||||||
echo "Sorry, this only works on Mac OS X"
|
esac
|
||||||
fi
|
;;
|
||||||
|
*)
|
||||||
|
echo "Sorry, this only works on Mac OS X"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
function pman ()
|
function pman() {
|
||||||
{
|
about 'view man documentation in Preview'
|
||||||
about 'view man documentation in Preview'
|
param '1: man page to view'
|
||||||
param '1: man page to view'
|
example '$ pman bash'
|
||||||
example '$ pman bash'
|
group 'osx'
|
||||||
group 'osx'
|
man -t "${1}" | open -fa 'Preview'
|
||||||
man -t "${1}" | open -fa $PREVIEW
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function pri ()
|
function pri() {
|
||||||
{
|
about 'display information about Ruby classes, modules, or methods, in Preview'
|
||||||
about 'display information about Ruby classes, modules, or methods, in Preview'
|
param '1: Ruby method, module, or class'
|
||||||
param '1: Ruby method, module, or class'
|
example '$ pri Array'
|
||||||
example '$ pri Array'
|
group 'osx'
|
||||||
group 'osx'
|
ri -T "${1}" | open -fa 'Preview'
|
||||||
ri -T "${1}" | open -fa $PREVIEW
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# Download a file and open it in Preview
|
# Download a file and open it in Preview
|
||||||
function prevcurl() {
|
function prevcurl() {
|
||||||
about 'download a file and open it in Preview'
|
about 'download a file and open it in Preview'
|
||||||
param '1: url'
|
param '1: url'
|
||||||
group 'osx'
|
group 'osx'
|
||||||
|
|
||||||
if [[ ! $OSTYPE = 'darwin'* ]]
|
if [[ ! $OSTYPE = 'darwin'* ]]; then
|
||||||
then
|
echo "This function only works with Mac OS X"
|
||||||
echo "This function only works with Mac OS X"
|
return 1
|
||||||
return 1
|
fi
|
||||||
fi
|
curl "$*" | open -fa 'Preview'
|
||||||
curl "$*" | open -fa $PREVIEW
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function refresh-launchpad() {
|
function refresh-launchpad() {
|
||||||
about 'Reset launchpad layout in macOS'
|
about 'Reset launchpad layout in macOS'
|
||||||
example '$ refresh-launchpad'
|
example '$ refresh-launchpad'
|
||||||
group 'osx'
|
group 'osx'
|
||||||
|
|
||||||
if [[ "$OSTYPE" = 'darwin'* ]];then
|
if [[ "$OSTYPE" = 'darwin'* ]]; then
|
||||||
defaults write com.apple.dock ResetLaunchPad -bool TRUE
|
defaults write com.apple.dock ResetLaunchPad -bool TRUE
|
||||||
killall Dock
|
killall Dock
|
||||||
else
|
else
|
||||||
echo "Sorry, this only works on Mac OS X"
|
echo "Sorry, this only works on Mac OS X"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function list-jvms(){
|
function list-jvms() {
|
||||||
about 'List java virtual machines and their states in macOS'
|
about 'List java virtual machines and their states in macOS'
|
||||||
example 'list-jvms'
|
example 'list-jvms'
|
||||||
group 'osx'
|
group 'osx'
|
||||||
|
|
||||||
JVMS_DIR="/Library/Java/JavaVirtualMachines"
|
local JVMS_DIR="/Library/Java/JavaVirtualMachines"
|
||||||
JVMS=( $(ls ${JVMS_DIR}) )
|
# The following variables are intended to impact the enclosing scope, not local.
|
||||||
JVMS_STATES=()
|
JVMS=("${JVMS_DIR}"/*)
|
||||||
|
JVMS_STATES=()
|
||||||
|
|
||||||
# Map state of JVM
|
# Map state of JVM
|
||||||
for (( i = 0; i < ${#JVMS[@]}; i++ )); do
|
for ((i = 0; i < ${#JVMS[@]}; i++)); do
|
||||||
if [[ -f "${JVMS_DIR}/${JVMS[$i]}/Contents/Info.plist" ]]; then
|
if [[ -f "${JVMS[i]}/Contents/Info.plist" ]]; then
|
||||||
JVMS_STATES[${i}]=enabled
|
JVMS_STATES[i]=enabled
|
||||||
else
|
else
|
||||||
JVMS_STATES[${i}]=disabled
|
JVMS_STATES[i]=disabled
|
||||||
fi
|
fi
|
||||||
echo "${i} ${JVMS[$i]} ${JVMS_STATES[$i]}"
|
printf '%s\t%s\t%s\n' "${i}" "${JVMS[i]##*/}" "${JVMS_STATES[i]}"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
function pick-default-jvm(){
|
function pick-default-jvm() {
|
||||||
about 'Pick the default Java Virtual Machines in system-wide scope in macOS'
|
about 'Pick the default Java Virtual Machines in system-wide scope in macOS'
|
||||||
example 'pick-default-jvm'
|
example 'pick-default-jvm'
|
||||||
|
|
||||||
# Call function for listing
|
# Declare variables
|
||||||
list-jvms
|
local JVMS JVMS_STATES
|
||||||
|
local DEFAULT_JVM_DIR DEFAULT_JVM OPTION
|
||||||
|
|
||||||
# Declare variables
|
# Call function for listing
|
||||||
local DEFAULT_JVM_DIR=""
|
list-jvms
|
||||||
local DEFAULT_JVM=""
|
|
||||||
local OPTION=""
|
|
||||||
|
|
||||||
# OPTION for default jdk and set variables
|
# OPTION for default jdk and set variables
|
||||||
while [[ ! "$OPTION" =~ ^[0-9]+$ || OPTION -ge "${#JVMS[@]}" ]]; do
|
while [[ ! "$OPTION" =~ ^[0-9]+$ || OPTION -ge "${#JVMS[@]}" ]]; do
|
||||||
read -p "Enter Default JVM: " OPTION
|
read -rp "Enter Default JVM: " OPTION
|
||||||
if [[ ! "$OPTION" =~ ^[0-9]+$ ]]; then
|
if [[ ! "$OPTION" =~ ^[0-9]+$ ]]; then
|
||||||
echo "Please enter a number"
|
echo "Please enter a number"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ OPTION -ge "${#JVMS[@]}" ]]; then
|
if [[ OPTION -ge "${#JVMS[@]}" ]]; then
|
||||||
echo "Please select one of the displayed JVMs"
|
echo "Please select one of the displayed JVMs"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
DEFAULT_JVM_DIR="${JVMS_DIR}/${JVMS[$OPTION]}"
|
DEFAULT_JVM_DIR="${JVMS[OPTION]}"
|
||||||
DEFAULT_JVM="${JVMS[$OPTION]}"
|
DEFAULT_JVM="${JVMS[OPTION]##*/}"
|
||||||
|
|
||||||
# Disable all jdk
|
# Disable all jdk
|
||||||
for (( i = 0; i < ${#JVMS[@]}; i++ )); do
|
for ((i = 0; i < ${#JVMS[@]}; i++)); do
|
||||||
if [[ -f "${JVMS_DIR}/${JVMS[$i]}/Contents/Info.plist" ]]; then
|
if [[ "${JVMS[i]}" != "${DEFAULT_JVM_DIR}" && -f "${JVMS[i]}/Contents/Info.plist" ]]; then
|
||||||
sudo mv "${JVMS_DIR}/${JVMS[$i]}/Contents/Info.plist" "${JVMS_DIR}/${JVMS[$i]}/Contents/Info.plist.disable"
|
sudo mv "${JVMS[i]}/Contents/Info.plist" "${JVMS[i]}/Contents/Info.plist.disable"
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
# Enable default jdk
|
# Enable default jdk
|
||||||
if [[ -f "${DEFAULT_JVM_DIR}/Contents/Info.plist.disable" ]]; then
|
if [[ -f "${DEFAULT_JVM_DIR}/Contents/Info.plist.disable" ]]; then
|
||||||
sudo mv "${DEFAULT_JVM_DIR}/Contents/Info.plist.disable" "${DEFAULT_JVM_DIR}/Contents/Info.plist"
|
sudo mv -vn "${DEFAULT_JVM_DIR}/Contents/Info.plist.disable" "${DEFAULT_JVM_DIR}/Contents/Info.plist" \
|
||||||
echo "Enabled ${DEFAULT_JVM} as default JVM"
|
&& echo "Enabled ${DEFAULT_JVM} as default JVM"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Make this backwards compatible
|
|
||||||
alias pcurl='prevcurl'
|
|
||||||
|
|||||||
Reference in New Issue
Block a user