Home | History | Annotate | Line # | Download | only in scripts
      1  1.1  christos #! /bin/sh
      2  1.1  christos 
      3  1.1  christos args=`getopt d:f:v $*`
      4  1.1  christos set -- $args
      5  1.1  christos 
      6  1.1  christos HF=
      7  1.1  christos V=": "
      8  1.1  christos 
      9  1.1  christos for i
     10  1.1  christos do
     11  1.1  christos     case "$i" in
     12  1.1  christos      -d) sdir="$2" ; shift 2 ;;
     13  1.1  christos      -f) hardenfile="$2" ; shift 2 ;;
     14  1.1  christos      -v) V= ; shift ;;
     15  1.1  christos      --) shift ; break ;;
     16  1.1  christos     esac
     17  1.1  christos done
     18  1.1  christos 
     19  1.1  christos case "$sdir" in
     20  1.1  christos  '')
     21  1.1  christos     sdir=.
     22  1.1  christos esac
     23  1.1  christos 
     24  1.1  christos case "$hardenfile" in
     25  1.1  christos  */*)
     26  1.1  christos     HF=$hardenfile
     27  1.1  christos     ;;
     28  1.1  christos  '')
     29  1.1  christos     ;;
     30  1.1  christos  *)
     31  1.1  christos     hf=harden/$hardenfile
     32  1.1  christos     if test -f $hf
     33  1.1  christos     then
     34  1.1  christos 	HF=$hf
     35  1.1  christos     fi
     36  1.1  christos     ;;
     37  1.1  christos esac
     38  1.1  christos 
     39  1.1  christos # If we have a file to use (ie, HF is not empty) then look for one.
     40  1.1  christos case "$HF" in
     41  1.1  christos  '')
     42  1.1  christos     PATH=$PATH:libevent/build-aux
     43  1.1  christos     export PATH
     44  1.1  christos     set `scripts/cvo.sh @osname@ @osver@` || exit 1
     45  1.1  christos 
     46  1.1  christos     CVO_OSNAME=$1
     47  1.1  christos     CVO_OSVER=$2
     48  1.1  christos 
     49  1.1  christos     x=$CVO_OSVER
     50  1.1  christos 
     51  1.1  christos     while true
     52  1.1  christos     do
     53  1.1  christos 	case "$x" in
     54  1.1  christos 	 '') break ;;
     55  1.1  christos 	esac
     56  1.1  christos hf=harden/$CVO_OSNAME$x
     57  1.1  christos ${V}echo "Looking for <$hf>" >&2
     58  1.1  christos 	if test -f $hf
     59  1.1  christos 	then
     60  1.1  christos 	    HF=$hf
     61  1.1  christos 	    break
     62  1.1  christos 	fi
     63  1.1  christos 	case "$x" in
     64  1.1  christos 	 *.*) x=`echo $x | sed -e 's/\.[^.]*$//'` ;;
     65  1.1  christos 	 *) x= ;;
     66  1.1  christos 	esac
     67  1.1  christos     done
     68  1.1  christos     case "$HF" in
     69  1.1  christos      '')
     70  1.1  christos 	hf=harden/$CVO_OSNAME
     71  1.1  christos ${V}echo "Looking for <$hf>" >&2
     72  1.1  christos 	if test -f $hf
     73  1.1  christos 	then
     74  1.1  christos 	    HF=$hf
     75  1.1  christos 	fi
     76  1.1  christos 	;;
     77  1.1  christos     esac
     78  1.1  christos     # Handle some "aliases"
     79  1.1  christos     case "$HF" in
     80  1.1  christos      '')
     81  1.1  christos 	case "$CVO_OSNAME" in
     82  1.1  christos 	 raspbian*)
     83  1.1  christos 	    hf=harden/debian
     84  1.1  christos ${V}echo "Looking for <$hf>" >&2
     85  1.1  christos 	    if test -f $hf
     86  1.1  christos 	    then
     87  1.1  christos 		HF=$hf
     88  1.1  christos 	    fi
     89  1.1  christos 	    ;;
     90  1.1  christos 	 redhat* | fedora*)
     91  1.1  christos 	    hf=harden/redhat
     92  1.1  christos ${V}echo "Looking for <$hf>" >&2
     93  1.1  christos 	    if test -f $hf
     94  1.1  christos 	    then
     95  1.1  christos 		HF=$hf
     96  1.1  christos 	    fi
     97  1.1  christos 	    ;;
     98  1.1  christos 	esac
     99  1.1  christos 	;;
    100  1.1  christos     esac
    101  1.1  christos 
    102  1.1  christos     # This might be a good place to see if uname returns "Linux",
    103  1.1  christos     # and if so, use a generic file for that.
    104  1.1  christos     case "$HF" in
    105  1.1  christos      '')
    106  1.1  christos 	case "`uname`" in
    107  1.1  christos 	 Linux)
    108  1.1  christos 	    hf=harden/linux
    109  1.1  christos ${V}echo "Looking for <$hf>" >&2
    110  1.1  christos 	    if test -f $hf
    111  1.1  christos 	    then
    112  1.1  christos 		HF=$hf
    113  1.1  christos 	    fi
    114  1.1  christos 	    ;;
    115  1.1  christos 	esac
    116  1.1  christos 	;;
    117  1.1  christos     esac
    118  1.1  christos 
    119  1.1  christos     # Finally, 'default'
    120  1.1  christos     case "$HF" in
    121  1.1  christos      '')
    122  1.1  christos 	hf=harden/default
    123  1.1  christos ${V}echo "Looking for <$hf>" >&2
    124  1.1  christos 	if test -f $hf
    125  1.1  christos 	then
    126  1.1  christos 	    HF=$hf
    127  1.1  christos 	fi
    128  1.1  christos 	;;
    129  1.1  christos     esac
    130  1.1  christos 
    131  1.1  christos     case "$HF" in
    132  1.1  christos      '')
    133  1.1  christos 	echo "No harden/XXX file found!" >&2
    134  1.1  christos 	exit 1
    135  1.1  christos 	;;
    136  1.1  christos     esac
    137  1.1  christos     ;;
    138  1.1  christos esac
    139  1.1  christos 
    140  1.1  christos ${V}echo "Using <$HF>" >&2
    141  1.1  christos echo "GENHARDFLAGFILE=$HF"
    142  1.1  christos 
    143  1.1  christos ###
    144  1.1  christos 
    145  1.1  christos . $HF
    146  1.1  christos 
    147  1.1  christos echo "NTP_HARD_CFLAGS='$NTP_HARD_CFLAGS'"
    148  1.1  christos echo "NTP_HARD_CPPFLAGS='$NTP_HARD_CPPFLAGS'"
    149  1.1  christos echo "NTP_HARD_LDFLAGS='$NTP_HARD_LDFLAGS'"
    150  1.1  christos echo GENHARDFLAG=OK
    151  1.1  christos 
    152  1.1  christos exit 0
    153