summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2017-12-20 12:04:48 +0100
committerErich Eckner <git@eckner.net>2017-12-20 12:04:48 +0100
commit064ec76c2cdcdea381e8615033076f4cf37a2ca8 (patch)
tree5673df77a2dc1c374725427cfc89d8921c449aee
parentfeefc686d8637b14732f1543e346f486f6920a8c (diff)
downloadMake-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.lpr8
-rw-r--r--Make.lps110
-rw-r--r--dateibeziehungen.pas10
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 @@
<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