polardbxengine/storage/ndb/test/run-test/make-config.sh

125 lines
3.4 KiB
Bash
Executable File

#!/bin/sh
# Copyright (C) 2003, 2005 MySQL AB
# Use is subject to license terms
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License, version 2.0,
# as published by the Free Software Foundation.
#
# This program is also distributed with certain software (including
# but not limited to OpenSSL) that is licensed under separate terms,
# as designated in a particular file or component or in included license
# documentation. The authors of MySQL hereby grant you an additional
# permission to link the program and your derivative works with the
# separately licensed software that they have included with MySQL.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License, version 2.0, for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
baseport=""
basedir=""
proc_no=1
node_id=1
d_file=/tmp/d.$$
dir_file=/tmp/dirs.$$
config_file=/tmp/config.$$
cluster_file=/tmp/cluster.$$
add_procs(){
type=$1; shift
while [ $# -ne 0 ]
do
add_proc $type $1
shift
done
}
add_proc (){
case $type in
mgm)
echo "$proc_no.ndb_mgmd" >> $dir_file
echo "[ndb_mgmd]" >> $config_file
echo "Id: $node_id" >> $config_file
echo "HostName: $2" >> $config_file
node_id=`expr $node_id + 1`
;;
api)
echo "$proc_no.ndb_api" >> $dir_file
echo "[api]" >> $config_file
echo "Id: $node_id" >> $config_file
echo "HostName: $2" >> $config_file
node_id=`expr $node_id + 1`
;;
ndb)
echo "$proc_no.ndbd" >> $dir_file
echo "[ndbd]" >> $config_file
echo "Id: $node_id" >> $config_file
echo "HostName: $2" >> $config_file
node_id=`expr $node_id + 1`
;;
mysqld)
echo "$proc_no.mysqld" >> $dir_file
echo "[mysqld]" >> $config_file
echo "Id: $node_id" >> $config_file
echo "HostName: $2" >> $config_file
node_id=`expr $node_id + 1`
;;
mysql)
echo "$proc_no.mysql" >> $dir_file
;;
esac
proc_no=`expr $proc_no + 1`
}
cnf=/dev/null
cat $1 | while read line
do
case $line in
baseport:*) baseport=`echo $line | sed 's/baseport[ ]*:[ ]*//g'`;;
basedir:*) basedir=`echo $line | sed 's/basedir[ ]*:[ ]*//g'`;;
mgm:*) add_procs mgm `echo $line | sed 's/mgm[ ]*:[ ]*//g'`;;
api:*) add_procs api `echo $line | sed 's/api[ ]*:[ ]*//g'`;;
ndb:*) add_procs ndb `echo $line | sed 's/ndb[ ]*:[ ]*//g'`;;
mysqld:*) add_procs mysqld `echo $line | sed 's/mysqld[ ]*:[ ]*//g'`;;
mysql:*) add_procs mysql `echo $line | sed 's/mysql[ ]*:[ ]*//g'`;;
"-- cluster config")
if [ "$cnf" = "/dev/null" ]
then
cnf=$cluster_file
else
cnf=/dev/null
fi
line="";;
*) echo $line >> $cnf; line="";;
esac
if [ "$line" ]
then
echo $line >> $d_file
fi
done
cat $dir_file | xargs mkdir -p
if [ -f $cluster_file ]
then
cat $cluster_file $config_file >> /tmp/config2.$$
mv /tmp/config2.$$ $config_file
fi
for i in `find . -type d -name '*.ndb_mgmd'`
do
cp $config_file $i/config.ini
done
mv $d_file d.txt
rm -f $config_file $dir_file $cluster_file