tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Osipov <micha...@apache.org>
Subject Re: svn commit: r1834798 - in /tomcat/trunk/bin: makebase.bat makebase.sh
Date Sun, 01 Jul 2018 19:18:11 GMT
Am 2018-07-01 um 20:44 schrieb isapir@apache.org:
> Author: isapir
> Date: Sun Jul  1 18:44:38 2018
> New Revision: 1834798
> 
> URL: http://svn.apache.org/viewvc?rev=1834798&view=rev
> Log:
> Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=62500
> Added scripts to create CATALINA_BASE directory
> 
> Added:
>      tomcat/trunk/bin/makebase.bat
>      tomcat/trunk/bin/makebase.sh
> 
> Added: tomcat/trunk/bin/makebase.sh
> URL: http://svn.apache.org/viewvc/tomcat/trunk/bin/makebase.sh?rev=1834798&view=auto
> ==============================================================================
> --- tomcat/trunk/bin/makebase.sh (added)
> +++ tomcat/trunk/bin/makebase.sh Sun Jul  1 18:44:38 2018
> @@ -0,0 +1,64 @@
> +#!/bin/sh
> +
> +# Licensed to the Apache Software Foundation (ASF) under one or more
> +# contributor license agreements.  See the NOTICE file distributed with
> +# this work for additional information regarding copyright ownership.
> +# The ASF licenses this file to You under the Apache License, Version 2.0
> +# (the "License"); you may not use this file except in compliance with
> +# the License.  You may obtain a copy of the License at
> +#
> +#     http://www.apache.org/licenses/LICENSE-2.0
> +#
> +# Unless required by applicable law or agreed to in writing, software
> +# distributed under the License is distributed on an "AS IS" BASIS,
> +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
> +# See the License for the specific language governing permissions and
> +# limitations under the License.
> +
> +# This script creates the directory structure required for running Tomcat
> +# in a separate directory by pointing $CATALINA_BASE to it. It copies the
> +# conf directory from $CATALINA_HOME, and creates empty directories for
> +# bin, logs, temp, and work.
> +#
> +# If the file $CATALINA_HOME/bin/setenv.sh exists then it is copied to
> +# the target directory as well.
> +
> +# first arg is the target directory
> +BASE_TGT=$1

Why not call it CATALINA_BASE?

> +if [ -z ${BASE_TGT} ]; then
> +    # target directory not provided; exit
> +    echo "Usage: makebase <path-to-target-directory>"
> +    exit 1
> +fi
> +
> +HOME_DIR="$(dirname $(dirname $0))"

Why not call it CATALINA_HOME?

> +if [ -d ${BASE_TGT} ]; then
> +  # target directory exists
> +  echo directory exists

Why no double quotes? Why not "target directory exists"?

> +    # exit if target directory is not empty
> +    [ "$(ls -A ${BASE_TGT})" ] && \
> +        echo "target directory is not empty" && \
> +        exit 1
> +else
> +    # create the target directory
> +    mkdir -p ${BASE_TGT}
> +fi
> +
> +for dir in bin logs temp work;

Why not webapps? The default Tomcat config (server.xml) refers to 
webapps in CATALINA_BASE. lib is missing: catalina.properties 
common.loader refers to it.

> +do
> +    # copy directory with permissions and delete contents if any
> +    cp -a "${HOME_DIR}/${dir}" "${BASE_TGT}/${dir}"
> +    rm -fr "${BASE_TGT}/${dir}"/*
> +done

Why do you copy and then delete? Why not mkdir directory directly?

> +# copy conf directory recursively and preserve permissions
> +cp -a "${HOME_DIR}/conf" "${BASE_TGT}/"

Preserving permissions will fail if the target is not under root's 
control. E.g., a user wants a private Tomcat. He won't be able to work with.

> +# copy setenv.sh if exists
> +[ -f "${HOME_DIR}/bin/setenv.sh" ] && \
> +    cp -p "${HOME_DIR}/bin/setenv.sh" "${BASE_TGT}/bin/"

Here you ignore -p.

> +echo created CATALINA_BASE directory at $BASE_TGT

Not quoted again.

You should also warn that the ports in the server.xml are likely bound 
already.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Mime
View raw message