summaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authormonty@donna.mysql.com <>2000-09-07 04:55:17 +0300
committermonty@donna.mysql.com <>2000-09-07 04:55:17 +0300
commitbe5e4e72b67c1ce6d25ec6d961ed0f6b4d13a106 (patch)
treecd775f59b4803ef23e407df9d47af3ae7b517a13 /scripts
parent0c07817b08812e18ecba76966cb84b562efb0d80 (diff)
downloadmariadb-git-be5e4e72b67c1ce6d25ec6d961ed0f6b4d13a106.tar.gz
Small bug fixes
Diffstat (limited to 'scripts')
-rw-r--r--scripts/Makefile.am1
-rw-r--r--scripts/mysql_install_db.sh110
2 files changed, 69 insertions, 42 deletions
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index f16901a384f..d4e62172a08 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -71,6 +71,7 @@ SUFFIXES = .sh
@RM@ -f $@ $@-t
@SED@ \
-e 's!@''bindir''@!$(bindir)!g' \
+ -e 's!@''sbindir''@!$(sbindir)!g' \
-e 's!@''scriptdir''@!$(bindir)!g' \
-e 's!@''prefix''@!$(prefix)!g' \
-e 's!@''datadir''@!$(datadir)!g' \
diff --git a/scripts/mysql_install_db.sh b/scripts/mysql_install_db.sh
index 9d87a0a31cb..50d147c1ade 100644
--- a/scripts/mysql_install_db.sh
+++ b/scripts/mysql_install_db.sh
@@ -11,56 +11,82 @@
ldata=@localstatedir@
execdir=@libexecdir@
bindir=@bindir@
+sbindir=@sbindir@
force=0
IN_RPM=0
defaults=
-# Are we doing an rpm install?
-if test "$1" = "-IN-RPM"; then IN_RPM=1; shift; fi
-if test "$1" = "--force"; then force=1; shift; fi
-
-# Get mysqld/safe_mysqld options from /etc/my.cnf or ~/.my.cnf
-case "$1" in
- --no-defaults) defaults="$1"; conf=/nonexistent; shift ;;
- --defaults-file=*) defaults="$1"; conf=`echo "$1"|sed 's;^--defaults-file=;;'`; shift ;;
- *)
- if test -w /
- then
- conf=/etc/my.cnf
- else
- conf=$HOME/.my.cnf
- fi
- ;;
-esac
+while [ "x$1" != x ]
+do
+ case "$1" in
+ -*) eqvalue="`echo $1 |sed 's/[-_a-zA-Z0-9]*=//'`"
+ case "$1" in
+ -IN-RPM) IN_RPM=1
+ ;;
+ --force) force=1
+ ;;
+ --no-defaults=*) CONFIG_FILES=/nonexistent
+ ;;
+ --defaults-file=*) CONFIG_FILES="$eqvalue"
+ ;;
+ --basedir=*) SETVARS="$SETVARS basedir=\"$eqvalue\"; bindir=\"$eqvalue/bon\"; execdir=\"$eqvalue/libexec\"; sbindir=\"$eqvalue/sbin\"; "
+ ;;
+ --ldata=*|--datadir=*) SETVARS="$SETVARS ldata=\"$eqvalue\";"
+ ;;
+ --user=*) SETVARS="$SETVARS user=\"$eqvalue\";"
+ ;;
+ esac
+ ;;
+ esac
+ shift
+done
+
+GetCNF () {
-if test -f "$conf"
-then
- if grep "^datadir" $conf >/dev/null
- then
- ldata=`grep "^datadir" $conf | sed 's;^[^=]*=[ \t]*;;' | sed 's;[ \t]$;;'`
- fi
- if grep "^execdir" $conf >/dev/null
- then
- execdir=`grep "^execdir" $conf | sed 's;^[^=]*=[ \t]*;;' | sed 's;[ \t]$;;'`
- fi
- if grep "^bindir" $conf >/dev/null
- then
- bindir=`grep "^bindir" $conf | sed 's;^[^=]*=[ \t]*;;' | sed 's;[ \t]$;;'`
- fi
- if grep "^user" $conf >/dev/null
- then
- user=`grep "^user" $conf | sed 's;^[^=]*=[ \t]*;;' | sed 's;[ \t]$;;'`
- fi
-fi
+VARIABLES="basedir bindir datadir sbindir user pid-file log port socket"
+# set it not already set
+CONFIG_FILES=${CONFIG_FILES:-"/etc/my.cnf ./my.cnf $HOME/.my.cnf"}
-for arg
+for c in $CONFIG_FILES
do
- case "$arg" in
- --basedir=*) basedir=`echo "$arg"|sed 's;^--basedir=;;'`; bindir="$basedir/bin"; execdir="$basedir/libexec" ;;
- --datadir=*) ldata=`echo "$arg"|sed 's;^--datadir=;;'` ;;
- --user=*) user=`echo "$arg"|sed 's;^--user=;;'` ;;
- esac
+ if [ -f $c ]
+ then
+ #echo "Processing $c..."
+ for v in $VARIABLES
+ do
+ # This method assumes last of duplicate $variable entries will be the
+ # value set ([mysqld])
+ # This could easily be rewritten to gather [xxxxx]-specific entries,
+ # but for now it looks like only the mysqld ones are needed for
+ # server startup scripts
+ eval `sed -n -e '/^$/d' -e '/^#/d' -e 's,[ ],,g' -e '/=/p' $c |\
+ awk -F= -v v=$v '{if ($1 == v) printf ("thevar=\"%s\"\n", $2)}'`
+
+ # it would be easier if the my.cnf and variable values were
+ # all matched, but since they aren't we need to map them here.
+ case $v in
+ pid-file) v=pid_file ;;
+ log) v=log_file ;;
+ datadir) v=ldata ;;
+ esac
+
+ # As long as $thevar isn't blank, use it to set or override current
+ # value
+ [ "$thevar" != "" ] && eval $v=$thevar
+
+ done
+ #else
+ # echo "No $c config file."
+ fi
done
+}
+
+# run function to get config values
+GetCNF
+
+# Override/set with command-line values
+eval $SETVARS
+
mdata=$ldata/mysql