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.
This commit is contained in:
souliane 2014-05-07 16:10:20 +02:00
commit 6a7f88858e
2 changed files with 4 additions and 4 deletions

View file

@ -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

View file

@ -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):