| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195 |
- { $HDR$}
- {**********************************************************************}
- { Unit archived using Team Coherence }
- { Team Coherence is Copyright 2002 by Quality Software Components }
- { }
- { For further information / comments, visit our WEB site at }
- { http://www.TeamCoherence.com }
- {**********************************************************************}
- {}
- { $Log: 115447: VersionMarker.dpr
- {
- { Rev 1.5 3/28/2005 6:02:02 AM JPMugaas
- { New packages.
- }
- {
- { Rev 1.4 3/3/2005 7:44:44 PM JPMugaas
- { Version information for packages.
- }
- {
- { Rev 1.3 3/3/2005 4:46:10 PM JPMugaas
- { Now manages version info for other stuff.
- }
- {
- { Rev 1.2 3/03/05 1:32:34 PM czhower
- { update
- }
- program VersionMarker;
- {$APPTYPE CONSOLE}
- uses
- Classes,
- INIFiles,
- SysUtils;
- const
- MASK_COPYRIGHT = '{COPYRIGHT}';
- MASK_COMPANY = '{COMPANY}';
- MASK_MAJOR = '{MAJORVER}';
- MASK_MINOR = '{MINORVER}';
- MASK_POINT = '{POINTVER}';
- NASK_TITLE = '{TITLE}';
- MASK_DESCRIPTION = '{DESCRIPTION}';
- //I know that globals look sloppy but this might be a good case
- //for them
- const
- // xIdVersFile = 'W:\source\Indy10\Lib\System\IdVers.inc';
- gIdVersFile = 'Lib\System\IdVers.inc';
- var
- gBasePath : string;
- gIniPath : String;
- xINI: TINIFile;
- xVerMajor: Integer;
- xVerMinor: Integer;
- xVerPoint: Integer;
- xVerString: string;
- xCopyright: string;
- xCompany : String;
- xTitle : String;
- xDescription : String;
- procedure ReplaceInFile(const ASourceFileName, ADestFileName : String);
- var S : TStrings;
- LTmp : String;
- begin
- s := TStringList.Create;
- try
- s.LoadFromFile( ASourceFileName);
- LTmp := s.Text; //xVerString
- LTmp := SysUtils.StringReplace(LTmp,MASK_COPYRIGHT,xCopyright,[rfReplaceAll]);
- LTmp := SysUtils.StringReplace(LTmp,MASK_COMPANY,xCompany,[rfReplaceAll]);
- LTmp := SysUtils.StringReplace(LTmp,MASK_DESCRIPTION,xDescription+' '+ xVerString,[rfReplaceAll]);
- LTmp := SysUtils.StringReplace(LTmp,NASK_TITLE,xTitle,[rfReplaceAll]);
- LTmp := SysUtils.StringReplace(LTmp,MASK_MAJOR,IntToStr(xVerMajor),[rfReplaceAll]);
- LTmp := SysUtils.StringReplace(LTmp,MASK_MINOR,IntToStr(xVerMinor),[rfReplaceAll]);
- LTmp := SysUtils.StringReplace(LTmp,MASK_POINT,IntToStr(xVerPoint),[rfReplaceAll]);
- s.Text := LTmp;
- s.SaveToFile( ADestFileName );
- finally
- FreeAndNil(s);
- end;
- end;
- function CurrentYear : Word;
- var lm, ld : Word;
- begin
- SysUtils.DecodeDate(Now,Result,lm,ld);
- end;
- procedure Main;
- begin
- //find base path
- if ParamCount > 0 then
- begin
- gBasePath := ParamStr(1)+'\';
- end
- else
- begin
- gBasePath := ExtractFilePath(ParamStr(0));
- end;
- gIniPath := gBasePath+'Builder\VersionMarker\'+ExtractFileName(ChangeFileExt(ParamStr(0), '.ini'));
- try
- //10.2.5
- xINI := TINIFile.Create(gIniPath); try
- xVerMajor := xINI.ReadInteger('Version', 'Major', 10);
- xVerMinor := xINI.ReadInteger('Version', 'Minor', 0);
- xVerPoint := xINI.ReadInteger('Version', 'Point', 60) + 1;
- xVerString := IntToStr(xVerMajor) + '.' + IntToStr(xVerMinor) + '.'
- + IntToStr(xVerPoint);
- xCopyright := xINI.ReadString('Version','Copyright','Copyright © 1993 - '+ IntToStr(CurrentYear)+ ' Chad Z. Hower a.k.a Kudzu and the Indy Pit Crew');
- xCompany := xINI.ReadString('Version','Company','Chad Z. Hower a.k.a Kudzu and the Indy Pit Crew');
- xTitle := xINI.ReadString('Version','Title','Indy');
- xDescription := xINI.ReadString('Version','Description','Internet Direct (Indy)');
- with TStringList.Create do try
- LoadFromFile(gBasePath + gIdVersFile);
- Strings[0] := ' gsIdVersion = ''' + xVerString + '''; {do not localize}';
- SaveToFile(gBasePath + gIdVersFile);
- finally Free; end;
- // FB script for VS.NET
- xINI.WriteInteger('Version', 'Major', xVerMajor);
- xINI.WriteInteger('Version', 'Minor', xVerMinor);
- xINI.WriteInteger('Version', 'Point', xVerPoint);
- xINI.WriteString('Version', 'String', xVerString);
- //
- xINI.WriteString(xVerString, 'Date', DateToStr(Date));
- WriteLn(xVerString);
- finally FreeAndNil(xINI); end;
- //protocols packages - design time
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\dclIndy100.rc',gBasePath+'\Lib\Protocols\dclIndyProtocols120.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\dclIndy100.rc',gBasePath+'\Lib\Protocols\dclIndyProtocols100.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\dclIndy90.rc',gBasePath+'Lib\Protocols\dclIndyProtocols90.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\dclIndy70.rc',gBasePath+'Lib\Protocols\dclIndyProtocols70.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\dclIndy60.rc',gBasePath+'Lib\Protocols\dclIndyProtocols60.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\dclIndy50.rc',gBasePath+'Lib\Protocols\dclIndyProtocols50.rc');
- //protocols packages - run time
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\Indy100.rc',gBasePath+'Lib\Protocols\IndyProtocols120.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\Indy100.rc',gBasePath+'Lib\Protocols\IndyProtocols100.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\Indy90.rc',gBasePath+'Lib\Protocols\IndyProtocols90.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\Indy70.rc',gBasePath+'Lib\Protocols\IndyProtocols70.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\Indy60.rc',gBasePath+'Lib\Protocols\IndyProtocols60.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\Indy50.rc',gBasePath+'Lib\Protocols\IndyProtocols50.rc');
- //core package - design time
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\dclIndyCore120.rc',gBasePath+'Lib\Core\dclIndyCore120.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\dclIndyCore100.rc',gBasePath+'Lib\Core\dclIndyCore100.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\dclIndyCore90.rc',gBasePath+'Lib\Core\dclIndyCore90.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\dclIndyCore70.rc',gBasePath+'Lib\Core\dclIndyCore70.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\dclIndyCore60.rc',gBasePath+'Lib\Core\dclIndyCore60.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\dclIndyCore50.rc',gBasePath+'Lib\Core\dclIndyCore50.rc');
- //core package - run time
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IndyCore120.rc',gBasePath+'Lib\Core\IndyCore120.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IndyCore100.rc',gBasePath+'Lib\Core\IndyCore100.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IndyCore90.rc',gBasePath+'Lib\Core\IndyCore90.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IndyCore70.rc',gBasePath+'Lib\Core\IndyCore70.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IndyCore60.rc',gBasePath+'Lib\Core\IndyCore60.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IndyCore50.rc',gBasePath+'Lib\Core\IndyCore50.rc');
- //core package - run time
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IndySystem120.rc',gBasePath+'Lib\System\IndySystem120.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IndySystem100.rc',gBasePath+'Lib\System\IndySystem100.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IndySystem90.rc',gBasePath+'Lib\System\IndySystem90.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IndySystem70.rc',gBasePath+'Lib\System\IndySystem70.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IndySystem60.rc',gBasePath+'Lib\System\IndySystem60.rc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IndySystem50.rc',gBasePath+'Lib\System\IndySystem50.rc');
- // Borland Delphi Studio Packages for DotNET version info
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IdSystem90ASM90.inc',gBasePath+'Lib\System\IdSystem90ASM90.inc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IddclCore90ASM90.inc',gBasePath+'Lib\Core\IddclCore90ASM90.inc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IdCore90ASM90.inc',gBasePath+'Lib\Core\IdCore90ASM90.inc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IddclProtocols90ASM90.inc',gBasePath+'Lib\Protocols\IddclProtocols90ASM90.inc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IdProtocols90ASM90.inc',gBasePath+'Lib\Protocols\IdProtocols90ASM90.inc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IddclSecurity90ASM90.inc',gBasePath+'Lib\Security\IddclSecurity90ASM90.inc');
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IdSecurity90ASM90.inc',gBasePath+'Lib\Security\IdSecurity90ASM90.inc');
- //IdAssemblyInfo for Visual Studio .NET
- ReplaceInFile(gBasePath+ 'Builder\VersionMarker\Data\IdAssemblyInfo.pas',gBasePath+'Lib\System\IdAssemblyInfo.pas');
- except
- on E: Exception do begin
- WriteLn(E.Message);
- ReadLn;
- end;
- end;
- end;
- begin
- Main;
- end.
|