/offlineimap/head: changeset 478
Added -l option. Updated documentation for it. Changed _msg to _display override in UI modules. Renamed "doc" to "docs" target in Makefile to avoid conflicting with a subdir.
This commit is contained in:
parent
d52c007857
commit
022655dddd
@ -17,7 +17,7 @@
|
||||
SHELL=/bin/bash
|
||||
|
||||
clean:
|
||||
-python2.2 setup.py clean --all
|
||||
-python2.3 setup.py clean --all
|
||||
-rm -f `find . -name "*~"`
|
||||
-rm -f `find . -name "*.tmp"`
|
||||
-rm -f bin/offlineimapc
|
||||
@ -34,7 +34,7 @@ clean:
|
||||
changelog:
|
||||
svn log -v > ChangeLog
|
||||
|
||||
docs:
|
||||
doc:
|
||||
docbook2man offlineimap.sgml
|
||||
docbook2man offlineimap.sgml
|
||||
docbook2html -u offlineimap.sgml
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python2.2
|
||||
#!/usr/bin/env python2.3
|
||||
# Startup from system-wide installation
|
||||
# Copyright (C) 2002, 2003 John Goerzen
|
||||
# <jgoerzen@complete.org>
|
||||
|
@ -1,6 +1,9 @@
|
||||
offlineimap (3.99.18) unstable; urgency=low
|
||||
|
||||
* Made a fix for Python2.3 compatibility.
|
||||
This application now defaults to Python2.3! If you do not have Python
|
||||
2.3, things may not work as expected.
|
||||
* Removed warning when thread debug is specified. Closes: #195739.
|
||||
|
||||
-- John Goerzen <jgoerzen@complete.org> Tue, 27 May 2003 16:58:54 -0500
|
||||
|
||||
|
@ -2,13 +2,13 @@ Source: offlineimap
|
||||
Section: mail
|
||||
Priority: optional
|
||||
Maintainer: John Goerzen <jgoerzen@complete.org>
|
||||
Build-Depends-Indep: debhelper (>> 3.0.0), python2.2 (>= 2.2.1-4), python2.2-dev (>= 2.2.1-4), groff, docbook-utils
|
||||
Build-Depends-Indep: debhelper (>> 3.0.0), python2.3 (>= 2.2.104), python2.3-dev (>= 2.2.104), groff, docbook-utils
|
||||
Standards-Version: 3.5.2
|
||||
|
||||
Package: offlineimap
|
||||
Architecture: all
|
||||
Depends: python2.2
|
||||
Suggests: python2.2-tk
|
||||
Depends: python2.3
|
||||
Suggests: python2.3-tk
|
||||
Description: IMAP/Maildir synchronization and reader support
|
||||
OfflineIMAP is a tool to simplify your e-mail reading. With
|
||||
OfflimeIMAP, you can:
|
||||
|
@ -9,7 +9,7 @@
|
||||
# This is the debhelper compatibility version to use.
|
||||
export DH_COMPAT=3
|
||||
|
||||
PYTHON=python2.2
|
||||
PYTHON=python2.3
|
||||
PACKAGE=offlineimap
|
||||
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
>OfflineIMAP Manual</TITLE
|
||||
><META
|
||||
NAME="GENERATOR"
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.77+"></HEAD
|
||||
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"></HEAD
|
||||
><BODY
|
||||
CLASS="REFERENCE"
|
||||
BGCOLOR="#FFFFFF"
|
||||
@ -64,31 +64,24 @@ NAME="AEN18"
|
||||
><B
|
||||
CLASS="COMMAND"
|
||||
>offlineimap</B
|
||||
> [-1] [-P <TT
|
||||
> [-1] [-P <VAR
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>profiledir</I
|
||||
></TT
|
||||
>] [-a <TT
|
||||
>profiledir</VAR
|
||||
>] [-a <VAR
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>accountlist</I
|
||||
></TT
|
||||
>] [-c <TT
|
||||
>accountlist</VAR
|
||||
>] [-c <VAR
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>configfile</I
|
||||
></TT
|
||||
>] [-d <TT
|
||||
>configfile</VAR
|
||||
>] [-d <VAR
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>debugtype[,...]</I
|
||||
></TT
|
||||
>] [-o] [-u <TT
|
||||
>debugtype[,...]</VAR
|
||||
>] [-l <VAR
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>interface</I
|
||||
></TT
|
||||
>filename</VAR
|
||||
>] [-o] [-u <VAR
|
||||
CLASS="REPLACEABLE"
|
||||
>interface</VAR
|
||||
>]</P
|
||||
><P
|
||||
><B
|
||||
@ -99,7 +92,7 @@ CLASS="COMMAND"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN38"
|
||||
NAME="AEN40"
|
||||
></A
|
||||
><H2
|
||||
>Description</H2
|
||||
@ -196,7 +189,7 @@ CLASS="APPLICATION"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN56"
|
||||
NAME="AEN58"
|
||||
></A
|
||||
><H3
|
||||
>Method of Operation</H3
|
||||
@ -243,7 +236,7 @@ CLASS="APPLICATION"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN65"
|
||||
NAME="AEN67"
|
||||
></A
|
||||
><H2
|
||||
>Quick Start</H2
|
||||
@ -348,7 +341,7 @@ CLASS="APPLICATION"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN87"
|
||||
NAME="AEN89"
|
||||
></A
|
||||
><H2
|
||||
>Installation</H2
|
||||
@ -376,7 +369,7 @@ CLASS="APPLICATION"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN93"
|
||||
NAME="AEN95"
|
||||
></A
|
||||
><H3
|
||||
>Prerequisites</H3
|
||||
@ -440,7 +433,7 @@ CLASS="APPLICATION"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN107"
|
||||
NAME="AEN109"
|
||||
></A
|
||||
><H3
|
||||
>System-Wide Installation, Debian</H3
|
||||
@ -486,7 +479,7 @@ CLASS="COMMAND"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN119"
|
||||
NAME="AEN121"
|
||||
></A
|
||||
><H3
|
||||
>System-Wide Installation, Other</H3
|
||||
@ -529,7 +522,7 @@ CLASS="COMMAND"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN129"
|
||||
NAME="AEN131"
|
||||
></A
|
||||
><H3
|
||||
>Single-Account Installation</H3
|
||||
@ -614,7 +607,7 @@ CLASS="FILENAME"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN150"
|
||||
NAME="AEN152"
|
||||
></A
|
||||
><H2
|
||||
>Options</H2
|
||||
@ -650,11 +643,9 @@ CLASS="PROPERTY"
|
||||
</P
|
||||
></DD
|
||||
><DT
|
||||
>-P <TT
|
||||
>-P <VAR
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>profiledir</I
|
||||
></TT
|
||||
>profiledir</VAR
|
||||
></DT
|
||||
><DD
|
||||
><P
|
||||
@ -662,11 +653,9 @@ CLASS="REPLACEABLE"
|
||||
CLASS="APPLICATION"
|
||||
>OfflineIMAP</SPAN
|
||||
> into profile mode. The program
|
||||
will create <TT
|
||||
will create <VAR
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>profiledir</I
|
||||
></TT
|
||||
>profiledir</VAR
|
||||
>
|
||||
(it must not already exist). As it runs, Python profiling
|
||||
information
|
||||
@ -674,22 +663,20 @@ CLASS="REPLACEABLE"
|
||||
is present for debugging and optimization only, and should NOT be used
|
||||
unless you have a specific reason to do so. It will significantly
|
||||
slow program performance, may reduce reliability, and can generate
|
||||
huge amounts of data. You must use the <TT
|
||||
huge amounts of data. You must use the <VAR
|
||||
CLASS="OPTION"
|
||||
>-1</TT
|
||||
>-1</VAR
|
||||
> option when
|
||||
you use <TT
|
||||
you use <VAR
|
||||
CLASS="OPTION"
|
||||
>-P</TT
|
||||
>-P</VAR
|
||||
>.
|
||||
</P
|
||||
></DD
|
||||
><DT
|
||||
>-a <TT
|
||||
>-a <VAR
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>accountlist</I
|
||||
></TT
|
||||
>accountlist</VAR
|
||||
></DT
|
||||
><DD
|
||||
><P
|
||||
@ -707,11 +694,9 @@ CLASS="PROPERTY"
|
||||
</P
|
||||
></DD
|
||||
><DT
|
||||
>-c <TT
|
||||
>-c <VAR
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>configfile</I
|
||||
></TT
|
||||
>configfile</VAR
|
||||
></DT
|
||||
><DD
|
||||
><P
|
||||
@ -723,25 +708,23 @@ CLASS="FILENAME"
|
||||
</P
|
||||
></DD
|
||||
><DT
|
||||
>-d <TT
|
||||
>-d <VAR
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>debugtype[,...]</I
|
||||
></TT
|
||||
>debugtype[,...]</VAR
|
||||
></DT
|
||||
><DD
|
||||
><P
|
||||
>Enables debugging for OfflineIMAP. This is useful if
|
||||
you are trying to track down a malfunction or figure out what is going
|
||||
on under the hood. I suggest that you use this with
|
||||
<TT
|
||||
<VAR
|
||||
CLASS="OPTION"
|
||||
>-1</TT
|
||||
>-1</VAR
|
||||
> to make the results more sensible.</P
|
||||
><P
|
||||
><TT
|
||||
><VAR
|
||||
CLASS="OPTION"
|
||||
>-d</TT
|
||||
>-d</VAR
|
||||
> requires one or more debugtypes,
|
||||
separated by commas. These define what exactly will be
|
||||
debugged, and include three options: <SPAN
|
||||
@ -774,6 +757,20 @@ CLASS="PROPERTY"
|
||||
</P
|
||||
></DD
|
||||
><DT
|
||||
>-l
|
||||
<VAR
|
||||
CLASS="REPLACEABLE"
|
||||
>filename</VAR
|
||||
></DT
|
||||
><DD
|
||||
><P
|
||||
> Enables logging to filename. This will log everything
|
||||
that goes to the screen to the specified file.
|
||||
Additionally, if any debugging is specified with -d,
|
||||
then debug messages will not go to the screen, but
|
||||
instead to the logfile only.</P
|
||||
></DD
|
||||
><DT
|
||||
>-o</DT
|
||||
><DD
|
||||
><P
|
||||
@ -791,11 +788,9 @@ CLASS="PROPERTY"
|
||||
>Show summary of options.</P
|
||||
></DD
|
||||
><DT
|
||||
>-u <TT
|
||||
>-u <VAR
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>interface</I
|
||||
></TT
|
||||
>interface</VAR
|
||||
></DT
|
||||
><DD
|
||||
><P
|
||||
@ -810,7 +805,7 @@ CLASS="REPLACEABLE"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN212"
|
||||
NAME="AEN219"
|
||||
></A
|
||||
><H2
|
||||
>User Interfaces</H2
|
||||
@ -826,9 +821,9 @@ CLASS="APPLICATION"
|
||||
CLASS="PROPERTY"
|
||||
>ui</SPAN
|
||||
> option in the configuration file specifies
|
||||
user interface preferences. The <TT
|
||||
user interface preferences. The <VAR
|
||||
CLASS="OPTION"
|
||||
>-u</TT
|
||||
>-u</VAR
|
||||
> command-line
|
||||
option can override the configuration file setting. The available
|
||||
values for the configuration file or command-line are described
|
||||
@ -836,7 +831,7 @@ CLASS="OPTION"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN218"
|
||||
NAME="AEN225"
|
||||
></A
|
||||
><H3
|
||||
>Tk.Blinkenlights</H3
|
||||
@ -992,7 +987,7 @@ CLASS="FIRSTTERM"
|
||||
>, in part, as:
|
||||
</P
|
||||
><A
|
||||
NAME="AEN281"
|
||||
NAME="AEN288"
|
||||
></A
|
||||
><BLOCKQUOTE
|
||||
CLASS="BLOCKQUOTE"
|
||||
@ -1029,7 +1024,7 @@ CLASS="EMPHASIS"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN287"
|
||||
NAME="AEN294"
|
||||
></A
|
||||
><H3
|
||||
>Curses.Blinkenlights</H3
|
||||
@ -1047,7 +1042,7 @@ NAME="AEN287"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN291"
|
||||
NAME="AEN298"
|
||||
></A
|
||||
><H3
|
||||
>Tk.VerboseUI</H3
|
||||
@ -1064,7 +1059,7 @@ NAME="AEN291"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN294"
|
||||
NAME="AEN301"
|
||||
></A
|
||||
><H3
|
||||
>TTY.TTYUI</H3
|
||||
@ -1077,7 +1072,7 @@ NAME="AEN294"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN297"
|
||||
NAME="AEN304"
|
||||
></A
|
||||
><H3
|
||||
>Noninteractive.Basic</H3
|
||||
@ -1097,7 +1092,7 @@ CLASS="APPLICATION"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN301"
|
||||
NAME="AEN308"
|
||||
></A
|
||||
><H3
|
||||
>Noninteractive.Quiet</H3
|
||||
@ -1114,7 +1109,7 @@ NAME="AEN301"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN304"
|
||||
NAME="AEN311"
|
||||
></A
|
||||
><H2
|
||||
>Examples</H2
|
||||
@ -1126,7 +1121,7 @@ NAME="AEN304"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN307"
|
||||
NAME="AEN314"
|
||||
></A
|
||||
><H3
|
||||
>Multiple Accounts with Mutt</H3
|
||||
@ -1199,7 +1194,7 @@ spoolfile=+Personal/INBOX</PRE
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN326"
|
||||
NAME="AEN333"
|
||||
></A
|
||||
><H3
|
||||
>UW-IMAPD and References</H3
|
||||
@ -1258,7 +1253,7 @@ holdconnectionopen = no</PRE
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN334"
|
||||
NAME="AEN341"
|
||||
></A
|
||||
><H3
|
||||
>pythonfile Configuration File Option</H3
|
||||
@ -1324,7 +1319,7 @@ CLASS="PROPERTY"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN347"
|
||||
NAME="AEN354"
|
||||
></A
|
||||
><H2
|
||||
>Errors</H2
|
||||
@ -1335,7 +1330,7 @@ NAME="AEN347"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN350"
|
||||
NAME="AEN357"
|
||||
></A
|
||||
><H3
|
||||
>UID validity problem for folder</H3
|
||||
@ -1382,17 +1377,13 @@ CLASS="FILENAME"
|
||||
><PRE
|
||||
CLASS="PROGRAMLISTING"
|
||||
>rm -r ~/Folders/INBOX
|
||||
rm -r ~/.offlineimap/Account-<TT
|
||||
rm -r ~/.offlineimap/Account-<VAR
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>AccountName</I
|
||||
></TT
|
||||
>AccountName</VAR
|
||||
>
|
||||
rm -r ~/.offlineimap/Repository-<TT
|
||||
rm -r ~/.offlineimap/Repository-<VAR
|
||||
CLASS="REPLACEABLE"
|
||||
><I
|
||||
>RepositoryName</I
|
||||
></TT
|
||||
>RepositoryName</VAR
|
||||
></PRE
|
||||
><P
|
||||
> (Of course, replace AccountName and RepositoryName
|
||||
@ -1452,7 +1443,7 @@ TARGET="_top"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN375"
|
||||
NAME="AEN382"
|
||||
></A
|
||||
><H2
|
||||
>Other Frequently Asked Questions</H2
|
||||
@ -1721,7 +1712,7 @@ CLASS="PROPERTY"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN471"
|
||||
NAME="AEN478"
|
||||
></A
|
||||
><H2
|
||||
>Conforming To</H2
|
||||
@ -1760,14 +1751,14 @@ TARGET="_top"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN484"
|
||||
NAME="AEN491"
|
||||
></A
|
||||
><H2
|
||||
>Notes</H2
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN486"
|
||||
NAME="AEN493"
|
||||
></A
|
||||
><H3
|
||||
>Deleting Local Folders</H3
|
||||
@ -1799,7 +1790,7 @@ CLASS="APPLICATION"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN493"
|
||||
NAME="AEN500"
|
||||
></A
|
||||
><H3
|
||||
>Multiple Instances</H3
|
||||
@ -1828,7 +1819,7 @@ CLASS="PROPERTY"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN500"
|
||||
NAME="AEN507"
|
||||
></A
|
||||
><H3
|
||||
>Copying Messages Between Folders</H3
|
||||
@ -1858,7 +1849,7 @@ CLASS="APPLICATION"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN506"
|
||||
NAME="AEN513"
|
||||
></A
|
||||
><H3
|
||||
>Use with Evolution</H3
|
||||
@ -1871,9 +1862,9 @@ CLASS="APPLICATION"
|
||||
CLASS="APPLICATION"
|
||||
>OfflineIMAP</SPAN
|
||||
> account to have
|
||||
<TT
|
||||
<VAR
|
||||
CLASS="OPTION"
|
||||
>sep = /</TT
|
||||
>sep = /</VAR
|
||||
> in its configuration. Then, configure
|
||||
Evolution with the
|
||||
"Maildir-format mail directories" server type. For the path, you will need to
|
||||
@ -1894,7 +1885,7 @@ CLASS="APPLICATION"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN514"
|
||||
NAME="AEN521"
|
||||
></A
|
||||
><H3
|
||||
>Use with KMail</H3
|
||||
@ -1928,7 +1919,7 @@ CLASS="APPLICATION"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN522"
|
||||
NAME="AEN529"
|
||||
></A
|
||||
><H3
|
||||
>Mailing List</H3
|
||||
@ -1947,7 +1938,7 @@ TARGET="_top"
|
||||
><DIV
|
||||
CLASS="REFSECT2"
|
||||
><A
|
||||
NAME="AEN526"
|
||||
NAME="AEN533"
|
||||
></A
|
||||
><H3
|
||||
>Bugs</H3
|
||||
@ -1973,12 +1964,12 @@ TARGET="_top"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN532"
|
||||
NAME="AEN539"
|
||||
></A
|
||||
><H2
|
||||
>Copyright</H2
|
||||
><P
|
||||
>OfflineIMAP, and this manual, are Copyright © 2002, 2003 John Goerzen.</P
|
||||
>OfflineIMAP, and this manual, are Copyright © 2002, 2003 John Goerzen.</P
|
||||
><P
|
||||
> This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@ -2011,7 +2002,7 @@ CLASS="APPLICATION"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN541"
|
||||
NAME="AEN548"
|
||||
></A
|
||||
><H2
|
||||
>Author</H2
|
||||
@ -2020,12 +2011,12 @@ NAME="AEN541"
|
||||
CLASS="APPLICATION"
|
||||
>OfflineIMAP</SPAN
|
||||
>, its libraries, documentation, and all included files, except where
|
||||
noted, was written by John Goerzen <TT
|
||||
noted, was written by John Goerzen <CODE
|
||||
CLASS="EMAIL"
|
||||
><<A
|
||||
HREF="mailto:jgoerzen@complete.org"
|
||||
>jgoerzen@complete.org</A
|
||||
>></TT
|
||||
>></CODE
|
||||
> and
|
||||
copyright is held as stated in the COPYRIGHT section.
|
||||
</P
|
||||
@ -2063,7 +2054,7 @@ TARGET="_top"
|
||||
><DIV
|
||||
CLASS="REFSECT1"
|
||||
><A
|
||||
NAME="AEN553"
|
||||
NAME="AEN560"
|
||||
></A
|
||||
><H2
|
||||
>See Also</H2
|
||||
|
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -7,7 +7,7 @@ NAME
|
||||
|
||||
SYNOPSIS
|
||||
offlineimap [ -1 ] [ -P profiledir ] [ -a accountlist ] [ -c configfile
|
||||
] [ -d debugtype[,...] ] [ -o ] [ -u interface ]
|
||||
] [ -d debugtype[,...] ] [ -l filename ] [ -o ] [ -u interface ]
|
||||
|
||||
|
||||
offlineimap -h | --help
|
||||
@ -237,6 +237,12 @@ OPTIONS
|
||||
option will enable debugging for certain Maildir operations.
|
||||
And thread will debug the threading model.
|
||||
|
||||
-l filename
|
||||
Enables logging to filename. This will log everything that goes
|
||||
to the screen to the specified file. Additionally, if any
|
||||
debugging is specified with -d, then debug messages will not go
|
||||
to the screen, but instead to the logfile only.
|
||||
|
||||
-o Run only once, ignoring all autorefresh settings in the configu-
|
||||
ration file.
|
||||
|
||||
@ -708,7 +714,8 @@ NOTES
|
||||
status or contribute to fixing them.
|
||||
|
||||
COPYRIGHT
|
||||
OfflineIMAP, and this manual, are Copyright 2002, 2003 John Goerzen.
|
||||
OfflineIMAP, and this manual, are Copyright (C) 2002, 2003 John
|
||||
Goerzen.
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
@ -716,9 +723,9 @@ COPYRIGHT
|
||||
option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of MER-
|
||||
CHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
|
||||
Public License for more details.
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Gen-
|
||||
eral Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License along
|
||||
with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
@ -748,4 +755,4 @@ SEE ALSO
|
||||
|
||||
|
||||
|
||||
John Goerzen 22 April 2003 OFFLINEIMAP(1)
|
||||
John Goerzen 02 June 2003 OFFLINEIMAP(1)
|
||||
|
@ -3,13 +3,13 @@
|
||||
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>
|
||||
.\" Please send any bug reports, improvements, comments, patches,
|
||||
.\" etc. to Steve Cheng <steve@ggi-project.org>.
|
||||
.TH "OFFLINEIMAP" "1" "22 April 2003" "John Goerzen" "OfflineIMAP Manual"
|
||||
.TH "OFFLINEIMAP" "1" "02 June 2003" "John Goerzen" "OfflineIMAP Manual"
|
||||
|
||||
.SH NAME
|
||||
OfflineIMAP \- Powerful IMAP/Maildir synchronization and reader support
|
||||
.SH SYNOPSIS
|
||||
|
||||
\fBofflineimap\fR [ \fB-1\fR ] [ \fB-P \fIprofiledir\fB\fR ] [ \fB-a \fIaccountlist\fB\fR ] [ \fB-c \fIconfigfile\fB\fR ] [ \fB-d \fIdebugtype[,...]\fB\fR ] [ \fB-o\fR ] [ \fB-u \fIinterface\fB\fR ]
|
||||
\fBofflineimap\fR [ \fB-1\fR ] [ \fB-P \fIprofiledir\fB\fR ] [ \fB-a \fIaccountlist\fB\fR ] [ \fB-c \fIconfigfile\fB\fR ] [ \fB-d \fIdebugtype[,...]\fB\fR ] [ \fB-l \fIfilename\fB\fR ] [ \fB-o\fR ] [ \fB-u \fIinterface\fB\fR ]
|
||||
|
||||
|
||||
\fBofflineimap\fR \fB-h\fR | \fB--help\fR
|
||||
@ -287,6 +287,13 @@ from the debugging output before sending it to anyone else. The
|
||||
certain Maildir operations. And \fIthread\fR
|
||||
will debug the threading model.
|
||||
.TP
|
||||
\fB-l \fIfilename\fB\fR
|
||||
Enables logging to filename. This will log everything
|
||||
that goes to the screen to the specified file.
|
||||
Additionally, if any debugging is specified with -d,
|
||||
then debug messages will not go to the screen, but
|
||||
instead to the logfile only.
|
||||
.TP
|
||||
\fB-o\fR
|
||||
Run only once, ignoring all
|
||||
\fIautorefresh\fR settings in the configuration
|
||||
@ -827,7 +834,7 @@ The Web site also lists all current bugs, where you can check their
|
||||
status or contribute to fixing them.
|
||||
.SH "COPYRIGHT"
|
||||
.PP
|
||||
OfflineIMAP, and this manual, are Copyright © 2002, 2003 John Goerzen.
|
||||
OfflineIMAP, and this manual, are Copyright (C) 2002, 2003 John Goerzen.
|
||||
.PP
|
||||
This program is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python2.2
|
||||
#!/usr/bin/env python2.3
|
||||
# Startup from single-user installation
|
||||
# Copyright (C) 2002, 2003 John Goerzen
|
||||
# <jgoerzen@complete.org>
|
||||
|
@ -10,7 +10,7 @@
|
||||
<refentryinfo>
|
||||
<address><email>jgoerzen@complete.org</email></address>
|
||||
<author><firstname>John</firstname><surname>Goerzen</surname></author>
|
||||
<date> $Date: 2003-04-22 10:47:25 -0500 (Tue, 22 Apr 2003) $ </date>
|
||||
<date> $Date: 2003-06-02 09:06:18 -0500 (Mon, 02 Jun 2003) $ </date>
|
||||
</refentryinfo>
|
||||
|
||||
<refmeta>
|
||||
@ -33,6 +33,7 @@
|
||||
<arg>-a <replaceable>accountlist</replaceable></arg>
|
||||
<arg>-c <replaceable>configfile</replaceable></arg>
|
||||
<arg>-d <replaceable>debugtype[,...]</replaceable></arg>
|
||||
<arg>-l <replaceable>filename</replaceable></arg>
|
||||
<arg>-o</arg>
|
||||
<arg>-u <replaceable>interface</replaceable></arg>
|
||||
</cmdsynopsis>
|
||||
@ -370,6 +371,16 @@ cd offlineimap-x.y.z</ProgramListing>
|
||||
certain Maildir operations. And <property>thread</property>
|
||||
will debug the threading model.
|
||||
</para></listitem>
|
||||
</varlistentry>
|
||||
<varlistentry><term>-l
|
||||
<replaceable>filename</replaceable></term>
|
||||
<listitem><para>
|
||||
Enables logging to filename. This will log everything
|
||||
that goes to the screen to the specified file.
|
||||
Additionally, if any debugging is specified with -d,
|
||||
then debug messages will not go to the screen, but
|
||||
instead to the logfile only.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry><term>-o</term>
|
||||
<listitem><para>Run only once, ignoring all
|
||||
|
@ -1129,6 +1129,9 @@ class IMAP4_SSL(IMAP4):
|
||||
self.port = port
|
||||
self.sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
self.sock.connect((host, port))
|
||||
if sys.version_info[0] <= 2 and sys.version_info[1] <= 2:
|
||||
self.sslobj = socket.ssl(self.sock, self.keyfile, self.certfile)
|
||||
else:
|
||||
self.sslobj = socket.ssl(self.sock._sock, self.keyfile, self.certfile)
|
||||
self.sslobj = sslwrapper(self.sslobj)
|
||||
|
||||
|
@ -229,32 +229,48 @@ class IMAPServer:
|
||||
until the Event object as passed is true. This method is expected
|
||||
to be invoked in a separate thread, which should be join()'d after
|
||||
the event is set."""
|
||||
ui = UIBase.getglobalui()
|
||||
ui.debug('imap', 'keepalive thread started')
|
||||
while 1:
|
||||
ui.debug('imap', 'keepalive: top of loop')
|
||||
event.wait(timeout)
|
||||
ui.debug('imap', 'keepalive: after wait')
|
||||
if event.isSet():
|
||||
ui.debug('imap', 'keepalive: event is set; exiting')
|
||||
return
|
||||
ui.debug('imap', 'keepalive: acquiring connectionlock')
|
||||
self.connectionlock.acquire()
|
||||
numconnections = len(self.assignedconnections) + \
|
||||
len(self.availableconnections)
|
||||
self.connectionlock.release()
|
||||
ui.debug('imap', 'keepalive: connectionlock released')
|
||||
threads = []
|
||||
imapobjs = []
|
||||
|
||||
for i in range(numconnections):
|
||||
ui.debug('imap', 'keepalive: processing connection %d of %d' % (i, numconnections))
|
||||
imapobj = self.acquireconnection()
|
||||
ui.debug('imap', 'keepalive: connection %d acquired' % i)
|
||||
imapobjs.append(imapobj)
|
||||
thr = threadutil.ExitNotifyThread(target = imapobj.noop)
|
||||
thr.setDaemon(1)
|
||||
thr.start()
|
||||
threads.append(thr)
|
||||
ui.debug('imap', 'keepalive: thread started')
|
||||
|
||||
ui.debug('imap', 'keepalive: joining threads')
|
||||
|
||||
for thr in threads:
|
||||
# Make sure all the commands have completed.
|
||||
thr.join()
|
||||
|
||||
ui.debug('imap', 'keepalive: releasing connections')
|
||||
|
||||
for imapobj in imapobjs:
|
||||
self.releaseconnection(imapobj)
|
||||
|
||||
ui.debug('imap', 'keepalive: bottom of loop')
|
||||
|
||||
class ConfigedIMAPServer(IMAPServer):
|
||||
"""This class is designed for easier initialization given a ConfigParser
|
||||
object and an account name. The passwordhash is used if
|
||||
|
@ -82,6 +82,9 @@ def startup(versionno):
|
||||
if debugtype == 'thread':
|
||||
threading._VERBOSE = 1
|
||||
|
||||
if '-l' in options:
|
||||
ui.setlogfd(open(options['-l'], 'wt'))
|
||||
|
||||
if '-o' in options:
|
||||
# FIXME: maybe need a better
|
||||
for section in accounts.getaccountlist(config):
|
||||
|
@ -488,7 +488,7 @@ class Blinkenlights(BlinkenBase, UIBase):
|
||||
return s.af[accountname]
|
||||
|
||||
|
||||
def _msg(s, msg, color = None):
|
||||
def _display(s, msg, color = None):
|
||||
if "\n" in msg:
|
||||
for thisline in msg.split("\n"):
|
||||
s._msg(thisline)
|
||||
|
@ -30,7 +30,7 @@ class TTYUI(UIBase):
|
||||
def isusable(s):
|
||||
return sys.stdout.isatty() and sys.stdin.isatty()
|
||||
|
||||
def _msg(s, msg):
|
||||
def _display(s, msg):
|
||||
s.outputlock.acquire()
|
||||
try:
|
||||
if (currentThread().getName() == 'MainThread'):
|
||||
|
@ -222,7 +222,7 @@ class VerboseUI(UIBase):
|
||||
finally:
|
||||
s.tflock.release()
|
||||
|
||||
def _msg(s, msg):
|
||||
def _display(s, msg):
|
||||
s.gettf().setmessage(msg)
|
||||
|
||||
def threadExited(s, thread):
|
||||
@ -504,7 +504,7 @@ class Blinkenlights(BlinkenBase, VerboseUI):
|
||||
lo, hi = s.text.vbar.get()
|
||||
s.text.vbar.set(1.0 - (hi - lo), 1.0)
|
||||
|
||||
def _msg(s, msg):
|
||||
def _display(s, msg):
|
||||
if "\n" in msg:
|
||||
for thisline in msg.split("\n"):
|
||||
s._msg(thisline)
|
||||
|
@ -21,7 +21,8 @@ import re, time, sys, traceback, threading, thread
|
||||
from StringIO import StringIO
|
||||
|
||||
debugtypes = {'imap': 'IMAP protocol debugging',
|
||||
'maildir': 'Maildir repository debugging'}
|
||||
'maildir': 'Maildir repository debugging',
|
||||
'thread': 'Threading debugging'}
|
||||
|
||||
globalui = None
|
||||
def setglobalui(newui):
|
||||
@ -39,10 +40,27 @@ class UIBase:
|
||||
s.debugmessages = {}
|
||||
s.debugmsglen = 50
|
||||
s.threadaccounts = {}
|
||||
s.logfile = None
|
||||
|
||||
################################################## UTILS
|
||||
def _msg(s, msg):
|
||||
"""Generic tool called when no other works."""
|
||||
s._log(msg)
|
||||
s._display(msg)
|
||||
|
||||
def _log(s, msg):
|
||||
"""Log it to disk. Returns true if it wrote something; false
|
||||
otherwise."""
|
||||
if s.logfile:
|
||||
s.logfile.write("%s: %s\n" % (threading.currentThread().getName(),
|
||||
msg))
|
||||
return s.logfile
|
||||
|
||||
def setlogfd(s, logfd):
|
||||
s.logfile = logfd
|
||||
|
||||
def _display(s, msg):
|
||||
"""Display a message."""
|
||||
raise NotImplementedError
|
||||
|
||||
def warn(s, msg, minor = 0):
|
||||
@ -82,8 +100,9 @@ class UIBase:
|
||||
while len(s.debugmessages[thisthread]) > s.debugmsglen:
|
||||
s.debugmessages[thisthread] = s.debugmessages[thisthread][1:]
|
||||
|
||||
if not s._log("DEBUG[%s]: %s"):
|
||||
if debugtype in s.debuglist:
|
||||
s._msg("DEBUG[%s]: %s" % (debugtype, msg))
|
||||
s._display("DEBUG[%s]: %s" % (debugtype, msg))
|
||||
|
||||
def add_debug(s, debugtype):
|
||||
global debugtypes
|
||||
|
@ -1,4 +1,4 @@
|
||||
#!/usr/bin/env python2.2
|
||||
#!/usr/bin/env python2.3
|
||||
|
||||
# $Id: setup.py,v 1.1 2002/06/21 18:10:49 jgoerzen Exp $
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user