From 6a7f88858ed6f66f6358a4e39e38521c53e6aaa2 Mon Sep 17 00:00:00 2001 From: souliane Date: Wed, 7 May 2014 16:10:20 +0200 Subject: [PATCH] jp: option '-c' is not longer a flag but a string to define the profile password: - no '-c': same behavior as before, do not connect the profile - '-c' with not following value: autoconnect and use the default value '' as profile password - '-c' with a following value: autoconnect and use that value as profile password Note that previous scripts may not work. For example, even if the profile password for "test1" is empty: jp disco -p test1 -c contact@host.net must be changed to: jp disco -p test1 -c -- contact@host.net Otherwise, argparse will think that "contact@host.net" is the password and that the target JID is missing. --- frontends/src/jp/base.py | 6 +++--- frontends/src/jp/cmd_profile.py | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/frontends/src/jp/base.py b/frontends/src/jp/base.py index cad36385..728ef84d 100644 --- a/frontends/src/jp/base.py +++ b/frontends/src/jp/base.py @@ -111,7 +111,7 @@ class Jp(object): profile_parent = self.parents['profile'] = argparse.ArgumentParser(add_help=False) profile_parent.add_argument("-p", "--profile", action="store", type=str, default='@DEFAULT@', help=_("Use PROFILE profile key (default: %(default)s)")) - profile_parent.add_argument("-c", "--connect", action="store_true", help=_("Connect the profile before doing anything else")) + profile_parent.add_argument("-c", "--connect", action="store", type=str, nargs='?', const='', default=None, metavar='PASSWORD', help=_("Connect the profile before doing anything else")) progress_parent = self.parents['progress'] = argparse.ArgumentParser(add_help=False) if progressbar: @@ -233,8 +233,8 @@ class Jp(object): error(_("The profile [%s] doesn't exist") % self.args.profile) self.quit(1) - if self.args.connect: #if connection is asked, we connect the profile - self.bridge.asyncConnect(self.profile, callback, cant_connect) + if self.args.connect is not None: # if connection is asked, we connect the profile + self.bridge.asyncConnect(self.profile, self.args.connect, lambda dummy: callback(), cant_connect) self._auto_loop = True return diff --git a/frontends/src/jp/cmd_profile.py b/frontends/src/jp/cmd_profile.py index 109278bb..41fc617c 100644 --- a/frontends/src/jp/cmd_profile.py +++ b/frontends/src/jp/cmd_profile.py @@ -105,7 +105,7 @@ class ProfileCreate(base.CommandBase): if self.args.profile in self.host.bridge.getProfilesList(): error("Profile %s already exists." % self.args.profile) self.host.quit(1) - self.host.bridge.asyncCreateProfile(self.args.profile, self._profile_created, None) + self.host.bridge.asyncCreateProfile(self.args.profile, callback=self._profile_created, errback=None) class Profile(base.CommandBase):