#!/bin/sh #---------------------------------------------------------------------- # # $Id: installServers,v 1.1.2.3 2000/01/04 01:27:24 edavis Exp $ # # Install servers in the local cgi-bin/ directory. # #---------------------------------------------------------------------- #----- # Determine which servers are to be installed and check that # executables exist. #----- echo "Which server(s) would you like to install [ff jg nc hdf mat dsp]?"; read server_list; files="" perlFiles="" #----- # Check on programs. #----- for server in $server_list do echo "${server}" for file in ${server}_das ${server}_dds ${server}_dods do if test ! -f "${file}" then echo "${file} does not exist" exit 1 else files="${files} ${file}" fi done #----- # Check on perl programs. #----- for file in nph-${server} do if test ! -f "${file}" then echo "${file} does not exist" exit 1 else perlFiles="${perlFiles} ${file}" fi done #----- # Any nonstandard files? #----- if test "${server}" = "jg" then for jgFile in def .objects usage-jg do if test ! -f "${jgFile}" then echo "${jgFile} does not exist" exit 1 else files="${files} ${jgFile}" fi done fi done #----- # Additional files, server tools (not for a specific server). #----- addFiles="DODS_Cache.pm DODS_Dispatch.pm FilterDirHTML.pm" addFiles="${addFiles} asciival deflate usage www_int" addDirs="HTML HTTP LWP MIME" #----- # Find perl #----- echo "Checking for perl" if test -n "$PERL"; then ac_cv_prog_PERL="$PERL" # Let the user override the test. else IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ac_dummy="$PATH" for ac_dir in $ac_dummy; do test -z "$ac_dir" && ac_dir=. if test -f $ac_dir/perl; then ac_cv_prog_PERL="$ac_dir/perl" break fi done IFS="$ac_save_ifs" fi PERL="$ac_cv_prog_PERL" if test -n "$PERL"; then echo " $PERL" else echo "Where is perl located on your system [e.g., /usr/local/bin/perl]?" read user_perl PERL="$user_perl" fi case "$PERL" in *perl) perl_ver=`$PERL -v 2>&1 | awk '/This is perl/ {print}'` perl_ver=`echo $perl_ver | sed 's/This is perl, version \([0-9._]*\).*/\1/'` perl_ver_main=`echo $perl_ver | sed 's/\([0-9]*\).*/\1/'` if test -n "$perl_ver" && test $perl_ver_main -ge 5 then echo "Found perl version ${perl_ver}." else echo "Found perl version ${perl_ver}." echo "Must be at least 5.000." exit 1 fi ;; *) echo "Perl is required ($PERL)." exit 1 ;; esac #----- # #----- echo "Where is the cgi-bin directory located on your" echo "system [e.g., /usr/local/apache/cgi-bin]?" read cgiDir if test ! -d "${cgiDir}" then echo "${cgiDir} is not a directory, try again." read cgiDir if test ! -d "${cgiDir}" then echo "${cgiDir} is not a directory." exit 1 fi fi #----- # List files, show #----- echo "" echo "The following files will be moved to: $cgiDir" echo "${files} ${perlFiles}" echo "Would you like these non-server-specific files" echo "(${addFiles})" echo "and perl directories" echo "(${addDirs})" echo "to be installed [y/n]?" read yesNo if test "${yesNo}" = "y" -o "${yesNo}" = "Y" then yesNo="y" else yesNo="n" fi #----- # Copy files to cgi-bin #----- echo "Copying ..." cp ${files} ${cgiDir} #----- # Copy perl files (with change to use correct perl) to cgi-bin #----- cat > "${cgiDir}/installServer.tmp" < 5 {print \$0} EOF for file in ${perlFiles} do fileName=`echo "${file}" | sed 's/.*\/\([^\/]*\)/\1/'` awk -f "${cgiDir}/installServer.tmp" ${file} > ${cgiDir}/${fileName} done rm -f "${cgiDir}/installServer.tmp" #----- # If desired, copy additional files to cgi-bin #----- if test "${yesNo}" = "y" then cp ${addFiles} ${cgiDir} cp -r ${addDirs} ${cgiDir} fi #----- # set the execute mode bits of the nph-* scripts #----- for server in $server_list do chmod 755 ${cgiDir}/nph-${server} done