#!/bin/sh -e
#
#    release: grab the os/distro release version
#
#    Copyright (C) 2008 Canonical Ltd.
#    Copyright (C) 2011-2023 Dustin Kirkland
#
#    Authors: Dustin Kirkland <kirkland@byobu.org>
#
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, version 3 of the License.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.

__release_detail() {
	lsb_release -a 2>/dev/null
}

__release() {
	local RELEASE="${RELEASE}"
	if [ -n "$RELEASE" ]; then
		# user defined
		true
	elif [ "$BYOBU_DISTRO" = "Wolfi" ]; then
		# Wolfi, and perhaps other distroless distros don't really have release versions
		RELEASE="Wolfi"
	elif [ -r "/etc/os-release" ]; then
		# lsb_release is *really* slow;  try to use /etc/os-release
		RELEASE=$(. /etc/os-release && echo "$VERSION_ID")
	elif [ -r "/etc/issue" ]; then
		# next try /etc/issue first
		local issue
		read issue < /etc/issue
		case "$issue" in
			Ubuntu*)
				set -- $issue;
				RELEASE="$2";
			;;
			Debian*)
				local ver
				read ver < /etc/debian_version
				RELEASE="$ver"
			;;
		esac
	elif eval $BYOBU_TEST sw_vers >/dev/null 2>&1; then
		RELEASE="$(sw_vers -productVersion)"
	fi
	if [ -z "$RELEASE" ] && eval $BYOBU_TEST lsb_release >/dev/null 2>&1; then
		# If lsb_release is available, use it
		RELEASE=$(lsb_release -s -r)
	fi
	if [ -n "$RELEASE_ABBREVIATED" ] && [ $RELEASE_ABBREVIATED -gt 0 ]; then
		color bold2; printf "%.${RELEASE_ABBREVIATED}s" "$RELEASE"; color --
	else
		color bold2; printf "%s" "$RELEASE"; color --
	fi
}

# vi: syntax=sh ts=4 noexpandtab
