Changeset View
Changeset View
Standalone View
Standalone View
pykolab/cli/cmd_set_mailbox_metadata.py
Show All 11 Lines | |||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||||
# GNU General Public License for more details. | # GNU General Public License for more details. | ||||
# You should have received a copy of the GNU General Public License | # You should have received a copy of the GNU General Public License | ||||
# along with this program. If not, see <http://www.gnu.org/licenses/>. | # along with this program. If not, see <http://www.gnu.org/licenses/>. | ||||
# | # | ||||
from __future__ import print_function | |||||
import sys | import sys | ||||
import commands | import commands | ||||
import pykolab | import pykolab | ||||
from pykolab.imap import IMAP | from pykolab.imap import IMAP | ||||
from pykolab.translate import _ | from pykolab.translate import _ | ||||
Show All 22 Lines | |||||
def execute(*args, **kw): | def execute(*args, **kw): | ||||
try: | try: | ||||
folder = conf.cli_args.pop(0) | folder = conf.cli_args.pop(0) | ||||
try: | try: | ||||
metadata_path = conf.cli_args.pop(0) | metadata_path = conf.cli_args.pop(0) | ||||
try: | try: | ||||
metadata_value = conf.cli_args.pop(0) | metadata_value = conf.cli_args.pop(0) | ||||
except IndexError, errmsg: | except IndexError: | ||||
metadata_value = utils.ask_question(_("Metadata value")) | metadata_value = utils.ask_question(_("Metadata value")) | ||||
except IndexError, errmsg: | except IndexError: | ||||
metadata_path = utils.ask_question(_("Metadata path")) | metadata_path = utils.ask_question(_("Metadata path")) | ||||
metadata_value = utils.ask_question(_("Metadata value")) | metadata_value = utils.ask_question(_("Metadata value")) | ||||
except IndexError, errmsg: | except IndexError: | ||||
folder = utils.ask_question(_("Folder name")) | folder = utils.ask_question(_("Folder name")) | ||||
metadata_path = utils.ask_question(_("Metadata path")) | metadata_path = utils.ask_question(_("Metadata path")) | ||||
metadata_value = utils.ask_question(_("Metadata value")) | metadata_value = utils.ask_question(_("Metadata value")) | ||||
if len(folder.split('@')) > 1: | if len(folder.split('@')) > 1: | ||||
domain = folder.split('@')[1] | domain = folder.split('@')[1] | ||||
elif not conf.user == None and len(conf.user.split('@')) > 1: | elif not conf.user == None and len(conf.user.split('@')) > 1: | ||||
domain = conf.user.split('@')[1] | domain = conf.user.split('@')[1] | ||||
Show All 12 Lines | if not conf.user == None: | ||||
admin_login = conf.get(backend, 'admin_login') | admin_login = conf.get(backend, 'admin_login') | ||||
admin_password = conf.get(backend, 'admin_password') | admin_password = conf.get(backend, 'admin_password') | ||||
imap.login_plain(admin_login, admin_password, conf.user) | imap.login_plain(admin_login, admin_password, conf.user) | ||||
else: | else: | ||||
imap.connect(domain=domain) | imap.connect(domain=domain) | ||||
if not imap.has_folder(folder): | if not imap.has_folder(folder): | ||||
print >> sys.stderr, _("No such folder %r") % (folder) | print(_("No such folder %r") % (folder), file=sys.stderr) | ||||
else: | else: | ||||
folders = imap.lm(imap_utf7.encode(folder)) | folders = imap.lm(imap_utf7.encode(folder)) | ||||
for folder in folders: | for folder in folders: | ||||
imap.set_metadata(imap_utf7.decode(folder), metadata_path, metadata_value) | imap.set_metadata(imap_utf7.decode(folder), metadata_path, metadata_value) |