#!/bin/bash
#
# --- ROCK-COPYRIGHT-NOTE-BEGIN ---
# 
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
# Please add additional copyright information _after_ the line containing
# the ROCK-COPYRIGHT-NOTE-END tag. Otherwise it might get removed by
# the ./scripts/Create-CopyPatch script. Do not edit this copyright text!
# 
# ROCK Linux: rock-src/scripts/Check-System
# ROCK Linux is Copyright (C) 1998 - 2004 Clifford Wolf
# 
# 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; either version 2 of the License, or
# (at your option) any later version. A copy of the GNU General Public
# License can be found at Documentation/COPYING.
# 
# Many people helped and are helping developing ROCK Linux. Please
# have a look at http://www.rocklinux.org/ and the Documentation/TEAM
# file for details.
# 
# --- ROCK-COPYRIGHT-NOTE-END ---

if [ -n "$1" -a "$1" != "-paranoia" ] ; then
	echo "Usage: $0 [ -paranoia ]"
	echo
	echo " Check the build system for and warn about various conditions that will likely"
	echo " cause ROCK to not work properly."
	echo
	exit 1
fi

found_error=0
paranoia=""

if [ "$1" = "-paranoia" ]; then
	paranoia=1
fi

if [ -n "$paranoia" ] && \
   [ ! -w / -o "$(id -u)" != 0 -a "$(id -g)" != 0 ] ; then
	echo
	echo "Paranoia Check: You are trying to build as non-root!"
	echo "Building ROCK Linux requires root privileges."
	echo
	echo "You can disable the Paranoia Checks in the Config tool"
	echo "on your own risk!"
	found_error=1
fi

if [ -n "$paranoia" -a "`date '+%Y'`" -lt 1990 ] ; then
	echo
	echo "Paranoia Check: Your clock is not set!"
	echo "Set you clock using the command:  date MMDDhhmm[[CC]YY][.ss]"
	echo
	echo "You can disable the Paranoia Checks in the Config tool"
	echo "on your own risk!"
	found_error=1
fi

if [ -n "$paranoia" -a -z "`grep '^/' < /proc/swaps`" ] ; then
	echo
	echo "Paranoia Check: No active swap partition found!"
	echo "That can cause the build scripts to hang your system!. Activate"
	echo "a swap partition using the 'swapon' command and try again."
	echo
	echo "You can disable the Paranoia Checks in the Config tool"
	echo "on your own risk!"
	found_error=1
fi

if [ ! -L /dev/fd/0 ] ; then
	echo
	echo "System Check: It seams like you don't have a functional"
	echo "/dev/fd symlink! A symlink from /dev/fd to /proc/self/fd"
	echo "and a mounted /proc is needed."
	found_error=1
fi

if [ -z "`type -p curl`" ] ; then
	echo
	echo "System Check: Program 'curl' not found!"
	echo "The curl utility is needed for Downloading the package"
	echo "source tars. Install the latest curl version."
	found_error=1
fi

if [ -z "`type -p bzip2`" ] ; then
	echo
	echo "System Check: Program 'bzip2' not found!"
	echo "The bzip2 utility is needed for extracting the package"
	echo "source tars. Install the latest bzip2 version."
	found_error=1
fi

if [ -z "`type -p gawk`" ] ; then
	echo
	echo "System Check: Program 'gawk' not found!"
	echo "The gawk utility is needed for extracting the package"
	echo "source tars. Install the latest gawk version."
	found_error=1
fi

if [ -n "$paranoia" -a -z "`type -p makeinfo`" ] ; then
	echo
	echo "Paranoia Check: Program 'makeinfo' not found!"
	echo "The makeinfo program is needed for translating Texinfo"
	echo "documents. Please make sure that a current version of the"
	echo "texinfo package (including makeinfo) is installed on your system."
	echo
	echo "You can disable the Paranoia Checks in the Config tool"
	echo "on your own risk!"
	found_error=1
fi

case $BASH_VERSION in
  2.05b*|3.*) ;;
  *)	echo "The running bash version is not listed as supported version"
	echo "You need to update 'bash' to at least version 2.05b."
	found_error=1
esac


x="`mktemp -p /tmp 2> /dev/null`"
if [ -z "$x" -o ! -f "$x" ] ; then
	echo
	echo "System Check: Program 'mktemp' not found or too old!"
	echo "You need an 'mktemp' installed which does know about the -p"
	echo "option. Install the latest mktemp version."
	found_error=1
else
	rm -f "$x"
fi

tmpfile=`mktemp`
if [ -z "`type -p sed`" ] || ! sed -i s/a/b/ $tmpfile 2> /dev/null
then
	echo
	echo "System Check: Program 'sed' not found or too old!"
	echo "You need a 'sed' installed which does know about the -i option"
	echo "(GNU/sed since 2001-09-25). Install the latest sed version."
	found_error=1
fi
rm -f $tmpfile

if [ $found_error -ne 0 ] ; then
	echo
	echo "System Check found errors -> not doing anything."
	echo
fi

exit $found_error