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) |
MOSE - MakeObj Script Environment - Cruzer - 05-06-2009 MOSE ist eine Skript Sprache für makeobj. Der Vorteil gegenüber normalen Batch Dateien ist, das sie auf allen Betriebsystem gleich funktioniert. Entstanden ist die Idee im pak192.comic, wo Entwickler mit verschiedenen Platformen bissher immer verschiedene Build Skripts benötigten. Ein 2. Grund war, das ich die Programmiersprache Python testen wollte. (Und zur Zeit bin ich noch sehr begeistert von ihr!) Systemanforderungen: Betriebsystem: Windows, Linux/Unix, Mac OS Python: min. Version 2.6 oder 3.0 Download: Download und Anleitung: http://moscript.sf.net/ Installiation: Nachtrag vom 15.7.2009: Inzwischen sind für Windows auch Installer vorhanden, und es wird empfohlen die zu verwenden! Um MOSE zu installieren, muss die ZIP nur in einen beliebigen Ordner entpackt und dann makeobj in das selbe Verzeichnis kopiert werden. Um die Anwendug zu starten, muss nur die Datei "mose.py" gestartet werden. In Linux ist es empfehlenswert, es in das Verzeichnis '/usr/bin/' zu entpacken. Denn dann kann man auch von die Shebang benutzen. Benutzung: Diese Anleitung ist für Windows geschrieben. Auf Linux und Mac sollte es gleich funktieren, habe ich jedoch selbst nicht getestet! MOSE ist ein Kommandozeilen Interpred, ähnlich wie die "Windows Eingabeaufrderung". Und genauso funktioniert es auch. Man kann Befehle manuell eingeben, oder man kann eine Skript Datei beim Start übergeben. Um Befehle manuell einzugeben muss die Datei einfach nur Doppelgelickt werden. Um eine Skript-Datei zu starten gibt es 2 Möglichkeiten: 1. Starte die Datei 'mose.py' und tippe 'run example.mos' ein. 2 Oder übergib die Datei beim Start an mose.py 'mose.py example.mos' Beide Methoden führen das Skript 'example.mos' aus. In dieses Skript gehört nun folgendes: Code: #!/usr/bin/mose.py Zeile 1: '#/usr/bin/mose.py' ist ein Shebang. Dies sollte in Linux am Anfang jeder Script-Datei stehen, denn dadurch erkennt Linux mit welchem Programm er das Script ausführen soll. Unter Windows wird dies einfach ignoriert. Zeile 2: 'config paksize=192' bewirkt, das alle Nachfolgenden Befehle für das pak192 ausgeführt werden. Zeile 3: 'build ./ ./' bewirkt das alle Dateien in './' (also dem Verzeichnis in dem sich das Skript befindet) nach './' erstellt werden. ACHTUNG: Es dürfen nur Linux-/ verwendet werden! (Keine Windows-\!) Durch die Eingabe von "help" werden alle Befehle angezeigt. Hinweis: Eine Liste aller Befehl erhält man durch Eingabe von "?" oder "help". Um Detailierte Informationen zu einen Befehl zu erhalten kann man "?<command>" verwenden. Ein kleines Beispielskript, sowie eine kleine PNG und DAT in der ZIP enthalten, damit kann man leicht die Funktionien testen. - MoTw - 05-06-2009 Gute Idee! Allerdings funktioniert das bei mir unter einem Live-Ubuntu-System bisher nicht zufriedenstellend: Ich gebe in die Shell Zitat:ubuntu@ubuntu:/media/MOTW/LINUX/MOSE$ ./mose.py <example.mosein. Brauche ich noch irgendwelche zusätzlichen Bibliotheken? (Python 3 hab ich), makeobj ist auch im selben Verzeichnis... - Cruzer - 05-06-2009 Eigentlich nicht. Und deine Fehlermeldung verwirrt mich etwas. "import" ist doch die Grundlage aller Befehle, wie kann die Fehlen. Kannst du einmal probieren die Datei "makeScript.pyc" zu starten? Du kannst für kleine Expimente auch die Anwendung ohne Übergabe eines Skripts starten! In Windows geht das durhc einfaches doppelklicken. - MoTw - 05-06-2009 Dann kommt folgender Fehler: Zitat:»/media/MOTW/LINUX/MOSE/makeScript.pyc« konnte nicht angezeigt werden. Bei Synaptic finde ich mit den Suchbegriffen "python" oder "python bytecode" keine für mich sinnvoll erscheinenden treffer. - Cruzer - 05-06-2009 Hast du Python 3.0 richtig installiert? (Mit dem Paket Manager von Ubuntu?) Denn deine Fehlermeldung besagt dass Python nicht installiert ist. Gib in der Bash einfach einmal "python" ein. Sollte er es nicht finden, hast es nicht richtig installiert. Eventuell versuchst du die Datei einmal folgend zu starten: Code: python mose.py Code: python makeScript.pyc - MoTw - 05-06-2009 Installiert ist es. Nur in der Falschen Version: Python 2.6.2 (release26-maint, Apr 19 2009, 01:56:41)... Dabei hatte ich es doch über Synaptic installiert... Muss ich 2.6 erst de-installieren damit 3.0 läuft? Version 0.2.1.0 - Cruzer - 06-06-2009 Neue Version hochgeladen: http://mose.simutrans.bplaced.net/mose_0_2_1.zip Änderungen: ADD: Befehl "merge" hinzugefügt. ADD: Befehl "copy" hinzugefügt. ADD: Befehl "xcopy" hinzugefügt. ADD: Befehl "chdir" hinzugefügt. ADD: Befehl "mkdir" hinzugefügt. ADD: Befehl "rmdir" hinzugefügt. ADD: Skript: "config.mos" wird bei jedem Start automatisch ausgeführt. UPDATE: Befehl "!" besitzt nun eine weiter Option: "!size=192". Damit kann nun die Pak-Set Größe, noch einfacher definiert werden. UPDATE: Befehl "config" besitzt nun einige weiter Optionen, um zu steuern was auf dem Bildschirm ausgegeben wird. FIX: Nachdem Befehl "run" wird nun automatisch in das Ursprungs Verzeichnis zurückgekehrt. Ein Skript zum Packen des pak64 ist angehängt. Es zeigt auch die neuen Befehle! Um es zu testen, muss man es nur in das Wurzelverzeichnis des pak64 entpacken. RE: Version 0.2.1.0 - wernieman - 06-06-2009 Für Linux hast Du einen "Fehler". Es hißt nicht #/usr/bin/mose.py sondern #!/usr/bin/mose.py Die Kombination #! giebt den Interpreter an! Nicht das reine +, was allgemein nur als Kommentar verwendet wird. - Cruzer - 07-06-2009 Oh, danke! Wie du weißt, bin ich selbst nicht allzu vertraut mit Linux. -------------------------------------- Nachtrag: Neue Version hochgeladen: http://mose.simutrans.bplaced.net/ Sie sollte nun ausreichend Fehlerfrei sein um Pak-Sets Fehlerfrei zu packen. (Gehteste und Fehlerfrei mit den Sources von pak64, pak128.britian und pak192.comic!) Hinweis für das pak192.comic Team: Auf dem SVN liegt ein Script (makeALL.mos), zum packen des Sets. Bitte testes es. (Zur Benutzung muss die Zeile "!OUTPUT=C:\" auf das Ausgabe Verzeichnis umgeändert werden! - wernieman - 08-06-2009 Sorry, aber auf meinem Server ist nur 2.5 Ich werde es aber im Moment nicht updaten, da Gentoo es für wichtige Systemtools verwendet und ich nicht den Server riskieren will .... Wenn ich zeit habe, werde ich mir auf meinen Schlappi eine VM mit Linux und einem neuerem Python draufziehen. P.S. Kennt jemand auf die Schnelle ein Linux mit Python >3.0?? |