diff --git a/cde/databases/CDE-RUN.udb b/cde/databases/CDE-RUN.udb index ffb43d8e4..73aae6208 100644 --- a/cde/databases/CDE-RUN.udb +++ b/cde/databases/CDE-RUN.udb @@ -1750,3 +1750,42 @@ programs/localized/ja_JP.dt-eucJP/dtsr/jpn.knj { default install_target = /usr/dt/infolib/etc/ja_JP.EUC-JP/dtsr/jpn.knj } +# +#>>----------------------------- +# +# dtapp entries +# +#<<----------------------------- +# +# +programs/dtapp/dtapp +{ default + install_target = /usr/dt/bin/dtapp + mode = 0555 +} +# Now the dtapp symlinks +./dtapp +{ default + install_target = /usr/dt/bin/dtapp_vimage + type = sym_link +} +./dtapp +{ default + install_target = /usr/dt/bin/dtapp_vweb + type = sym_link +} +./dtapp +{ default + install_target = /usr/dt/bin/dtapp_vpdf + type = sym_link +} +./dtapp +{ default + install_target = /usr/dt/bin/dtapp_vps + type = sym_link +} +./dtapp +{ default + install_target = /usr/dt/bin/dtapp_vvideo + type = sym_link +} diff --git a/cde/programs/Imakefile b/cde/programs/Imakefile index f85b6ff1d..f0506c974 100644 --- a/cde/programs/Imakefile +++ b/cde/programs/Imakefile @@ -5,7 +5,7 @@ XCOMM $XConsortium: Imakefile /main/17 1996/10/06 17:13:20 rws $ #if UseNSGMLS NSGMLSDIR = nsgmls #endif -EXTRADIRS = types localized tttypes $(NSGMLSDIR) util +EXTRADIRS = types localized tttypes $(NSGMLSDIR) util dtapp XCOMM some of these cannot be built on linux yet. XCOMM dtinfo diff --git a/cde/programs/dtapp/Imakefile b/cde/programs/dtapp/Imakefile new file mode 100644 index 000000000..571b9dbf5 --- /dev/null +++ b/cde/programs/dtapp/Imakefile @@ -0,0 +1,13 @@ +XCOMM make dtapp fro dtapp.src +#define PassCDebugFlags + +AllTarget(dtapp) + +LOCAL_CPP_DEFINES = -DCDE_INSTALLATION_TOP=$(CDE_INSTALLATION_TOP) \ + -DCDE_CONFIGURATION_TOP=$(CDE_CONFIGURATION_TOP) \ + -DCDE_LOGFILES_TOP=$(CDE_LOGFILES_TOP) + +CppScriptTarget(dtapp,dtapp.src,$(LOCAL_CPP_DEFINES),) + +depend:: + diff --git a/cde/programs/dtapp/dtapp.src b/cde/programs/dtapp/dtapp.src new file mode 100755 index 000000000..02a94e915 --- /dev/null +++ b/cde/programs/dtapp/dtapp.src @@ -0,0 +1,204 @@ +XCOMM!/bin/ksh +XCOMM +XCOMM dtapp - provide an interface for some useful applications. +XCOMM +XCOMM ############################################################# +XCOMM #set -x # uncomment for debugging +XCOMM ############################################################### +XCOMM Init + +DTAPP="dtapp" # 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 "$DTAPP_VIMAGE" ] +then + VIMAGE="xv display gimp" +else + VIMAGE="$DTAPP_VIMAGE" +fi + +XCOMM video viewing +if [ -z "$DTAPP_VVIDEO" ] +then + VVIDEO="mplayer vlc ffplay" +else + VVIDEO="$DTAPP_VVIDEO" +fi + +XCOMM web (html) viewing +if [ -z "$DTAPP_VWEB" ] +then + VWEB="firefox chrome chromium-browser lynx" +else + VWEB="$DTAPP_VWEB" +fi + +XCOMM postscript viewing +if [ -z "$DTAPP_VPS" ] +then + VPS="gv" +else + VPS="$DTAPP_VPS" +fi + +XCOMM PDF viewing +if [ -z "$DTAPP_VPDF" ] +then + VPDF="okular xpdf" +else + VPDF="$DTAPP_VPDF" +fi + +XCOMM ############################################################## +XCOMM ## Utility Functions + +XCOMM ## Find the path of a program +FindProg() +{ + # FindProg "program" + # - returns full path, or "" + + whence $1 + + return 0 +} + +XCOMM ## Show an error message +ErrorMsg() +{ + # ErrorMsg "Title "Message" ["OK"] + # 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() +{ + # 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 $* + didone=1 + break + fi + done + + if [ $didone -eq 0 ] + then # couldn't find a viewer + ErrorMsg "Helper not found" \ + "${DTAPP}: Could not find any of the following\ncommands for this file type:\n\n$cmds" + fi + + return 0 +} + + +XCOMM ############################################################### +XCOMM ### Actions + +XCOMM ## Web browsing +DoWeb() +{ + # DoWeb [[arg] ...] + + didone=0 + url="$1" + + for i in $VWEB + do + thecmd="$(FindProg $i)" + + if [ ! -z "$thecmd" ] + then # it's there + + # We'll do special things for lynx, + # else we'll just call whatever is available, and + # hope it's X aware... + + case $i in + lynx) + # start a dtterm + CDE_INSTALLATION_TOP/bin/dtterm -e $thecmd $url + didone=1 + ;; + *) + # any others + $thecmd $url + didone=1 + ;; + esac + + if [ $didone -eq 1 ] + then + break + fi + fi + done + + if [ $didone -eq 0 ] + then # couldn't find a viewer + ErrorMsg "Helper not found" \ + "${DTAPP}: Could not find any of the following\nweb browsers:\n\n$VWEB" + 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="dtapp_vimage dtapp_vweb dtapp_vpdf dtapp_vps dtapp_vvideo" + +case $APPNAME in + dtapp_vimage) + DoSimpleCmd "$VIMAGE" $* + ;; + dtapp_vweb) + DoWeb $* + ;; + dtapp_vpdf) + DoSimpleCmd "$VPDF" $* + ;; + dtapp_vps) + DoSimpleCmd "$VPS" $* + ;; + dtapp_vvideo) + DoSimpleCmd "$VVIDEO" $* + ;; + *) + # Unknown + ErrorMsg "${DTAPP}: Unknown Helper Application" \ + "\"$APPNAME\" is not a recognized Helper Application. \nKnown Helper Applications are:\n\n$COMMANDS" + ;; +esac + +XCOMM # Fini +exit 0