mirror of
https://git.code.sf.net/p/archivemail/code
synced 2024-12-22 15:56:27 +00:00
Move archive naming code into new function make_archive_name()
This commit is contained in:
parent
cd07a2663e
commit
a3276f8c68
1 changed files with 21 additions and 18 deletions
|
@ -1104,23 +1104,7 @@ def archive(mailbox_name):
|
||||||
set_signal_handlers()
|
set_signal_handlers()
|
||||||
os.umask(077) # saves setting permissions on mailboxes/tempfiles
|
os.umask(077) # saves setting permissions on mailboxes/tempfiles
|
||||||
|
|
||||||
# allow the user to embed time formats such as '%B' in the suffix string
|
final_archive_name = make_archive_name(mailbox_name)
|
||||||
if options.date_old_max == None:
|
|
||||||
parsed_suffix_time = time.time() - options.days_old_max*24*60*60
|
|
||||||
else:
|
|
||||||
parsed_suffix_time = options.date_old_max
|
|
||||||
|
|
||||||
parsed_suffix = time.strftime(options.archive_suffix,
|
|
||||||
time.localtime(parsed_suffix_time))
|
|
||||||
|
|
||||||
imap_scheme = urlparse.urlparse(mailbox_name)[0]
|
|
||||||
if imap_scheme == 'imap' or imap_scheme == 'imaps':
|
|
||||||
final_archive_name = mailbox_name.split('/')[-1] + parsed_suffix
|
|
||||||
else:
|
|
||||||
final_archive_name = mailbox_name + parsed_suffix
|
|
||||||
if options.output_dir:
|
|
||||||
final_archive_name = os.path.join(options.output_dir,
|
|
||||||
os.path.basename(final_archive_name))
|
|
||||||
dest_dir = os.path.dirname(final_archive_name)
|
dest_dir = os.path.dirname(final_archive_name)
|
||||||
if not dest_dir:
|
if not dest_dir:
|
||||||
dest_dir = os.getcwd()
|
dest_dir = os.getcwd()
|
||||||
|
@ -1140,7 +1124,8 @@ def archive(mailbox_name):
|
||||||
if os.path.islink(mailbox_name):
|
if os.path.islink(mailbox_name):
|
||||||
unexpected_error("'%s' is a symbolic link -- I feel nervous!" %
|
unexpected_error("'%s' is a symbolic link -- I feel nervous!" %
|
||||||
mailbox_name)
|
mailbox_name)
|
||||||
if imap_scheme == 'imap' or imap_scheme == 'imaps':
|
is_imap = urlparse.urlparse(mailbox_name)[0] in ('imap', 'imaps')
|
||||||
|
if is_imap:
|
||||||
vprint("guessing mailbox is of type: imap(s)")
|
vprint("guessing mailbox is of type: imap(s)")
|
||||||
_archive_imap(mailbox_name, final_archive_name)
|
_archive_imap(mailbox_name, final_archive_name)
|
||||||
elif os.path.isfile(mailbox_name):
|
elif os.path.isfile(mailbox_name):
|
||||||
|
@ -1634,6 +1619,24 @@ def clean_up_signal(signal_number, stack_frame):
|
||||||
unexpected_error("received signal %s" % signal_number)
|
unexpected_error("received signal %s" % signal_number)
|
||||||
|
|
||||||
|
|
||||||
|
def make_archive_name(mailbox_name):
|
||||||
|
"""Derive archive name and (relative) path from the mailbox name."""
|
||||||
|
# allow the user to embed time formats such as '%B' in the suffix string
|
||||||
|
if options.date_old_max == None:
|
||||||
|
parsed_suffix_time = time.time() - options.days_old_max*24*60*60
|
||||||
|
else:
|
||||||
|
parsed_suffix_time = options.date_old_max
|
||||||
|
parsed_suffix = time.strftime(options.archive_suffix,
|
||||||
|
time.localtime(parsed_suffix_time))
|
||||||
|
|
||||||
|
if re.match(r'imaps?://', mailbox_name.lower()):
|
||||||
|
mailbox_name = mailbox_name.rsplit('/', 1)[-1]
|
||||||
|
final_archive_name = mailbox_name + parsed_suffix
|
||||||
|
if options.output_dir:
|
||||||
|
final_archive_name = os.path.join(options.output_dir,
|
||||||
|
os.path.basename(final_archive_name))
|
||||||
|
return final_archive_name
|
||||||
|
|
||||||
def check_sane_destdir(dir):
|
def check_sane_destdir(dir):
|
||||||
"""Do a very primitive check if the given directory looks like a reasonable
|
"""Do a very primitive check if the given directory looks like a reasonable
|
||||||
destination directory and bail out if it doesn't."""
|
destination directory and bail out if it doesn't."""
|
||||||
|
|
Loading…
Reference in a new issue