summaryrefslogtreecommitdiff
path: root/Make.lpr
blob: 0574565dee781e8e08d2a617f76aa2020d5f287a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
program Make;

{$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:      string;
  lOpts,nonOpts: tStringList;
begin
  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');

  if hasOption('l','leise') then
    __ausgabenMaske:=3;

  mach:=tMach.create;

  if hasOption('D','Datei') then
    mach.machDatei:=getOptionValue('D','Datei')
  else
    mach.machDatei:='';

  if hasOption('P','Prüfsummen') then
    mach.pruefsummenDatei:=getOptionValue('P','Prüfsummen')
  else
    mach.pruefsummenDatei:='';

  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.anzZtAbh),3);
  mach.tueWasZuTunIst(hasOption('a','alleSummenErneuern'),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.