Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
@echo off REM ------------------------------------------------------------------ REM REM sample.cmd REM Sample script for updating a hotfix/sp INF using infgen.dll REM REM Copyright (c) Microsoft Corporation. All rights reserved. REM REM ------------------------------------------------------------------ perl -x "%~f0" %* goto :EOF #!perl use strict; use lib $ENV{RAZZLETOOLPATH} . "\\PostBuildScripts"; use lib $ENV{RAZZLETOOLPATH}; use PbuildEnv; use ParseArgs; use Logmsg; use Win32::OLE qw(in);
sub die_ole_errmsg($);
sub Usage { print<<USAGE; exit(1) } sample.cmd -inf:<template_inf_file> -out:<output_inf_file> [<files> ...]
template_inf_file - starting INF file to add entries to
output_inf_file - file to save with changes
files - one or more files to add to the INF
USAGE
my ($inf_start, $inf_end, @files); parseargs('?' => \&Usage, 'inf:' => \$inf_start, 'out:' => \$inf_end, \@files); if ( !$inf_start || !$inf_end || !@files ) { errmsg( "Invalid parameters" ); Usage(); }
my $inf_generator = Win32::OLE->new('InfGenerator'); die_ole_errmsg "Could not instatiate InfGenerator" if ( !defined $inf_generator );
logmsg( "Setting up DB connection info ..." ); # DB connection info $inf_generator->SetDB( "ntbldwebdev", "SPBuilds", "buildlab", "perky" ); if ( Win32::OLE->LastError() ) { my $errstr = $inf_generator->{InfGenError}; die_ole_errmsg "Error setting DB info (". ($errstr?$errstr:""). ")"; }
logmsg( "initializing generator ..." ); # Initialization $inf_generator->InitGen( $inf_start, $inf_end ); if ( Win32::OLE->LastError() ) { my $errstr = $inf_generator->{InfGenError}; die_ole_errmsg "Error starting up InfGenerator (". ($errstr?$errstr:""). ")"; }
logmsg( "inserting files ..." ); # Insert files foreach my $new_file ( @files ) { logmsg( "inserting $new_file" ); $inf_generator->InsertFile( $new_file ); if ( Win32::OLE->LastError() ) { my $errstr = $inf_generator->{InfGenError}; errmsg( "Failed adding file '$new_file': ". ($errstr?$errstr:"<unknown error>") ); } }
logmsg( "Creating/storing INF ..." ); # Trim and save new INF file $inf_generator->CloseGen(); if ( Win32::OLE->LastError() ) { my $errstr = $inf_generator->{InfGenError}; errmsg( "Failed trimming/saving file (". ($errstr?$errstr:"unknown error"). ")" ) }
logmsg( "Successful" );
exit 0;
sub die_ole_errmsg($) { my $text = shift; errmsg( "$text (". Win32::OLE->LastError(). ")" ); exit 1; }
|