6 #--------------------------------------------------------------------------------------
 
    8 #                   Utility script for csh library functions.
 
   10 #--------------------------------------------------------------------------------------
 
   15 setenv     DEBUG 0                    # debug level
 
   17 setenv     TIMER 0                    # timer
 
   19 setenv     DEFAULT_OPTION -           # default option
 
   22 # Wild card for any valid detector identifier or run number; to be used as ${ANY}.
 
   24 setenv ANY_ID            "[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]"
 
   26 setenv PI                3.14159265359
 
   27 setenv TIMESTAMP         "#splitline{}{#splitline{%d-%m-%y}{  %H:%M}}%F1970-01-01 00:00:00"
 
   33 alias fatal   'echo `date` FATAL   \!* ; exit'
 
   34 alias error   'eval "if ( $DEBUG >= 0 ) then  \\
 
   35  echo `date` ERROR   \!*                      \\
 
   37 alias notice  'eval "if ( $DEBUG >= 1 ) then  \\
 
   38  echo `date` STATUS  \!*                      \\
 
   40 alias status  'eval "if ( $DEBUG >= 2 ) then  \\
 
   41  echo `date` STATUS  \!*                      \\
 
   43 alias warning 'eval "if ( $DEBUG >= 2 ) then  \\
 
   44  echo `date` WARNING \!*                      \\
 
   46 alias debug   'eval "if ( $DEBUG >= 3 ) then  \\
 
   47  echo `date` DEBUG   \!*                      \\
 
   52 # Source including PATH. 
 
   57     "if ( \!:1 =~ */* ) then       \\
 
   62         source `which \!:1` \!:2*  \\
 
   67 # Method to print environment variables.
 
   69 alias print_env 'eval setenv'
 
   73 # Method to check for CC Lyon.
 
   75 # \return         1 for CC Lyon; else 0
 
   77 alias is_CCLyon 'eval                                             \\
 
   78     "if ( $?HOST != 0 && `echo $HOST | cut -c1-2` == cc ) then    \\
 
   85 # Method to define variable.
 
   89 alias define_variable 'eval                   \\
 
   90     "if (${?\!:1} == 0) then                  \\
 
   96 # Method to set variable.
 
   97 # Note that a value equal to $DEFAULT_OPTION will not modify the variable.
 
  100 # \param  2-N     value(s)
 
  102 alias set_variable 'eval                                \\
 
  103     "if ("\"\!:2*\"" != "\"$DEFAULT_OPTION\"") then     \\
 
  104     setenv \!:1 "\"\!:2*\""                             \\
 
  109 # Method to locally set variable.
 
  110 # Note that a value equal to $DEFAULT_OPTION will not modify the variable.
 
  113 # \param  2-N     value(s)
 
  115 alias set_local_variable 'eval                          \\
 
  116     "if ("\"\!:2*\"" != "\"$DEFAULT_OPTION\"") then     \\
 
  117     set \!:1 "\"\!:2*\""                                \\
 
  122 # Method to unset variable.
 
  126 alias unset_variable 'eval unsetenv \!:1'
 
  130 # Method to print variables.
 
  132 # \param  1-N     list of variables
 
  134 alias print_variable 'eval                    \\
 
  135     "printf "%-20s\\ =\\ " \!:1               \\
 
  137     if (`echo \!:1* | wc -w` > 1) then        \\
 
  138     print_variable \!:2*                      \\
 
  143 # Method to check validity of variables.
 
  145 # \param  1-N     list of variables
 
  147 alias check_variable 'eval                    \\
 
  148     "if (! ${?\!:1}) then                     \\
 
  149     fatal "Variable \!:1 not defined."        \\
 
  151     if (`echo \!:1* | wc -w` > 1) then        \\
 
  152     check_variable \!:2*                      \\
 
  157 # Method to set array.
 
  159 # \param  1       array name
 
  162 alias set_array 'eval "set \!:1=(\!:2*)"'
 
  166 # Method to count directory in ':' separated path list.
 
  171 alias count_directory 'eval "echo -n ${\!:1} | tr : \\n | grep "^\!:2\$" | wc -w"'
 
  175 # Method to remove directory from ':' separated path list.
 
  180 alias remove_directory 'eval "setenv \!:1 `echo -n ${\!:1} | tr : \\n | grep -v "^\!:2\$" | tr \\n : | sed "s/:\\\$//"`"'
 
  184 # Method to remove variable from ':' separated path list.
 
  189 alias remove_variable 'eval            \\
 
  190     "if (! ${?\!:2}) then              \\
 
  192     remove_directory \!:1 "\${\!:2}"   \\
 
  197 # Method to insert directory into ':' separated path list.
 
  202 alias insert_directory 'eval                                                          \\
 
  203     "if (! ${?\!:1}) then                                                             \\
 
  205     else if (`echo -n ${\!:1} | tr : \\n | grep "^\!:2\$" | wc -w` == 0) then         \\
 
  206     setenv \!:1 \!:2\:${\!:1}                                                         \\