#! /usr/bin/perl ### ### MAT - Management Account Tool (c)09/02 - Kirk Waingrow ### $VER="1.2 - Kirk Waingrow - 09/02"; # VERSION NUMBER $PROGNAME="mat_sw_serialnum"; #$PROGNAME="sw_test"; $MANAGENAME="Software "; $DPATH="/httpd/data"; $FIELD1="Mfg"; $FLEN1=10; # Length of the input field $FIELD2="Program"; $FLEN2=15; $FIELD3="Serial"; $FLEN3=15; $FIELD4="Key / Comments"; $FLEN4=12; $FIELD5="User / Server"; $FLEN5=12; $FIELD6="Date"; $FLEN6=15; $FVAL1=""; $FVAL2=""; $FVAL3=""; $FVAL4=""; $FVAL5=""; $FVAL6=""; # # Only Change the Above - IF MORE FIELDS ARE ADDED THEN # SEACH FOR /#CHANGE# AND MODIFY WHERE NEEDED # ------------------------------------------------------------------- $DATA="$DPATH/$PROGNAME.txt"; $COMMENT="$DPATH/$PROGNAME.cmt"; $PROG="/cgi-bin/$PROGNAME"; if ( ! -d "$DPATH" ) { `mkdir -p $DPATH`; } if ( ! -f "$DATA" ) { `touch $DATA`; } print "Content-type: text/html\n\n"; print qq~ $MANAGENAME Manager ~; $buffer = "$QUERY_STRING"; $buffer = $ENV{'QUERY_STRING'}; # Split the Variables by the & # @pairs = split (/&/, $buffer); # Create the array foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; $form{$name} = $value; #print "$form{$name}

"; } ## #CHANGE# $FVAL1="$form{FIELD1}"; # GET DATA FROM THE DATA FILE TO BE EDITTED sub get_data { $cnt=0; open(IN, "$DATA"); while () { $cnt++; if ( $cnt eq $form{UPD} ) { # #CHANGE# ($FVAL1, $FVAL2, $FVAL3, $FVAL4, $FVAL5, $FVAL6) = split(/\t/, $_); } } close(IN); } # DELETE AN ENTRY if ( $form{del} ) { ($fu, $fi) = split(/\^/, $form{del}); $cnt=0; open(OUT, "> $DATA.tmp"); open(IN, "$DATA"); while () { $cnt++; if ( $cnt ne $fu ) { print OUT "$_"; } else { # #CHANGE# ($FD1, $FD2, $FD3, $FD4, $FD5, $FD6) = split(/\t/, $_); if ( "$fi" ne "$FD2" ) { print OUT "$_"; } } } close(IN); close(OUT); `mv $DATA.tmp $DATA`; } ### ### ADD USER ### # Default values $ERROR=""; if ( "$form{FIELD1}" ) { # if ( ! "$form{FIELD1}" ) { $ERROR="1"; } # if ( ! "$form{FIELD2}" ) { $ERROR="1"; } # if ( ! "$form{FIELD3}" ) { $ERROR="1"; } if ( ! "$ERROR" ) { ### #CHANGE# $reload=`grep "^$form{FIELD1} $form{FIELD2} $form{FIELD3} $form{FIELD4} $form{FIELD5} $form{FIELD6}" $DATA`; if ( ! "$reload" ) { open (OUT, ">> $DATA"); ### #CHANGE# print OUT "$form{FIELD1} $form{FIELD2} $form{FIELD3} $form{FIELD4} $form{FIELD5} $form{FIELD6}\n"; close(OUT); `sort -n $DATA > $DATA.tmp`; `mv $DATA.tmp $DATA`; } } else { $ERROR="
*** ERROR: ALL FIELDS MUST BE ENTERED *** "; ### #CHANGE# $FVAL1="$form{FIELD1}"; $FVAL2="$form{FIELD2}"; $FVAL3="$form{FIELD3}"; $FVAL4="$form{FIELD4}"; $FVAL5="$form{FIELD5}"; $FVAL6="$form{FIELD6}"; } } ### ### TITLE BAR ### $TOTALREC=`cat $DATA | wc -l | awk '{ print $1}'`; print qq~

$MANAGENAME Manager
Buena Vista Datacasting
Search $TOTALREC records:
~; if ( $form{UPD}) { &get_data; $SUBVAL="Update"; print "\n"; } else { $SUBVAL="Add";} print qq~ $FIELD1: $FIELD2: $FIELD3: $FIELD4:
$FIELD5:   $FIELD6:  
$ERROR
~; ### ### CAT A TEXT FILE FOR COMMENT AND INFORMATION ### `touch $COMMENT`; open(IN, "$COMMENT" ); while () { print $_; } close(IN); ### ### DISPLAY DATA ### if ( -s "$DATA" ) { print qq~
~; $bgc=""; $lnum=0; $found=""; open (IN, "$DATA"); while () { $lnum++; ### #CHANGE# ($FD1,$FD2,$FD3, $FD4, $FD5, $FD6) = split(/\t/, $_); $FLINE="UPD=$lnum"; # # SEARCH # if ( $form{search} ) { if ( /$form{search}/i ) { $found="1"; if ( $fade ) { $bgc="bgcolor=e8e8e8"; $fade="0"; } else { $bgc="bgcolor=fffffff"; $fade="1"; } #if ( "$PREV" eq $FD1 ) { $bgc="bgcolor=red"; } print qq~ ~; $PREV="$FD1"; } } # # DONT SEARCH # else { $found="1"; if ( $fade ) { $bgc="bgcolor=e8e8e8"; $fade=""; } else { $bgc="bgcolor=fffffff"; $fade="1"; } #if ( "$PREV" eq $FD1 ) { $bgc="bgcolor=red"; } print qq~ ~; $PREV="$FD1"; } } close(IN); print qq~
$FIELD1

$FIELD2

$FIELD3

$FIELD4

$FIELD5

$FIELD6

$FD1 $FD2 $FD3 $FD4 $FD5 $FD6
$FD1 $FD2 $FD3 $FD4 $FD5 $FD6
~; if ( ! "$found" ) { print "

*** Nothing was found

\n"; } else { print qq~


Total Records = $TOTALREC (ver. $VER)
~; } }