summaryrefslogtreecommitdiff
path: root/src/leap/bitmask/util
diff options
context:
space:
mode:
Diffstat (limited to 'src/leap/bitmask/util')
-rw-r--r--src/leap/bitmask/util/__init__.py27
-rw-r--r--src/leap/bitmask/util/leap_argparse.py17
2 files changed, 35 insertions, 9 deletions
diff --git a/src/leap/bitmask/util/__init__.py b/src/leap/bitmask/util/__init__.py
index 85676d51..c35be99e 100644
--- a/src/leap/bitmask/util/__init__.py
+++ b/src/leap/bitmask/util/__init__.py
@@ -18,19 +18,23 @@
Some small and handy functions.
"""
import datetime
+import itertools
import os
from leap.bitmask.config import flags
from leap.common.config import get_path_prefix as common_get_path_prefix
-
-def get_path_prefix():
- return common_get_path_prefix(flags.STANDALONE)
+# functional goodies for a healthier life:
+# We'll give your money back if it does not alleviate the eye strain, at least.
def first(things):
"""
Return the head of a collection.
+
+ :param things: a sequence to extract the head from.
+ :type things: sequence
+ :return: object, or None
"""
try:
return things[0]
@@ -38,6 +42,23 @@ def first(things):
return None
+def flatten(things):
+ """
+ Return a generator iterating through a flattened sequence.
+
+ :param things: a nested sequence, eg, a list of lists.
+ :type things: sequence
+ :rtype: generator
+ """
+ return itertools.chain(*things)
+
+
+# leap repetitive chores
+
+def get_path_prefix():
+ return common_get_path_prefix(flags.STANDALONE)
+
+
def get_modification_ts(path):
"""
Gets modification time of a file.
diff --git a/src/leap/bitmask/util/leap_argparse.py b/src/leap/bitmask/util/leap_argparse.py
index dd0f40f7..56bf26dc 100644
--- a/src/leap/bitmask/util/leap_argparse.py
+++ b/src/leap/bitmask/util/leap_argparse.py
@@ -69,17 +69,22 @@ Launches the Bitmask client.""", epilog=epilog)
parser.add_argument('-o', '--offline', action="store_true",
help='Starts Bitmask in offline mode: will not '
'try to sync with remote replicas for email.')
- parser.add_argument('-r', '--repair-mailboxes', metavar="user@provider",
+
+ parser.add_argument('--acct', metavar="user@provider",
nargs='?',
- action="store", dest="acct_to_repair",
+ action="store", dest="acct",
+ help='Manipulate mailboxes for this account')
+ parser.add_argument('-r', '--repair-mailboxes', default=False,
+ action="store_true", dest="repair",
help='Repair mailboxes for a given account. '
'Use when upgrading versions after a schema '
- 'change.')
+ 'change. Use with --acct')
parser.add_argument('--import-maildir', metavar="/path/to/Maildir",
nargs='?',
- action="store", dest="maildir",
- help='Import the given maildir. Use with the --mdir '
- 'flag to import to folders other than INBOX.')
+ action="store", dest="import_maildir",
+ help='Import the given maildir. Use with the '
+ '--to-mbox flag to import to folders other '
+ 'than INBOX. Use with --acct')
if not IS_RELEASE_VERSION:
help_text = ("Bypasses the certificate check during provider "