Deutsches Simutransforum
MOSE - MakeObj Script Environment - Druckversion

+- Deutsches Simutransforum (https://simutrans-forum.de/mybb)
+-- Forum: Simutrans (https://simutrans-forum.de/mybb/forumdisplay.php?fid=3)
+--- Forum: Nützliche Programme (https://simutrans-forum.de/mybb/forumdisplay.php?fid=37)
+--- Thema: MOSE - MakeObj Script Environment (/showthread.php?tid=4266)

Seiten: 1 2 3 4


- Cruzer - 11-06-2009

Zitat:Original von wernieman
2 Probleme

1. Es werden keine Unterverzeichnise eingerichtet
2. Das Script wird nicht automatisch beendet

2. Das ist so vorgesehen. Damit die faulen Windows Benutzer das Programm auch per Doppelklicken starten können, und das Fenster nicht immer gleich wieder verschwindet.
Lässt sich aber lösen:
Code:
echo exit>./tmp.txt
mose_nightly.py makeall.mos <exit
del ./tmp.txt

Zu 1. fällt mir selbst nichts ein.


- wernieman - 12-06-2009

Ich kenne python zu wenig .. kann ich Dir trotzdem helfen?

bzw. welche info brauchst Du?


- Cruzer - 12-06-2009

Eben kam mir eine Idee.

In Windows würde das erstellen eines Verzeichnisses namens "xyz" bewirken, das im aktuellen Arbeitsverzeichnisses das Verzeichnisses "xyz" angelegt.
Soweit ich weiß bewirkt dies in Linux jedoch einen Fehler, denn da müsste man das wie folgt angeben: "./xyz" um zum gleichen Ergebnis zu kommen. Wenn dies der Fehler sein sollte, das lässt sich das sehr einfach beheben.

Um zu testen ob dies der Fehler ist, starte MOSE im Interaktiven Modus (=mose.py starten ohne eine Datei zu übergeben) und gib folgendes ein:

Code:
mkdir ./xyz

Und dann überprüfe ob die Verzeichnisse erstellt wurden (Im Interaktiven Modus mit dem Befehl "ls"). Wenn ja, dann ist das Problem gelöst. (Denn in dem MOScript "makeALL.mos" werden alle Verzeichnisse durch "mkdir xyz" (also ohne dem "./", was unter Linux villt. einen Fehler auslößt.) erstellt.)



Sobald du dazu gekommen bist, poste bitte hier dein Ergebnis, danke!


- TonyBzt - 13-06-2009

Zitat:Original von Cruzer
Zitat:Original von wernieman
2 Probleme

1. Es werden keine Unterverzeichnise eingerichtet
2. Das Script wird nicht automatisch beendet

2. Das ist so vorgesehen. Damit die faulen Windows Benutzer das Programm auch per Doppelklicken starten können, und das Fenster nicht immer gleich wieder verschwindet.
Lässt sich aber lösen:
Code:
echo exit>./tmp.txt
mose_nightly.py makeall.mos <exit
del ./tmp.txt

Zu 1. fällt mir selbst nichts ein.

Du könntest für mose z.B. einen wahlfreien Parameter einführen, der nach Abarbeitung des Makefiles ein exit ausführt (oder einen Exit-Befehl in das Makefile einfügen ). Das wäre vom Betriebssystem unabhängig.

Wenn Du im Source für den Aufruf der Klasse und dem Command-Loop folgendes schreibts:
Code:
"""

Run MakeScript class

"""

if __name__ == "__main__":

    mose = MakeScript(sys.argv)

    mose.cmdloop()

kann man Deine Klasse und deren Methoden auch in anderen Programmen benutzen.

Ich habe Dein Problem mit den Unterverzeichnissen nicht ganz verstanden. Wenn es ein Problem mit den Slashes ist (/ oder \ ) dann kannst Du den Wert os.sep benutzen. Bei Linux hast Du dann den / und bei Windows den \ als Separator. Ich benutze dies in meinen Scripts um vom OS unabhägig zu sein (oder werden).


- Cruzer - 13-06-2009

Danke TonyBZT für deine Tipps!
An den / und \ sollte es nicht liegen.

@Werner:
Habe mir selbst eine Linux Distribution Installiert und dort funktioniert es.
Was hast du denn in Zeile 4 eingetragen:

Code:
!OUTPUT=D:/bin/simutrans/pak192.comic/

Vielleicht fehlt bei dir der letzte "/", denn der ist drigendnötig, da in den Nachfolgenden Befehlen "mkdir %OUTPUT%config/" davon ausgegangen wird, das der / angehängt ist.


- wernieman - 15-06-2009

Ups .. habe aus versehen gelöscht ....

Kann sein das es am letzten "/" lag .. schaue ich nach!


- The Transporter - 16-06-2009

Hilfe zu Python, allerdings zur Version 2.5 gibt es hier
Und andere Bücher hier


- Cruzer - 18-06-2009

Neue Version hochgeladen: Version 0.3.2
Download siehe 1.Beitrag

Die Version läuft nun auf Werners Nightly Server und wird in den nächsten Nightlys verwendet!


Änderungen:
ADD: Wird "mose.py" mit Parameter "-x" aufgerufen, wird es nun nach ausführen des Scripts automatisch beendet.
CHANGE: Alle Einstellungen, die man bissher mit dem Befehl "config" verändern konnte, kann man jetzt direkt als Variable verändern.


- wernieman - 18-06-2009

Hinweis: Nicht nächsten, sondern nächste Woche .. kleiner aber feiner Unterschied ;o)


- Cruzer - 15-07-2009

Neue Version hochgeladen: Version 0.4.0
Download: http://moscript.sf.net/

Neu dabei ist für Windows ein Setup-Assistent, welcher sich selbständig einrichtet.
Bei der Installiation durch den Setup-Assistenten ist es nun auch möglich *.mos Dateien durch einfaches anklicken zu starten.

Eine vollständige deutsche Befehslreferenz befindet sich nun auch im MOSEWiki


Detailierte-Änderungen:
Siehe SF.NET Changelog

Bereits Bekannter Bug:
Auf meiner Linux Installiation, fehlen MOSE die Rechte andere Programme auszuführen. Wenn ich es aber als SuperUser (sudo) starte, läuft es fehlerfrei. Dies tritt bei mir jedoch bei jeder bissherigen MOSE installiation auf.
Vielleicht liegt es auch nur an einer Fehlerhaften Linux konfiguration meinerseits.