| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | 
program getrev;{ The purpose of this program is to  parse the output of svn info several files  and to extract the lastest date and revision  The program expects a single parameter,  being the name of the text file }procedure Usage;begin  Writeln(paramstr(0),' requires exactly one parameter');  Writeln('This paramaeter must be the name of the file');  Writeln('Generated by svn info files > filename');  halt(1);end;var  filename, fileurl, line, date, lastdate,  revision, oldrevstring, olddate : string;  f : text;  p, io : longint;  rev, lastrev, oldrev : longint;begin  if paramcount<>1 then    Usage;  filename:=paramstr(1);{$i-}  assign(f,filename);  reset(f);  io:=ioresult;  if io<>0 then    begin      Writeln('Unable to open ',filename,' for reading, io=',io);      halt(2);    end;  lastrev:=0;  lastdate:='0';  while not eof(f) do    begin      readln(f,line);      p:=pos('URL: ',line);      if p>0 then        begin          fileurl:=copy(line,p+length('URL: '),length(line));          writeln('fileurl=',fileurl);        end;      p:=pos('Last Changed Date: ',line);      if p>0 then        begin          date:=copy(line,p+length('Last Changed Date: '),length(line));          p:=pos(' ',date);          if p>0 then            date:=copy(date,1,p-1);          writeln('date=',date);          if date>lastdate then            lastdate:=date;        end;      p:=pos('Last Changed Rev: ',line);      if p>0 then        begin          revision:=copy(line,p+length('Last Changed Rev: '),length(line));          writeln('rev=',revision);          val(revision,rev);          if rev>lastrev then            lastrev:=rev;        end;    end;  close(f);  assign(f,'revision.inc');  io:=ioresult;  reset(f);  io:=ioresult;  if io<>0 then    begin      Writeln('revision.inc reset failed, io=',io);    end  else    begin      readln(f,oldrevstring);      close(f);      writeln('oldrevstring ',oldrevstring);      if oldrevstring[1]='''' then        oldrevstring:=copy(oldrevstring,2,length(oldrevstring));      p:=length(oldrevstring);      if oldrevstring[p]='''' then        oldrevstring:=copy(oldrevstring,1,p-1);      p:=pos(' rev ',oldrevstring);      if p>0 then        begin          val(copy(oldrevstring,p+5,length(oldrevstring)),oldrev);          olddate:=copy(oldrevstring,1,p-1);          Writeln('Old values ',olddate,' ',oldrev);          if (olddate >= lastdate) and (oldrev >= lastrev) then            begin              Writeln('New values ',lastdate,' ',lastrev);              Writeln('Keeing old values');              lastrev:=oldrev;              lastdate:=olddate;            end;        end;    end;  Writeln('revision.inc set to ''',lastdate,' rev ',lastrev,'''');  assign(f,'revision.inc');  rewrite(f);  io:=ioresult;  if io <> 0 then    begin      Writeln('Error opening revision.inc for writing');      halt(3);    end;  Writeln(f,'''',lastdate,' rev ',lastrev,'''');  close(f);end.
 |