WarpIN - erster Script-Versuch

(DE) Projekte für OS/2, eCS und ArcaOS
(EN) OS/2, eCS and ArcaOS related projects
Antworten
Benutzeravatar
LotharS
Beiträge: 968
Registriert: So 29. Dez 2013, 20:07
Wohnort: Düsseldorf
Kontaktdaten:

WarpIN - erster Script-Versuch

Beitrag von LotharS »

Eigentlich war ich schon immer neugierig: "Wie baut man ein WarpIN-Script?". Ok, es gibt eine WarpIn-Hilfe mit Beispielen, aber was tun man wenn es nur ein wenig komplizierter wird?

Konkret meine kleine Anwendung LSZipWizard , zwar mit EN-Gui, aber zugleich mit EN und DE-Hilfen geliefert; ein Haken: VisproRexx darunter erwartet den _einen_ HLP-Dateinamen fest eingetragen, unvariierbar on-the-fly. Deshalb fragt vorab meine Installation "draußen" nach der HLP-Sprache, reines transparentes Rexx. Was nun mit WarpIN?

Variante (1):
Primitiv statt variabler HLPs zwei separate INF-Hilfen, unter Verzicht auf jede kontext-sensitive Hilfe. Wäre sogar fix erledigt, nur ein paar "Help"-Knöppe entfernen und 'n Ordner-Objekt kreieren. Wäre mir aber zu bequem und weniger OS/2-elegant... 8-)
Variante (2):
Elegant "Irgendwas" dem WarpIN-Script hinzufügen, das die Sprachabfrage macht; auf einen Klick mehr im WarpIN-Prozess sollte es nicht ankommen. Meine Idee nach langem Tüfteln ist ein Mini-Fenster, ploppt gegen Ende des Install-Vorgangs auf, und zwar "modal" damit's auch auffällt... Die "externen" Dateinamen liegen weiterhin allein im Script, nur diesmal in "wpi" statt "cmd". Wie sich's methodisch gehört :ugeek:

Noch traue ich mich mit solchem Versuch nicht an die Öffentlichkeit. Wer mir helfen möchte, habe ich die Idee mal hier als Prototyp hinterlegt, mit allen Script-Sourcen und Kopie der Original-Anwendung nebst -HLPs. Zwar hab's ich rauf und runter (de-)installiert und klappte endlich auch, aber bestimmt ginge es noch besser... Ist alles erstmal provisorisch. Ich lasse es für ein paar Monate erreichbar, in der Zwischenzeit nehme ich mir die (immer wieder unvermeidlichen :oops:) Tippis der Anwendung selbst vor...

Danke für jedes Feedback! Bitte aber keine Diskussion anfangen wie "Früher (mit zip-only) war mehr Lametta" oder was auch immer :roll: .
erdmann
Beiträge: 594
Registriert: Mo 4. Jan 2016, 14:36

Beitrag von erdmann »

1) Das erste, was du wahrscheinlich tun solltest ist, dir ein größeres/komplexeres WPI runterzuladen und aus diesem das WPI Installationsskript (WIS Datei) zu extrahieren: (run)wic SomePackage.wpi -X template.wis
Das gibt schon mal oft Inspiration, was so alles möglich ist
z.B. https://hobbes.nmsu.edu/download/pub/os ... fs32_6.wpi
Das ist nun meine Package, aber wie gesagt, eigentlich egal, alle einigermaßen komplexe Installationsvorgänge machen "fancy stuff"

2) was dann hilft, ist im "WarpIn Programmer's Guide and Reference" den Abschnitt "REXX Support Reference" gut durchzulesen. Denn ein WPI kann aktiv REXX Code ausführen, also offensichtlich das, was du brauchst.

EDIT: hab mal in dein WPI geschaut: nur um einen Dateinamen umzubenennen brauchst du kein extra executable zu bemühen. Da würde ja wiederrum ein REXX Scriptblock reichen. Den könntest du ja wiederrum unter dem EXECUTE keyword aufrufen. Da EXECUTE nach Installation der Dateien ausgeführt wird, kannst du also dort die Datei umbenennen. Oder du könntest ein Kommandozeilenkommando ausführen, da EXECUTE ja cmd.exe startet.

Lars
Benutzeravatar
LotharS
Beiträge: 968
Registriert: So 29. Dez 2013, 20:07
Wohnort: Düsseldorf
Kontaktdaten:

Beitrag von LotharS »

erdmann hat geschrieben: Mi 1. Feb 2023, 19:35 was dann hilft, ist im "WarpIn Programmer's Guide and Reference" den Abschnitt "REXX Support Reference" gut durchzulesen. Denn ein WPI kann aktiv REXX Code ausführen, also offensichtlich das, was du brauchst.
Hallo Lars,

erstmal Danke für Deine Mühe. Diesen Programmer's Guide hatte ich zwar ständig rauf- und runter studiert und trozdem keinen Erfolg gerade eine <REXX>-Rückgabe in ein "EXECUTE" einzubinden. Heute kleiner Umbau im Script und - passt!! :o Wahrscheinlich mal wieder irgendein Leerzeichen oder Gänsefüßchen zuviel oder zuwenig (?!)....
Da EXECUTE nach Installation der Dateien ausgeführt wird, kannst du also dort die Datei umbenennen. Oder du könntest ein Kommandozeilenkommando ausführen
Einfach _internes_ Rexx reicht hier nicht, sondern ich brauche eine externe User-Interaktion vor Abschluss, dann wird je nachdem _kopiert_. Denn VisproRexx kennt nur _einen_ (1) fix verdrahteten Helpfile-Namen, den ich irgendwie von "außen" bedienen muss; möchte dem User aber einen Wechsel bloß der Help-Sprache erlauben, ohne dass er seine Programm-Einstellungen verliert. Umgekehrt soll bei De-Installation alles im Package genannte rückstandslos verschwinden; daher zeigte sich zB. ein wahlweise zweites Sprach-Package (mit evtl. falschen Gui-Erwartungen...) ungeeignet.
Antworten