program Make; {$DEFINE UseCThreads} {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} classes, sysUtils, custApp { you can add units after this }, lowlevelunit, dateiBeziehungen, systemunit; type { tMake } tMake = class(tCustomApplication) protected procedure doRun; override; public constructor create(theOwner: tComponent); override; end; { tMake } procedure tMake.doRun; var 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('leise'); lOpts.add('sicher'); lOpts.add('unsicher'); lOpts.add('warten'); nonOpts:=tStringList.create; errorMsg:=checkOptions('A:D:P:lsuw',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'); 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; if hasOption('D','Datei') then md:=getOptionValue('D','Datei') else md:=''; if hasOption('P','Prüfsummen') then pd:=getOptionValue('P','Prüfsummen') else pd:=''; mach:=tMach.create(md,pd,hasOption('w','warten')); 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(byte(hasOption('s','sicher'))-byte(hasOption('u','unsicher')),getOptionValue('A','Ausgabe')); terminate; end; constructor tMake.create(theOwner: tComponent); begin inherited create(theOwner); stopOnException:=true; end; var application: tMake; begin __ausgabenMaske:=1; application:=tMake.create(nil); application.run; application.free; end.