1
0
mirror of https://github.com/dcarrillo/prezto.git synced 2024-12-22 23:08:00 +00:00
prezto/modules/helper/init.zsh
Kaspar Vollenweider f4ca9ebfc9 feat(helper): add os-type helper functions
Add the following functions:

- is-darwin
- is-linux
- is-bsd
- is-cygwin

And apply them everywhere I found code doing that what these functions do.
2020-03-19 11:49:11 -07:00

52 lines
1.0 KiB
Bash

#
# Defines helper functions.
#
# Authors:
# Sorin Ionescu <sorin.ionescu@gmail.com>
#
# Checks if a file can be autoloaded by trying to load it in a subshell.
function is-autoloadable {
( unfunction $1 ; autoload -U +X $1 ) &> /dev/null
}
# Checks if a name is a command, function, or alias.
function is-callable {
(( $+commands[$1] || $+functions[$1] || $+aliases[$1] || $+builtins[$1] ))
}
# Checks a boolean variable for "true".
# Case insensitive: "1", "y", "yes", "t", "true", "o", and "on".
function is-true {
[[ -n "$1" && "$1" == (1|[Yy]([Ee][Ss]|)|[Tt]([Rr][Uu][Ee]|)|[Oo]([Nn]|)) ]]
}
# Prints the first non-empty string in the arguments array.
function coalesce {
for arg in $argv; do
print "$arg"
return 0
done
return 1
}
# is true on MacOS Darwin
function is-darwin {
[[ "$OSTYPE" == darwin* ]]
}
# is true on Linux's
function is-linux {
[[ "$OSTYPE" == linux* ]]
}
# is true on BSD's
function is-bsd {
[[ "$OSTYPE" == *bsd* ]]
}
# is true on Cygwin (Windows)
function is-cygwin {
[[ "$OSTYPE" == cygwin* ]]
}