142 lines
2.7 KiB
Plaintext
Executable File
142 lines
2.7 KiB
Plaintext
Executable File
XCOMM!KORNSHELL
|
|
XCOMM
|
|
XCOMM dtopen - provide an interface for some useful applications.
|
|
XCOMM
|
|
XCOMM #############################################################
|
|
XCOMM #set -x # uncomment for debugging
|
|
XCOMM ###############################################################
|
|
XCOMM Init
|
|
|
|
DTOPEN="dtopen" # Identity crisis
|
|
APPNAME="$(basename "$0")" # the app to locate/run
|
|
|
|
XCOMM apps to look for, given an action (based on APPNAME - see MAIN)
|
|
|
|
XCOMM image viewing
|
|
if [ -z "$DTOPEN_VIMAGE" ]
|
|
then
|
|
VIMAGE="xv display gimp"
|
|
else
|
|
VIMAGE="$DTOPEN_VIMAGE"
|
|
fi
|
|
|
|
XCOMM video viewing
|
|
if [ -z "$DTOPEN_VVIDEO" ]
|
|
then
|
|
VVIDEO="vlc ffplay"
|
|
else
|
|
VVIDEO="$DTOPEN_VVIDEO"
|
|
fi
|
|
|
|
XCOMM postscript viewing
|
|
if [ -z "$DTOPEN_VPS" ]
|
|
then
|
|
VPS="mgv gv"
|
|
else
|
|
VPS="$DTOPEN_VPS"
|
|
fi
|
|
|
|
XCOMM PDF viewing
|
|
if [ -z "$DTOPEN_VPDF" ]
|
|
then
|
|
VPDF="okular xpdf"
|
|
else
|
|
VPDF="$DTOPEN_VPDF"
|
|
fi
|
|
|
|
XCOMM ##############################################################
|
|
XCOMM ## Utility Functions
|
|
|
|
XCOMM ## Find the path of a program
|
|
FindProg()
|
|
{
|
|
XCOMM FindProg "program"
|
|
XCOMM - returns full path, or ""
|
|
|
|
whence "$1"
|
|
|
|
return 0
|
|
}
|
|
|
|
XCOMM ## Show an error message
|
|
ErrorMsg()
|
|
{
|
|
XCOMM ErrorMsg "Title "Message" ["OK"]
|
|
XCOMM use dterror.ds to display it...
|
|
|
|
if [ -z "$3" ]
|
|
then # default to 'OK'
|
|
OKM="OK"
|
|
else
|
|
OKM="$3"
|
|
fi
|
|
|
|
CDE_INSTALLATION_TOP/bin/dterror.ds "$2" "$1" "$OKM"
|
|
|
|
return 0
|
|
}
|
|
|
|
XCOMM ## do a simple command
|
|
DoSimpleCmd()
|
|
{
|
|
XCOMM DoSimpleCmd "commands" args
|
|
|
|
didone=0
|
|
cmds="$1"
|
|
shift
|
|
args="$*"
|
|
|
|
for i in $cmds
|
|
do
|
|
thecmd="$(FindProg "$i")"
|
|
|
|
if [ ! -z "$thecmd" ]
|
|
then # it's there
|
|
$thecmd "$args"
|
|
didone=1
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ $didone -eq 0 ]
|
|
then # couldn't find a viewer
|
|
ErrorMsg "Helper not found" \
|
|
"${DTOPEN}: Could not find any of the following\ncommands for this file type:\n\n$cmds"
|
|
fi
|
|
|
|
return 0
|
|
}
|
|
|
|
|
|
XCOMM ##################################################################
|
|
XCOMM ## MAIN
|
|
|
|
XCOMM # We'll just look at our args and decide what to do...
|
|
|
|
XCOMM # Commands we'll recognize
|
|
|
|
COMMANDS="dtopen_image dtopen_pdf dtopen_ps dtopen_video"
|
|
|
|
case $APPNAME in
|
|
dtopen_image)
|
|
DoSimpleCmd "$VIMAGE" "$*"
|
|
;;
|
|
dtopen_pdf)
|
|
DoSimpleCmd "$VPDF" "$*"
|
|
;;
|
|
dtopen_ps)
|
|
DoSimpleCmd "$VPS" "$*"
|
|
;;
|
|
dtopen_video)
|
|
DoSimpleCmd "$VVIDEO" "$*"
|
|
;;
|
|
*)
|
|
XCOMM Unknown
|
|
ErrorMsg "${DTOPEN}: Unknown Helper Application" \
|
|
"\"$APPNAME\" is not a recognized Helper Application. \nKnown Helper Applications are:\n\n$COMMANDS"
|
|
;;
|
|
esac
|
|
|
|
XCOMM # Fini
|
|
exit 0
|