feat(is_os): functions to test for major OS

All over oh-my-zsh I found plenty of functions and plugins
testing for the current OS or Platform.

For this PR I basically made simple is_[OS] functions that can be
used anywhere in plugins or oh-my-zsh code, instead of repeating these
over and over again.

I basically need such tests often, because my personal custom oh my zsh
additions run on macOS with Intel and M1 chips plus on different
linux's.

Functions:

- is_linux - the CPUTYPE env is linux*
- is_android - the CPUTYPE env is linux-android*
- is_netbsd the CPUTYPE env is netbsd*
- is_openbsd - the CPUTYPE env is openbsd*
- is_freebsd - the CPUTYPE env is freebsd*
- is_mac - the CPUTYPE env is darwin*
- is_mac_arm - it is darwin and has CPUTYPE arm64
- is_mac_intel - it is darwin and has CPUTYPE x86_64
- is_bsd - any BSD like OS - the CPUTYPE env is (darwin|freebsd|openbsd|netbsd)*
- is_solaris - the CPUTYPE env is solaris*
- is_cygwin - the CPUTYPE env is cygwin*
- is_msys - the CPUTYPE env is msys*
- is_windows - the CPUTYPE env is (cygwin|msys)*
This commit is contained in:
Kaspar Vollenweider 2022-10-16 16:19:47 +02:00
parent a7d910c3a6
commit 11cf52e701
No known key found for this signature in database
GPG key ID: 9039A456BC9C0F78

View file

@ -253,3 +253,30 @@ function omz_urldecode {
echo -E "$decoded" echo -E "$decoded"
} }
# The OS is linux
function is_linux { [[ "$OSTYPE" == linux* ]]; }
# The OS is Android
function is_android { [[ "$OSTYPE" == linux-android* ]]; }
# The OS is NetBSD
function is_netbsd() { [[ "$OSTYPE" == netbsd* ]]; }
# The OS is OpenBSD
function is_openbsd() { [[ "$OSTYPE" == openbsd* ]]; }
# The OS is FreeBSD
function is_freebsd() { [[ "$OSTYPE" == freebsd* ]]; }
# The OS is macOS (darwin)
function is_mac() { [[ "$OSTYPE" == darwin* ]]; }
# The OS is macOS (darwin) running on series of ARM-based systems-on-a-chip designed by Apple Inc
function is_mac_arm() { is_mac && [[ "$CPUTYPE" == arm64 ]]; }
# The OS is macOS (darwin) running on series of Intel (amd64 / x86_64) CPU
function is_mac_intel() { is_mac && [[ "$CPUTYPE" == x86_64 ]]; }
# The OS is a BSD derivate
function is_bsd() { [[ "$OSTYPE" == (darwin|freebsd|openbsd|netbsd|dragonfly)* ]]; }
# The OS is Solaris
function is_solaris { [[ "$OSTYPE" == solaris* ]]; }
# The Platform is Cygwin (Windows)
function is_cygwin { [[ "$OSTYPE" == cygwin* ]]; }
# The platform is MinGW (Windows)
function is_msys { [[ "$OSTYPE" == msys* ]]; }
# The OS is Windows
function is_windows { [[ "$OSTYPE" == (cygwin|msys)* ]]; }