Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 1 | |
Igor Sysoev | ff8da91 | 2004-09-29 16:00:49 +0000 | [diff] [blame] | 2 | # Copyright (C) Igor Sysoev |
| 3 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame^] | 4 | |
Igor Sysoev | dc867cd | 2003-12-14 20:10:27 +0000 | [diff] [blame] | 5 | help=no |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 6 | |
Igor Sysoev | 090849d | 2004-05-18 20:28:54 +0000 | [diff] [blame] | 7 | PREFIX= |
| 8 | SBIN_PATH= |
| 9 | CONF_PATH= |
Igor Sysoev | 090849d | 2004-05-18 20:28:54 +0000 | [diff] [blame] | 10 | ERROR_LOG_PATH= |
| 11 | PID_PATH= |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame^] | 12 | NGX_USER= |
| 13 | NGX_GROUP= |
| 14 | HTTP_LOG_PATH= |
Igor Sysoev | 090849d | 2004-05-18 20:28:54 +0000 | [diff] [blame] | 15 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame^] | 16 | CC=${CC:-gcc} |
Igor Sysoev | a893eab | 2004-03-11 21:34:52 +0000 | [diff] [blame] | 17 | CPP= |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame^] | 18 | NGX_OBJS=objs |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 19 | |
Igor Sysoev | 6bb889f | 2004-03-11 15:42:41 +0000 | [diff] [blame] | 20 | DEBUG=NO |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame^] | 21 | NGX_CC_OPT= |
| 22 | NGX_LD_OPT= |
Igor Sysoev | 7b90834 | 2004-03-10 20:56:39 +0000 | [diff] [blame] | 23 | CPU=NO |
Igor Sysoev | 24b56c9 | 2004-03-10 17:55:19 +0000 | [diff] [blame] | 24 | |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 25 | TEST_BUILD_DEVPOLL=NO |
Igor Sysoev | 10318a2 | 2004-01-29 21:45:01 +0000 | [diff] [blame] | 26 | TEST_BUILD_EPOLL=NO |
Igor Sysoev | 9139cd2 | 2004-02-17 17:53:12 +0000 | [diff] [blame] | 27 | TEST_BUILD_RTSIG=NO |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 28 | |
Igor Sysoev | a4b16df | 2004-02-02 21:19:52 +0000 | [diff] [blame] | 29 | EVENT_FOUND=NO |
| 30 | |
Igor Sysoev | 9139cd2 | 2004-02-17 17:53:12 +0000 | [diff] [blame] | 31 | EVENT_RTSIG=NO |
Igor Sysoev | a4b16df | 2004-02-02 21:19:52 +0000 | [diff] [blame] | 32 | EVENT_SELECT=NO |
| 33 | EVENT_POLL=NO |
| 34 | EVENT_AIO=NO |
Igor Sysoev | 5c8c52f | 2004-01-23 09:26:18 +0000 | [diff] [blame] | 35 | |
Igor Sysoev | b54698b | 2004-02-23 20:57:12 +0000 | [diff] [blame] | 36 | USE_THREADS=NO |
| 37 | |
Igor Sysoev | 980a924 | 2004-09-05 19:54:02 +0000 | [diff] [blame] | 38 | HTTP=YES |
Igor Sysoev | 3d5c0fc | 2004-06-22 16:43:09 +0000 | [diff] [blame] | 39 | HTTP_CHARSET=YES |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 40 | HTTP_GZIP=YES |
Igor Sysoev | 7556945 | 2004-07-08 15:17:47 +0000 | [diff] [blame] | 41 | HTTP_SSL=NO |
Igor Sysoev | 6d2a14a | 2004-09-27 16:03:21 +0000 | [diff] [blame] | 42 | HTTP_SSI=NO |
Igor Sysoev | 59f3aa3 | 2004-06-24 16:07:04 +0000 | [diff] [blame] | 43 | HTTP_ACCESS=YES |
Igor Sysoev | 967fd63 | 2004-08-27 15:40:59 +0000 | [diff] [blame] | 44 | HTTP_USERID=YES |
Igor Sysoev | 6d2a14a | 2004-09-27 16:03:21 +0000 | [diff] [blame] | 45 | HTTP_STATUS=NO |
Igor Sysoev | c83f683 | 2004-06-24 07:53:37 +0000 | [diff] [blame] | 46 | HTTP_REWRITE=YES |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 47 | HTTP_PROXY=YES |
| 48 | |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 49 | IMAP=NO |
| 50 | |
Igor Sysoev | e9b2cb1 | 2004-02-09 20:47:18 +0000 | [diff] [blame] | 51 | USE_PCRE=NO |
Igor Sysoev | 43c3cd9 | 2004-02-19 08:45:27 +0000 | [diff] [blame] | 52 | PCRE=NONE |
Igor Sysoev | a893eab | 2004-03-11 21:34:52 +0000 | [diff] [blame] | 53 | PCRE_OPT= |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 54 | |
Igor Sysoev | 0599b11 | 2004-07-25 18:34:14 +0000 | [diff] [blame] | 55 | USE_OPENSSL=NO |
| 56 | OPENSSL=NONE |
| 57 | |
Igor Sysoev | a4b16df | 2004-02-02 21:19:52 +0000 | [diff] [blame] | 58 | USE_MD5=NO |
Igor Sysoev | 7af6b16 | 2004-02-09 07:46:43 +0000 | [diff] [blame] | 59 | MD5=NONE |
Igor Sysoev | a893eab | 2004-03-11 21:34:52 +0000 | [diff] [blame] | 60 | MD5_OPT= |
Igor Sysoev | 7b90834 | 2004-03-10 20:56:39 +0000 | [diff] [blame] | 61 | MD5_ASM=NO |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 62 | |
Igor Sysoev | a4b16df | 2004-02-02 21:19:52 +0000 | [diff] [blame] | 63 | USE_ZLIB=NO |
Igor Sysoev | 7af6b16 | 2004-02-09 07:46:43 +0000 | [diff] [blame] | 64 | ZLIB=NONE |
Igor Sysoev | a893eab | 2004-03-11 21:34:52 +0000 | [diff] [blame] | 65 | ZLIB_OPT= |
Igor Sysoev | 7b90834 | 2004-03-10 20:56:39 +0000 | [diff] [blame] | 66 | ZLIB_ASM=NO |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 67 | |
| 68 | |
| 69 | for option |
| 70 | do |
| 71 | case "$option" in |
| 72 | -*=*) value=`echo "$option" | sed -e 's/[-_a-zA-Z0-9]*=//'` ;; |
| 73 | *) value="" ;; |
| 74 | esac |
| 75 | |
| 76 | case "$option" in |
Igor Sysoev | dc867cd | 2003-12-14 20:10:27 +0000 | [diff] [blame] | 77 | --help) help=yes ;; |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 78 | |
Igor Sysoev | 090849d | 2004-05-18 20:28:54 +0000 | [diff] [blame] | 79 | --prefix=*) PREFIX="$value" ;; |
| 80 | --sbin-path=*) SBIN_PATH="$value" ;; |
| 81 | --conf-path=*) CONF_PATH="$value" ;; |
Igor Sysoev | 090849d | 2004-05-18 20:28:54 +0000 | [diff] [blame] | 82 | --error-log-path=*) ERROR_LOG_PATH="$value" ;; |
| 83 | --pid-path=*) PID_PATH="$value" ;; |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame^] | 84 | --user=*) NGX_USER="$value" ;; |
| 85 | --group=*) NGX_GROUP="$value" ;; |
Igor Sysoev | 090849d | 2004-05-18 20:28:54 +0000 | [diff] [blame] | 86 | |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 87 | --crossbuild=*) PLATFORM="$value" ;; |
| 88 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame^] | 89 | --builddir=*) NGX_OBJS="$value" ;; |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 90 | |
Igor Sysoev | 9139cd2 | 2004-02-17 17:53:12 +0000 | [diff] [blame] | 91 | --with-rtsig_module) EVENT_RTSIG=YES ;; |
Igor Sysoev | a4b16df | 2004-02-02 21:19:52 +0000 | [diff] [blame] | 92 | --with-select_module) EVENT_SELECT=YES ;; |
Igor Sysoev | e9b2cb1 | 2004-02-09 20:47:18 +0000 | [diff] [blame] | 93 | --without-select_module) EVENT_SELECT=NONE ;; |
Igor Sysoev | a4b16df | 2004-02-02 21:19:52 +0000 | [diff] [blame] | 94 | --with-poll_module) EVENT_POLL=YES ;; |
Igor Sysoev | e9b2cb1 | 2004-02-09 20:47:18 +0000 | [diff] [blame] | 95 | --without-poll_module) EVENT_POLL=NONE ;; |
Igor Sysoev | a4b16df | 2004-02-02 21:19:52 +0000 | [diff] [blame] | 96 | --with-aio_module) EVENT_AIO=YES ;; |
Igor Sysoev | 5c8c52f | 2004-01-23 09:26:18 +0000 | [diff] [blame] | 97 | |
Igor Sysoev | b54698b | 2004-02-23 20:57:12 +0000 | [diff] [blame] | 98 | --with-threads=*) USE_THREADS="$value" ;; |
| 99 | --with-threads) USE_THREADS="pthreads" ;; |
| 100 | |
Igor Sysoev | 980a924 | 2004-09-05 19:54:02 +0000 | [diff] [blame] | 101 | --without-http) HTTP=NO ;; |
| 102 | --http-log-path=*) HTTP_LOG_PATH="$value" ;; |
| 103 | |
Igor Sysoev | 7556945 | 2004-07-08 15:17:47 +0000 | [diff] [blame] | 104 | --with-http_ssl_module) HTTP_SSL=YES ;; |
Igor Sysoev | 3d5c0fc | 2004-06-22 16:43:09 +0000 | [diff] [blame] | 105 | --without-http_charset_module) HTTP_CHARSET=NO ;; |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 106 | --without-http_gzip_module) HTTP_GZIP=NO ;; |
Igor Sysoev | 7556945 | 2004-07-08 15:17:47 +0000 | [diff] [blame] | 107 | --without-http_ssi_module) HTTP_SSI=NO ;; |
Igor Sysoev | 967fd63 | 2004-08-27 15:40:59 +0000 | [diff] [blame] | 108 | --without-http_userid_module) HTTP_USERID=NO ;; |
Igor Sysoev | a7c4a2a | 2004-08-29 03:55:41 +0000 | [diff] [blame] | 109 | --without-http_access_module) HTTP_ACCESS=NO ;; |
Igor Sysoev | c83f683 | 2004-06-24 07:53:37 +0000 | [diff] [blame] | 110 | --without-http_status_module) HTTP_STATUS=NO ;; |
| 111 | --without-http_rewrite_module) HTTP_REWRITE=NO ;; |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 112 | --without-http_proxy_module) HTTP_PROXY=NO ;; |
| 113 | |
Igor Sysoev | 59cf56c | 2004-09-07 15:29:22 +0000 | [diff] [blame] | 114 | --with-imap) IMAP=YES ;; |
| 115 | |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 116 | --with-cc=*) CC="$value" ;; |
Igor Sysoev | a893eab | 2004-03-11 21:34:52 +0000 | [diff] [blame] | 117 | --with-cpp=*) CPP="$value" ;; |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame^] | 118 | --with-cc-opt=*) NGX_CC_OPT="$value" ;; |
| 119 | --with-ld-opt=*) NGX_LD_OPT="$value" ;; |
Igor Sysoev | 7b90834 | 2004-03-10 20:56:39 +0000 | [diff] [blame] | 120 | --with-cpu-opt=*) CPU="$value" ;; |
Igor Sysoev | 6bb889f | 2004-03-11 15:42:41 +0000 | [diff] [blame] | 121 | --with-debug) DEBUG=YES ;; |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 122 | |
Igor Sysoev | bb1ba3f | 2004-02-19 16:48:14 +0000 | [diff] [blame] | 123 | --without-pcre) USE_PCRE=DISABLED ;; |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 124 | --with-pcre=*) PCRE="$value" ;; |
Igor Sysoev | 7b90834 | 2004-03-10 20:56:39 +0000 | [diff] [blame] | 125 | --with-pcre-opt=*) PCRE_OPT="$value" ;; |
| 126 | |
Igor Sysoev | 0599b11 | 2004-07-25 18:34:14 +0000 | [diff] [blame] | 127 | --with-openssl=*) OPENSSL="$value" ;; |
| 128 | |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 129 | --with-md5=*) MD5="$value" ;; |
Igor Sysoev | 7b90834 | 2004-03-10 20:56:39 +0000 | [diff] [blame] | 130 | --with-md5-opt=*) MD5_OPT="$value" ;; |
| 131 | --with-md5-asm) MD5_ASM=YES ;; |
| 132 | |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 133 | --with-zlib=*) ZLIB="$value" ;; |
Igor Sysoev | 24b56c9 | 2004-03-10 17:55:19 +0000 | [diff] [blame] | 134 | --with-zlib-opt=*) ZLIB_OPT="$value" ;; |
Igor Sysoev | 7b90834 | 2004-03-10 20:56:39 +0000 | [diff] [blame] | 135 | --with-zlib-asm=*) ZLIB_ASM="$value" ;; |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 136 | |
| 137 | --test-build-devpoll) TEST_BUILD_DEVPOLL=YES ;; |
Igor Sysoev | 10318a2 | 2004-01-29 21:45:01 +0000 | [diff] [blame] | 138 | --test-build-epoll) TEST_BUILD_EPOLL=YES ;; |
Igor Sysoev | 9139cd2 | 2004-02-17 17:53:12 +0000 | [diff] [blame] | 139 | --test-build-rtsig) TEST_BUILD_RTSIG=YES ;; |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 140 | |
| 141 | *) |
| 142 | echo "$0: error: invalid option \"$option\"" |
| 143 | exit 1 |
| 144 | ;; |
| 145 | esac |
| 146 | done |
| 147 | |
| 148 | |
Igor Sysoev | dc867cd | 2003-12-14 20:10:27 +0000 | [diff] [blame] | 149 | if [ $help = yes ]; then |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 150 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame^] | 151 | cat << END |
Igor Sysoev | 5c8c52f | 2004-01-23 09:26:18 +0000 | [diff] [blame] | 152 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame^] | 153 | --help this message |
Igor Sysoev | 5c8c52f | 2004-01-23 09:26:18 +0000 | [diff] [blame] | 154 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame^] | 155 | --user=USER set non-privilege user |
| 156 | for the worker processes |
| 157 | --group=GROUP set non-privilege group |
| 158 | for the worker processes |
Igor Sysoev | 5c8c52f | 2004-01-23 09:26:18 +0000 | [diff] [blame] | 159 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame^] | 160 | --with-select_module enable select module |
| 161 | --without-select_module disable select module |
| 162 | --with-poll_module enable poll module |
| 163 | --without-poll_module disable poll module |
| 164 | |
| 165 | --without-http_charset_module disable ngx_http_charset_module |
| 166 | --without-http_rewrite_module disable ngx_http_rewrite_module |
| 167 | --without-http_gzip_module disable ngx_http_gzip_module |
| 168 | --without-http_proxy_module disable ngx_http_proxy_module |
| 169 | |
| 170 | --with-cc-opt=OPTIONS additional options for compiler |
| 171 | --with-ld-opt=OPTIONS additional options for linker |
| 172 | |
| 173 | --with-pcre=DIR path to PCRE library |
| 174 | --with-md5=DIR path to md5 library |
| 175 | --with-zlib=DIR path to zlib library |
| 176 | --with-openssl=DIR path to OpenSSL library |
| 177 | |
| 178 | END |
Igor Sysoev | a8fa0a6 | 2003-11-25 20:44:56 +0000 | [diff] [blame] | 179 | |
| 180 | exit 1 |
| 181 | fi |
Igor Sysoev | 732a271 | 2004-04-21 18:54:33 +0000 | [diff] [blame] | 182 | |
| 183 | |
Igor Sysoev | 562626a | 2004-09-14 05:45:22 +0000 | [diff] [blame] | 184 | if [ $HTTP = NO ]; then |
| 185 | HTTP_CHARSET=NO |
| 186 | HTTP_GZIP=NO |
| 187 | HTTP_SSI=NO |
| 188 | HTTP_USERID=NO |
| 189 | HTTP_ACCESS=NO |
| 190 | HTTP_STATUS=NO |
| 191 | HTTP_REWRITE=NO |
| 192 | HTTP_PROXY=NO |
| 193 | fi |
| 194 | |
| 195 | |
Igor Sysoev | 732a271 | 2004-04-21 18:54:33 +0000 | [diff] [blame] | 196 | if [ ".$PLATFORM" = ".win32" -a $EVENT_POLL = YES ]; then |
| 197 | EVENT_POLL=NO |
| 198 | echo "$0: warning: --with-poll_module option is ignored for win32" |
| 199 | fi |
Igor Sysoev | 090849d | 2004-05-18 20:28:54 +0000 | [diff] [blame] | 200 | |
| 201 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame^] | 202 | if test -z "$PREFIX"; then |
Igor Sysoev | 090849d | 2004-05-18 20:28:54 +0000 | [diff] [blame] | 203 | PREFIX=/usr/local/nginx |
| 204 | fi |
| 205 | |
Igor Sysoev | 090849d | 2004-05-18 20:28:54 +0000 | [diff] [blame] | 206 | |
Igor Sysoev | c0edbcc | 2004-10-21 15:34:38 +0000 | [diff] [blame^] | 207 | if test -z "$NGX_GROUP"; then |
| 208 | NGX_GROUP=NGX_USER |
| 209 | fi |
| 210 | |
| 211 | |
| 212 | if test -z "$NGX_USER"; then |
| 213 | NGX_USER=nobody |
| 214 | NGX_GROUP=nobody |
| 215 | fi |
| 216 | |
| 217 | |
Igor Sysoev | 6d2a14a | 2004-09-27 16:03:21 +0000 | [diff] [blame] | 218 | case ".$SBIN_PATH" in |
| 219 | ./*) |
| 220 | ;; |
Igor Sysoev | 090849d | 2004-05-18 20:28:54 +0000 | [diff] [blame] | 221 | |
Igor Sysoev | 6d2a14a | 2004-09-27 16:03:21 +0000 | [diff] [blame] | 222 | .) |
| 223 | SBIN_PATH=$PREFIX/sbin/nginx |
| 224 | ;; |
Igor Sysoev | 090849d | 2004-05-18 20:28:54 +0000 | [diff] [blame] | 225 | |
Igor Sysoev | 6d2a14a | 2004-09-27 16:03:21 +0000 | [diff] [blame] | 226 | *) |
| 227 | SBIN_PATH=$PREFIX/$SBIN_PATH |
| 228 | ;; |
| 229 | esac |
Igor Sysoev | 090849d | 2004-05-18 20:28:54 +0000 | [diff] [blame] | 230 | |
Igor Sysoev | 6d2a14a | 2004-09-27 16:03:21 +0000 | [diff] [blame] | 231 | |
| 232 | case ".$CONF_PATH" in |
| 233 | ./*) |
| 234 | ;; |
| 235 | |
| 236 | .) |
| 237 | CONF_PATH=$PREFIX/conf/nginx.conf |
| 238 | ;; |
| 239 | |
| 240 | *) |
| 241 | CONF_PATH=$PREFIX/$CONF_PATH |
| 242 | ;; |
| 243 | esac |
| 244 | |
| 245 | |
| 246 | case ".$PID_PATH" in |
| 247 | ./*) |
| 248 | ;; |
| 249 | |
| 250 | .) |
| 251 | PID_PATH=$PREFIX/logs/nginx.pid |
| 252 | ;; |
| 253 | |
| 254 | *) |
| 255 | PID_PATH=$PREFIX/$PID_PATH |
| 256 | ;; |
| 257 | esac |
| 258 | |
| 259 | |
| 260 | case ".$ERROR_LOG_PATH" in |
| 261 | ./*) |
| 262 | ;; |
| 263 | |
| 264 | .) |
| 265 | ERROR_LOG_PATH=$PREFIX/logs/error.log |
| 266 | ;; |
| 267 | |
Igor Sysoev | ff8da91 | 2004-09-29 16:00:49 +0000 | [diff] [blame] | 268 | .stderr) |
| 269 | ERROR_LOG_PATH= |
| 270 | ;; |
| 271 | |
Igor Sysoev | 6d2a14a | 2004-09-27 16:03:21 +0000 | [diff] [blame] | 272 | *) |
| 273 | ERROR_LOG_PATH=$PREFIX/$ERROR_LOG_PATH |
| 274 | ;; |
| 275 | esac |
| 276 | |
| 277 | |
| 278 | case ".$HTTP_LOG_PATH" in |
| 279 | ./*) |
| 280 | ;; |
| 281 | |
| 282 | .) |
| 283 | HTTP_LOG_PATH=$PREFIX/logs/access.log |
| 284 | ;; |
| 285 | |
| 286 | *) |
| 287 | HTTP_LOG_PATH=$PREFIX/$HTTP_LOG_PATH |
| 288 | ;; |
| 289 | esac |