summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2017-12-12 13:16:02 +0100
committerErich Eckner <git@eckner.net>2017-12-12 13:16:02 +0100
commit9e61edac342cb99e77941e9b2d14f5cc8a41324c (patch)
treeb50ba2db18b352c435f38470167cd0513fe063bc
parentb7186bf0895607e116dabf4fac4c9bfdc3fda730 (diff)
downloadMake-9e61edac342cb99e77941e9b2d14f5cc8a41324c.tar.xz
diverses
-rw-r--r--Make.lpr23
-rw-r--r--Make.lps112
-rw-r--r--dateibeziehungen.pas196
-rw-r--r--tools.pas15
4 files changed, 152 insertions, 194 deletions
diff --git a/Make.lpr b/Make.lpr
index b0e6ff0..70ea667 100644
--- a/Make.lpr
+++ b/Make.lpr
@@ -25,19 +25,18 @@ type
procedure tMake.doRun;
var
- mach: tMach;
- errorMsg: string;
- lOpts,nonOpts: tStringList;
+ mach: tMach;
+ errorMsg,md,pd: string;
+ lOpts,nonOpts: tStringList;
begin
lOpts:=tStringList.create;
lOpts.add('Ausgabe:');
lOpts.add('Datei:');
lOpts.add('Prüfsummen:');
- lOpts.add('alleSummenErneuern');
lOpts.add('leise');
lOpts.add('unsicher');
nonOpts:=tStringList.create;
- errorMsg:=checkOptions('A:D:P:alu',lOpts,nil,nonOpts,true);
+ errorMsg:=checkOptions('A:D:P:lu',lOpts,nil,nonOpts,true);
lOpts.free;
while nonOpts.count>0 do begin
if errorMsg<>'' then
@@ -52,24 +51,24 @@ begin
if hasOption('l','leise') then
__ausgabenMaske:=3;
- mach:=tMach.create;
-
if hasOption('D','Datei') then
- mach.machDatei:=getOptionValue('D','Datei')
+ md:=getOptionValue('D','Datei')
else
- mach.machDatei:='';
+ md:='';
if hasOption('P','Prüfsummen') then
- mach.pruefsummenDatei:=getOptionValue('P','Prüfsummen')
+ pd:=getOptionValue('P','Prüfsummen')
else
- mach.pruefsummenDatei:='';
+ pd:='';
+
+ mach:=tMach.create(md,pd);
gibAus('originale Regeln: '+inttostr(mach.anzOriAbh)+', originale Dateien: '+inttostr(mach.anzDats),3);
mach.erzeugeRegeln;
gibAus('Regeln: '+inttostr(mach.anzMglAbh)+', Dateien: '+inttostr(mach.anzDats),3);
mach.findeWasZuTunIst;
gibAus('anzuwendende Regeln: '+inttostr(mach.anzMglAbh),3);
- mach.tueWasZuTunIst(hasOption('a','alleSummenErneuern'),hasOption('u','unsicher'),getOptionValue('A','Ausgabe'));
+ mach.tueWasZuTunIst(hasOption('u','unsicher'),getOptionValue('A','Ausgabe'));
terminate;
end;
diff --git a/Make.lps b/Make.lps
index 289a5d9..26b3c13 100644
--- a/Make.lps
+++ b/Make.lps
@@ -7,45 +7,45 @@
<Unit0>
<Filename Value="Make.lpr"/>
<IsPartOfProject Value="True"/>
- <TopLine Value="47"/>
- <CursorPos X="16" Y="70"/>
- <UsageCount Value="98"/>
+ <TopLine Value="35"/>
+ <CursorPos X="28" Y="64"/>
+ <UsageCount Value="100"/>
<Loaded Value="True"/>
</Unit0>
<Unit1>
<Filename Value="Machdatei.txt"/>
<IsPartOfProject Value="True"/>
- <UsageCount Value="98"/>
+ <UsageCount Value="100"/>
<DefaultSyntaxHighlighter Value="None"/>
</Unit1>
<Unit2>
<Filename Value="tools.pas"/>
<IsPartOfProject Value="True"/>
- <IsVisibleTab Value="True"/>
<EditorIndex Value="4"/>
- <TopLine Value="279"/>
- <CursorPos X="29" Y="190"/>
- <UsageCount Value="77"/>
+ <TopLine Value="251"/>
+ <CursorPos X="17" Y="274"/>
+ <UsageCount Value="79"/>
<Loaded Value="True"/>
</Unit2>
<Unit3>
<Filename Value="../units/mystringlistunit.pas"/>
<IsPartOfProject Value="True"/>
<EditorIndex Value="2"/>
- <TopLine Value="288"/>
+ <TopLine Value="255"/>
<CursorPos X="14" Y="322"/>
- <UsageCount Value="74"/>
+ <UsageCount Value="76"/>
<Loaded Value="True"/>
</Unit3>
<Unit4>
<Filename Value="dateibeziehungen.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="dateiBeziehungen"/>
+ <IsVisibleTab Value="True"/>
<EditorIndex Value="1"/>
- <TopLine Value="1017"/>
- <CursorPos X="80" Y="1036"/>
- <FoldState Value=" T3k003C pjYkO0A3315"/>
- <UsageCount Value="66"/>
+ <TopLine Value="1005"/>
+ <CursorPos X="87" Y="1033"/>
+ <FoldState Value=" T3jZ03C14;"/>
+ <UsageCount Value="68"/>
<Loaded Value="True"/>
</Unit4>
<Unit5>
@@ -65,7 +65,7 @@
<EditorIndex Value="3"/>
<TopLine Value="1295"/>
<CursorPos X="81" Y="1311"/>
- <UsageCount Value="15"/>
+ <UsageCount Value="16"/>
<Loaded Value="True"/>
</Unit7>
<Unit8>
@@ -134,123 +134,121 @@
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="41" Column="43" TopLine="12"/>
+ <Caret Line="748" Column="70" TopLine="725"/>
</Position1>
<Position2>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="89" Column="27" TopLine="67"/>
+ <Caret Line="94" Column="16" TopLine="88"/>
</Position2>
<Position3>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="175" Column="80" TopLine="124"/>
+ <Caret Line="75" Column="74" TopLine="57"/>
</Position3>
<Position4>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="177" Column="34" TopLine="124"/>
+ <Caret Line="283" Column="95" TopLine="134"/>
</Position4>
<Position5>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="282" Column="39" TopLine="139"/>
+ <Caret Line="293" Column="38" TopLine="172"/>
</Position5>
<Position6>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="585" Column="35" TopLine="556"/>
+ <Caret Line="768" Column="134" TopLine="740"/>
</Position6>
<Position7>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="680" Column="23" TopLine="652"/>
+ <Caret Line="751" Column="23" TopLine="750"/>
</Position7>
<Position8>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="89" Column="18" TopLine="71"/>
+ <Caret Line="101" Column="27" TopLine="83"/>
</Position8>
<Position9>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="670" Column="38" TopLine="641"/>
</Position9>
<Position10>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="1042" Column="14" TopLine="1021"/>
+ <Caret Line="101" Column="27" TopLine="72"/>
</Position10>
<Position11>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="1033" Column="55" TopLine="1021"/>
+ <Caret Line="737" Column="34" TopLine="724"/>
</Position11>
<Position12>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="1019" Column="69" TopLine="1007"/>
+ <Caret Line="105" TopLine="88"/>
</Position12>
<Position13>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="89" Column="18" TopLine="71"/>
+ <Caret Line="702" Column="38" TopLine="677"/>
</Position13>
<Position14>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="670" Column="38" TopLine="641"/>
+ <Caret Line="739" Column="25" TopLine="723"/>
</Position14>
<Position15>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="1030" TopLine="1000"/>
+ <Caret Line="99" TopLine="82"/>
</Position15>
<Position16>
- <Filename Value="tools.pas"/>
- <Caret Line="41" Column="11" TopLine="24"/>
+ <Filename Value="dateibeziehungen.pas"/>
+ <Caret Line="708" Column="24" TopLine="689"/>
</Position16>
<Position17>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="357" Column="35" TopLine="342"/>
+ <Caret Line="720" Column="13" TopLine="692"/>
</Position17>
<Position18>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="1036" Column="41" TopLine="1009"/>
+ <Caret Line="757" Column="57" TopLine="739"/>
</Position18>
<Position19>
- <Filename Value="../units/lowlevelunit.pas"/>
- <Caret Line="862" Column="18" TopLine="857"/>
+ <Filename Value="dateibeziehungen.pas"/>
+ <Caret Line="760" Column="19" TopLine="743"/>
</Position19>
<Position20>
- <Filename Value="../units/lowlevelunit.pas"/>
- <Caret Line="147" TopLine="127"/>
+ <Filename Value="dateibeziehungen.pas"/>
+ <Caret Line="787" Column="61" TopLine="770"/>
</Position20>
<Position21>
- <Filename Value="../units/lowlevelunit.pas"/>
- <Caret Line="1288" Column="21" TopLine="1270"/>
+ <Filename Value="dateibeziehungen.pas"/>
+ <Caret Line="794" Column="34" TopLine="777"/>
</Position21>
<Position22>
- <Filename Value="../units/lowlevelunit.pas"/>
- <Caret Line="146" Column="55" TopLine="128"/>
+ <Filename Value="dateibeziehungen.pas"/>
+ <Caret Line="851" Column="7" TopLine="834"/>
</Position22>
<Position23>
<Filename Value="dateibeziehungen.pas"/>
- <Caret Line="1034" Column="48" TopLine="1013"/>
+ <Caret Line="857" Column="19" TopLine="838"/>
</Position23>
<Position24>
- <Filename Value="../units/lowlevelunit.pas"/>
- <Caret Line="1296" Column="22" TopLine="1278"/>
+ <Filename Value="dateibeziehungen.pas"/>
+ <Caret Line="861" Column="22" TopLine="843"/>
</Position24>
<Position25>
- <Filename Value="../units/lowlevelunit.pas"/>
- <Caret Line="1299" Column="28" TopLine="1278"/>
+ <Filename Value="dateibeziehungen.pas"/>
+ <Caret Line="862" Column="89" TopLine="845"/>
</Position25>
<Position26>
- <Filename Value="../units/lowlevelunit.pas"/>
- <Caret Line="1305" Column="28" TopLine="1282"/>
+ <Filename Value="dateibeziehungen.pas"/>
+ <Caret Line="866" Column="29" TopLine="849"/>
</Position26>
<Position27>
- <Filename Value="../units/lowlevelunit.pas"/>
- <Caret Line="1301" Column="38" TopLine="1283"/>
+ <Filename Value="dateibeziehungen.pas"/>
+ <Caret Line="997" Column="56" TopLine="990"/>
</Position27>
<Position28>
- <Filename Value="../units/lowlevelunit.pas"/>
- <Caret Line="1305" Column="35" TopLine="1287"/>
+ <Filename Value="dateibeziehungen.pas"/>
</Position28>
<Position29>
- <Filename Value="../units/lowlevelunit.pas"/>
- <Caret Line="1309" Column="43" TopLine="1287"/>
+ <Filename Value="dateibeziehungen.pas"/>
+ <Caret Line="718" Column="40" TopLine="693"/>
</Position29>
<Position30>
- <Filename Value="../units/lowlevelunit.pas"/>
- <Caret Line="1313" Column="16" TopLine="1296"/>
+ <Filename Value="dateibeziehungen.pas"/>
+ <Caret Line="608" Column="62" TopLine="589"/>
</Position30>
</JumpHistory>
</ProjectSession>
diff --git a/dateibeziehungen.pas b/dateibeziehungen.pas
index c1cf391..a303910 100644
--- a/dateibeziehungen.pas
+++ b/dateibeziehungen.pas
@@ -56,8 +56,9 @@ type
tGenerischeAbhaengigkeit = class(tObject)
private
- _quellens,_zieles: array of tDateienMitDaten;
- _dats: tDateienMitDaten;
+ _machDatei,_pruefSummenDatei: string;
+ _quellens,_zieles: array of tDateienMitDaten;
+ _dats: tDateienMitDaten;
function rQuellen(idx: longint): tDateienMitDaten;
function rZiele(idx: longint): tDateienMitDaten;
function quellersetzung(var worin: string; quellen: tDateienMitDaten; momentanePosition: longint): boolean;
@@ -65,14 +66,13 @@ type
function findeMehrZiele(ziele, quellen: tDateienMitDaten): boolean;
function matchCount: longint;
public
- machDatei: string;
- quellenREs: array of string; // regexe der Quellen - nur deshalb kein tRegExpr, weil es ohnehin zuerst substituiert werden muss
- zieleFkt,befehleFkt: tStringlist;
+ quellenREs: array of string; // regexe der Quellen - nur deshalb kein tRegExpr, weil es ohnehin zuerst substituiert werden muss
+ zieleFkt,befehleFkt: tStringlist;
property quellen[idx: longint]: tDateienMitDaten
read rQuellen;
property ziele[idx: longint]: tDateienMitDaten
read rZiele;
- constructor create(dats: tDateienMitDaten);
+ constructor create(dats: tDateienMitDaten; machDatei,pruefSummenDatei: string);
destructor destroy; override;
function findeQuellen(dats: tDateienMitDaten): boolean;
procedure generiereErben(var es: tExpliziteAbhaengigkeiten);
@@ -96,23 +96,15 @@ type
_mglAbh: tExpliziteAbhaengigkeiten;
_dats: tDateienMitDaten;
_ign: array of tRegExpr;
- procedure wMachDatei(md: string);
- procedure wPruefsummenDatei(pd: string);
function liesMachDatei: boolean;
function liesPruefsummenfile: boolean;
function sammleDateien(wo: string; rekursiv: boolean): longint;
public
- property machDatei: string
- read _machDatei
- write wMachDatei;
- property pruefsummenDatei: string
- read _pruefsummenDatei
- write wPruefsummenDatei;
- constructor create;
+ constructor create(machDatei, pruefSummenDatei: string);
destructor destroy; override;
procedure erzeugeRegeln;
procedure findeWasZuTunIst;
- procedure tueWasZuTunIst(allesNeu, unsicher: boolean; ausgabeDatei: string);
+ procedure tueWasZuTunIst(unsicher: boolean; ausgabeDatei: string);
function anzOriAbh: longint; inline;
function anzMglAbh: longint; inline;
function anzDats: longint; inline;
@@ -280,16 +272,17 @@ end;
// tGenerischeAbhaengigkeit **************************************************************
-constructor tGenerischeAbhaengigkeit.create(dats: tDateienMitDaten);
+constructor tGenerischeAbhaengigkeit.create(dats: tDateienMitDaten; machDatei,pruefSummenDatei: string);
begin
inherited create;
_dats:=dats;
setlength(quellenREs,0);
zieleFkt:=tStringlist.create;
befehleFkt:=tStringlist.create;
- machDatei:='';
setlength(_quellens,0);
setlength(_zieles,0);
+ _machDatei:=machDatei;
+ _pruefSummenDatei:=pruefSummenDatei;
end;
destructor tGenerischeAbhaengigkeit.destroy;
@@ -382,7 +375,7 @@ begin
worin:=anfang+mitte+worin;
end;
- allgemeineErsetzungen(worin,machDatei); // %DIRNAME% %num'...'%
+ allgemeineErsetzungen(worin,_machDatei); // %DIRNAME% %num'...'%
result:=false;
tmpRE:=tRegExpr.create;
@@ -600,6 +593,23 @@ begin
'Quellen:'#10+
quellen[i].toString
);
+ if quellen[i].count + ziele[i].count > 0 then begin
+ // sha512summen erneuern
+ s:='sed "';
+ for j:=0 to quellen[i].count-1 do
+ s:=s+'/\s'+escape(quellen[i][j].name,'./','\')+'\$/d; ';
+ for j:=0 to ziele[i].count-1 do
+ s:=s+'/\s'+escape(ziele[i][j].name,'./','\')+'\$/d; ';
+ s:=s+'" -i "'+_pruefsummenDatei+'"';
+ es.last.befehle.add(s);
+ s:='sha512sum';
+ for j:=0 to quellen[i].count-1 do
+ s:=s+' "'+quellen[i][j].name+'"';
+ for j:=0 to ziele[i].count-1 do
+ s:=s+' "'+ziele[i][j].name+'"';
+ s:=s+' >> '+_pruefsummenDatei;
+ es.last.befehle.add(s);
+ end;
end;
end;
@@ -683,12 +693,36 @@ end;
// tMach ***********************************************************************
-constructor tMach.create;
+constructor tMach.create(machDatei, pruefSummenDatei: string);
begin
inherited create;
_oriAbh:=tGenerischeAbhaengigkeiten.create;
_mglAbh:=tExpliziteAbhaengigkeiten.create;
_dats:=tDateienMitDaten.create;
+
+ // machDatei teilweise prüfen und setzen
+ if machDatei='' then begin
+ machDatei:=pwd+'/';
+ while (machDatei<>'/') and not fileexists(machDatei+'Machdatei') do begin
+ delete(machDatei,length(machDatei),1);
+ machDatei:=extractfilepath(machDatei);
+ end;
+ machDatei:=machDatei+'Machdatei';
+ end;
+ _machDatei:=machDatei;
+ if not fileexists(_machDatei) then
+ fehler('Datei '''+_machDatei+''' existiert nicht!');
+
+ // pruefSummenDatei teilweise prüfen und setzen
+ if pruefSummenDatei='' then
+ pruefSummenDatei:=extractfilepath(_machDatei)+'.summen';
+ _pruefsummenDatei:=pruefSummenDatei;
+
+ // finale Prüfung / finales Einlesen
+ if not liesMachDatei then
+ fehler('Datei '''+_machDatei+''' ist fehlerhaft!');
+ if not liesPruefsummenfile then
+ fehler('Datei '''+_pruefsummenDatei+''' ist fehlerhaft!');
end;
destructor tMach.destroy;
@@ -707,32 +741,6 @@ begin
inherited destroy;
end;
-procedure tMach.wMachDatei(md: string);
-begin
- if md='' then begin
- md:=pwd+'/';
- while (md<>'/') and not fileexists(md+'Machdatei') do begin
- delete(md,length(md),1);
- md:=extractfilepath(md);
- end;
- md:=md+'Machdatei';
- end;
- _machDatei:=md;
- if not fileexists(_machDatei) then
- fehler('Datei '''+_machDatei+''' existiert nicht!');
- if not liesMachDatei then
- fehler('Datei '''+_machDatei+''' ist fehlerhaft!');
-end;
-
-procedure tMach.wPruefsummenDatei(pd: string);
-begin
- if pd='' then
- pd:=extractfilepath(machDatei)+'.summen';
- _pruefsummenDatei:=pd;
- if not liesPruefsummenfile then
- fehler('Datei '''+_pruefsummenDatei+''' ist fehlerhaft!');
-end;
-
function tMach.liesMachDatei: boolean;
var
f: tMyStringList;
@@ -751,11 +759,10 @@ end;
begin
result:=false;
- na:=tGenerischeAbhaengigkeit.create(_dats);
- na.machDatei:=machDatei;
+ na:=tGenerischeAbhaengigkeit.create(_dats,_machDatei,_pruefSummenDatei);
wasWar:=ztSuche;
f:=tMyStringList.create;
- f.loadFromFile(machDatei);
+ f.loadFromFile(_machDatei);
f.add('%%DATEIENDE%%');
if not f.unfoldMacros then begin
f.free;
@@ -782,15 +789,14 @@ begin
if (wasWar=ztBefehl) and (wasIst<>ztBefehl) then begin
_oriAbh.add(na);
- na:=tGenerischeAbhaengigkeit.create(_dats);
- na.machDatei:=machDatei;
+ na:=tGenerischeAbhaengigkeit.create(_dats,_machDatei,_pruefsummenDatei);
end;
if s='%%DATEIENDE%%' then break;
case wasIst of
ztSuche: begin
- allgemeineErsetzungen(s,machDatei);
+ allgemeineErsetzungen(s,_machDatei);
if startetMit('!',s) then begin
setlength(_ign,length(_ign)+1);
_ign[length(_ign)-1]:=tRegExpr.create;
@@ -847,22 +853,22 @@ var
gefunden,gut: boolean;
begin
result:=false;
- if pruefsummenDatei='' then begin
+ if _pruefsummenDatei='' then begin
gibAus('Fehler: Leerer Name als Summendatei angegeben!',3);
exit;
end;
- if not fileexists(pruefsummenDatei) then begin
- assignfile(f,pruefsummenDatei);
+ if not fileexists(_pruefsummenDatei) then begin
+ assignfile(f,_pruefsummenDatei);
rewrite(f);
closefile(f);
end;
- if not fileexists(pruefsummenDatei) then begin
- gibAus('Fehler: Ich bin nicht in der Lage, die bisher nicht existierende Datei '''+pruefsummenDatei+''' anzulegen!',3);
+ if not fileexists(_pruefsummenDatei) then begin
+ gibAus('Fehler: Ich bin nicht in der Lage, die bisher nicht existierende Datei '''+_pruefsummenDatei+''' anzulegen!',3);
exit;
end;
- gutschlecht:=testeSummen(pruefsummenDatei);
+ gutschlecht:=testeSummen(_pruefsummenDatei);
for gut:=false to true do
for i:=0 to gutschlecht[gut].count-1 do begin
@@ -986,86 +992,31 @@ begin
_mglAbh.sort;
end;
-procedure tMach.tueWasZuTunIst(allesNeu, unsicher: boolean; ausgabeDatei: string);
+procedure tMach.tueWasZuTunIst(unsicher: boolean; ausgabeDatei: string);
var
i,j: longint;
ausg: textfile;
- befehle,geaenderteDateien,
- sumDateien: tMyStringlist;
- gefunden: boolean;
+ befehle,alleDateien: tMyStringlist;
lokTest: tRegExpr;
- befehl,datei,verzeichnis: string;
begin
befehle:=tMyStringlist.create;
- geaenderteDateien:=tMyStringlist.create;
- sumDateien:=dateienMitGueltigerSumme(pruefsummenDatei);
- for i:=0 to _dats.count-1 do begin
- gefunden:=(_dats[i].name=pruefsummenDatei) or (_dats[i].name=ausgabeDatei);
- for j:=0 to sumDateien.count-1 do
- if sumDateien[j]=_dats[i].name then begin
- gefunden:=true;
- sumDateien.delete(j);
- break;
- end;
- if not gefunden then
- geaenderteDateien.add(_dats[i].name);
- end;
- sumDateien.free;
- if allesNeu then
- for i:=0 to _mglAbh.count-1 do begin
- for j:=0 to _mglAbh[i].ziele.count-1 do
- geaenderteDateien.add(_mglAbh[i].ziele[j].name);
- for j:=0 to _mglAbh[i].quellen.count-1 do
- geaenderteDateien.add(_mglAbh[i].quellen[j].name);
- end;
- for i:=0 to _mglAbh.count-1 do begin
- for j:=0 to _mglAbh[i].ziele.count-1 do
- geaenderteDateien.add(_mglAbh[i].ziele[j].name);
- for j:=0 to _mglAbh[i].quellen.count-1 do
- geaenderteDateien.add(_mglAbh[i].quellen[j].name);
- end;
for i:=0 to _mglAbh.count-1 do
for j:=0 to _mglAbh[i].befehle.count-1 do
befehle.add(_mglAbh[i].befehle[j]);
if not unsicher then begin
lokTest:=tRegExpr.create;
if (ausgabeDatei='') or
- (extractfilepath(ausgabeDatei)=extractfilepath(pruefsummenDatei)) then
- lokTest.expression:=unterVerzeichnisRegex([pruefsummenDatei])
+ (extractfilepath(ausgabeDatei)=extractfilepath(_pruefsummenDatei)) then
+ lokTest.expression:=unterVerzeichnisRegex([_pruefsummenDatei])
else
- lokTest.expression:=unterVerzeichnisRegex([ausgabeDatei,pruefsummenDatei]);
+ lokTest.expression:=unterVerzeichnisRegex([ausgabeDatei,_pruefsummenDatei]);
+ alleDateien:=_dats.toMyStringList;
+ alleDateien.grep('^\.uralt\.$',true);
for i:=0 to befehle.count-1 do
- testeObBefehlLokal(befehle[i],extractfiledir(ausgabeDatei),geaenderteDateien,lokTest);
+ testeObBefehlLokal(befehle[i],extractfiledir(ausgabeDatei),alleDateien,lokTest);
+ alleDateien.free;
lokTest.free;
end;
- verzeichnis:=extractfilepath(pruefsummenDatei);
- for i:=0 to geaenderteDateien.count-1 do begin
- datei:=geaenderteDateien[i];
- if startetMit(verzeichnis,datei) then
- geaenderteDateien[i]:=datei;
- end;
- for i:=geaenderteDateien.count-1 downto 0 do begin
- if geaenderteDateien[i]='.uralt.' then begin
- geaenderteDateien.delete(i);
- continue;
- end;
- for j:=0 to i-1 do
- if geaenderteDateien[i]=geaenderteDateien[j] then begin
- geaenderteDateien.delete(i);
- break;
- end;
- end;
- if geaenderteDateien.count>0 then begin
- befehle.add('echo -n "Sha512summen erneuern ..."');
- befehl:='sed "';
- for i:=0 to geaenderteDateien.count-1 do
- befehl:=befehl+'/\s'+escape(geaenderteDateien[i],'./','\')+'\$/d; ';
- befehl:=befehl+'" -i "'+pruefsummenDatei+'"';
- befehle.add(befehl);
- for i:=0 to geaenderteDateien.count-1 do
- befehle.add('(cd '+extractfilepath(pruefsummenDatei)+'; sha512sum "'+geaenderteDateien[i]+'") >> '+pruefsummenDatei);
- befehle.add('echo " fertig"');
- end;
if _mglAbh.count=0 then
befehle.add('echo "Es gibt hier nichts zu tun!"');
@@ -1083,7 +1034,6 @@ begin
closeFile(ausg);
end;
befehle.free;
- geaenderteDateien.free;
end;
function tMach.anzOriAbh: longint;
diff --git a/tools.pas b/tools.pas
index e07be8b..63d88cb 100644
--- a/tools.pas
+++ b/tools.pas
@@ -31,6 +31,7 @@ type
function gleicheNamenWie(dmd: tDateienMitDaten): boolean;
function toString: string; override;
procedure append(dmd: tDateienMitDaten);
+ function toMyStringList: tMyStringList;
end;
function min(a1,a2: tAktualitaet): tAktualitaet; inline; overload;
@@ -123,7 +124,16 @@ begin
end;
end;
-// allgemeine Funktionen
+function tDateienMitDaten.toMyStringList: tMyStringList;
+var
+ i: longint;
+begin
+ result:=tMyStringList.create;
+ for i:=0 to count-1 do
+ result.add(items[i].name);
+end;
+
+// allgemeine Funktionen *******************************************************
function min(a1,a2: tAktualitaet): tAktualitaet;
begin
@@ -260,7 +270,8 @@ begin
(exe='epstopdf') or
(exe='latexmk') or
(exe='mpost') or
- (exe='pdflatex') then
+ (exe='pdflatex') or
+ (exe='sed') then
exit
else begin
regex:='';