[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RE: [shell-script] script envia erro e não acho ele!
From: |
Jorge Robert |
Subject: |
Re: RE: [shell-script] script envia erro e não acho ele! |
Date: |
Wed, 31 Dec 2003 21:58:28 -0200 |
Caros Rodolfo e Andre
Segui as indicações dos dois !
Nada deu certo. Com um pouco mais de paciente comezei a "depurar" linha a linha.
Se observam o shell, na sua logica, a primeira coisa que ele faz é chamar a
função abaixo:
init_cecho() {
X=`echo "Hi\c" ; echo "Hi\c"`
X1=`echo $X | grep '\\c'`
if [ ! -z "$X1" ]
then
CECHOE=""
CECHOS="-n "
else
CECHOE="\c"
CECHOS=""
fi
}
Muito bem, eu coloquei echos "olaN" em cada linha:
init_cecho() {
echo "ola1"
X=`echo "Hi\c" ; echo "Hi\c"`
X1=`echo $X | grep '\\c'`
if [ ! -z "$X1" ]
then
echo "ola2"
CECHOE=""
CECHOS="-n "
else
echo "ola3"
CECHOE="\c"
CECHOS=""
fi
}
Ao excutar a saida é a seguinte ( antes de dar erro no "do^M"):
ola1
Não mostra nem "ola2" nem "ola3", ou seja, ele não passou nem pelo if nem pelo
else. Como isto é possíl ?
Também coloquei echos antes da chamada a esta função, não aparecem.
Meu deus ! O que estou fazendo errado !
Obrigado pela ajuda !
----------------
#!/bin/sh
##############################################################################
# #
# Shell functions #
# (main script begins below) #
##############################################################################
init_cecho() {
X=`echo "Hi\c" ; echo "Hi\c"`
X1=`echo $X | grep '\\c'`
if [ ! -z "$X1" ]
then
CECHOE=""
CECHOS="-n "
else
CECHOE="\c"
CECHOS=""
fi
}
cecho() {
echo ${CECHOS}${*}${CECHOE}
}
do_warn() {
echo
echo "*** NOTE ***"
echo $LINE_ONE
echo $LINE_TWO
echo "************"
echo
}
ifx_defaults() {
FGL_FLAGS="$FGL_FLAGS -I"
FM_FLAGS="-I"
}
usr_or_group_chk() {
touch $TESTFILE
if $1 $2 $TESTFILE 2> /dev/null
then
rv=0;
else
rv=1;
fi
rm -f $TESTFILE
return $rv;
}
# Check passed list of users for valid username, return the first valid user.
usr_chk() {
USER_RET=
for i in $*
do
if usr_or_group_chk $CHOWN $i
then
USER_RET=$i
return 0
fi
done
return 1
}
# Check passed list of groups for valid name, return the first valid user.
group_chk() {
USER_RET=
for i in $*
do
if usr_or_group_chk $CHGRP $i
then
USER_RET=$i
return 0
fi
done
return 1
}
# Search the list of programs provided for a valid program either in the current
# path, or as a full path.
prog_chk() {
USER_RET=
cecho "Checking for program: `basename $1` ... "
for j in $*
do
if [ -x $j ]
then
USER_RET=$j
echo $USER_RET
return 0
fi
for i in `echo $PATH | sed 's/:/ /g'`
do
if [ -x $i/$j ]
then
USER_RET=$i/$j
echo $USER_RET
return 0
fi
done
done
echo "Not found"
return 1
}
file_chk() {
for i in $*
do
USER_RET=$i
cecho "Checking for file: `basename $i` ... "
if [ -f $i ]
then
echo $i
else
echo "Not found"
return 1
fi
done
return 0
}
env_chk() {
cecho "Checking for $1 ... "
X=`eval echo \\$$1`
if [ -z "$X" ]
then
echo " Not found"
return 1
else
echo " $X"
return 0
fi
}
dotic() {
cecho "Compiling the terminal information database. This may take some
time ... "
if [ ! -d lib/terminfo ]
then
mkdir lib/terminfo
fi
QUERIXDIR=$QXDIR
TERMINFO=$QXDIR/lib/terminfo
export QUERIXDIR TERMINFO
bin/tic etc/terminfo.src 2>/dev/null
recurse chmod 755 lib/terminfo
recurse $CHOWN $QUERIXUSR lib/terminfo
recurse $CHGRP $QUERIXGRP lib/terminfo
echo " OK"
}
recurse() {
find $3 -print | xargs $1 $2
}
doroot() {
XID=`$ID | cut -f2 -d"=" | cut -f1 -d"("`
cecho "Checking user id ..."
if [ "$XID" -ne 0 ]
then
echo "Please log in as the Superuser to install Querix\n"
exit 1
fi
echo $MESS
}
build_qfgl() {
# cecho "Building compilation utility $2 ... "
cecho "Building compilation utility q4gl ..."
(
. ./environ
cd $QXDIR/lib
# 4make $1 $2 >/dev/null 2>&1
4make q4gl >/dev/null 2>&1
# mv $2 ../bin
mv q4gl ../bin
)
echo "done"
}
dopermissions() {
# setting permissions
# hack until list_of_files is sorted out.
#if [ $NO_SETOWNER -eq 0 ]
DUMB_VAR=0
if [ $DUMB_VAR -eq 1 ]
then
XMESS=$MESS
cecho "Setting permissions, owner and group ..."
while read line
do
if [ ! -z "$line" ]
then
set $line
if [ -f $1 ]
then
chmod $2 $1 2>/dev/null
if [ "$?" -ne 0 ]
then
if [ "$XMESS" = "$MESS" ]; then echo; fi
echo "WARNING: Cannot change perms to $1, it should be $2\n"
XMESS="Could not process all files correctly"
fi
$CHOWN $QUERIXUSR $1 2>/dev/null
if [ "$?" -ne 0 ]
then
if [ "$XMESS" = "$MESS" ]; then echo; fi
echo "WARNING: Cannot change owner to $1, it should be
$QUERIXUSR"
XMESS="Could not process all files correctly"
fi
$CHGRP $QUERIXGRP $1 2>/dev/null
if [ "$?" -ne 0 ]
then
if [ "$XMESS" = "$MESS" ]; then echo; fi
echo "WARNING: Cannot change group to $1, it should be
$QUERIXGRP"
XMESS="Could not process all files correctly"
fi
fi
fi
done < list_of_files
echo "$XMESS"
fi
}
set_default_comp_flags() {
if [ "$INFORMIXCOMPAT" = "Y" ]
then
FGL_FLAGS="-I -Ig"
FM_FLAGS="-I"
fi
}
default_driver() {
# Work out LD_LIBRARY_PATH additions
if [ ! -z "$DB2DIR" ]
then
DEFAULTDRV=db2
LDLIB_EXT=$LDLIB_EXT:$DB2DIR/lib
fi
if [ ! -z "$ORACLE_HOME" ]
then
DEFAULTDRV=oracle
LDLIB_EXT=$LDLIB_EXT:$ORALIBDIR
fi
if [ ! -z "$INFORMIXDIR" ]
then
if [ -r lib/${LIB_PREFIX}informix.$SHLIBEXT ]
then
DEFAULTDRV=informix
else
DEFAULTDRV=informixqx
fi
LDLIB_EXT=$LDLIB_EXT:$INFORMIXDIR/lib:$INFORMIXDIR/lib/esql
fi
}
check_driver() {
if [ ! -f ${QXDIR}/lib/${LIB_PREFIX}$1.${SHLIBEXT} ]
then
echo "No such database driver. "
return 1
else
return 0
fi
}
installshlibs() {
(
cecho "Installing Shared libraries ... "
if [ -z "$SHAREDLIB" ]
then
echo "Not required"
else
cd lib
# Portable library copy!
tar cf - lib*.$SHLIBEXT* | (cd $SHAREDLIB; tar xf -)
echo "Done"
fi
)
}
getval() {
cecho "$1 [${2:-"Cancel"}]: "
read RETVAL
if [ -z "$RETVAL" ]
then
RETVAL=$2
fi
}
getyn() {
LOOPVAL2=0
while [ $LOOPVAL2 -eq 0 ]
do
if [ ! -z "$3" ]
then
echo $3
fi
getval "$1" "$2"
case $RETVAL in
y*|Y*)
RETVAL=Y
LOOPVAL2=1
;;
n*|N*)
RETVAL=N
LOOPVAL2=1
;;
*)
LOOPVAL2=0
;;
esac
done
}
splash_screen() {
clear
echo "Welcome to QueriX v4.0 installer"
echo
echo "Please read through the next page, and respond to the eula"
echo "question to proceed with installation"
echo
cecho "Press <return> to continue"
read RETVAL
}
show_eula() {
# warn that the eula is coming...
clear
more ${QXDIR}/etc/eula.txt 2>&1
# Fix me: doesn't show full eula (subsequent echo trashes the pipe)
echo ""
getyn "Do you accept the terms and conditions of the Eula? (Y/N)" "No"
case "$RETVAL" in
n*|N*)
echo "Installation has terminated at user request"
exit 1
;;
esac
}
install_listener() {
if [ "$INSTALLLISTENER" = "Y" ]
then
. $QUERIXDIR/environ
$QUERIXDIR/bin/install.listener
fi
}
genabstract() {
ABSTRACT=
case $1 in
ss)
ABSTRACT="Sql-Server"
;;
db2)
ABSTRACT="IBM-db2"
;;
informixqx)
ABSTRACT="Informix Querix v2/3 compatibility"
;;
informix)
ABSTRACT="Native Informix"
;;
oracle)
ABSTRACT="Oracle"
;;
esac
}
do_licensing() {
clear
echo "Step: ${STEP_NO} PRODUCT LICENSING"
echo ""
echo "You may choose to license the QueriX product now, or defer licensing
until"
echo "a later stage."
echo ""
getval "Do you wish to license now (Yes), or defer (No)?" "Defer"
case $RETVAL in
N*|n*|D*|d*)
NO_LICENSE=1
;;
Y*|y*)
NO_LICENSE=0
;;
esac
if [ $NO_LICENSE -eq 0 -a -x bin/licensegen ]
then
if [ -f ../license.dat ]
then
bin/licensegen ../license.dat
else
chmod 555 bin/lic_script.sh
QUERIXDIR=$QXDIR bin/lic_script.sh
fi
fi
}
choose_db_driver() {
LOOPVAL=0
while [ $LOOPVAL -eq 0 ]
do
clear
echo "Step: ${STEP_NO} SELECT THE DEFAULT DATABASE
DRIVER"
echo ""
echo "The current default is set as \"${DEFAULTDRV:-"unspecified"}\"."
echo ""
cecho ${AWK_DATABASES} | ${AWK} 'BEGIN {RS=":"; FS="/"; } { printf("%d)
%s\n",NR,$1); }'
echo ""
echo "C) continue"
echo
getval "Enter number to select driver as default" "${DEFAULTDRV}"
case $RETVAL in
[0-9])
X=`echo ${RETVAL}:${AVAIL_DRIVERS} | ${AWK} 'BEGIN { RS=":";
FS="/"; d_rec=0 } { if(int(NR)==1) { d_rec=$1 } else if(int(NR)==int(d_rec+1))
{ print $1 } }'`
if [ ! -z "${X}" ]
then
# check against numeric code
if check_driver ${X}
then
DEFAULTDRV=${X}
LOOPVAL=1
fi
fi
;;
C|c)
LOOPVAL=1
;;
*)
if check_driver $RETVAL
then
DEFAULTDRV=$RETVAL
LOOPVAL=1
fi
# lookup against known drivers
;;
esac
done
}
get_default_driver() {
AVAIL_DRIVERS=
AWK_DATABASES=
# build list of available drivers:
for i in `ls $QXDIR/lib/${LIB_PREFIX}*.${SHLIBEXT} | grep -v
'd\.${SHLIBEXT}'`
do
X=`basename ${i} .${SHLIBEXT} | sed 's/moddb//g'`
if [ ${X} != "default" ]
then
ABSTRACT=
genabstract ${X}
if [ -z "${ABSTRACT}" ]
then
continue
fi
AVAIL_DRIVERS="${X}:${AVAIL_DRIVERS:+"${AVAIL_DRIVERS}"}"
AWK_DATABASES="${ABSTRACT}:${AWK_DATABASES:+"${AWK_DATABASES}"}"
fi
done
choose_db_driver
}
getdir() {
LOOPVAL2=0
while [ $LOOPVAL2 -eq 0 ]
do
getval "$1" "Default"
LOOPVAL2=0
if [ -z "$RETVAL" ]
then
# in-ideal condition, but I'll call this 'drop-out'
return $FALSE
fi
if [ $RETVAL = "Default" ]
then
RETVAL=
return $FALSE
fi
if [ -d "$RETVAL" ]
then
LOOPVAL2=1
else
echo "Directory ${RETVAL} doesn't exist"
fi
done
return $TRUE
}
get_shared_lib_dir() {
clear
echo "Step: ${STEP_NO} SHARED LIBRARY LOCATION"
echo
echo "Querix v4.x compilers utilise dynamic libraries as runtime
dependencies"
echo "for compiled applications. These libraries may be stored in a system"
echo "directory. If you wish to specify the location in which to install
these"
echo "libraries, then please specify the directory here."
echo ""
echo "If you are unsure about this option, then it is recommended that you
continue"
echo "with the default location"
echo ""
echo "The default directory is currently set as:"
echo "Location: \"${SHAREDLIB:-"${QXDIR}/lib"}\"."
echo ""
if getdir "Enter location for shared libraries"
then
SHAREDLIB=$RETVAL
fi
}
get_install_type() {
if [ "$NO_ROOT" -eq 0 ]
then
GUI_YN="Y"
else
GUI_YN="N"
fi
DEV_YN="Y"
DOCS_YN="Y"
LOOPVAL=0
while [ $LOOPVAL -eq 0 ]
do
clear
echo "Step: ${STEP_NO} INSTALL TYPE"
echo ""
echo "Select the installation type required:"
echo ""
echo "1) Development (installs full compiler) ${DEV_YN}"
echo "2) Gui Server ${GUI_YN}"
echo ""
echo "*) Product Documentation (always installed) ${DOCS_YN}"
echo "*) Runtime components (always installed) Y"
echo ""
echo "C) Continue installation"
echo ""
getval "Enter the code for the required options" "Continue"
case $RETVAL in
"1")
if [ "$DEV_YN" = "Y" ]
then
DEV_YN=N
else
DEV_YN=Y
fi
# dev install on/off
;;
"2")
if [ "$NO_ROOT" -eq 0 ]
then
if [ "$GUI_YN" = "Y" ]
then
GUI_YN=N
else
GUI_YN=Y
fi
# GUI server on/off
fi
;;
c*|C*)
# continue
LOOPVAL=1
;;
esac
# update installer vars.
done
if [ "$GUI_YN" = "Y" ]
then
INSTALLLISTENER=Y
fi
if [ "$DOCS_YN" = "Y" ]
then
INSTALLDOCS=Y
fi
if [ "$DEV_YN" = "Y" ]
then
# dev/runtime
RUNTIME=0
else
RUNTIME=1
fi
}
usr_group_ok() {
if [ -z "$QUERIXGRP" ]
then
return $TRUE
fi
if [ -z "$QUERIXUSR" ]
then
return $TRUE
fi
return $FALSE
}
environ_prompt() {
if [ $NO_ROOT -eq 0 ]
then
clear
echo "Key environment settings have been written to the file:"
echo "${QXDIR}/environ"
echo ""
echo "The installer can now include this script in your system profile"
echo ""
getyn "Would you like to add these settings to the system profile?" "No"
# this is wrong. Some systems will not note any 'path' settings in the
# system profile. Fix me.
if [ "$RETVAL" = "Y" ]
then
echo ". ${QXDIR}/environ" >> /etc/profile
fi
fi
}
get_user() {
if [ $NO_USER -eq 0 ]
then
if [ $NO_SETOWNER -eq 0 ]
then
LOOPVAL=0
while [ $LOOPVAL -eq 0 ]
do
if usr_chk $QUERIXUSR querix informix oracle
then
QUERIXUSR=$USER_RET
else
QUERIXUSR=
fi
if group_chk $QUERIXGRP querix informix oracle
then
QUERIXGRP=$USER_RET
else
QUERIXGRP=
fi
clear
echo "Step: ${STEP_NO} Software Owner/Group"
echo ""
echo "The Querix Hydra compiler requires a user/group as an owner
of the product."
echo "The user/group is currently set as:"
echo ""
echo "1) Change User: ${QUERIXUSR:-unset}"
echo "2) Change Group: ${QUERIXGRP:-unset}"
echo ""
if usr_group_ok
then
echo "C) Continue"
DEFAULT="Continue"
else
DEFAULT=${QUERIXUSR:-1}
if [ "$DEFAULT" != "1" ]
then
DEFAULT="2"
fi
fi
echo ""
getval "Select option" "$DEFAULT"
case "$RETVAL" in
1)
getval "Please enter new user" "${QUERIXUSR:-none}"
QUERIXUSR=$RETVAL
;;
2)
getval "Please enter new group" "${QUERIXGRP:-none}"
QUERIXGRP=$RETVAL
;;
C*|c*)
if usr_group_ok
then
LOOPVAL=1
fi
;;
esac
done
fi
fi
}
show_settings() {
clear
echo "Step: ${STEP_NO} CONFIRM INSTALLATION"
echo ""
echo "You have chosen to install with the following settings:"
echo ""
echo "Default database driver: ${DEFAULTDRV}"
echo "Shared lib directory: ${SHAREDLIB:-"${QXDIR}/lib"}"
echo "Install GUI listener: ${GUI_YN}"
echo "Install Documentation: ${DOCS_YN}"
echo ""
if [ $DEV_YN = "Y" ]
then
INSTALL_TYPE="Development"
else
INSTALL_TYPE="Runtime"
fi
echo "Install type: ${INSTALL_TYPE}"
echo ""
echo "You can abort installation now by pressing 'A' <return>"
getval "Proceed with installation? (Y/A)" "Continue"
case $RETVAL in
a*|A*|n*|N*)
echo "Terminating installation"
exit 0
;;
esac
}
end_screen() {
clear
echo "Step: ${STEP_NO} INSTALLATION COMPLETE"
echo ""
echo "The QueriX product has been installed successfully."
}
TESTFILE=/tmp/qxinst.$$
USER_RET=
MESS=" OK"
NO_LICENSE=0
NO_ROOT=0
NO_USER=0
NO_SETOWNER=0
NO_TIC=0
NO_ENVIRON=0
ONLINE=0
ORACLE_SHARED=1
ORA_LIBDIR=lib
SHARED=0
RUNTIME=0
SHLIBEXT=so
FGL_FLAGS=
FM_FLAGS=
UNAME_FLG=-a
DEFAULTDRV=
SHAREDLIB=
LDLIB_EXT=
INFORMIXCOMPAT=Y
INSTALLDOCS=Y
INSTALLLISTENER=N
TESTCONN=N
USE_NCURSES=
ID=id
CHOWN=chown
CHGRP=chgrp
DYNAMIC_FLAG=
LIBLTDL_FLAG=
# Initialize cecho command
init_cecho
if prog_chk $AWK gawk nawk awk
then
AWK=$USER_RET
else
echo "I can't locate the program AWK on your system. This standard system
utility"
echo "is used by a number of standard QueriX programs. If AWK is installed
on"
echo "an unusual place on your system define the environment variable AWK to"
echo "point to it: "
echo "AWK=<path-to-awk-program> $0"
exit 1
fi
# Work out the platform
SHLIBVAR=LD_LIBRARY_PATH
LIB_PREFIX=moddb
ORALIBDIR=$ORACLE_HOME/lib
## LIBPATHEXTRA should contan system dependant path location where essensial
shared lib are located
case `uname -s` in
*AIX*)
BUILD_TYPE=build
SHLIBEXT=so
SHLIBVAR=LIBPATH
LIBPATHEXTRA=/usr/lib:/usr/local/lib
if [ -d $ORACLE_HOME/lib32 ]
then
ORALIBDIR=$ORACLE_HOME/lib32
fi
;;
*SunOS*) # s64/s86/sun
BUILD_TYPE=build
USE_NCURSES=1
X=`grep S64LIBS lib/Makedef`
if [ ! -z "${X}" ]
then
SHLIBEXT=a
else
if [ -d $ORACLE_HOME/lib32 ]
then
ORALIBDIR=$ORACLE_HOME/lib32
fi
fi
;;
*Linux*)
BUILD_TYPE=build
;;
*HP-UX*)
USE_NCURSES=1
BUILD_TYPE=build
SHLIBEXT=sl
SHLIBVAR=SHLIB_PATH
if [ -d $ORACLE_HOME/lib32 ]
then
ORALIBDIR=$ORACLE_HOME/lib32
fi
;;
*OSF1*) # DEC Alpha
USE_NCURSES=1
BUILD_TYPE=build
;;
*IRIX*)
BUILD_TYPE=build_static
;;
*dgux*)
BUILD_TYPE=build_static
;;
*UNIX_SV*) # NCR
BUILD_TYPE=build_static
;;
*SCO_SV*) # OpenServer
DYNAMIC_FLAG=-Bdynamic
ID=/usr/bin/id
CHGRP=/bin/chgrp
CHOWN=/bin/chown
USE_NCURSES=1
BUILD_TYPE=build_static
UNAME_FLG=-X
;;
*UnixWare*)
if [ -z "$QXMAKE" ]
then
QXMAKE=$QUERIXDIR/bin/gmake
fi
BUILD_TYPE=build_static
SHLIBEXT=so
LIBLTDL_FLAG=-lltdl
USE_NCURSES=1
;;
*) # unknown - default
BUILD_TYPE=build
;;
esac
# Get default driver this may be overriden by input args
default_driver
# Process the input args
#
set_db=0
for i in $*
do
if [ $set_db -eq 1 ]
then
if check_driver $DEFAULTDRV
then
DEFAULTDRV=$i
fi
set_db=0
else
case $i in
--default-driver | -dd)
set_db=1;
;;
--no-user | -nu)
NO_USER=1
;;
--no-root | -nr)
NO_ROOT=1
;;
--no-license | -nl)
NO_LICENSE=1
;;
--relink | -relink)
NO_ROOT=1
NO_USER=1
NO_LICENSE=1
NO_SETOWNER=1
NO_TIC=1
NO_ENVIRON=1
;;
--no-setowner | -no)
NO_SETOWNER=1
;;
--no-tic | --nt)
NO_TIC=1;
;;
--no-environ | -ne)
NO_ENVIRON=1
;;
--oracle_shared | -os)
ORACLE_SHARED=2
;;
--no_oracle_shared | -nos)
ORACLE_SHARED=0
;;
--shared | -s)
SHARED=1
;;
--runtime | -rt)
RUNTIME=1
NO_LICENSE=1
;;
*=*)
echo $i | $AWK -F= '{printf "%s set to %s\n",$1,$2}'
eval `echo $i | $AWK -F= '{printf "export %s",$1}'`
;;
esac
fi
done
# Work out the full path to this distribution and CD to it.
if echo $0 | grep '^/' > /dev/null
then
QXDIR=`dirname $0`
else
QXDIR=`pwd`/`dirname $0`
fi
cd $QXDIR
# check root id
if [ $NO_ROOT -eq 0 ]
then
doroot
fi
if [ $NO_ROOT -eq 1 ]
then
A=`id | sed 's/[^(]*(\([^)]*\))[^(]*(\([^)]*\)).*/\1 \2/'`
if [ -z "$QUERIXUSR" ]
then
QUERIXUSR=`echo $A | awk '{print $1}'`
fi
if [ -z "$QUERIXGRP" ]
then
QUERIXGRP=`echo $A | awk '{print $2}'`
fi
export QUERIXUSR QUERIXGRP
fi
check_compiler() {
if [ $NO_ENVIRON -eq 0 ]
then
if prog_chk $CC "cc" "gcc" "c89"
then
QXCC=$USER_RET
else
LINE_ONE="The install script cannot find a 'C' compiler anywhere in
your PATH."
LINE_TWO="A 'C' compiler is required to work with the QueriX
product."
do_warn
LOOP_VAL=0
QXCC=/usr/bin/cc
while [ $LOOP_VAL -eq 0 ]
do
cecho "Please enter the location of your C compiler[exit]:"
read QXCC
if [ -z "$QXCC" ]
then
exit 1
fi
if prog_chk $QXCC
then
LOOP_VAL=1
else
LOOP_VAL=0
fi
done
fi
fi
if [ $NO_ENVIRON -eq 0 ]
then
if prog_chk $MAKE "gmake" "make"
then
QXMAKE=$USER_RET
else
LINE_ONE="The install script cannot find a make program anywhere in
your PATH."
LINE_TWO="A make program is required to work with the QueriX
product."
do_warn
fi
fi
}
do_install() {
if [ "$RUNTIME" -eq 0 ]
then
check_compiler
fi
(cd lib;
rm -f ${LIB_PREFIX}default.$SHLIBEXT
rm -f ${LIB_PREFIX}defaultd.$SHLIBEXT
ln -sf ${LIB_PREFIX}${DEFAULTDRV}.${SHLIBEXT}
${LIB_PREFIX}default.$SHLIBEXT
ln -sf ${LIB_PREFIX}${DEFAULTDRV}d.${SHLIBEXT}
${LIB_PREFIX}defaultd.$SHLIBEXT
)
installshlibs
if [ $NO_ENVIRON -eq 0 ]
then
cecho "Updating the Environment Script... "
set_default_comp_flags
# Update the environ script
exports="QUERIXDIR PATH MSGPATH QXCC QXAWK QXMAKE ${SHLIBVAR} FMFLAGS
FGLFLAGS"
echo QUERIXDIR=$QXDIR > environ.tmp
echo PATH=\$PATH:\$QUERIXDIR/bin >> environ.tmp
echo MSGPATH=\$QUERIXDIR/msg >> environ.tmp
echo QXCC=$QXCC >> environ.tmp
echo QXAWK=$AWK >> environ.tmp
echo QXMAKE=$QXMAKE >> environ.tmp
if [ ! -z "$SQLENGINE" ]
then
echo SQLEXEC=$SQLENGINE >> environ.tmp
echo SQLENGINE=\$SQLEXEC >> environ.tmp
exports="$exports SQLEXEC SQLENGINE"
fi
echo FGLFLAGS=\"$FGL_FLAGS\" >> environ.tmp
echo FMFLAGS=\"$FM_FLAGS\" >> environ.tmp
echo ${SHLIBVAR}="\$${SHLIBVAR}:\$QUERIXDIR/lib$LDLIB_EXT" >>
environ.tmp
echo ${SHLIBVAR}="\$${SHLIBVAR}:$LIBPATHEXTRA" >> environ.tmp
echo export $exports >> environ.tmp
mv -f environ.tmp environ
# Create cenviron from environ
$AWK '{ if(split($0,a,"=")==2) { if(a[1]=="PATH") { split(a[2],b,":")
; printf "set path=($path %s)\n",b[2]; } else printf "setenv %s
%s\n",a[1],a[2]; }} ' environ > cenviron
echo $MESS
clear
fi
build_qfgl
#Create shell script to run QxDev2
devexports="QUERIXDIR PATH LD_LIBRARY_PATH"
echo #!/bin/sh > qxdev2.tmp
echo "QUERIXDIR=$QXDIR" >> qxdev2.tmp
echo "DISPLAY=\${DISPLAY:-\`uname -n\`:0} ; export DISPLAY" >> qxdev2.tmp
echo "PATH=\$PATH:\$QUERIXDIR/bin:\$QUERIXDIR/dstudio" >> qxdev2.tmp
echo
"${SHLIBVAR}=\"\$${SHLIBVAR}:\$QUERIXDIR/dstudio:\$QUERIXDIR/lib$LDLIB_EXT:/usr/local/lib:/usr/lib\""
>> qxdev2.tmp
if [ ! -z "$ORACLE_HOME" ]
then
echo ORACLE_HOME="$ORACLE_HOME" >> qxdev2.tmp
devexports="$devexports ORACLE_HOME"
fi
if [ ! -z "$DB2DIR" ]
then
echo DB2DIR="$DB2DIR" >> qxdev2.tmp
devexports="$devexports DB2DIR"
fi
if [ ! -z "$INFORMIXDIR" ]
then
echo INFORMIXDIR="$INFORMIXDIR" >> qxdev2.tmp
devexports="$devexports INFORMIXDIR"
fi
echo export $devexports >> qxdev2.tmp
echo "$QXDIR/dstudio/qxdev2 &" >> qxdev2.tmp
chmod 755 qxdev2.tmp
mv qxdev2.tmp $QXDIR/bin/dstudio
# set dynamic markers in .env files
( cd dstudio
for i in *.base
do
echo "QUERIXDIR=${QXDIR}" > `basename $i .base`.env
cat $i >> `basename $i .base`.env
done
cd ..
)
#Create the unix.env file for QxDev2
# echo QUERIXDIR=$QXDIR > unixenv.tmp
# echo "MSGC=\"\$(QUERIXDIR)/bin/msgc\"" >> unixenv.tmp
# echo "FGLC=\"\$(QUERIXDIR)/bin/fglc\"" >> unixenv.tmp
# echo "FMPC=\"\$(QUERIXDIR)/bin/fmpc\"" >> unixenv.tmp
# echo "CC=cc" >> unixenv.tmp
# echo "LD=ld" >> unixenv.tmp
# echo "DFLAG=-D" >> unixenv.tmp
# echo "INCLUDES=-I\"\$(QUERIXDIR)/incl\"" >> unixenv.tmp
# echo "CFLAGS=${DYNAMIC_FLAG} -DUSE_STMT_CACHE -DBINDQUANTUM=128 -DCOMPRESS
-DRUNTIMELIC -O \$(INCLUDES)" >> unixenv.tmp
# echo "BASE_LIBS=\$(LINK_OPTS)" >> unixenv.tmp
# echo "FGL_LIBS=\"-L\$(QUERIXDIR)/lib\" \"-lfgl\"" >> unixenv.tmp
# echo "DEBUG_FGL_LIBS=\"-L\$(QUERIXDIR)/lib\" \"-lfgld\"" >> unixenv.tmp
# echo "SQL_LIB=\"-L\$(QUERIXDIR)/lib\" \"-lsqlc\"" >> unixenv.tmp
# echo "DEBUG_SQL_LIB=\"-L\$(QUERIXDIR)/lib\" \"-lsqlcd\"" >> unixenv.tmp
# echo "QX_LIBS=${DYNAMIC_FLAG} \$(FGL_LIBS) \$(SQL_LIB) ${LIBLTDL_FLAG} "
>> unixenv.tmp
# echo "QX_LIBS_DEBUG=${DYNAMIC_FLAG} \$(DEBUG_FGL_LIBS) \$(DEBUG_SQL_LIB)
${LIBLTDL_FLAG} " >> unixenv.tmp
# mv unixenv.tmp $QXDIR/dstudio/unix.env
#Create the demo qx2/df2 files...
DEMODIR=${QXDIR}/demo/football
cat > ${DEMODIR}/football.qx2 <<EOF
Project Name:Simple Demo
Project Dir:${DEMODIR}
Editor:
Fglc Options:
Fmpc Options:
Link Options:
Oracle Dir:
Querix Dir:${QXDIR}
NAME:demo.df2
EOF
cat > ${DEMODIR}/demo.df2 <<EOF
TARGET="demo"
SOURCES="globals.4gl" "main.4gl" "team.4gl" "cfuncs.c"
FORMS="table_form.per" "f_fixtures.per"
EOF
DEMODIR=${QXDIR}/demo/login
cat > ${DEMODIR}/login.qx2 <<EOF
Project Name:Simple Login Demo
Project Dir:${DEMODIR}
Editor:
Fglc Options:
Fmpc Options:
Link Options:
Oracle Dir:
Querix Dir:${QXDIR}
NAME:login.df2
EOF
cat > ${DEMODIR}/login.df2 <<EOF
TARGET="login"
SOURCES="login.4gl" "login1.c"
FORMS="login.per"
EOF
# Terminfo
if [ ! -z "$USE_NCURSES" ]
then
dotic
fi
dopermissions
RESPONSE=N
echo
QUERIXDIR=$QXDIR
export QUERIXDIR
if [ "$TESTCONN" = "Y" ]
then
. $QUERIXDIR/environ
$QUERIXDIR/bin/testdb.sh
fi
echo "You can test database connectivity at a later stage, by running the
script: "
echo "$QUERIXDIR/bin/testdb.sh"
}
#evaluate install type...
#oh - we are in $QXDIR
IFX_INSTALL=0
ORA_INSTALL=0
#if [ -r lib/libsqli.a ]
#then
# IFX_INSTALL=1
#fi
#if [ -r lib/libsqlo.a ]
#then
# ORA_INSTALL=1
#fi
LOOPVAL=0
INSTALLLISTENER=Y
splash_screen
show_eula
STEP_NO=2
get_user
STEP_NO=3
get_shared_lib_dir
STEP_NO=4
get_default_driver
STEP_NO=5
get_install_type
STEP_NO=6
show_settings
STEP_NO=7
do_install
STEP_NO=8
environ_prompt
STEP_NO=9
if [ "$INSTALLLISTENER" = "Y" ]
then
install_listener
STEP_NO=10
fi
do_licensing
STEP_NO=11
end_screen
exit 0
Atenciosamente
Jorge Robert
____________________________________________________________
Obtenha seu Serviço de Correio eletrônico Baseado na Web Service em
http://www.zzn.com