Changeset View
Changeset View
Standalone View
Standalone View
pykolab/cli/cmd_delete_mailbox.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 _ | ||||
log = pykolab.getLogger('pykolab.cli') | log = pykolab.getLogger('pykolab.cli') | ||||
conf = pykolab.getConf() | conf = pykolab.getConf() | ||||
def __init__(): | def __init__(): | ||||
commands.register('delete_mailbox', execute, description=description(), aliases=['dm']) | commands.register('delete_mailbox', execute, description=description(), aliases=['dm']) | ||||
def description(): | def description(): | ||||
return """Delete a mailbox or sub-folder. Note that the mailbox or folder is removed recursively.""" | return """Delete a mailbox or sub-folder. Note that the mailbox or folder is removed recursively.""" | ||||
def execute(*args, **kw): | def execute(*args, **kw): | ||||
""" | """ | ||||
Delete mailbox | Delete mailbox | ||||
""" | """ | ||||
if len(conf.cli_args) < 1: | if len(conf.cli_args) < 1: | ||||
print >> sys.stderr, _("No mailbox specified") | print(_("No mailbox specified"), file=sys.stderr) | ||||
sys.exit(1) | sys.exit(1) | ||||
imap = IMAP() | imap = IMAP() | ||||
imap.connect() | imap.connect() | ||||
delete_folders = [] | delete_folders = [] | ||||
while len(conf.cli_args) > 0: | while len(conf.cli_args) > 0: | ||||
folder = conf.cli_args.pop(0) | folder = conf.cli_args.pop(0) | ||||
folders = imap.list_folders(folder) | folders = imap.list_folders(folder) | ||||
if len(folders) < 1: | if len(folders) < 1: | ||||
print >> sys.stderr, _("No such folder(s): %s") % (folder) | print(_("No such folder(s): %s") % (folder), file=sys.stderr) | ||||
delete_folders.extend(folders) | delete_folders.extend(folders) | ||||
if len(delete_folders) == 0: | if len(delete_folders) == 0: | ||||
print >> sys.stderr, _("No folders to delete.") | print(_("No folders to delete."), file=sys.stderr) | ||||
sys.exit(1) | sys.exit(1) | ||||
for delete_folder in delete_folders: | for delete_folder in delete_folders: | ||||
try: | try: | ||||
imap.delete_mailfolder(delete_folder) | imap.delete_mailfolder(delete_folder) | ||||
except Exception, errmsg: | except Exception, errmsg: | ||||
log.error(_("Could not delete mailbox '%s'") % (delete_folder)) | log.error(_("Could not delete mailbox '%s'") % (delete_folder)) | ||||