jp: added --connect option

This commit is contained in:
Goffi 2011-10-02 00:29:04 +02:00
commit b8edbbab56

View file

@ -103,6 +103,8 @@ class JP():
help=_("Separate xmpp messages: send one message per line instead of one message alone."))
parser.add_option("-n", "--new-line", action="store_true", default=False,
help=_("Add a new line at the beginning of the input (usefull for ascii art ;))"))
parser.add_option("--connect", action="store_true", default=False,
help=_("Connect the profile before doing anything else"))
(self.options, args) = parser.parse_args()
@ -124,7 +126,7 @@ class JP():
self.options.progress = False
error (_("Option progress is not available, deactivated."))
if self.options.progress or self.options.wait_file:
if self.options.progress or self.options.wait_file or self.options.connect:
self.start_loop = True #We have to use loop for these options
else:
self.start_loop = False
@ -134,16 +136,26 @@ class JP():
def check_jabber_status(self):
"""Check that jabber status is allright"""
def cantConnect():
error(_(u"Can't connect profile"))
exit(1)
self.profile = self.bridge.getProfileName(self.options.profile)
if not self.profile:
error(_("The profile asked doesn't exist"))
exit(1)
if not self.bridge.isConnected(self.profile):
if self.options.connect: #if connection is asked, we connect the profile
self.bridge.asyncConnect(self.profile, self.connected, cantConnect)
return
elif not self.bridge.isConnected(self.profile):
error(_(u"SàT is not conneted, please connect before using jp"))
exit(1)
self.connected()
def send_stdin(self):
"""Send incomming data on stdin to jabber contact"""
@ -248,6 +260,15 @@ class JP():
def go(self):
self.check_options()
self.check_jabber_status()
if self.start_loop:
self.loop = gobject.MainLoop()
try:
self.loop.run()
except KeyboardInterrupt:
info(_("User interruption: good bye"))
def connected(self):
"""This is called when the profile is connected"""
if self.options.wait_file:
self.wait_file()
else:
@ -256,15 +277,12 @@ class JP():
else:
self.send_files()
if self.start_loop:
self.loop = gobject.MainLoop()
if self.options.progress:
self.pbar = None
gobject.timeout_add(10, self.progressCB)
try:
self.loop.run()
except KeyboardInterrupt:
info(_("User interruption: good bye"))
if self.options.progress:
self.pbar = None
gobject.timeout_add(10, self.progressCB)
if not self.options.progress and not self.options.wait_file:
self.loop.quit()
if __name__ == "__main__":