35 lines
798 B
Plaintext
35 lines
798 B
Plaintext
|
function _cache {
|
||
|
(( $+commands[$1] )) || return 1
|
||
|
local cache_dir="$XDG_CACHE_HOME/${SHELL##*/}"
|
||
|
local cache="$cache_dir/$1"
|
||
|
if [[ ! -f $cache || ! -s $cache ]]; then
|
||
|
echo "Caching $1"
|
||
|
mkdir -p $cache_dir
|
||
|
"$@" >$cache
|
||
|
chmod 600 $cache
|
||
|
fi
|
||
|
if [[ -o interactive ]]; then
|
||
|
source $cache || rm -f $cache
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
function _source {
|
||
|
for file in "$@"; do
|
||
|
[ -r $file ] && source $file
|
||
|
done
|
||
|
}
|
||
|
|
||
|
# Be more restrictive with permissions; no one has any business reading things
|
||
|
# that don't belong to them.
|
||
|
if (( EUID != 0 )); then
|
||
|
umask 027
|
||
|
else
|
||
|
# Be even less permissive if root.
|
||
|
umask 077
|
||
|
fi
|
||
|
|
||
|
# Auto-generated by my nix config
|
||
|
_source ${0:a:h}/extra.zshenv
|
||
|
# If you have host-local configuration, this is where you'd put it
|
||
|
_source $ZDOTDIR/local.zshenv
|