svn2revisioninc accepts old style command line parameters from Darius

git-svn-id: trunk@10244 -
This commit is contained in:
vincents 2006-11-25 20:52:14 +00:00
parent d02f71d630
commit 268922b4be

View File

@ -229,44 +229,74 @@ begin
end; end;
procedure TSvn2RevisionApplication.ShowHelp; procedure TSvn2RevisionApplication.ShowHelp;
function ExtractFileBaseName(FileName: string): string;
begin
Result := ChangeFileExt(ExtractFileName(FileName), '');
end;
begin begin
writeln(ParamStr(0), ' [Options]'); writeln;
writeln(ParamStr(0));
writeln;
writeln(ExtractFileBaseName(ParamStr(0)), ' <repository path> <output file> [Options]');
writeln('or');
writeln(ExtractFileBaseName(ParamStr(0)), ' [Options] <repository path> <output file>');
writeln('or');
writeln(ExtractFileBaseName(ParamStr(0)), ' <repository path> [Options] <output file>');
writeln; writeln;
writeln('Options:'); writeln('Options:');
writeln(' -D<path> Directory to get SVN version from (default current dir)'); writeln(' --o Output file');
writeln(' -O<file> Output file (default revision.inc)'); writeln(' --c=<name> Name of constant (default RevisionStr)');
writeln(' -C<name> Name of constant (default RevisionStr)'); writeln(' --v Be more verbose');
writeln(' -v Be more verbose'); writeln(' --h This help screen');
writeln(' -h This help screen'); writeln;
writeln('Note: <repository path> default current directory');
writeln(' <output file> default revision.inc');
writeln(' --o overrides <output file>');
writeln;
writeln(' 1st switchless parameter = <repository path>');
writeln(' 2nd switchless parameter = <output file>');
halt(1); halt(1);
end; end;
function TSvn2RevisionApplication.ParamsValid: boolean; function TSvn2RevisionApplication.ParamsValid: boolean;
var var
ch: char; i: integer;
index: integer;
begin begin
Result := False; Result := False;
//reset //reset
SourceDirectory:=ExtractFilePath(ParamStr(0));
Verbose := False; Verbose := False;
RevisionIncFileName := ExpandFileName('revision.inc');
ConstName := 'RevisionStr'; ConstName := 'RevisionStr';
SourceDirectory:=ChompPathDelim(ExtractFilePath(ParamStr(0)));
RevisionIncFileName := ExpandFileName('revision.inc');
//parse options //find switchless parameters
repeat index := 1;
ch:=Getopt('D:O:C:vh?'); for i := 1 to ParamCount do
Case ch of begin
'D' : SourceDirectory := OptArg; if Copy(ParamStr(i),1,1) <> '-' then
'O' : RevisionIncFileName := ExpandFileName(OptArg); begin
'C' : ConstName := OptArg; case index of
'v' : Verbose := True; 1: SourceDirectory:=ChompPathDelim(ParamStr(i));
'h' : ShowHelp; 2: RevisionIncFileName := ExpandFileName(ParamStr(i));
'?' : ShowHelp; end;
Inc(index);
EndOfOptions : break;
end; end;
until False; end;
//parse options
if HasOption('h', 'help') or HasOption('?') then
ShowHelp;
if HasOption('v') then
Verbose := True;
if HasOption('c') then
ConstName := GetOptionValue('c');
if HasOption('o') then
RevisionIncFileName := GetOptionValue('o');
//show options //show options
Show('SourceDirectory: ' + SourceDirectory); Show('SourceDirectory: ' + SourceDirectory);
@ -281,7 +311,7 @@ begin
exit; exit;
end; end;
RevisionIncDirName:=ExtractFilePath(RevisionIncFileName); RevisionIncDirName:=ExtractFilePath(ExpandFileName(RevisionIncFileName));
if not DirectoryExists(RevisionIncDirName) then begin if not DirectoryExists(RevisionIncDirName) then begin
writeln('Error: Target Directory "', RevisionIncDirName, '" doesn''t exist.'); writeln('Error: Target Directory "', RevisionIncDirName, '" doesn''t exist.');
exit; exit;