diff options
author | monty@donna.mysql.com <> | 2000-09-07 04:55:17 +0300 |
---|---|---|
committer | monty@donna.mysql.com <> | 2000-09-07 04:55:17 +0300 |
commit | be5e4e72b67c1ce6d25ec6d961ed0f6b4d13a106 (patch) | |
tree | cd775f59b4803ef23e407df9d47af3ae7b517a13 /scripts | |
parent | 0c07817b08812e18ecba76966cb84b562efb0d80 (diff) | |
download | mariadb-git-be5e4e72b67c1ce6d25ec6d961ed0f6b4d13a106.tar.gz |
Small bug fixes
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/Makefile.am | 1 | ||||
-rw-r--r-- | scripts/mysql_install_db.sh | 110 |
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 |