101 lines
2.3 KiB
Bash
101 lines
2.3 KiB
Bash
|
|
# Check to see if a command exists
|
|
function command_exists {
|
|
command -v "$1" &> /dev/null
|
|
}
|
|
|
|
# OS detection
|
|
function is_deb {
|
|
command_exists apt-get
|
|
}
|
|
|
|
function is_mac {
|
|
[[ $(uname) == 'Darwin' ]]
|
|
}
|
|
|
|
function is_linux {
|
|
[[ $(uname) == 'Linux' ]]
|
|
}
|
|
|
|
# Package management aliases
|
|
function pkg_install() {
|
|
if is_mac; then
|
|
brew install $1
|
|
elif is_deb; then
|
|
sudo apt-get -y install $1
|
|
fi
|
|
}
|
|
|
|
function pkg_remove() {
|
|
if is_mac; then
|
|
brew remove $1
|
|
elif is_deb; then
|
|
sudo apt-get -y remove $1
|
|
fi
|
|
}
|
|
|
|
function pkg_update() {
|
|
if is_mac; then
|
|
brew update && brew upgrade
|
|
elif is_deb; then
|
|
sudo apt-get update && sudo apt-get upgrade
|
|
fi
|
|
}
|
|
|
|
# Ask for admin password up front and keep sudo alive until the end of the script
|
|
function keep_alive {
|
|
sudo -v
|
|
while true; do sudo -n true; sleep 60; kill -0 "$$" || exit; done 2>/dev/null &
|
|
}
|
|
|
|
# Extract a compressed file with the appropriate command
|
|
function unpack {
|
|
if [ -f "$1" ]; then
|
|
case $1 in
|
|
*.tar.bz2) tar xjf $1 ;;
|
|
*.tar.gz) tar xzf $1 ;;
|
|
*.bz2) bunzip2 $1 ;;
|
|
*.rar) unrar x $1 ;;
|
|
*.gz) gunzip $1 ;;
|
|
*.tar) tar xf $1 ;;
|
|
*.tbz2) tar xjf $1 ;;
|
|
*.tgz) tar xzf $1 ;;
|
|
*.zip) unzip $1 ;;
|
|
*.Z) uncompress $1 ;;
|
|
*) echo "'$1' cannot be extracted via extract()" ;;
|
|
esac
|
|
else
|
|
echo "'$1' is not a valid file"
|
|
fi
|
|
}
|
|
|
|
if is_mac; then
|
|
|
|
# Change working directory to the top-most Finder window location
|
|
function cdf() { # short for `cdfinder`
|
|
cd "$(osascript -e 'tell app "Finder" to POSIX path of (insertion location as alias)')"
|
|
}
|
|
|
|
# Open a file in Mac OS's quick-look
|
|
function quicklook {
|
|
(( $# > 0 )) && qlmanage -p $* &>/dev/null &
|
|
}
|
|
|
|
# Check to see if the (mac) app exists
|
|
function app_exists {
|
|
[ -d /Applications/"$1" ] || [ -e /Applications/"$1".app ] || [ -e ~/Applications/"$1".app ]
|
|
}
|
|
|
|
fi
|
|
|
|
# Output functions
|
|
function echo_g {
|
|
echo -e "\e[0;32m$1\e[m"
|
|
}
|
|
|
|
function echo_r {
|
|
echo -e "\e[0;31m$1\e[m"
|
|
}
|
|
|
|
# vim:set ft=zsh:
|