#!/bin/sh # Print a description of the build environment. This is here mainly # for the use of the buildbot cluster, allowing developers to see the # build environment on machines they can't login on. It also provides # a history in the build logs that might be useful in catching # regressions. # # This script should *only* report basic information about the build # environment, and only that necessary to reproduce the build # environment. # # FIXME: Document meaning of script's exit status, if any. # It jumps through hoops with `|| true' despite not using `set -e'. offset () { sed -e '/./s/^/ /' "$@" } header () { echo echo "$@" echo } # os-release is the new s*stemd standard. Then it's the more unique # ones with redhat-release bringing up the rear because other platforms # also use that to placate broken logic that use its prescence as a # use-RPM test. for f in \ /etc/os-release /etc/arch-release /etc/debian_version \ /etc/fedora-release /etc/gentoo-release /etc/redhat-release \ /etc/lsb-release \ ; do test -f $f || continue header $f offset $f break done os=`uname` for i in a m p r s v; do eval uname_${i}=\'$(uname -${i} 2>/dev/null)\' done header Shell Variables: set | sort -d -t= | offset case ${os} in Darwin) header Compilers: cc -v 2>&1 | offset echo lex --version | offset echo yacc --version | offset ;; FreeBSD) header Compilers: cc -v 2>&1 | offset header Installed packages: (pkg info 2>/dev/null | offset) || true (pkg_info 2>/dev/null | offset) || true ;; esac