#!/bin/sh -e # # 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) # 2020-2021 Dennis Camera (dennis.camera at ssrq-sds-fds.ch) # # 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 . # # All os variables are lower case # rc_getvar() { awk -F= -v varname="$2" ' function unquote(s) { if (s ~ /^".*"$/ || s ~ /^'\''.*'\''$/) return substr(s, 2, length(s) - 2) else return s } $1 == varname { print unquote(substr($0, index($0, "=") + 1)) }' "$1" } 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) devuan_version=$(cat /etc/devuan_version) case ${devuan_version} in (*/ceres) # ceres versions don't have a number, so we decode by codename: case ${devuan_version} in (chimaera/ceres) echo 3.99 ;; (beowulf/ceres) echo 2.99 ;; (ascii/ceres) echo 1.99 ;; (*) exit 1 esac ;; (*) echo "${devuan_version}" ;; esac ;; 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) if command -v lsb_release >/dev/null 2>&1 then lsb_release -sr elif test -r /usr/lib/os-release then # fallback to /usr/lib/os-release if lsb_release is not present (like # on minimized Ubuntu installations) rc_getvar /usr/lib/os-release VERSION_ID elif test -r /etc/lsb-release then # extract DISTRIB_RELEASE= variable from /etc/lsb-release on old # versions without /usr/lib/os-release. rc_getvar /etc/lsb-release DISTRIB_RELEASE fi ;; alpine) cat /etc/alpine-release ;; esac