2016-12-16 15:33:59 -08:00
|
|
|
DOTFILES="$HOME/.dotfiles"
|
|
|
|
CACHE_DIR="$HOME/.cache/${ZSH_NAME:-sh}"
|
|
|
|
ENABLED_DIR="$DOTFILES/.enabled.d"
|
2016-10-19 07:56:37 -07:00
|
|
|
|
|
|
|
is-callable() { command -v "$1" >/dev/null; }
|
|
|
|
is-interactive() { [[ $- == *i* ]]; }
|
|
|
|
is-root() { [[ "$UID" -eq 0 ]]; }
|
2016-11-10 09:35:33 -08:00
|
|
|
is-ssh() { [[ $SSH_CONNECTION ]]; }
|
2016-10-19 07:56:37 -07:00
|
|
|
|
|
|
|
info() { printf "\r[ \033[00;34m..\033[0m ] $1\n"; }
|
|
|
|
success() { printf "\r\033[2K[ \033[00;32mOK\033[0m ] $1\n"; }
|
|
|
|
fail() { printf "\r\033[2K[\033[0;31mFAIL\033[0m] $1\n"; echo; exit; }
|
|
|
|
|
2016-11-16 06:06:41 -08:00
|
|
|
load () { source "$DOTFILES/$1"; }
|
2016-10-19 07:56:37 -07:00
|
|
|
|
|
|
|
loadall () {
|
2016-12-16 15:33:18 -08:00
|
|
|
local files=( "$ENABLED_DIR"/*/"${1:-*.*sh}" )
|
|
|
|
for file in "${files[@]}"; do
|
|
|
|
[[ -e "$file" ]] && source "$file"
|
2016-10-19 07:56:37 -07:00
|
|
|
done
|
|
|
|
}
|
|
|
|
|
|
|
|
cache() {
|
2016-11-10 09:35:33 -08:00
|
|
|
[[ -z "$CACHE_DIR" ]] && error "Cache not set!"
|
|
|
|
[[ -d "$CACHE_DIR" ]] || mkdir -p "$CACHE_DIR"
|
2016-10-19 07:56:37 -07:00
|
|
|
|
|
|
|
is-callable "$1" || return 1
|
2016-12-16 15:33:59 -08:00
|
|
|
local cache="${CACHE_DIR}/$1-${SHELL##*/}"
|
|
|
|
if [[ ! -f "$cache" || ! -s "$cache" ]]; then
|
2016-10-19 07:56:37 -07:00
|
|
|
echo "Caching $1"
|
|
|
|
$@ > "$cache" 2> /dev/null
|
|
|
|
fi
|
|
|
|
source $cache
|
|
|
|
}
|
|
|
|
|
|
|
|
cache-clear() {
|
2016-11-10 09:35:33 -08:00
|
|
|
[[ -d $CACHE_DIR ]] && rm -f "$CACHE_DIR/*"
|
2016-10-19 07:56:37 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
repo() {
|
2016-11-10 09:35:33 -08:00
|
|
|
[[ -d $2 ]] || git clone --recursive "https://github.com/$1" "$2"
|
2016-10-19 07:56:37 -07:00
|
|
|
}
|
2016-11-10 09:35:33 -08:00
|
|
|
|
|
|
|
#
|
2016-11-16 06:06:41 -08:00
|
|
|
load shell/env.sh
|