blob: a8d3f22c9c47b63feddc8006542ef5b68feecde4 [file] [log] [blame]
#!/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.
#------------------------------------------------------------------------------
# Updates a variables that will be exported. The question, the variable name,
# the default value and the mandatory aspect of the input are stored in the
# "variables.sh" file under the following form:
# <question> | <variable> | [<default value>] | [<mandatory>]
#------------------------------------------------------------------------------
ask_param()
{
# Skipping empty lines
if [ -z "$1" ]
then
return
fi
# Searching for the current line (which is not a comment)
curline=`cat -n variables.sh | grep -e "^[[:space:]]*$1[[:space:]][[:space:]]*" | sed -e 's/^[^a-aA-Z|#-]*//'`
comment=`echo $curline | grep -e "^\#"`
# Skipping comments
if [ -n "$comment" ]
then
return
fi
# Getting question, variable, default and mandatory values
question=`echo $curline | cut -d'|' -f1 | sed -e 's/^[ ]*//' -e 's/[ ]*$//'` # The question
variable=`echo $curline | cut -d'|' -f2 | sed -e 's/^[ ]*//' -e 's/[ ]*$//'` # The variable
default=`echo $curline | cut -d'|' -f3 | sed -e 's/^[ ]*//' -e 's/[ ]*$//'` # The default value
mandatory=`echo $curline | cut -d'|' -f4 | sed -e 's/^[ ]*//' -e 's/[ ]*$//'` # Mandatory input ?
# Use the commands below for debug
#echo "Current Line = " $curline
#echo "Question = " $question
#echo "Variable = " $variable
#echo "Default value = " $default
#echo "Mandatory = " $mandatory
# The line must include a variable
if [ -z "$variable" ]
then
return
fi
# If there is no question, we update the variable and we return
if [ -z "$question" ]
then
var=`eval echo $default`
export $variable="$var"
return
fi
# Removing extra spaces from mandatory
if [ -n "$mandatory" ]
then
mandatory=`echo $mandatory | sed -e 's/[[:space:]*M[[:space:]]*/M/'`
fi
# Let's ask the question
if [ -n "$default" ]
then
printf "$question? [Default: ";
printf `eval echo $default`;
printf "]\n"
else
echo "$question?"
fi
# Reading anwser
read read_answer
while [ -z "$read_answer" ]
do
if [ "x$mandatory" = "xM" ]
then
echo "You have to anwser, please."
if [ -n "$default" ]
then
printf "$question? [Default: ";
printf `eval echo $default`;
printf "]\n"
else
echo "$question?"
fi
read read_answer
else
# If the user does not enter any input and the input is not
# mandatory, we use the default value
read_answer=`eval echo $default`
fi
done
# Exporting the variable
export $variable="$read_answer"
}
#------------------------------------------------------------------------------
# Verifies the exit code of the last command used. If the exit code is 0, the
# execution continues, if not the execution is halted and we exit the program
# with a 1 value.
#------------------------------------------------------------------------------
verifyExitCode()
{
if [ $? -ne 0 ]
then
echo "An error occurred when installing ApacheDS."
echo "ApacheDS installation failed."
exit 1
fi
}