#!/bin/sh
#
# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org)
#
# This file is part of cdist.
#
# cdist 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, either version 3 of the License, or
# (at your option) any later version.
#
# cdist 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 cdist. If not, see <http://www.gnu.org/licenses/>.
#
#
# All os variables are lower case
#
#

case "$("$__explorer/os")" in
   amazon)
      cat /etc/system-release
   ;;
   archlinux)
      # empty, but well...
      cat /etc/arch-release
   ;;
   debian)
      debian_version=$(cat /etc/debian_version)
      case $debian_version
      in
          testing/unstable)
              # previous to Debian 4.0 testing/unstable was used
              # cf. https://metadata.ftp-master.debian.org/changelogs/main/b/base-files/base-files_11_changelog
              echo 3.99
              ;;
          */sid)
              # sid versions don't have a number, so we decode by codename:
              case $(expr "$debian_version" : '\([a-z]\{1,\}\)/')
              in
                  bullseye) echo 10.99 ;;
                  buster) echo 9.99 ;;
                  stretch) echo 8.99 ;;
                  jessie) echo 7.99 ;;
                  wheezy) echo 6.99 ;;
                  squeeze) echo 5.99 ;;
                  lenny) echo 4.99 ;;
                  *) exit 1
              esac
              ;;
          *)
              echo "$debian_version"
              ;;
      esac
   ;;
   devuan)
      cat /etc/devuan_version
   ;;
   fedora)
      cat /etc/fedora-release
   ;;
   gentoo)
      cat /etc/gentoo-release
   ;;
   macosx)
      sw_vers -productVersion
   ;;
   freebsd)
      # Apparently uname -r is not a reliable way to get the patch level.
      # See: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=251743
      freebsd-version
   ;;
   *bsd|solaris)
      uname -r
   ;;
   openwrt)
      cat /etc/openwrt_version
   ;;
   owl)
      cat /etc/owl-release
   ;;
   redhat|centos|mitel|scientific)
      cat /etc/redhat-release
   ;;
   slackware)
      cat /etc/slackware-version
   ;;
   suse)
      if [ -f /etc/os-release ]; then
        cat /etc/os-release
      else
        cat /etc/SuSE-release
      fi
   ;;
   ubuntu)
      lsb_release -sr
   ;;
   alpine)
       cat /etc/alpine-release
   ;;
esac
