ohmyzsh/lib/functions.zsh
Jack Thorne 086e78b68b This adds two functions to modify your PATH.
Both functions check to see if the directories that will be inserted
into your PATH are currently on the system.  This is good for having
one zshrc file and deploying it to myltiple enviroments.
2014-11-05 16:15:03 -08:00

99 lines
2.1 KiB
Bash

function zsh_stats() {
fc -l 1 | awk '{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n20
}
function uninstall_oh_my_zsh() {
env ZSH=$ZSH /bin/sh $ZSH/tools/uninstall.sh
}
function upgrade_oh_my_zsh() {
env ZSH=$ZSH /bin/sh $ZSH/tools/upgrade.sh
}
function take() {
mkdir -p $1
cd $1
}
#
# Get the value of an alias.
#
# Arguments:
# 1. alias - The alias to get its value from
# STDOUT:
# The value of alias $1 (if it has one).
# Return value:
# 0 if the alias was found,
# 1 if it does not exist
#
function alias_value() {
alias "$1" | sed "s/^$1='\(.*\)'$/\1/"
test $(alias "$1")
}
#
# Try to get the value of an alias,
# otherwise return the input.
#
# Arguments:
# 1. alias - The alias to get its value from
# STDOUT:
# The value of alias $1, or $1 if there is no alias $1.
# Return value:
# Always 0
#
function try_alias_value() {
alias_value "$1" || echo "$1"
}
#
# Set variable "$1" to default value "$2" if "$1" is not yet defined.
#
# Arguments:
# 1. name - The variable to set
# 2. val - The default value
# Return value:
# 0 if the variable exists, 3 if it was set
#
function default() {
test `typeset +m "$1"` && return 0
typeset -g "$1"="$2" && return 3
}
#
# Set enviroment variable "$1" to default value "$2" if "$1" is not yet defined.
#
# Arguments:
# 1. name - The env variable to set
# 2. val - The default value
# Return value:
# 0 if the env variable exists, 3 if it was set
#
function env_default() {
env | grep -q "^$1=" && return 0
export "$1=$2" && return 3
}
#
# Prepends the PATH varible with the input path
#
# Arguments:
# 1. path - The path that will be prepened
# Return value:
# 0 if PATH is exported to ENV
#
function prepend_path() {
[[ -d "$1" ]] && export PATH="$1":$PATH && return 0
}
#
# Prepends the PATH varible with the input path
#
# Arguments:
# 1. path - The path that will be prepened
# Return value:
# 0 if PATH is exported to ENV
#
function postpend_path() {
[[ -d "$1" ]] && export PATH=$PATH:"$1" && return 0
}