2012-06-12 13 views
12

Ich versuche, ein vorhandenes Hubot-Skript zu debuggen und in Zukunft mein eigenes zu schreiben, und ich brauche einen einfachen Weg, es zu debuggen oder zumindest Werte auszudrucken (aber nicht zum Kanal) . Wie kann ich das tun?Debugging/Drucken in einem Hubot-Skript

Bonuspunkte, wenn dies nur mit Node in einem interaktiven lokalen Modus durchgeführt werden kann. Ich bin mir wirklich nicht sicher, wo ich anfangen soll.

Alle Skripte, die Hubot verwendet, sind in Coffeescript geschrieben.

P.S. Ich benutze Hubot mit Hipchat.

Antwort

8

Ich habe die Antwort selbst entdeckt: console.log MSG in einer .coffee Coffeescript Quelle tut genau das, was ich brauchte.

+7

Sie können auch die REPL laufen durch die 'Weglassen -a ' Option, die Sie vor Ort testen und Debuggen von Skripten lassen. –

+0

@Artem Welchen Befehl führen Sie lokal aus, um den Hubot hochzufahren und alles? Ich suche auch ein Skript hier zu debuggen :) – mecampbellsoup

10

Ich weiß nicht, ob das hilft, aber ich habe einen Weg gefunden, Objekte zu inspizieren.

Util = require "util" 

module.exports = (robot) -> 
    robot.hear /hi robot/i, (msg) -> 
    user = robot.brain.usersForFuzzyName(msg.message.user.name) 
    msg.send "#{Util.inspect(user)}" 

Dies erlaubt sein, alle Elemente des Objekts zu sehen, damit ich herausfinden konnte, was ich falsch mache ...

+0

@radixhound so 'msg.send" foo "' auf die Konsole drucken, nachdem Sie Hubot über etwas wie 'bin/hubot' gestartet haben? Was ist der Schritt davor, um deinen Hubot zu initialisieren? Vielen Dank! – mecampbellsoup

+0

Ja, ich starte Hubot über 'bin/hubot' und lege den Ausgang in eine Antwort. Starten Sie im Grunde Hubot von der Kommandozeile und sagen 'Hallo Roboter' und es gibt die Info aus. Wahrscheinlich ist es besser, etwas zu tun, anstatt "zeig mir die Nutzer". – radixhound

3

können Sie

robot.logger.info "your log message here" 

verwenden, das wird es melden Sie sich einfach wie die anderen Hubot-Nachrichten protokolliert werden.

0

Gefunden dieses (coffeescript) Snippet irgendwo, die alle Fehler protokolliert, ziemlich hilfreich zu Bots in der Entwicklung hinzuzufügen.

robot.error (err, res) -> robot.logger.error "#{err}\n#{err.stack}" if res? res.reply "#{err}\n#{err.stack}"

Verwandte Themen