/*
    $VER: Compare.rexx V1.0ß (27.5.96) © by Nils Görs

    Dieses Skript vergleicht die tatsächliche Verzeichnisstruktur mit der
    Brettliste von Zodiac's Point.
    Findet das Skript Verzeichnisse die nicht in der Brettliste vorhanden
    sind, können diese Verzeichnisse gelöscht werden.

    Beispiel:
       rx compare.rexx Zodiac:Bretter Zodiac:bretter/boardlist.zp

    (oder, wenn Sie das S-Bit des Skript gesetzt haben sollten):
       rexx:compare.rexx Zodiac:Bretter Zodiac:bretter/boardlist.zp
*/


OPTIONS RESULTS

PARSE ARG Path File .

IF File = "" THEN DO
Say "BOARDPATH/K,BOARDLIST/K"
EXIT(5)
END
   /*
   ** Open libs
   */

   IF ~SHOW(LIBRARIES,'rexxtricks.library') THEN
      IF ~ADDLIB('rexxtricks.library',9,-30,38) THEN
         quit('Cannot open rexxtricks.library!',10)

/* Erstellt eine Liste der Brettstruktur */
 say "Bitte haben Sie etwas Geduld..."
 say ""
ADDRESS COMMAND "list" Path "LFORMAT=%S%S ALL DIRS SORT=N >t:BrettStruktur"
 CALL RXTR_READFILE("t:BrettStruktur",BrettStruktur)

DO i = 1 to BrettStruktur.0
  Num=INDEX(BrettStruktur.i,":")+1
  BrettStruktur.i = SUBSTR(BrettStruktur.i,Num)
END

ADDRESS COMMAND "Delete t:BrettStruktur QUIET"

/* hole die Pfadzuweisungen */

CALL OPEN(OFile,File,"Read")

i = 1

DO UNTIL EOF(OFile)
  Line = READLN(OFile)
   IF ABBREV(Line,"P:") THEN DO
     Line = SUBSTR(Line,3)
      Num=INDEX(Line,":")+1
      Pfad.i = SUBSTR(Line,Num)
     i = i+1
   END
END
CALL CLOSE(OFile)

Pfad.0 = i-1

Num=INDEX(Path,":")
OrigPath=LEFT(Path,Num)

say "Vergleiche nun Brettstruktur mit den Pfadzuweisungen der Brettliste..."
say ""
DO i = BrettStruktur.0 TO 1 BY -1
   Nummer=RXTR_LSEARCH(BrettStruktur.i||'#?',Pfad,,,'PATTERN')
    IF nummer == -1 THEN DO
         say "Hinweis: Den Pfad" '"'BrettStruktur.i'"' "gibt es nicht in Ihrer Brettliste..."
         ADDRESS COMMAND "List" OrigPath||BrettStruktur.i "NOHEAD ALL"
          IF (rc) == 0 THEN DO
            OPTIONS PROMPT "Soll dieses Verzeichnis gelöscht werden? (j/N): "
             PARSE UPPER PULL Antwort
              IF Antwort == "J" THEN DO
               say "lösche..."
               ADDRESS COMMAND "Delete" OrigPath||BrettStruktur.i "ALL"
              END
          END
         say ""
    END
END
say "Fertig !!!"
EXIT(0)
/*EOS*/
