Commit 695bd740 authored by Dylan Araps's avatar Dylan Araps

Merge pull request #217 from dylanaraps/distro_func

Moved getdistro to a seperate function take 2
parents a02f8577 71a94a55
...@@ -452,69 +452,77 @@ esac ...@@ -452,69 +452,77 @@ esac
# Distro {{{ # Distro {{{
case "$os" in getdistro () {
"Linux" ) [ ! -z "$distro" ] && return
if type -p lsb_release >/dev/null 2>&1; then
distro="$(lsb_release -d 2>/dev/null | awk -F ':' '/Description/ {printf $2}')"
distro=${distro/[[:space:]]}
elif type -p crux >/dev/null 2>&1; then case "$os" in
distro="$(crux)" "Linux" )
if type -p lsb_release >/dev/null 2>&1; then
distro="$(lsb_release -d 2>/dev/null | awk -F ':' '/Description/ {printf $2}')"
distro=${distro/[[:space:]]}
else elif type -p crux >/dev/null 2>&1; then
distro="$(awk -F 'NAME=' '/^NAME=/ {printf $2}' /etc/*ease)" distro="$(crux)"
distro=${distro//\"}
# Workaround for distros that store the value differently. else
[ -z "$distro" ] && distro="$(awk -F 'TAILS_PRODUCT_NAME="|"' '/^TAILS_PRODUCT_NAME=/ {printf $2}' /etc/*ease)" distro="$(awk -F 'NAME=' '/^NAME=/ {printf $2}' /etc/*ease)"
[ -z "$distro" ] && distro="$(awk '/BLAG/ {print $1; exit}' /etc/*ease)" distro=${distro//\"}
fi
;;
"Mac OS X") # Workaround for distros that store the value differently.
osx_version=$(sw_vers -productVersion) [ -z "$distro" ] && distro="$(awk -F 'TAILS_PRODUCT_NAME="|"' '/^TAILS_PRODUCT_NAME=/ {printf $2}' /etc/*ease)"
osx_build=$(sw_vers -buildVersion) [ -z "$distro" ] && distro="$(awk '/BLAG/ {print $1; exit}' /etc/*ease)"
fi
case "${osx_version%.*}" in ;;
"10.4") codename="Mac OS X Tiger" ;;
"10.5") codename="Mac OS X Leopard" ;;
"10.6") codename="Mac OS X Snow Leopard" ;;
"10.7") codename="Mac OS X Lion" ;;
"10.8") codename="OS X Mountain Lion" ;;
"10.9") codename="OS X Mavericks" ;;
"10.10") codename="OS X Yosemite" ;;
"10.11") codename="OS X El Capitan" ;;
*) codename="Mac OS X" ;;
esac
distro="$codename $osx_version $osx_build"
;;
"OpenBSD") "Mac OS X")
distro="OpenBSD" osx_version=$(sw_vers -productVersion)
;; osx_build=$(sw_vers -buildVersion)
case "${osx_version%.*}" in
"10.4") codename="Mac OS X Tiger" ;;
"10.5") codename="Mac OS X Leopard" ;;
"10.6") codename="Mac OS X Snow Leopard" ;;
"10.7") codename="Mac OS X Lion" ;;
"10.8") codename="OS X Mountain Lion" ;;
"10.9") codename="OS X Mavericks" ;;
"10.10") codename="OS X Yosemite" ;;
"10.11") codename="OS X El Capitan" ;;
*) codename="Mac OS X" ;;
esac
distro="$codename $osx_version $osx_build"
;;
"BSD") "OpenBSD")
distro="$(uname -v)" distro="OpenBSD"
distro=${distro%% *} ;;
;;
"BSD")
distro="$(uname -v)"
distro=${distro%% *}
;;
"Windows") "Windows")
distro="$(wmic os get Caption /value)" distro="$(wmic os get Caption /value)"
# Strip crap from the output of wmic # Strip crap from the output of wmic
distro=${distro/Caption'='} distro=${distro/Caption'='}
distro=${distro//[[:space:]]/ } distro=${distro//[[:space:]]/ }
distro=${distro// } distro=${distro// }
distro=${distro/Microsoft } distro=${distro/Microsoft }
;; ;;
esac esac
distro=${distro//+( )/ } distro=${distro//+( )/ }
ascii_distro="$distro" ascii_distro="$distro"
getdistro () {
# Get architecture # Get architecture
[ "$os_arch" == "on" ] && \ [ "$os_arch" == "on" ] && \
distro+=" $(uname -m)" distro+=" $(uname -m)"
[ "$osx_codename" == "off" ] && \
distro=${distro/${codename}/Mac OS X}
[ "$osx_buildversion" == "off" ] && \
distro=${distro/ ${osx_build}}
} }
...@@ -2886,27 +2894,13 @@ done ...@@ -2886,27 +2894,13 @@ done
# }}} # }}}
# OS overides {{{
# Overide OS X codename
case "$osx_codename" in
"off") distro=${distro/${codename}/Mac OS X} ;;
esac
case "$osx_buildversion" in
"off") distro=${distro/ ${osx_build}} ;;
esac
# }}}
# Call Functions and Finish Up {{{ # Call Functions and Finish Up {{{
# Restore cursor and clear screen on ctrl+c # Restore cursor and clear screen on ctrl+c
trap 'printf "\033[?25h"; clear; exit' 2 trap 'printf "\033[?25h"; clear; exit' 2
# Get colors / bold getdistro
colors colors
bold bold
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment