rmcvsdir.pp 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. uses
  2. sysutils;
  3. procedure deltree(const dirname : string);
  4. var
  5. rec : tsearchrec;
  6. begin
  7. writeln('Deleting ',dirname);
  8. if findfirst(dirname+'/*.*',faanyfile or fadirectory,rec)=0 then
  9. begin
  10. repeat
  11. if (rec.attr and fadirectory)<>0 then
  12. begin
  13. if (rec.name<>'.') and (rec.name<>'..') then
  14. deltree(dirname+'/'+rec.name)
  15. end
  16. else
  17. begin
  18. FileSetAttr(dirname+'/'+rec.name,faArchive);
  19. deletefile(dirname+'/'+rec.name);
  20. end;
  21. until findnext(rec)<>0;
  22. findclose(rec);
  23. end;
  24. rmdir(dirname);
  25. end;
  26. procedure searchcvsdir(const dirname : string);
  27. var
  28. rec : tsearchrec;
  29. begin
  30. writeln('Searching ',dirname);
  31. if findfirst(dirname+'/*.*',faanyfile or fadirectory,rec)=0 then
  32. begin
  33. repeat
  34. if (rec.attr and fadirectory)<>0 then
  35. begin
  36. if rec.name='CVS' then
  37. deltree(dirname+'/CVS')
  38. else if rec.name='.svn' then
  39. deltree(dirname+'/.svn')
  40. else
  41. if (rec.name<>'.') and (rec.name<>'..') then
  42. searchcvsdir(dirname+'/'+rec.name)
  43. end;
  44. until findnext(rec)<>0;
  45. findclose(rec);
  46. end;
  47. end;
  48. var
  49. para : string;
  50. begin
  51. if paramcount=0 then
  52. para:='.'
  53. else
  54. para:=paramstr(1);
  55. searchcvsdir(para);
  56. end.