From 064ec76c2cdcdea381e8615033076f4cf37a2ca8 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 20 Dec 2017 12:04:48 +0100 Subject: Option -s|--sicher neu, die das aktuelle Inverse zu -u|--unsicher wird, dafür wird nun ohne -s oder -u der Lokalitätstest automatisch ausgelassen, wenn sich an der Machdatei nichts geändert hat MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Make.lpr | 8 +++- Make.lps | 110 +++++++++++++++++++++++++-------------------------- dateibeziehungen.pas | 10 +++-- 3 files changed, 68 insertions(+), 60 deletions(-) diff --git a/Make.lpr b/Make.lpr index 493a830..e7b862e 100644 --- a/Make.lpr +++ b/Make.lpr @@ -34,10 +34,11 @@ begin lOpts.add('Datei:'); lOpts.add('Prüfsummen:'); lOpts.add('leise'); + lOpts.add('sicher'); lOpts.add('unsicher'); lOpts.add('warten'); nonOpts:=tStringList.create; - errorMsg:=checkOptions('A:D:P:luw',lOpts,nil,nonOpts,true); + errorMsg:=checkOptions('A:D:P:lsuw',lOpts,nil,nonOpts,true); lOpts.free; while nonOpts.count>0 do begin if errorMsg<>'' then @@ -49,6 +50,9 @@ begin if errorMsg<>'' then fehler(errorMsg+#10'Hilfe: man Make'); + if hasOption('u','unsicher') and hasOption('s','sicher') then + fehler('Die Optionen -s|--sicher und -u|--unsicher schließen sich gegenseitig aus!'); + if hasOption('l','leise') then __ausgabenMaske:=3; @@ -69,7 +73,7 @@ begin gibAus('Regeln: '+intToStr(mach.anzMglAbh)+', Dateien: '+intToStr(mach.anzDats),3); mach.findeWasZuTunIst; gibAus('anzuwendende Regeln: '+intToStr(mach.anzMglAbh),3); - mach.tueWasZuTunIst(hasOption('u','unsicher'),getOptionValue('A','Ausgabe')); + mach.tueWasZuTunIst(byte(hasOption('s','sicher'))-byte(hasOption('u','unsicher')),getOptionValue('A','Ausgabe')); terminate; end; diff --git a/Make.lps b/Make.lps index 34f230b..f79d551 100644 --- a/Make.lps +++ b/Make.lps @@ -7,24 +7,24 @@ - - - + + + - + - - - + + + @@ -33,7 +33,7 @@ - + @@ -42,10 +42,10 @@ - - - - + + + + @@ -65,7 +65,7 @@ - + @@ -134,121 +134,121 @@ - + - + + - - + + - - + + - - + + - + - - + + - - + - - + + - - + + - - + + - + - - + + - - + + - - + + - - + + - + - + - + - + - + - - + - + + - + - + - - + + - + - + diff --git a/dateibeziehungen.pas b/dateibeziehungen.pas index 7eee746..ece2e13 100644 --- a/dateibeziehungen.pas +++ b/dateibeziehungen.pas @@ -105,7 +105,7 @@ type destructor destroy; override; procedure erzeugeRegeln; procedure findeWasZuTunIst; - procedure tueWasZuTunIst(unsicher: boolean; ausgabeDatei: string); + procedure tueWasZuTunIst(sicher: integer; ausgabeDatei: string); function anzOriAbh: longint; inline; function anzMglAbh: longint; inline; function anzDats: longint; inline; @@ -987,7 +987,7 @@ begin _mglAbh.sort; end; -procedure tMach.tueWasZuTunIst(unsicher: boolean; ausgabeDatei: string); +procedure tMach.tueWasZuTunIst(sicher: integer; ausgabeDatei: string); var i,j: longint; ausg: textFile; @@ -998,7 +998,11 @@ begin 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 + befehle.add('sed "/\s'+escapeStringToRegex(escape(_machDatei,'$','\'),rtShell,'"/')+'\$/d" -i "'+escape(_pruefSummenDatei,'"\','\')+'"'); + befehle.add('sha512sum "'+escape(_machDatei,'"\','\')+'" >> "'+escape(_pruefSummenDatei,'"\','\')+'"'); + befehle.add('sort -u "'+escape(_pruefSummenDatei,'"\','\')+'" | sponge "'+escape(_pruefSummenDatei,'"\','\')+'" || true'); // ignoriere diese Zeile, wenn "sponge" nicht existiert + if (sicher=1) or // der Benutzer will es + ((sicher=0) and (_dats.finde(_machDatei).aktuell<>aAktuell)) then begin // die Machdatei ist nicht aktuell lokTest:=tRegExpr.create; if (ausgabeDatei='') or (extractFilePath(ausgabeDatei)=extractFilePath(_pruefSummenDatei)) then -- cgit v1.2.3-70-g09d2