Mercurial > libervia-backend
annotate frontends/src/jp/cmd_profile.py @ 2309:c7a72b75232b
jp (shell): shell command (REPL mode), first draft:
This command launch jp in REPL mode, allowing do normal jp commands with some facilities.
Command can be selected with "cmd" (e.g. "cmd blog").
An argument can be fixed with "use" (e.g. "use output fancy").
Command is launched with "do", or directly with its name if it doesn't conflict with a shell command.
Arguments completion is still TODO (only shell commands are completed so far).
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 06 Jul 2017 20:28:25 +0200 |
parents | a6c9bc4d1de0 |
children | a7438fe4e24d |
rev | line source |
---|---|
1960 | 1 #!/usr/bin/env python2 |
815 | 2 # -*- coding: utf-8 -*- |
3 | |
4 # jp: a SAT command line tool | |
1766 | 5 # Copyright (C) 2009-2016 Jérôme Poisson (goffi@goffi.org) |
815 | 6 |
7 # This program is free software: you can redistribute it and/or modify | |
8 # it under the terms of the GNU Affero General Public License as published by | |
9 # the Free Software Foundation, either version 3 of the License, or | |
10 # (at your option) any later version. | |
11 | |
12 # This program is distributed in the hope that it will be useful, | |
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 # GNU Affero General Public License for more details. | |
16 | |
17 # You should have received a copy of the GNU Affero General Public License | |
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. | |
19 | |
814 | 20 """This module permits to manage profiles. It can list, create, delete |
1199 | 21 and retrieve information about a profile.""" |
0 | 22 |
2164
63d191c05ecd
jp (blog): set default template and data mapping for the new template output
Goffi <goffi@goffi.org>
parents:
2146
diff
changeset
|
23 from sat.core.log import getLogger |
63d191c05ecd
jp (blog): set default template and data mapping for the new template output
Goffi <goffi@goffi.org>
parents:
2146
diff
changeset
|
24 log = getLogger(__name__) |
771 | 25 from sat.core.i18n import _ |
817 | 26 from sat_frontends.jp import base |
402
f03688bdb858
jp: use with statement to open fifo
Goffi <goffi@goffi.org>
parents:
401
diff
changeset
|
27 |
817 | 28 __commands__ = ["Profile"] |
29 | |
30 PROFILE_HELP = _('The name of the profile') | |
0 | 31 |
32 | |
1597 | 33 class ProfileConnect(base.CommandBase): |
34 """Dummy command to use profile_session parent, i.e. to be able to connect without doing anything else""" | |
35 | |
36 def __init__(self, host): | |
37 # it's weird to have a command named "connect" with need_connect=False, but it can be handy to be able | |
38 # to launch just the session, so some paradox don't hurt | |
2146
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
39 super(ProfileConnect, self).__init__(host, 'connect', need_connect=False, help=(u'connect a profile')) |
1597 | 40 |
41 def add_parser_options(self): | |
42 pass | |
43 | |
44 | |
1596 | 45 class ProfileDefault(base.CommandBase): |
46 def __init__(self, host): | |
2146
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
47 super(ProfileDefault, self).__init__(host, 'default', use_profile=False, help=(u'print default profile')) |
1596 | 48 |
49 def add_parser_options(self): | |
50 pass | |
51 | |
1864
96ba685162f6
jp: all commands now use the new start method and set need_loop in __init__ when needed
Goffi <goffi@goffi.org>
parents:
1861
diff
changeset
|
52 def start(self): |
2168
255830fdb80b
core, bridge: renamed getProfileName to profileNameGet according to new conventions
Goffi <goffi@goffi.org>
parents:
2164
diff
changeset
|
53 print self.host.bridge.profileNameGet('@DEFAULT@') |
1596 | 54 |
55 | |
817 | 56 class ProfileDelete(base.CommandBase): |
57 def __init__(self, host): | |
2146
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
58 super(ProfileDelete, self).__init__(host, 'delete', use_profile=False, help=(u'delete a profile')) |
817 | 59 |
60 def add_parser_options(self): | |
61 self.parser.add_argument('profile', type=str, help=PROFILE_HELP) | |
1861
3b2a236fa743
jp (profile): added confirmation and --force arguement to profile/delete
Goffi <goffi@goffi.org>
parents:
1766
diff
changeset
|
62 self.parser.add_argument('-f', '--force', action='store_true', help=_(u'delete profile without confirmation')) |
0 | 63 |
1864
96ba685162f6
jp: all commands now use the new start method and set need_loop in __init__ when needed
Goffi <goffi@goffi.org>
parents:
1861
diff
changeset
|
64 def start(self): |
2146
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
65 if self.args.profile not in self.host.bridge.profilesListGet(): |
1596 | 66 log.error("Profile %s doesn't exist." % self.args.profile) |
817 | 67 self.host.quit(1) |
1861
3b2a236fa743
jp (profile): added confirmation and --force arguement to profile/delete
Goffi <goffi@goffi.org>
parents:
1766
diff
changeset
|
68 if not self.args.force: |
2221
a6c9bc4d1de0
jp (pubsub/node): added create and delete commands
Goffi <goffi@goffi.org>
parents:
2179
diff
changeset
|
69 message = u"Are you sure to delete profile [{}] ?".format(self.args.profile) |
1861
3b2a236fa743
jp (profile): added confirmation and --force arguement to profile/delete
Goffi <goffi@goffi.org>
parents:
1766
diff
changeset
|
70 res = raw_input("{} (y/N)? ".format(message)) |
3b2a236fa743
jp (profile): added confirmation and --force arguement to profile/delete
Goffi <goffi@goffi.org>
parents:
1766
diff
changeset
|
71 if res not in ("y", "Y"): |
3b2a236fa743
jp (profile): added confirmation and --force arguement to profile/delete
Goffi <goffi@goffi.org>
parents:
1766
diff
changeset
|
72 self.disp(_(u"Profile deletion cancelled")) |
3b2a236fa743
jp (profile): added confirmation and --force arguement to profile/delete
Goffi <goffi@goffi.org>
parents:
1766
diff
changeset
|
73 self.host.quit(2) |
3b2a236fa743
jp (profile): added confirmation and --force arguement to profile/delete
Goffi <goffi@goffi.org>
parents:
1766
diff
changeset
|
74 |
893
308a96bc7c1b
core, frontends: add method asyncDeleteProfile, remove synchronous methods createProfile and deleteProfile
souliane <souliane@mailoo.org>
parents:
817
diff
changeset
|
75 self.host.bridge.asyncDeleteProfile(self.args.profile, callback=lambda dummy: None) |
817 | 76 |
0 | 77 |
817 | 78 class ProfileInfo(base.CommandBase): |
79 def __init__(self, host): | |
2146
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
80 super(ProfileInfo, self).__init__(host, 'info', need_connect=False, help=_(u'get information about a profile')) |
1864
96ba685162f6
jp: all commands now use the new start method and set need_loop in __init__ when needed
Goffi <goffi@goffi.org>
parents:
1861
diff
changeset
|
81 self.need_loop = True |
1596 | 82 self.to_show = [(_(u"jid"), "Connection", "JabberID"),] |
1402
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
83 self.largest = max([len(item[0]) for item in self.to_show]) |
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
84 |
0 | 85 |
817 | 86 def add_parser_options(self): |
1596 | 87 self.parser.add_argument('--show-password', action='store_true', help=_(u'show the XMPP password IN CLEAR TEXT')) |
814 | 88 |
1402
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
89 def showNextValue(self, label=None, category=None, value=None): |
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
90 """Show next value from self.to_show and quit on last one""" |
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
91 if label is not None: |
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
92 print((u"{label:<"+unicode(self.largest+2)+"}{value}").format(label=label+": ", value=value)) |
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
93 try: |
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
94 label, category, name = self.to_show.pop(0) |
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
95 except IndexError: |
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
96 self.host.quit() |
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
97 else: |
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
98 self.host.bridge.asyncGetParamA(name, category, profile_key=self.host.profile, |
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
99 callback=lambda value: self.showNextValue(label, category, value)) |
814 | 100 |
1864
96ba685162f6
jp: all commands now use the new start method and set need_loop in __init__ when needed
Goffi <goffi@goffi.org>
parents:
1861
diff
changeset
|
101 def start(self): |
1596 | 102 if self.args.show_password: |
103 self.to_show.append((_(u"XMPP password"), "Connection", "Password")) | |
1402
391b0c21f4be
jp (profile): fixed "profile info" to use profile, and then manage connection.
Goffi <goffi@goffi.org>
parents:
1396
diff
changeset
|
104 self.showNextValue() |
817 | 105 |
106 | |
107 class ProfileList(base.CommandBase): | |
108 def __init__(self, host): | |
2146
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
109 super(ProfileList, self).__init__(host, 'list', use_profile=False, use_output='list', help=(u'list profiles')) |
657 | 110 |
817 | 111 def add_parser_options(self): |
2146
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
112 group = self.parser.add_mutually_exclusive_group() |
2174
0c32ff2f64c4
jp (profile/list): fixed options help
Goffi <goffi@goffi.org>
parents:
2168
diff
changeset
|
113 group.add_argument('-c', '--clients', action='store_true', help=_(u'get clients profiles only')) |
0c32ff2f64c4
jp (profile/list): fixed options help
Goffi <goffi@goffi.org>
parents:
2168
diff
changeset
|
114 group.add_argument('-C', '--components', action='store_true', help=(u'get components profiles only')) |
2146
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
115 |
817 | 116 |
1864
96ba685162f6
jp: all commands now use the new start method and set need_loop in __init__ when needed
Goffi <goffi@goffi.org>
parents:
1861
diff
changeset
|
117 def start(self): |
2146
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
118 if self.args.clients: |
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
119 clients, components = True, False |
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
120 elif self.args.components: |
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
121 clients, components = False, True |
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
122 else: |
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
123 clients, components = True, True |
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
124 self.output(self.host.bridge.profilesListGet(clients, components)) |
817 | 125 |
814 | 126 |
817 | 127 class ProfileCreate(base.CommandBase): |
128 def __init__(self, host): | |
2146
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
129 super(ProfileCreate, self).__init__(host, 'create', use_profile=False, help=(u'create a new profile')) |
1864
96ba685162f6
jp: all commands now use the new start method and set need_loop in __init__ when needed
Goffi <goffi@goffi.org>
parents:
1861
diff
changeset
|
130 self.need_loop = True |
657 | 131 |
817 | 132 def add_parser_options(self): |
2179
e42c6c131b52
jp (profile): fixed help gettext calls
Goffi <goffi@goffi.org>
parents:
2174
diff
changeset
|
133 self.parser.add_argument('profile', type=str, help=_(u'the name of the profile')) |
e42c6c131b52
jp (profile): fixed help gettext calls
Goffi <goffi@goffi.org>
parents:
2174
diff
changeset
|
134 self.parser.add_argument('-p', '--password', type=str, default='', help=_(u'the password of the profile')) |
e42c6c131b52
jp (profile): fixed help gettext calls
Goffi <goffi@goffi.org>
parents:
2174
diff
changeset
|
135 self.parser.add_argument('-j', '--jid', type=str, help=_(u'the jid of the profile')) |
e42c6c131b52
jp (profile): fixed help gettext calls
Goffi <goffi@goffi.org>
parents:
2174
diff
changeset
|
136 self.parser.add_argument('-x', '--xmpp-password', type=str, help=_(u'the password of the XMPP account (use profile password if not specified)'), |
1403
f913b09cd9cc
jp (profile): in "profile create", jid and password arguments are now optional + added a new --xmpp-password option to set XMPP password separately (default to the same password as for profile).
Goffi <goffi@goffi.org>
parents:
1402
diff
changeset
|
137 metavar='PASSWORD') |
2144
1d3f73e065e1
core, jp: component handling + client handling refactoring:
Goffi <goffi@goffi.org>
parents:
1969
diff
changeset
|
138 self.parser.add_argument('-C', '--component', type=base.unicode_decoder, default='', |
1d3f73e065e1
core, jp: component handling + client handling refactoring:
Goffi <goffi@goffi.org>
parents:
1969
diff
changeset
|
139 help=_(u'set to component import name (entry point) if this is a component')) |
817 | 140 |
1702
bc7e3ff3c838
jp (profile): fixed creating profile with given JID and XMPP password
souliane <souliane@mailoo.org>
parents:
1687
diff
changeset
|
141 def _session_started(self, dummy): |
1403
f913b09cd9cc
jp (profile): in "profile create", jid and password arguments are now optional + added a new --xmpp-password option to set XMPP password separately (default to the same password as for profile).
Goffi <goffi@goffi.org>
parents:
1402
diff
changeset
|
142 if self.args.jid: |
2179
e42c6c131b52
jp (profile): fixed help gettext calls
Goffi <goffi@goffi.org>
parents:
2174
diff
changeset
|
143 self.host.bridge.setParam("JabberID", self.args.jid, "Connection", profile_key=self.args.profile) |
1403
f913b09cd9cc
jp (profile): in "profile create", jid and password arguments are now optional + added a new --xmpp-password option to set XMPP password separately (default to the same password as for profile).
Goffi <goffi@goffi.org>
parents:
1402
diff
changeset
|
144 xmpp_pwd = self.args.password or self.args.xmpp_password |
f913b09cd9cc
jp (profile): in "profile create", jid and password arguments are now optional + added a new --xmpp-password option to set XMPP password separately (default to the same password as for profile).
Goffi <goffi@goffi.org>
parents:
1402
diff
changeset
|
145 if xmpp_pwd: |
f913b09cd9cc
jp (profile): in "profile create", jid and password arguments are now optional + added a new --xmpp-password option to set XMPP password separately (default to the same password as for profile).
Goffi <goffi@goffi.org>
parents:
1402
diff
changeset
|
146 self.host.bridge.setParam("Password", xmpp_pwd, "Connection", profile_key=self.args.profile) |
817 | 147 self.host.quit() |
657 | 148 |
1702
bc7e3ff3c838
jp (profile): fixed creating profile with given JID and XMPP password
souliane <souliane@mailoo.org>
parents:
1687
diff
changeset
|
149 def _profile_created(self): |
bc7e3ff3c838
jp (profile): fixed creating profile with given JID and XMPP password
souliane <souliane@mailoo.org>
parents:
1687
diff
changeset
|
150 self.host.bridge.profileStartSession(self.args.password, self.args.profile, callback=self._session_started, errback=None) |
bc7e3ff3c838
jp (profile): fixed creating profile with given JID and XMPP password
souliane <souliane@mailoo.org>
parents:
1687
diff
changeset
|
151 |
1864
96ba685162f6
jp: all commands now use the new start method and set need_loop in __init__ when needed
Goffi <goffi@goffi.org>
parents:
1861
diff
changeset
|
152 def start(self): |
814 | 153 """Create a new profile""" |
2146
1bb9bf1b4150
core, frontends: getProfilesList renamed to profilesGetList + behaviour change:
Goffi <goffi@goffi.org>
parents:
2144
diff
changeset
|
154 if self.args.profile in self.host.bridge.profilesListGet(): |
1596 | 155 log.error("Profile %s already exists." % self.args.profile) |
817 | 156 self.host.quit(1) |
2144
1d3f73e065e1
core, jp: component handling + client handling refactoring:
Goffi <goffi@goffi.org>
parents:
1969
diff
changeset
|
157 self.host.bridge.profileCreate(self.args.profile, self.args.password, self.args.component, callback=self._profile_created, errback=None) |
0 | 158 |
817 | 159 |
1404
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
160 class ProfileModify(base.CommandBase): |
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
161 def __init__(self, host): |
2179
e42c6c131b52
jp (profile): fixed help gettext calls
Goffi <goffi@goffi.org>
parents:
2174
diff
changeset
|
162 super(ProfileModify, self).__init__(host, 'modify', need_connect=False, help=_(u'modify an existing profile')) |
1404
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
163 |
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
164 def add_parser_options(self): |
1687
de9cc4d62a4a
jp (profile): fixed profile/modify command:
Goffi <goffi@goffi.org>
parents:
1597
diff
changeset
|
165 profile_pwd_group = self.parser.add_mutually_exclusive_group() |
2179
e42c6c131b52
jp (profile): fixed help gettext calls
Goffi <goffi@goffi.org>
parents:
2174
diff
changeset
|
166 profile_pwd_group.add_argument('-w', '--password', type=base.unicode_decoder, help=_(u'change the password of the profile')) |
e42c6c131b52
jp (profile): fixed help gettext calls
Goffi <goffi@goffi.org>
parents:
2174
diff
changeset
|
167 profile_pwd_group.add_argument('--disable-password', action='store_true', help=_(u'disable profile password (dangerous!)')) |
e42c6c131b52
jp (profile): fixed help gettext calls
Goffi <goffi@goffi.org>
parents:
2174
diff
changeset
|
168 self.parser.add_argument('-j', '--jid', type=base.unicode_decoder, help=_(u'the jid of the profile')) |
e42c6c131b52
jp (profile): fixed help gettext calls
Goffi <goffi@goffi.org>
parents:
2174
diff
changeset
|
169 self.parser.add_argument('-x', '--xmpp-password', type=base.unicode_decoder, help=_(u'change the password of the XMPP account'), |
1404
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
170 metavar='PASSWORD') |
1596 | 171 self.parser.add_argument('-D', '--default', action='store_true', help=_(u'set as default profile')) |
1404
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
172 |
1864
96ba685162f6
jp: all commands now use the new start method and set need_loop in __init__ when needed
Goffi <goffi@goffi.org>
parents:
1861
diff
changeset
|
173 def start(self): |
1687
de9cc4d62a4a
jp (profile): fixed profile/modify command:
Goffi <goffi@goffi.org>
parents:
1597
diff
changeset
|
174 if self.args.disable_password: |
de9cc4d62a4a
jp (profile): fixed profile/modify command:
Goffi <goffi@goffi.org>
parents:
1597
diff
changeset
|
175 self.args.password = '' |
1404
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
176 if self.args.password is not None: |
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
177 self.host.bridge.setParam("Password", self.args.password, "General", profile_key=self.host.profile) |
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
178 if self.args.jid is not None: |
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
179 self.host.bridge.setParam("JabberID", self.args.jid, "Connection", profile_key=self.host.profile) |
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
180 if self.args.xmpp_password is not None: |
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
181 self.host.bridge.setParam("Password", self.args.xmpp_password, "Connection", profile_key=self.host.profile) |
1596 | 182 if self.args.default: |
183 self.host.bridge.profileSetDefault(self.host.profile) | |
1404
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
184 |
e4e960d285b0
jp (profile): added "profile modify" command
Goffi <goffi@goffi.org>
parents:
1403
diff
changeset
|
185 |
817 | 186 class Profile(base.CommandBase): |
1597 | 187 subcommands = (ProfileConnect, ProfileCreate, ProfileDefault, ProfileDelete, ProfileInfo, ProfileList, ProfileModify) |
817 | 188 |
189 def __init__(self, host): | |
2179
e42c6c131b52
jp (profile): fixed help gettext calls
Goffi <goffi@goffi.org>
parents:
2174
diff
changeset
|
190 super(Profile, self).__init__(host, 'profile', use_profile=False, help=_(u'profile commands')) |