UWCP - Unix to Windows Copy

Ein kleines Utility für windösige Hamsteraner, um mit dem "UUCP over FTP"-Angebot von Germanynet ihre News per UUCP holen zu können.

(Für alle, die auch darüber senden und Mail schicken holen wollen, steht dort die erste Alfa-Version eines Versuchs, dies zu realisieren, bereit)

  1. Installation:

    Einfach den Inhalt des mitgelieferten Zips in ein beliebiges Unterverzeichnis entpacken, einmalig uwcp aufrufen und einige Fragen zum Account¹) beantworten. UWCP ist dabei nicht auf Sicherheit (heißt: Accountdaten sind im Klartext in uwcp.rc abgelegt), sondern auf möglichst automatischen Ablauf ausgelegt. Nach diesem Erstaufruf existieren dann die Verzeichnisse:

    .\in - Dorthin werden die per FTP geholten Batches abgelegt. Zur Kompitabilität mit dem genutzen DOS-Entpacker SZIP werden dabei die Originalbatchnamen D.1234 in D_1234 umbenannt.

    .\out - Dort liegen nach erfolgter Entzippung die zum Import in den Hamster bereitgestellten .TXT-Dateien

    .\done - Dorthin können (alternativ zur Löschung) die importierten Batches ausgelagert werden.

    .\logs - Dorthin legt UWCP in den Dateien ddmmyynn.log (yy= Tag, mm=Monat,yy= Jahr, nn=laufende Nummer pro Tag) den Dialog mit dem FTP-Client ab..

    .\scripts - enthält während der Laufzeit die für die unterschiedlichen Funktionen nötigen Scripte für das Windoze-Program FTP.EXE. Vor und nach Start von UWCP sollte es jeweils leer sein, da in den FTP-Dialogen ja imerhin das Passwort im Klartext auftaucht. Und einmal in uwcp.rc ist ja schon eigentlich einmal zuviel. Deshalb stehen die Scripte dort nur so lange wie unbedingt nötig.

    .\temp - enthält (Da wär wohl niemand draufgekommen!) temporäre Dateien
    ________________________
    ¹) Aus gegebenem Anlaß: gn-Nutzernummer²) bitte mit "," statt mit dem "." eingeben!
    ²) Die ist aber inzwischen identisch mit der UMS-Rufnummer ohne führende Null.

  2. Betrieb:

    Einmal auf diese Weise eingerichtet, kann UWCP durch Übergabe (jeweils eines) Kommandozeilenparameters die unterschiedlichen Aufgaben erledigen:

    uwcp -g (get batches)

    Stellt die Verbindung zum ftp-Server her und baut zunächst in .\temp\dirlist das aktuelle Inhaltsverzeichnis auf. Dies dient dazu, unmittelbar danach statt mit "mget *.*" über "get D.1234 .\in\D_1234" alle vorhandenen Batches aus dem Verzeichnis /D. mit dosgerechten Namen abzuholen und sie in das lokale Verzeichnis .\in zu stopfen.

    Die Dialupverbindung kann nun anschließend entweder wieder getrennt oder die Zwischenzeit für Mailholen und NNTP-Newssenden genutzt werden. Ein passendes Hamsterscript dazu könnte zum Beispiel so aussehen:

    #!hs2
    #!load hamster.hsm

    # Beispielscript für die Verwendung von uwcp
    # unter der Annahme, daß uwcp.exe im Pfad e:\uwcp
    # installiert sei. Dies bitte - ebenso wie den Namen
    # der DFÜ-Netzwerkverbindung "germanynet" - ggfls. anpassen.

    # Provider anwählen und uucp-Batches abholen:
    HamRasDial ("germanynet")
    Execute ("e:\uwcp\uwcp -g","e:\uwcp",1,True)

    # uucp-Batches dekomprimieren und die dabei verstreichende
    # Onlinezeit zum Mailverkehr und 'konventionelles' Newsposten
    # - eventuell mit genau hier vorgeschaltetem Korrnews - nutzen:
    HamMailExchange
    HamNewsPost

    uwcp -u (unzip)

    startet nun anschließend den Unzip-Vorgang: Alle Batches aus .\in werden nach .\out ausgepackt. Eingebunden ist hierzu entweder das Programm .\szip\szip.exe oder .\untgz\untgz.exe, je nach Header !sunbatch oder !gunzip.

    Die Verwendungsmöglichkeit anderer Entzippers ist in der ß-Phase noch nicht in uwcp eingebaut; jedoch sollten beliebige Entpackprogramme bereits jetzt funktionieren, falls sie das Kunststück fertigbringen, die als D_1234 im Verzeichnis .\in abgelegten Batches in gleichnamige Textdateien D_1234.TXT ins Verzeichnis .\out auszupacken..

    Mit uwcp, szip und Hamsterscript geht's so weiter:

    Execute ("e:\uwcp\uwcp -u","e:\uwcp",1,True)

    Grund für diesen kleinen Umweg ist der Sicherheitsaspekt: Sollte beim Download und oder Entpacken irgendetwas schief gegangen sein, stehen letztendlich nur die erfolgreich geholten Batches im Verzeichnis .\out. Der Inhalt dieses Verzeichnis wird zunächst für den Folgebefehl verwendet:

    uwcp -d (delete)

    setzt sich nun (man könnte es aber auch je nach Gusto *vor* uucp -g in das HamsterScript setzen) erneut mit dem FTP-Server in Verbindung und löscht dort *nur* die Dateien, welche bereits sicher als importierbare Texte in .\out angekommens sind. Das Serververzeichnis /C. wird unabhängig davon bei der Gelegenheit mit abgeräumt:

    # erfolgreich dekomprimierte Batches auf dem ftp-Server löschen:
    Execute ("e:\uwcp\uwcp -d","e:\uwcp",1,True)

    # Vor dem Auflegen vorsichtshalber abwarten, falls
    # "HamMailExchange" und "HamNewsPost" noch laufen:
    HamWaitIdle
    HamRasHangup

    uwcp -i (import)

    startet nun für jeden vorliegenden Batch die Hamsterfunktion "ham import .\out\D_1234.txt" um die News in den Nager zu schaufeln.

    # dekomprimierte uucp-Batches in den Hamster importieren:
    Execute ("e:\uwcp\uwcp -i","e:\uwcp",1,True)

    und benennt anschließend den jeweils bearbeiteten vorhandenen D_1234.txt nach D_1234.imp um. Diese können jederzeit nach Bedarf händisch oder per uwcp -pi gelöscht werden.

    uwcp -pb (purge batches)
    löscht ganz einfach das Verzeichnis .\in. Damit sind die gedowngeloadeten UUCP-Batches von der lokalen Platte gelöscht.

    uwcp -mb (move batches)
    Alternative zum Löschen. Es verschiebt die Dateien von .\in nach .\done. Damit sind die gedowngeloadeten UUCP-Batches aus dem Inkommenden Verzeichnis entfernt, um nicht beim nächsten "-u"-Durchgang erneut behandelt zu werden.

    Sinnigerweise sollte man beide Befehle jedoch nicht vor uwcp -u anwenden: Danach ist nämlich nichts mehr unzipbares im lokalen Verzeichnis. Ebenso sinnigerweise sollte man jedoch einen der beiden Befehle spätestens vor dem nächsten Kontakt zum FTP-Server ausführen.

    u
    wcp -pi (purge import)
    löscht ebenso einfach das Verzeichnis .\out mit den Import-Dateien für den Hamster.

    Wann und ob man überhaut das .\out-Verzeichnis löschen möchte oder die importierten Batches sammeln statt löschen möchte, bleibt den Paranoiden überlassen. Ich persönlich schicke anschließend gleich zusammen mit Thomas G. Liesner's copyfups dies auf die Reise:

    # Sobald drin, auf FollowUps checken:
    Execute ("F:\hamster\copyfups",HamPath,0,False)

    # Während Copyfups noch läuft, komprimierte batches verschieben
    # und dekomprimierte import-Daten löschen:
    Execute ("e:\uwcp\uwcp -mb","e:\uwcp",1,True)
    Execute ("e:\uwcp\uwcp -pi","e:\uwcp",1,True)

    # färtisch!

  3. Download: uwcp.zip

  4. Extra für Thomas G. Liesner: Der Quälcode;

  5. Kritik, Anregungen und Spenden an den Autor