xref: /netbsd-src/external/bsd/ntp/dist/sntp/scripts/genLocInfo (revision f17b710f3d406bee67aa39c65053114ab78297c5)
18585484eSchristos#! /bin/sh
28585484eSchristos
38585484eSchristosargs=`getopt d:f:v $*`
48585484eSchristosset -- $args
58585484eSchristos
68585484eSchristosLF=
78585484eSchristosV=": "
88585484eSchristos
98585484eSchristosfor i
108585484eSchristosdo
118585484eSchristos    case "$i" in
128585484eSchristos     -d) sdir="$2" ; shift 2 ;;
138585484eSchristos     -f) locfile="$2" ; shift 2 ;;
148585484eSchristos     -v) V= ; shift ;;
158585484eSchristos     --) shift ; break ;;
168585484eSchristos    esac
178585484eSchristosdone
188585484eSchristos
198585484eSchristoscase "$sdir" in
208585484eSchristos '')
218585484eSchristos    sdir=.
228585484eSchristosesac
238585484eSchristos
248585484eSchristoscase "$locfile" in
258585484eSchristos */*)
268585484eSchristos    LF=$locfile
278585484eSchristos    ;;
288585484eSchristos '')
298585484eSchristos    ;;
308585484eSchristos *)
318585484eSchristos    lf=loc/$locfile
328585484eSchristos    if test -f $lf
338585484eSchristos    then
348585484eSchristos	LF=$lf
358585484eSchristos    fi
368585484eSchristos    ;;
378585484eSchristosesac
388585484eSchristos
398585484eSchristos# If we have a file to use (ie, LF is not empty) then look for one.
408585484eSchristoscase "$LF" in
418585484eSchristos '')
428585484eSchristos    PATH=$PATH:libevent/build-aux
438585484eSchristos    export PATH
448585484eSchristos    set `scripts/cvo.sh @osname@ @osver@` || exit 1
458585484eSchristos
468585484eSchristos    CVO_OSNAME=$1
478585484eSchristos    CVO_OSVER=$2
488585484eSchristos
498585484eSchristos    x=$CVO_OSVER
508585484eSchristos
518585484eSchristos    while true
528585484eSchristos    do
538585484eSchristos	case "$x" in
548585484eSchristos	 '') break ;;
558585484eSchristos	esac
568585484eSchristoslf=loc/$CVO_OSNAME$x
578585484eSchristos${V}echo "Looking for <$lf>" >&2
588585484eSchristos	if test -f $lf
598585484eSchristos	then
608585484eSchristos	    LF=$lf
618585484eSchristos	    break
628585484eSchristos	fi
638585484eSchristos	case "$x" in
648585484eSchristos	 *.*) x=`echo $x | sed -e 's/\.[^.]*$//'` ;;
658585484eSchristos	 *) x= ;;
668585484eSchristos	esac
678585484eSchristos    done
688585484eSchristos    case "$LF" in
698585484eSchristos     '')
708585484eSchristos	lf=loc/$CVO_OSNAME
718585484eSchristos${V}echo "Looking for <$lf>" >&2
728585484eSchristos	if test -f $lf
738585484eSchristos	then
748585484eSchristos	    LF=$lf
758585484eSchristos	fi
768585484eSchristos	;;
778585484eSchristos    esac
788585484eSchristos    # Handle some "aliases"
798585484eSchristos    case "$LF" in
808585484eSchristos     '')
818585484eSchristos	case "$CVO_OSNAME" in
82*f17b710fSchristos	 raspbian*)
83*f17b710fSchristos	    lf=loc/debian
84*f17b710fSchristos${V}echo "Looking for <$lf>" >&2
85*f17b710fSchristos	    if test -f $lf
86*f17b710fSchristos	    then
87*f17b710fSchristos		LF=$lf
88*f17b710fSchristos	    fi
89*f17b710fSchristos	    ;;
908585484eSchristos	 redhat* | fedora*)
918585484eSchristos	    lf=loc/redhat
928585484eSchristos${V}echo "Looking for <$lf>" >&2
938585484eSchristos	    if test -f $lf
948585484eSchristos	    then
958585484eSchristos		LF=$lf
968585484eSchristos	    fi
978585484eSchristos	    ;;
988585484eSchristos	esac
998585484eSchristos	;;
1008585484eSchristos    esac
1018585484eSchristos
1028585484eSchristos    # This might be a good place to see if uname returns "Linux",
1038585484eSchristos    # and if so, use a generic file for that.
1048585484eSchristos    case "$LF" in
1058585484eSchristos     '')
1068585484eSchristos	case "`uname`" in
1078585484eSchristos	 Linux)
1088585484eSchristos	    lf=loc/linux
1098585484eSchristos${V}echo "Looking for <$lf>" >&2
1108585484eSchristos	    if test -f $lf
1118585484eSchristos	    then
1128585484eSchristos		LF=$lf
1138585484eSchristos	    fi
1148585484eSchristos	    ;;
1158585484eSchristos	esac
1168585484eSchristos	;;
1178585484eSchristos    esac
1188585484eSchristos
1198585484eSchristos    # Finally, 'legacy'
1208585484eSchristos    case "$LF" in
1218585484eSchristos     '')
1228585484eSchristos	lf=loc/legacy
1238585484eSchristos${V}echo "Looking for <$lf>" >&2
1248585484eSchristos	if test -f $lf
1258585484eSchristos	then
1268585484eSchristos	    LF=$lf
1278585484eSchristos	fi
1288585484eSchristos	;;
1298585484eSchristos    esac
1308585484eSchristos
1318585484eSchristos    case "$LF" in
1328585484eSchristos     '')
1338585484eSchristos	echo "No loc/XXX file found!" >&2
1348585484eSchristos	exit 1
1358585484eSchristos	;;
1368585484eSchristos    esac
1378585484eSchristos    ;;
1388585484eSchristosesac
1398585484eSchristos
1408585484eSchristos${V}echo "Using <$LF>" >&2
1418585484eSchristosecho "GENLOCINFOFILE=$LF"
1428585484eSchristos
1438585484eSchristos###
1448585484eSchristos
1458585484eSchristosrm -f $sdir/genLocInfo.rc?
1468585484eSchristos
1478585484eSchristosoIFS=$IFS
1488585484eSchristosIFS=","
1498585484eSchristos
1508585484eSchristoswhile true
1518585484eSchristosdo
1528585484eSchristos    if read c d s x
1538585484eSchristos    then
1548585484eSchristos	# echo "Got <$c><$d><$s><$x>" >&2
1558585484eSchristos	case "$c" in
1568585484eSchristos	 \#*) continue ;;
1578585484eSchristos	esac
1588585484eSchristos	case "$x" in
1598585484eSchristos	 '') ;;
1608585484eSchristos	 *) echo "Unrecognized input: <$c,$d,$s,$x>" >&2
1618585484eSchristos	    touch $sdir/genLocInfo.rc1
1628585484eSchristos	    continue
1638585484eSchristos	    ;;
1648585484eSchristos	esac
1658585484eSchristos	case "$c,$d,$s" in
1668585484eSchristos	 [Mm][Aa][Nn],,)
1678585484eSchristos	    echo "MANTAGFMT=man"
1688585484eSchristos	    continue
1698585484eSchristos	    ;;
1708585484eSchristos	 [Mm][Dd][Oo][Cc],,)
1718585484eSchristos	    echo "MANTAGFMT=mdoc"
1728585484eSchristos	    continue
1738585484eSchristos	    ;;
1748585484eSchristos	esac
1758585484eSchristos
1768585484eSchristos	case "$c,$d,$s" in
177b8ecfcfeSchristos	 *,bin,*)  DB=bin ; DL= ; DS= ; NI= ;;
178b8ecfcfeSchristos	 *,libexec,*)  DB= ; DL=libexec ; DS= ; NI= ;;
179b8ecfcfeSchristos	 *,noinst,*)  DB= ; DL= ; DS= ; NI=noinst ;;
180b8ecfcfeSchristos	 *,sbin,*) DB= ; DL= ; DS=sbin ; NI= ;;
1818585484eSchristos	 *) echo "Unrecognized input: <$c,$d,$s>" >&2
1828585484eSchristos	    touch $sdir/genLocInfo.rc1
1838585484eSchristos	    continue
1848585484eSchristos	    ;;
1858585484eSchristos	esac
1868585484eSchristos	case "$c,$d,$s" in
1878585484eSchristos	 *,*,1) ;;
1888585484eSchristos	 *,*,1m) ;;
1898585484eSchristos	 *,*,1M) ;;
1908585484eSchristos	 *,*,8) ;;
1918585484eSchristos	 *) echo "Unrecognized input: <$c,$d,$s>" >&2
1928585484eSchristos	    touch $sdir/genLocInfo.rc1
1938585484eSchristos	    continue
1948585484eSchristos	    ;;
1958585484eSchristos	esac
1968585484eSchristos
1978585484eSchristos	# Should be OK, mostly...
1988585484eSchristos	C=`echo $c | sed -e 'y/abcdefghijklmnopqrstuvwxyz-/ABCDEFGHIJKLMNOPQRSTUVWXYZ_/'`
1998585484eSchristos	# echo "c: <$c>, C: <$C>, DB: <$DB>, DL: <$DL>, DS: <$DS>" >&2
2008585484eSchristos
2018585484eSchristos	case "$d" in
2028585484eSchristos	 bin)
2038585484eSchristos	    eval ${C}_DB=$c
2048585484eSchristos	    eval ${C}_DL=
2058585484eSchristos	    eval ${C}_DS=
206b8ecfcfeSchristos	    eval ${C}_NI=
2078585484eSchristos	    ;;
2088585484eSchristos	 libexec)
2098585484eSchristos	    eval ${C}_DB=
2108585484eSchristos	    eval ${C}_DL=$c
2118585484eSchristos	    eval ${C}_DS=
212b8ecfcfeSchristos	    eval ${C}_NI=
213b8ecfcfeSchristos	    ;;
214b8ecfcfeSchristos	 noinst)
215b8ecfcfeSchristos	    eval ${C}_DB=
216b8ecfcfeSchristos	    eval ${C}_DL=
217b8ecfcfeSchristos	    eval ${C}_DS=
218b8ecfcfeSchristos	    eval ${C}_NI=$c
2198585484eSchristos	    ;;
2208585484eSchristos	 sbin)
2218585484eSchristos	    eval ${C}_DB=
2228585484eSchristos	    eval ${C}_DL=
2238585484eSchristos	    eval ${C}_DS=$c
224b8ecfcfeSchristos	    eval ${C}_NI=
2258585484eSchristos	    ;;
226b8ecfcfeSchristos	 *) echo "$0: installdir <$d> must be bin, sbin, libexec, or noinst" >&2
2278585484eSchristos	    exit 1
2288585484eSchristos	    ;;
2298585484eSchristos	esac
2308585484eSchristos	eval ${C}_MS=$s
2318585484eSchristos
2328585484eSchristos	# echo "<$c> gets installed in <$d> with a <$s> manpage suffix" >&2
2338585484eSchristos	# echo "${C}_DB is <`eval echo '$'${C}_DB`>" >&2
2348585484eSchristos	# echo "${C}_DL is <`eval echo '$'${C}_DL`>" >&2
2358585484eSchristos	# echo "${C}_DS is <`eval echo '$'${C}_DS`>" >&2
236b8ecfcfeSchristos	# echo "${C}_NI is <`eval echo '$'${C}_NI`>" >&2
2378585484eSchristos	# echo "${C}_MS is <`eval echo '$'${C}_MS`>" >&2
2388585484eSchristos	echo "${C}_DB=`eval echo '$'${C}_DB`"
2398585484eSchristos	echo "${C}_DL=`eval echo '$'${C}_DL`"
2408585484eSchristos	echo "${C}_DS=`eval echo '$'${C}_DS`"
241b8ecfcfeSchristos	echo "${C}_NI=`eval echo '$'${C}_NI`"
2428585484eSchristos	echo "${C}_MS=`eval echo '$'${C}_MS`"
2438585484eSchristos
2448585484eSchristos	touch $sdir/genLocInfo.rc0
2458585484eSchristos    else
2468585484eSchristos	break
2478585484eSchristos    fi
2488585484eSchristosdone < $LF
2498585484eSchristosIFS=$oIFS
2508585484eSchristos
2518585484eSchristosif test -f $sdir/genLocInfo.rc1
2528585484eSchristosthen
2538585484eSchristos    rm $sdir/genLocInfo.rc?
2548585484eSchristos    exit 1
2558585484eSchristosfi
2568585484eSchristos
2578585484eSchristosif test -f $sdir/genLocInfo.rc0
2588585484eSchristosthen
2598585484eSchristos    rm $sdir/genLocInfo.rc?
2608585484eSchristos    echo 'GENLOCINFO=OK'
2618585484eSchristos    exit 0
2628585484eSchristosfi
2638585484eSchristos
2648585484eSchristosexit 1
265