Rather than listing the unsafe capabilities, assume they're all unsafe unless
[util-vserver.git] / m4 / ensc_pathprog.m4
1 dnl $Id$
2
3 dnl Copyright (C) 2002 Enrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
4 dnl  
5 dnl This program is free software; you can redistribute it and/or modify
6 dnl it under the terms of the GNU General Public License as published by
7 dnl the Free Software Foundation; version 2 of the License.
8 dnl  
9 dnl This program is distributed in the hope that it will be useful,
10 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
11 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12 dnl GNU General Public License for more details.
13 dnl  
14 dnl You should have received a copy of the GNU General Public License
15 dnl along with this program; if not, write to the Free Software
16 dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
17
18 dnl Usage: ENSC_SET_SEARCHPATH(<PATH>)
19 AC_DEFUN([ENSC_SET_SEARCHPATH],
20 [
21         ensc_searchpath="$1"
22 ])
23
24 dnl Usage: ENSC_PATHPROG_INIT
25 AC_DEFUN([ENSC_PATHPROG_INIT],
26 [
27         ENSC_PATHPROG_SED=
28         AC_SUBST([ENSC_PATHPROG_SED])
29 ])
30
31
32 dnl Usage: ENSC_PATHPROG(<VAR>, <PROG>[, <DFLT>, <DESCR>, <DEREF>])
33 AC_DEFUN([ENSC_PATHPROG],
34 [
35         AC_REQUIRE([ENSC_SET_SEARCHPATH])
36         AC_REQUIRE([ENSC_PATHPROG_INIT])
37
38         if test -z "$3"; then
39                 rq=true
40         else
41                 rq=false
42         fi
43
44         if $rq; then
45                 ensc_dflt=
46         else
47                 ensc_dflt="$3"
48         fi
49
50         AC_PATH_PROGS($1, [$2], [$ensc_dflt], [$ensc_searchpath])
51
52         if test -z "${$1}" && $rq; then
53                 if test -z "$4"; then
54                         AC_MSG_ERROR([Can not find the '$2' tool within '${ensc_searchpath:-$PATH}'.])
55                 else
56                         AC_MSG_ERROR([
57 Can not find the '$2' tool within '${ensc_searchpath:-$PATH}'.
58 $4])
59                 fi
60         fi
61
62         if test "x$5" = x; then
63                 if test -h "${$1}"; then
64                         $1=`readlink -f "${$1}"`
65                 fi
66         fi
67
68         test "${$1}" && ENSC_PATHPROG_SED="${ENSC_PATHPROG_SED}s!@'$1'@!${$1}!g;"
69
70         test "${$1}"])
71
72
73
74 dnl Usage: ENSC_PATHPROG_STANDARD_TOOLS)
75 AC_DEFUN([ENSC_PATHPROG_STANDARD_TOOLS],
76 [
77         ENSC_PATHPROG(AWK,       awk)
78         ENSC_PATHPROG(CAT,       cat)
79         ENSC_PATHPROG(CHOWN,     chown)
80         ENSC_PATHPROG(CMP,       cmp)
81         ENSC_PATHPROG(CP,        cp)
82         ENSC_PATHPROG(DIRNAME,   dirname)
83         ENSC_PATHPROG(EGREP,     egrep, [], [], no-deref)
84         ENSC_PATHPROG(ENV,       env)
85         ENSC_PATHPROG(GREP,      grep)
86         ENSC_PATHPROG(LN,        ln)
87         ENSC_PATHPROG(MKDIR,     mkdir)
88         ENSC_PATHPROG(MKFIFO,    mkfifo)
89         ENSC_PATHPROG(MKTEMP,    mktemp)
90         ENSC_PATHPROG(MOUNT,     mount)
91         ENSC_PATHPROG(MV,        mv)
92         ENSC_PATHPROG(NICE,      nice)
93         ENSC_PATHPROG(PS,        ps)
94         ENSC_PATHPROG(RM,        rm)
95         ENSC_PATHPROG(RMDIR,     rmdir)
96         ENSC_PATHPROG(SED,       sed)
97         ENSC_PATHPROG(SH,        sh)
98         ENSC_PATHPROG(TAC,       tac)
99         ENSC_PATHPROG(TAR,       tar)
100         ENSC_PATHPROG(TOUCH,     touch)
101         ENSC_PATHPROG(TTY,       tty)
102         ENSC_PATHPROG(UMOUNT,    umount)
103         ENSC_PATHPROG(WC,        wc)
104 ])
105