From 4b56ce331b7c628236300e0cf4e880cb31f18665 Mon Sep 17 00:00:00 2001 From: Erich Eckner Date: Wed, 11 May 2016 09:25:28 +0200 Subject: etwas aufgeräumt, warnen bei überzähligen Optionen MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Make.8.in | 5 +- Make.lpr | 27 +++++++++-- Make.lps | 126 ++++++++++++++++++++++++--------------------------- dateibeziehungen.pas | 18 +++++--- ewemake.in | 16 +------ 5 files changed, 97 insertions(+), 95 deletions(-) diff --git a/Make.8.in b/Make.8.in index 58129b5..325ab40 100644 --- a/Make.8.in +++ b/Make.8.in @@ -13,7 +13,7 @@ If absent, commands are printed to stdout. .TP .B "\-D, \-\-Datei Machdatei" read rules from \fIMachdatei\fP. -If absent, use \fIMachdatei\fP in current directory. +If absent, use \fIMachdatei\fP in current directory or first parent containing \fIMachdatei\fP. .TP .B "\-P, \-\-Prüfsummen Prüfsummendatei" read/store checksums in \fIPrüfsummendatei\fP. @@ -22,6 +22,9 @@ If absent, use \fI.summen\fP in same directory as \fIMachdatei\fP. .B "\-a, \-\-alleSummenErneuern" refresh all checksums .TP +.B "\-l, \-\-leise" +print nothing but error messages and (if \fB-A\fP omitted) commands +.TP .B "\-u, \-\-unsicher" accept running jobs outside of directory of \fIAusgabedatei\fP or \fIPrüfsummendatei\fP .SH MACHDATEI SYNTAX diff --git a/Make.lpr b/Make.lpr index 30a5956..0574565 100644 --- a/Make.lpr +++ b/Make.lpr @@ -25,10 +25,27 @@ type procedure tMake.doRun; var - mach: tMach; - errorMsg: string; + mach: tMach; + errorMsg: string; + lOpts,nonOpts: tStringList; begin - errorMsg:=checkOptions('A:D:P:alu','Ausgabe: Datei: Prüfsummen: alleSummenErneuern leise unsicher',true); + 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); + lOpts.free; + while nonOpts.count>0 do begin + if errorMsg<>'' then + errorMsg:=errorMsg+#10; + errorMsg:=errorMsg+'Überzähliges Argument '''+nonOpts[0]+'''!'; + nonOpts.delete(0); + end; + nonOpts.free; if errorMsg<>'' then fehler(errorMsg+#10'Hilfe: man Make'); @@ -40,12 +57,12 @@ begin if hasOption('D','Datei') then mach.machDatei:=getOptionValue('D','Datei') else - mach.machDatei:=myReadLink('Machdatei'); + mach.machDatei:=''; if hasOption('P','Prüfsummen') then mach.pruefsummenDatei:=getOptionValue('P','Prüfsummen') else - mach.setzeGenerischePruefsummenDatei; + mach.pruefsummenDatei:=''; gibAus('originale Regeln: '+inttostr(mach.anzOriAbh)+', originale Dateien: '+inttostr(mach.anzDats),3); mach.erzeugeRegeln; diff --git a/Make.lps b/Make.lps index 39ed4a5..739c319 100644 --- a/Make.lps +++ b/Make.lps @@ -3,28 +3,29 @@ - + - - - + + + + - + - + - + @@ -34,18 +35,17 @@ - + - - - - - + + + + @@ -100,108 +100,100 @@ + + + + + + + + + + + + + + + + - + - + - + - + - + - + - + - - + + - - + + - - + + - - + + - - + + - + - + - - + + - + - - + + - - + + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/dateibeziehungen.pas b/dateibeziehungen.pas index cfcfd45..135264f 100644 --- a/dateibeziehungen.pas +++ b/dateibeziehungen.pas @@ -74,7 +74,6 @@ type procedure erzeugeRegeln; procedure findeWasZuTunIst; procedure tueWasZuTunIst(allesNeu, unsicher: boolean; ausgabeDatei: string); - procedure setzeGenerischePruefsummenDatei; function anzOriAbh: longint; inline; function anzMglAbh: longint; inline; function anzZtAbh: longint; inline; @@ -86,7 +85,7 @@ function quellersetzung(var worin: string; quelle, inputfile: string): boolean; implementation uses - lowlevelunit, mystringlistunit; + lowlevelunit, mystringlistunit, systemunit; // tAbhaengigkeiten ************************************************************ @@ -352,6 +351,14 @@ 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!'); @@ -361,6 +368,8 @@ 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!'); @@ -839,11 +848,6 @@ begin geaenderteDateien.free; end; -procedure tMach.setzeGenerischePruefsummenDatei; -begin - pruefsummenDatei:=extractfilepath(machDatei)+'.summen'; -end; - function tMach.anzOriAbh: longint; begin result:=_oriAbh.count; diff --git a/ewemake.in b/ewemake.in index 59d1b9a..985e3f9 100755 --- a/ewemake.in +++ b/ewemake.in @@ -2,22 +2,8 @@ # ewemake verision #VERSION# - a wrapper for Make -machDatei="$(pwd)" - -while [ ! -r "${machDatei}/Machdatei" ] && [ ! "${machDatei}" == "/" ] -do - machDatei="$(dirname "${machDatei}")" -done - -machDatei="${machDatei}/Machdatei" -if [ ! -r "${machDatei}" ] -then - >&2 echo 'Fehler: Kann keine Machdatei finden!' - exit 1 -fi - tmpDatei="$(mktemp)" -Make -D "${machDatei}" -A "${tmpDatei}" +Make -l -A "${tmpDatei}" chmod +x "${tmpDatei}" "${tmpDatei}" rm -f "${tmpDatei}" -- cgit v1.2.3-70-g09d2