175 lines
3.4 KiB
Bash
Executable File
175 lines
3.4 KiB
Bash
Executable File
#!/bin/sh
|
|
#
|
|
# BEGIN COPYRIGHT BLOCK
|
|
# This Program is free software; you can redistribute it and/or modify it under
|
|
# the terms of the GNU General Public License as published by the Free Software
|
|
# Foundation; version 2 of the License.
|
|
#
|
|
# 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 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., 59 Temple
|
|
# Place, Suite 330, Boston, MA 02111-1307 USA.
|
|
#
|
|
# Copyright (C) 2005 Red Hat, Inc.
|
|
# All rights reserved.
|
|
# END COPYRIGHT BLOCK
|
|
|
|
|
|
DO_FORCEMODE="false"
|
|
DO_SHOW_VERSION="false"
|
|
ESC_ARGS=
|
|
|
|
|
|
ESC_PROFILE_BASE=~/.redhat/esc
|
|
ESC_LOG_FILE=esc.log
|
|
|
|
ESC_PATH=$LIBDIR/esc-1.1.1
|
|
ESC_BIN_PATH=/usr/bin
|
|
ESC_EXEC=esc
|
|
ESCD_EXEC=escd
|
|
|
|
ESC_BIN=$ESC_PATH/xulrunner/xulrunner-bin
|
|
ESCD_BIN=./$ESCD_EXEC
|
|
|
|
LAST_PROG_PID=0
|
|
SIGUSR1=10
|
|
|
|
FORCE_START_ESC=
|
|
|
|
XPTI_DAT=xpti.dat
|
|
COMPREG_DAT=compreg.dat
|
|
LOCK_FILE=lock
|
|
PARENT_LOCK_FILE=.parentlock
|
|
|
|
export OPENSC_CONF=$ESC_PATH/opensc.esc.conf
|
|
|
|
function isProgRunning {
|
|
|
|
userID=$(whoami)
|
|
isProgRunning=$(pgrep -U $userID -f $1)
|
|
if [ $isProgRunning ];
|
|
then
|
|
LAST_PROG_PID=$isProgRunning
|
|
return 0
|
|
fi
|
|
LAST_PROG_PID=0
|
|
return 1
|
|
}
|
|
|
|
function removeFile {
|
|
|
|
rm -f $1
|
|
}
|
|
|
|
function cleanupProfile {
|
|
|
|
removeFile $ESC_PROFILE_BASE/*default/$XPTI_DAT
|
|
removeFile $ESC_PROFILE_BASE/*default/$COMPREG_DAT
|
|
removeFile $ESC_PROFILE_BASE/*default/$LOCK_FILE
|
|
removeFile $ESC_PROFILE_BASE/*default/$PARENT_LOCK_FILE
|
|
|
|
}
|
|
|
|
function processArgs {
|
|
|
|
for arg in $1
|
|
do
|
|
|
|
#echo "theArg: $arg"
|
|
if [ $arg == "forceStartESC" ]
|
|
then
|
|
#echo "Do force mode!"
|
|
FORCE_START_ESC="true"
|
|
fi
|
|
|
|
if [ $arg == "keyInserted" ]
|
|
then
|
|
FORCE_START_ESC="true"
|
|
fi
|
|
|
|
if [ $arg == "-version" ]
|
|
then
|
|
#echo "Do show version!"
|
|
DO_SHOW_VERSION="true"
|
|
fi
|
|
done
|
|
}
|
|
|
|
|
|
processArgs $*
|
|
|
|
if [ ! -d $ESC_PROFILE_BASE ]
|
|
then
|
|
mkdir -p $ESC_PROFILE_BASE
|
|
fi
|
|
|
|
cd $ESC_PATH
|
|
|
|
#First check if we just want the version
|
|
|
|
if [ $DO_SHOW_VERSION == "true" ]
|
|
then
|
|
#echo "try to run the version command!"
|
|
ESC_ARGS="-version"
|
|
./$ESC_EXEC $ESC_ARGS
|
|
exit 0
|
|
fi
|
|
|
|
# Start up the daemon if it is not running
|
|
|
|
isProgRunning $ESCD_BIN
|
|
|
|
if [ $LAST_PROG_PID -gt 0 ]
|
|
then
|
|
false
|
|
#echo "escd already running."
|
|
else
|
|
#echo "escd not running start."
|
|
cleanupProfile
|
|
./$ESCD_EXEC --key_Inserted=\"/usr/bin/esc\" --on_Signal=\"/usr/bin/esc\"
|
|
exit 0
|
|
fi
|
|
|
|
# Now check to see if we wer signaled from the daemon
|
|
|
|
if [ $FORCE_START_ESC ]
|
|
then
|
|
#echo "force start esc."
|
|
|
|
#Check to see if esc is already running
|
|
|
|
isProgRunning $ESC_BIN
|
|
if [ $LAST_PROG_PID -gt 0 ]
|
|
then
|
|
#echo "attempting a force start but already running ... exit."
|
|
exit 0
|
|
fi
|
|
#echo "force start esc not running start esc..."
|
|
./$ESC_EXEC
|
|
exit 0
|
|
fi
|
|
|
|
isProgRunning $ESC_BIN
|
|
|
|
if [ $LAST_PROG_PID -gt 0 ]
|
|
then
|
|
#echo "esc already running."
|
|
./$ESC_EXEC
|
|
exit 0
|
|
else
|
|
#echo "esc not already running start up and bring up window."
|
|
./$ESC_EXEC &
|
|
sleep 4
|
|
#echo "done sleeping bring up esc window."
|
|
./$ESC_EXEC
|
|
exit 0
|
|
fi
|
|
|
|
exit 0
|
|
|
|
|
|
|