diff options
author | Erich Eckner <git@eckner.net> | 2017-12-20 12:04:48 +0100 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2017-12-20 12:04:48 +0100 |
commit | 064ec76c2cdcdea381e8615033076f4cf37a2ca8 (patch) | |
tree | 5673df77a2dc1c374725427cfc89d8921c449aee | |
parent | feefc686d8637b14732f1543e346f486f6920a8c (diff) | |
download | Make-064ec76c2cdcdea381e8615033076f4cf37a2ca8.tar.xz |
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
-rw-r--r-- | Make.lpr | 8 | ||||
-rw-r--r-- | Make.lps | 110 | ||||
-rw-r--r-- | dateibeziehungen.pas | 10 |
3 files changed, 68 insertions, 60 deletions
@@ -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; @@ -7,24 +7,24 @@ <Unit0> <Filename Value="Make.lpr"/> <IsPartOfProject Value="True"/> - <TopLine Value="52"/> - <CursorPos X="42" Y="71"/> - <UsageCount Value="103"/> + <TopLine Value="46"/> + <CursorPos X="84" Y="76"/> + <UsageCount Value="106"/> <Loaded Value="True"/> </Unit0> <Unit1> <Filename Value="Machdatei.txt"/> <IsPartOfProject Value="True"/> - <UsageCount Value="103"/> + <UsageCount Value="106"/> <DefaultSyntaxHighlighter Value="None"/> </Unit1> <Unit2> <Filename Value="tools.pas"/> <IsPartOfProject Value="True"/> <EditorIndex Value="4"/> - <TopLine Value="28"/> - <CursorPos X="11" Y="46"/> - <UsageCount Value="82"/> + <TopLine Value="420"/> + <CursorPos X="18" Y="440"/> + <UsageCount Value="85"/> <Loaded Value="True"/> </Unit2> <Unit3> @@ -33,7 +33,7 @@ <EditorIndex Value="2"/> <TopLine Value="255"/> <CursorPos X="14" Y="322"/> - <UsageCount Value="79"/> + <UsageCount Value="82"/> <Loaded Value="True"/> </Unit3> <Unit4> @@ -42,10 +42,10 @@ <UnitName Value="dateiBeziehungen"/> <IsVisibleTab Value="True"/> <EditorIndex Value="1"/> - <TopLine Value="531"/> - <CursorPos Y="547"/> - <FoldState Value=" T3ja03B41214 p0tF065 piejH0ER"/> - <UsageCount Value="71"/> + <TopLine Value="992"/> + <CursorPos X="117" Y="1003"/> + <FoldState Value=" T3ja03B41219"/> + <UsageCount Value="74"/> <Loaded Value="True"/> </Unit4> <Unit5> @@ -65,7 +65,7 @@ <EditorIndex Value="3"/> <TopLine Value="1276"/> <CursorPos X="81" Y="1311"/> - <UsageCount Value="18"/> + <UsageCount Value="20"/> <Loaded Value="True"/> </Unit7> <Unit8> @@ -134,121 +134,121 @@ <JumpHistory Count="30" HistoryIndex="29"> <Position1> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="533" Column="30" TopLine="511"/> + <Caret Line="430" TopLine="428"/> </Position1> <Position2> - <Filename Value="dateibeziehungen.pas"/> + <Filename Value="tools.pas"/> + <Caret Line="36" Column="15" TopLine="22"/> </Position2> <Position3> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="64" Column="48" TopLine="35"/> + <Filename Value="tools.pas"/> + <Caret Line="37" Column="22" TopLine="22"/> </Position3> <Position4> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="320" Column="93" TopLine="306"/> + <Filename Value="tools.pas"/> + <Caret Line="159" Column="15" TopLine="126"/> </Position4> <Position5> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="427" Column="41" TopLine="398"/> + <Filename Value="tools.pas"/> + <Caret Line="143" Column="53" TopLine="133"/> </Position5> <Position6> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="534" Column="43" TopLine="505"/> + <Caret Line="429" Column="56" TopLine="411"/> </Position6> <Position7> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="594" Column="33" TopLine="565"/> + <Filename Value="tools.pas"/> + <Caret Line="18" Column="65" TopLine="18"/> </Position7> <Position8> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="64" Column="61" TopLine="46"/> + <Filename Value="tools.pas"/> </Position8> <Position9> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="333" Column="20" TopLine="312"/> + <Filename Value="tools.pas"/> + <Caret Line="37" Column="56" TopLine="7"/> </Position9> <Position10> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="409" Column="59" TopLine="382"/> + <Filename Value="tools.pas"/> + <Caret Line="144" Column="16" TopLine="122"/> </Position10> <Position11> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="114" Column="32" TopLine="87"/> + <Filename Value="tools.pas"/> + <Caret Line="147" Column="83" TopLine="129"/> </Position11> <Position12> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="399" Column="31" TopLine="371"/> + <Caret Line="878" Column="24" TopLine="865"/> </Position12> <Position13> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="828" Column="39" TopLine="800"/> + <Filename Value="tools.pas"/> + <Caret Line="141" Column="31" TopLine="133"/> </Position13> <Position14> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="1099" Column="61" TopLine="1073"/> + <Filename Value="tools.pas"/> + <Caret Line="36" Column="45" TopLine="18"/> </Position14> <Position15> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="349" Column="89" TopLine="332"/> + <Filename Value="tools.pas"/> + <Caret Line="18" Column="3"/> </Position15> <Position16> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="354" Column="76" TopLine="338"/> + <Filename Value="tools.pas"/> + <Caret Line="37" Column="102" TopLine="36"/> </Position16> <Position17> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="1116" Column="73" TopLine="1083"/> + <Caret Line="429" Column="44" TopLine="411"/> </Position17> <Position18> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="1090" Column="22" TopLine="1087"/> + <Caret Line="891" Column="3" TopLine="867"/> </Position18> <Position19> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="114" Column="32" TopLine="96"/> + <Caret Line="1004" Column="45" TopLine="987"/> </Position19> <Position20> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="399" Column="24" TopLine="371"/> + <Caret Line="854" Column="7" TopLine="836"/> </Position20> <Position21> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="64" Column="28" TopLine="46"/> + <Caret Line="1005" Column="53" TopLine="981"/> </Position21> <Position22> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="320" Column="49" TopLine="288"/> </Position22> <Position23> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="441" Column="26" TopLine="418"/> + <Caret Line="101" Column="33" TopLine="72"/> </Position23> <Position24> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="552" Column="20" TopLine="531"/> + <Caret Line="727" Column="18" TopLine="705"/> </Position24> <Position25> <Filename Value="dateibeziehungen.pas"/> + <Caret Line="1011" Column="38" TopLine="982"/> </Position25> <Position26> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="64" Column="28" TopLine="35"/> + <Caret Line="727" Column="13" TopLine="708"/> </Position26> <Position27> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="347" Column="23" TopLine="325"/> + <Caret Line="875" Column="22" TopLine="859"/> </Position27> <Position28> - <Filename Value="dateibeziehungen.pas"/> - <Caret Line="64" Column="28" TopLine="46"/> + <Filename Value="tools.pas"/> + <Caret Line="54" Column="21" TopLine="37"/> </Position28> <Position29> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="320" Column="49" TopLine="288"/> + <Caret Line="875" Column="22" TopLine="859"/> </Position29> <Position30> <Filename Value="dateibeziehungen.pas"/> - <Caret Line="441" Column="26" TopLine="412"/> + <Caret Line="717" Column="79" TopLine="693"/> </Position30> </JumpHistory> </ProjectSession> 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 |