[ SEA-GHOST MINI SHELL]
#!/bin/sh
# Copyright (c) 2000, 2024, Oracle and/or its affiliates.
#
# 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 designed to work 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 either included with
# the program or referenced in the documentation.
#
# 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
# This script reports various configuration settings that may be needed
# when using the MySQL client library.
which ()
{
IFS="${IFS= }"; save_ifs="$IFS"; IFS=':'
for file
do
for dir in $PATH
do
if test -f $dir/$file
then
echo "$dir/$file"
continue 2
fi
done
echo "which: no $file in ($PATH)"
exit 1
done
IFS="$save_ifs"
}
#
# If we can find the given directory relatively to where mysql_config is
# we should use this instead of the incompiled one.
# This is to ensure that this script also works with the binary MySQL
# version
fix_path ()
{
var=$1
shift
for filename
do
path=$basedir/$filename
if [ -d "$path" ] ;
then
eval "$var"=$path
return
fi
done
}
get_full_path ()
{
file=$1
# if the file is a symlink, try to resolve it
if [ -h $file ];
then
file=`ls -l $file | awk '{ print $NF }'`
fi
case $file in
/*) echo "$file";;
*/*) tmp=`pwd`/$file; echo $tmp | sed -e 's;/\./;/;' ;;
*) which $file ;;
esac
}
me=`get_full_path $0`
# Script might have been renamed but assume mysql_<something>config<something>
basedir=`echo $me | sed -e 's;/bin/mysql_.*config.*;;'`
ldata='/var/lib/mysql'
execdir='/usr/sbin'
bindir='/usr/bin'
# If installed, search for the compiled in directory first (might be "lib64")
pkglibdir='/usr/lib64/mysql'
pkglibdir_rel=`echo $pkglibdir | sed -e "s;^$basedir/;;"`
fix_path pkglibdir $pkglibdir_rel lib64/mysql/mysql lib64/mysql
plugindir='/usr/lib64/mysql/plugin'
plugindir_rel=`echo $plugindir | sed -e "s;^$basedir/;;"`
fix_path plugindir $plugindir_rel lib64/mysql/mysql/plugin lib64/mysql/plugin
pkgincludedir='/usr/include/mysql'
if [ -f "$basedir/include/mysql/mysql.h" ]; then
pkgincludedir="$basedir/include/mysql"
elif [ -f "$basedir/include/mysql.h" ]; then
pkgincludedir="$basedir/include"
fi
version='8.0.40'
socket='/var/lib/mysql/mysql.sock'
ldflags=''
if [ 0 -eq 0 ]; then
port=0
else
port=3306
fi
# Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lpthread -ldl -lssl -lcrypto -lresolv -lm -lrt"
cflags="-I$pkgincludedir -m64 "
cxxflags="-I$pkgincludedir -m64 "
include="-I$pkgincludedir"
usage () {
cat <<EOF
Usage: $0 [OPTIONS]
Compiler: GNU 11.2.1
Options:
--cflags [$cflags]
--cxxflags [$cxxflags]
--include [$include]
--libs [$libs]
--libs_r [$libs]
--plugindir [$plugindir]
--socket [$socket]
--port [$port]
--version [$version]
--variable=VAR VAR is one of:
pkgincludedir [$pkgincludedir]
pkglibdir [$pkglibdir]
plugindir [$plugindir]
EOF
exit 1
}
if test $# -le 0; then usage; fi
while test $# -gt 0; do
case $1 in
--cflags) echo "$cflags" ;;
--cxxflags)echo "$cxxflags";;
--include) echo "$include" ;;
--libs) echo "$libs" ;;
--libs_r) echo "$libs" ;;
--plugindir) echo "$plugindir" ;;
--socket) echo "$socket" ;;
--port) echo "$port" ;;
--version) echo "$version" ;;
--variable=*)
var=`echo "$1" | sed 's,^[^=]*=,,'`
case "$var" in
pkgincludedir) echo "$pkgincludedir" ;;
pkglibdir) echo "$pkglibdir" ;;
plugindir) echo "$plugindir" ;;
*) usage ;;
esac
;;
*) usage ;;
esac
shift
done
#echo "ldata: '"$ldata"'"
#echo "execdir: '"$execdir"'"
#echo "bindir: '"$bindir"'"
#echo "pkglibdir: '"$pkglibdir"'"
#echo "pkgincludedir: '"$pkgincludedir"'"
#echo "version: '"$version"'"
#echo "socket: '"$socket"'"
#echo "port: '"$port"'"
#echo "ldflags: '"$ldflags"'"
#echo "client_libs: '"$client_libs"'"
exit 0
SEA-GHOST - SHELL CODING BY SEA-GHOST