#!/bin/csh # Do not remove or modify this comment \ exec tclsh "$0" "$1" #___INFO__MARK_BEGIN__ ########################################################################## # # The Contents of this file are made available subject to the terms of # the Sun Industry Standards Source License Version 1.2 # # Sun Microsystems Inc., March, 2001 # # # Sun Industry Standards Source License Version 1.2 # ================================================= # The contents of this file are subject to the Sun Industry Standards # Source License Version 1.2 (the "License"); You may not use this file # except in compliance with the License. You may obtain a copy of the # License at http://gridengine.sunsource.net/Gridengine_SISSL_license.html # # Software provided under this License is provided on an "AS IS" basis, # WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, # WITHOUT LIMITATION, WARRANTIES THAT THE SOFTWARE IS FREE OF DEFECTS, # MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE, OR NON-INFRINGING. # See the License for the specific provisions governing your rights and # obligations concerning the Software. # # The Initial Developer of the Original Code is: Sun Microsystems, Inc. # # Copyright: 2003 by Sun Microsystems, Inc. # # All Rights Reserved. # ########################################################################## #___INFO__MARK_END__ #****** util/sge_tee ****** # NAME # sge_tee -- Splitt SGE RMON formatted output into thread specific files # and duplicate it to stdout. # # SYNOPSIS # sge_tee ?basename? # # FUNCTION # Splitt input in SGE RMON format into thread specific parts. In addition # duplicate it to stdout. # # For each thread one file with log messages is created. The generated # files are named "basename"-"thread-id". If no 'basename' argument is # given, the basename will be "log". # # INPUTS # stdin - Log messages in SGE RMON format. # basename - Output file basename. # #******************************* # if {$argc == 0} { set base_name "log" } else { set base_name [lindex $argv 0] } while {[gets stdin line] >= 0} { scan $line " %u %u %u" d1 d2 thrd if {![info exists out_files($thrd)]} { set out_files($thrd) [open "$base_name-$thrd" {RDWR CREAT}] } puts $out_files($thrd) $line flush $out_files($thrd) puts stdout $line flush stdout }