#!/usr/bin/perl #------------------------------------------------------------ # Perform C-style include into a HTML file using directive # # # Copyright (C) 2003 Eugene Taylashev, under GNU GPL # # @author: Eugene Taylashev # @version: 1.1 # @modified: Aug 10, 2003 #------------------------------------------------------------ use strict; #----------------- Global Variables ------------------------- my $VERSION = '1.1'; my $isDebug = 0; #-- be verbose if 1 #---------------- Function prototypes ---------------------- sub include_file($); sub printUsage (); sub dieHard ($); sub printError ($); sub printDebug ($); #===== verify input printUsage() if (scalar @ARGV < 2); #-- print help and exit if no input params #----------- Required parameters: my $inp_file = $ARGV[scalar @ARGV -2 ]; my $out_file = $ARGV[scalar @ARGV -1 ]; my $inc_file; printDebug( "Input file:$inp_file" ); printDebug( "Output file:$out_file" ); #-- read and verify input file open( INP_FILE, $inp_file ) and printDebug("Input file $inp_file opened") or dieHard( "Could not open input file $inp_file: $!\n" ); #-- create output file open( OUT_FILE, ">$out_file" ) and printDebug("Output file $out_file created") or dieHard( "Could not create output file $out_file: $!\n" ); my $cur_line; while() { $cur_line = $_; if( $cur_line =~ /^(.*)(.*)$/i ) { my ($l_beg, $l_end ) = ($1, $3); print OUT_FILE $l_beg; include_file( $2 ); print OUT_FILE $l_end; } else { print OUT_FILE $cur_line; } } close(INP_FILE); close(OUT_FILE); print "Done: $inp_file -> $out_file\n"; exit(0); #============================================================================== # # #------------------------------------------------------------------------------ sub include_file($) { my ($inc_file) = @_; #-- check operation system and make path conversion between systems if ( $^O =~ /linux/i ){ $inc_file =~ s/\\/\//g ; } printDebug ("Include file: $inc_file" ); open( INC_FILE, $inc_file ) or printError( "Could not open include file $inc_file: $!\n" ); while() { print OUT_FILE $_; } close(INC_FILE); } #============================================================================== # # #------------------------------------------------------------------------------ sub printUsage () { print <AppendToLog("Session:". $Session->SessionID . $strMessage ); # print STDERR "$strMessage\n"; print "$strMessage\n"; exit(13); } #============================================================================== # # #------------------------------------------------------------------------------ sub printError ($) { my( $strMessage ) = @_; # $Response->Write ( $strMessage ); #$Server->HTMLEncode( # print STDERR "$strMessage"; print "$strMessage"; } #============================================================================== # # #------------------------------------------------------------------------------ sub printDebug ($) { my( $strMessage ) = @_; print "$strMessage\n" if $isDebug; return 1; }