sup 1.0 → 1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/checks.yml +58 -0
- data/.rubocop.yml +5 -0
- data/CONTRIBUTORS +5 -2
- data/Gemfile +5 -1
- data/History.txt +33 -0
- data/Manifest.txt +171 -0
- data/README.md +9 -4
- data/Rakefile +40 -1
- data/bin/sup-add +4 -8
- data/bin/sup-sync-back-maildir +1 -1
- data/contrib/nix/Gemfile +22 -0
- data/contrib/nix/Gemfile.lock +80 -0
- data/contrib/nix/README +7 -0
- data/contrib/nix/gem-install-shell.nix +12 -0
- data/contrib/nix/gemset.nix +339 -0
- data/contrib/nix/ruby2.4-Gemfile.lock +81 -0
- data/contrib/nix/ruby2.4-gemset.nix +309 -0
- data/contrib/nix/ruby2.4-shell.nix +30 -0
- data/contrib/nix/ruby2.5-Gemfile.lock +81 -0
- data/contrib/nix/ruby2.5-gemset.nix +309 -0
- data/contrib/nix/ruby2.5-shell.nix +30 -0
- data/contrib/nix/ruby2.6-Gemfile.lock +83 -0
- data/contrib/nix/ruby2.6-gemset.nix +319 -0
- data/contrib/nix/ruby2.6-shell.nix +30 -0
- data/contrib/nix/ruby2.7-shell.nix +23 -0
- data/contrib/nix/ruby3.0-shell.nix +23 -0
- data/contrib/nix/ruby3.1-shell.nix +23 -0
- data/contrib/nix/ruby3.2-shell.nix +23 -0
- data/contrib/nix/ruby3.3-shell.nix +23 -0
- data/contrib/nix/test-all-rubies.sh +6 -0
- data/doc/Hooks.txt +1 -1
- data/ext/mkrf_conf_xapian.rb +12 -6
- data/lib/sup/colormap.rb +1 -1
- data/lib/sup/crypto.rb +1 -1
- data/lib/sup/hook.rb +1 -1
- data/lib/sup/index.rb +4 -4
- data/lib/sup/keymap.rb +1 -1
- data/lib/sup/maildir.rb +5 -5
- data/lib/sup/mbox.rb +5 -5
- data/lib/sup/message.rb +8 -7
- data/lib/sup/message_chunks.rb +27 -19
- data/lib/sup/modes/completion_mode.rb +0 -1
- data/lib/sup/modes/console_mode.rb +1 -1
- data/lib/sup/modes/file_browser_mode.rb +2 -2
- data/lib/sup/modes/label_list_mode.rb +1 -1
- data/lib/sup/modes/search_list_mode.rb +2 -2
- data/lib/sup/modes/thread_view_mode.rb +1 -2
- data/lib/sup/rfc2047.rb +21 -6
- data/lib/sup/source.rb +8 -2
- data/lib/sup/textfield.rb +0 -1
- data/lib/sup/thread.rb +20 -21
- data/lib/sup/util.rb +31 -53
- data/lib/sup/version.rb +1 -1
- data/lib/sup.rb +12 -8
- data/man/sup-add.1 +39 -39
- data/man/sup-config.1 +31 -27
- data/man/sup-dump.1 +34 -35
- data/man/sup-import-dump.1 +36 -32
- data/man/sup-psych-ify-config-files.1 +29 -25
- data/man/sup-recover-sources.1 +32 -28
- data/man/sup-sync-back-maildir.1 +34 -30
- data/man/sup-sync.1 +40 -36
- data/man/sup-tweak-labels.1 +36 -32
- data/man/sup.1 +41 -37
- data/shell.nix +1 -0
- data/sup.gemspec +6 -4
- data/test/dummy_source.rb +21 -15
- data/test/fixtures/embedded-message.eml +34 -0
- data/test/fixtures/non-ascii-header-in-nested-message.eml +36 -0
- data/test/fixtures/non-ascii-header.eml +8 -0
- data/test/fixtures/rfc2047-header-encoding.eml +15 -0
- data/test/fixtures/text-attachments-with-charset.eml +15 -1
- data/test/fixtures/utf8-header.eml +17 -0
- data/test/integration/test_maildir.rb +3 -0
- data/test/integration/test_mbox.rb +4 -1
- data/test/integration/test_sup-add.rb +83 -0
- data/test/integration/test_sup-sync-back-maildir.rb +40 -0
- data/test/test_crypto.rb +44 -0
- data/test/test_header_parsing.rb +11 -3
- data/test/test_helper.rb +7 -4
- data/test/test_message.rb +124 -32
- data/test/test_messages_dir.rb +13 -15
- data/test/unit/test_horizontal_selector.rb +4 -4
- data/test/unit/test_locale_fiddler.rb +1 -1
- data/test/unit/util/test_query.rb +1 -1
- data/test/unit/util/test_string.rb +3 -3
- data/test/unit/util/test_uri.rb +2 -2
- metadata +69 -18
- data/.travis.yml +0 -18
- data/bin/sup-psych-ify-config-files +0 -21
- data/test/integration/test_label_service.rb +0 -18
- data/test/test_yaml_migration.rb +0 -85
data/man/sup-sync-back-maildir.1
CHANGED
@@ -1,15 +1,11 @@
|
|
1
|
-
.\" Automatically generated by Pandoc
|
1
|
+
.\" Automatically generated by Pandoc 3.1.9
|
2
2
|
.\"
|
3
3
|
.TH "SUP-SYNC-BACK-MAILDIR" "1" "August 25, 2014" "Sup User Manual" ""
|
4
|
-
.hy
|
5
4
|
.SH NAME
|
6
|
-
.PP
|
7
5
|
sup-sync-back-maildir - Export Xapian entries to Maildir sources on disk
|
8
6
|
.SH SYNOPSIS
|
9
|
-
.PP
|
10
7
|
sup-sync-back-maildir [\f[I]options\f[R]] [\f[I]source uri\&...\f[R]]
|
11
8
|
.SH DESCRIPTION
|
12
|
-
.PP
|
13
9
|
This script parses the Xapian entries for a given Maildir source and
|
14
10
|
renames (changes maildir flags) e-mail files on disk according to the
|
15
11
|
labels stored in the index.
|
@@ -35,62 +31,68 @@ sources marked as usual and that have not disabled sync back using the
|
|
35
31
|
configuration parameter sync_back = false in sources.yaml.
|
36
32
|
.SH OPTIONS
|
37
33
|
.TP
|
38
|
-
|
34
|
+
-n, --no-confirm
|
39
35
|
Don\[cq]t ask for confirmation before synchronizing
|
40
36
|
.TP
|
41
|
-
|
37
|
+
-m, --no-merge
|
42
38
|
Don\[cq]t merge new supported Maildir flags (R and P)
|
43
39
|
.TP
|
44
|
-
|
40
|
+
-l, --list-sources
|
45
41
|
List your Maildir sources and exit
|
46
42
|
.TP
|
47
|
-
|
43
|
+
-u, --unusual-sources-too
|
48
44
|
Sync unusual sources too if no specific source information is given
|
49
45
|
.TP
|
50
|
-
|
46
|
+
--version
|
51
47
|
Print version and exit
|
52
48
|
.TP
|
53
|
-
|
49
|
+
-h, --help
|
54
50
|
Show brief help message
|
55
51
|
.SH FILES
|
56
52
|
.TP
|
57
|
-
|
53
|
+
$HOME/.sup/sources.yaml
|
58
54
|
Configuration file for Sup mail sources
|
59
55
|
.SH SEE ALSO
|
60
|
-
.PP
|
61
56
|
sup(1), sup-add(1), sup-config(1), sup-dump(1), sup-sync(1),
|
62
57
|
sup-tweak-labels(1)
|
63
58
|
.SH REPORTING BUGS
|
64
|
-
.PP
|
65
59
|
You are welcome to submit bug reports to the Sup issue tracker, located
|
66
60
|
at
|
67
61
|
.PP
|
68
|
-
|
62
|
+
\c
|
63
|
+
.UR https://github.com/sup-heliotrope/sup/issues
|
64
|
+
.UE \c
|
69
65
|
.SH CONTACT INFORMATION
|
70
66
|
.TP
|
71
|
-
|
72
|
-
|
73
|
-
.
|
74
|
-
.
|
75
|
-
<https://github.com/sup-heliotrope/sup/>
|
67
|
+
The Sup web page:
|
68
|
+
\c
|
69
|
+
.UR https://sup-heliotrope.github.io/
|
70
|
+
.UE \c
|
76
71
|
.TP
|
77
|
-
|
78
|
-
|
72
|
+
Code repository:
|
73
|
+
\c
|
74
|
+
.UR https://github.com/sup-heliotrope/sup/
|
75
|
+
.UE \c
|
79
76
|
.TP
|
80
|
-
|
81
|
-
|
77
|
+
Sup Wiki:
|
78
|
+
\c
|
79
|
+
.UR https://github.com/sup-heliotrope/sup/wiki/
|
80
|
+
.UE \c
|
82
81
|
.TP
|
83
|
-
|
82
|
+
Mailing list:
|
84
83
|
supmua\[at]googlegroups.com
|
85
84
|
.RS
|
86
85
|
.PP
|
87
86
|
supmua+subscribe\[at]googlegroups.com
|
88
87
|
.PP
|
89
|
-
Archives:
|
88
|
+
Archives: \c
|
89
|
+
.UR https://groups.google.com/d/forum/supmua/
|
90
|
+
.UE \c
|
90
91
|
.RE
|
91
92
|
.SH COPYRIGHT
|
92
|
-
|
93
|
-
|
93
|
+
Copyright © 2006-2009 William Morgan \c
|
94
|
+
.MT mworgan-sup@masanjin.net
|
95
|
+
.ME \c
|
94
96
|
.PP
|
95
97
|
Copyright \[at] 2013-2014 Sup developers
|
96
98
|
.PP
|
@@ -98,5 +100,7 @@ Permission is granted to copy and distribute this manual under the terms
|
|
98
100
|
of the GNU General Public License; either version 2 or (at your option)
|
99
101
|
any later version.
|
100
102
|
.SH AUTHORS
|
101
|
-
Sup was originally written by William Morgan
|
102
|
-
|
103
|
+
Sup was originally written by William Morgan \c
|
104
|
+
.MT wmorgan-sup@masanjin.net
|
105
|
+
.ME \c
|
106
|
+
\ and is now developed and maintained by the Sup developers.
|
data/man/sup-sync.1
CHANGED
@@ -1,15 +1,11 @@
|
|
1
|
-
.\" Automatically generated by Pandoc
|
1
|
+
.\" Automatically generated by Pandoc 3.1.9
|
2
2
|
.\"
|
3
3
|
.TH "SUP-SYNC" "1" "April 9, 2012" "Sup User Manual" ""
|
4
|
-
.hy
|
5
4
|
.SH NAME
|
6
|
-
.PP
|
7
5
|
sup-sync - sychronize the Sup index with message sources
|
8
6
|
.SH SYNOPSIS
|
9
|
-
.PP
|
10
7
|
sup-sync [\f[I]options\f[R]] source \&...
|
11
8
|
.SH DESCRIPTION
|
12
|
-
.PP
|
13
9
|
Synchronizes the Sup index with one or more message sources by adding
|
14
10
|
messages, deleting messages, or changing message state in the index as
|
15
11
|
appropriate.
|
@@ -30,86 +26,92 @@ Supported source URI schemes can be seen by running \[lq]sup-add
|
|
30
26
|
--help\[rq].
|
31
27
|
.SH MESSAGE STATE OPTIONS
|
32
28
|
.TP
|
33
|
-
|
29
|
+
--asis
|
34
30
|
If the message is already in the index, preserve its state.
|
35
31
|
Otherwise, use default source state (default)
|
36
32
|
.TP
|
37
|
-
|
33
|
+
--restore dumpfile
|
38
34
|
Restore message state from a dump file created with sup-dump.
|
39
35
|
If a message is not in this dumpfile, act as --asis
|
40
36
|
.TP
|
41
|
-
|
37
|
+
--discard
|
42
38
|
Discard any message state in the index and use the default source state.
|
43
39
|
\f[B]Dangerous!\f[R]
|
44
40
|
.TP
|
45
|
-
|
41
|
+
-x, -
|
46
42
|
When using the default source state, mark messages as archived.
|
47
43
|
.TP
|
48
|
-
|
44
|
+
-r, --read
|
49
45
|
When using the default source state, mark messages as read.
|
50
46
|
.TP
|
51
|
-
|
47
|
+
--extra-labels \f[I]STRING\f[R]
|
52
48
|
When using the default source state, also apply these user-defined
|
53
49
|
labels (a comma-separated list) (default)
|
54
50
|
.SH OTHER OPTIONS
|
55
51
|
.TP
|
56
|
-
|
52
|
+
-v, --verbose
|
57
53
|
Print message ids as they\[cq]re processed.
|
58
54
|
.TP
|
59
|
-
|
55
|
+
-o, --optimize
|
60
56
|
As the final operation, optimize the index.
|
61
57
|
.TP
|
62
|
-
|
58
|
+
--all-sources
|
63
59
|
Scan over all sources.
|
64
60
|
.TP
|
65
|
-
|
61
|
+
-n, --dry-run
|
66
62
|
Don\[cq]t actually modify the index.
|
67
63
|
Probably only useful with --verbose.
|
68
64
|
.TP
|
69
|
-
|
65
|
+
--version
|
70
66
|
Show version information
|
71
67
|
.TP
|
72
|
-
|
68
|
+
-h, --help
|
73
69
|
Show help message
|
74
70
|
.SH FILES
|
75
71
|
.TP
|
76
|
-
|
72
|
+
$HOME/.sup/sources.yaml
|
77
73
|
Configuration file for Sup mail sources
|
78
74
|
.SH SEE ALSO
|
79
|
-
.PP
|
80
75
|
sup(1), sup-add(1), sup-config(1), sup-dump(1),
|
81
76
|
sup-sync-back-maildir(1), sup-tweak-labels(1)
|
82
77
|
.SH REPORTING BUGS
|
83
|
-
.PP
|
84
78
|
You are welcome to submit bug reports to the Sup issue tracker, located
|
85
79
|
at
|
86
80
|
.PP
|
87
|
-
|
81
|
+
\c
|
82
|
+
.UR https://github.com/sup-heliotrope/sup/issues
|
83
|
+
.UE \c
|
88
84
|
.SH CONTACT INFORMATION
|
89
85
|
.TP
|
90
|
-
|
91
|
-
|
92
|
-
.
|
93
|
-
.
|
94
|
-
<https://github.com/sup-heliotrope/sup/>
|
86
|
+
The Sup web page:
|
87
|
+
\c
|
88
|
+
.UR https://sup-heliotrope.github.io/
|
89
|
+
.UE \c
|
95
90
|
.TP
|
96
|
-
|
97
|
-
|
91
|
+
Code repository:
|
92
|
+
\c
|
93
|
+
.UR https://github.com/sup-heliotrope/sup/
|
94
|
+
.UE \c
|
98
95
|
.TP
|
99
|
-
|
100
|
-
|
96
|
+
Sup Wiki:
|
97
|
+
\c
|
98
|
+
.UR https://github.com/sup-heliotrope/sup/wiki/
|
99
|
+
.UE \c
|
101
100
|
.TP
|
102
|
-
|
101
|
+
Mailing list:
|
103
102
|
supmua\[at]googlegroups.com
|
104
103
|
.RS
|
105
104
|
.PP
|
106
105
|
supmua+subscribe\[at]googlegroups.com
|
107
106
|
.PP
|
108
|
-
Archives:
|
107
|
+
Archives: \c
|
108
|
+
.UR https://groups.google.com/d/forum/supmua/
|
109
|
+
.UE \c
|
109
110
|
.RE
|
110
111
|
.SH COPYRIGHT
|
111
|
-
|
112
|
-
|
112
|
+
Copyright © 2006-2009 William Morgan \c
|
113
|
+
.MT mworgan-sup@masanjin.net
|
114
|
+
.ME \c
|
113
115
|
.PP
|
114
116
|
Copyright \[at] 2013-2014 Sup developers
|
115
117
|
.PP
|
@@ -117,5 +119,7 @@ Permission is granted to copy and distribute this manual under the terms
|
|
117
119
|
of the GNU General Public License; either version 2 or (at your option)
|
118
120
|
any later version.
|
119
121
|
.SH AUTHORS
|
120
|
-
Sup was originally written by William Morgan
|
121
|
-
|
122
|
+
Sup was originally written by William Morgan \c
|
123
|
+
.MT wmorgan-sup@masanjin.net
|
124
|
+
.ME \c
|
125
|
+
\ and is now developed and maintained by the Sup developers.
|
data/man/sup-tweak-labels.1
CHANGED
@@ -1,85 +1,87 @@
|
|
1
|
-
.\" Automatically generated by Pandoc
|
1
|
+
.\" Automatically generated by Pandoc 3.1.9
|
2
2
|
.\"
|
3
3
|
.TH "SUP-TWEAK-LABELS" "1" "April 9, 2012" "Sup User Manuel" ""
|
4
|
-
.hy
|
5
4
|
.SH NAME
|
6
|
-
.PP
|
7
5
|
sup-tweak-labels - batch modification of message state already in index
|
8
6
|
.SH SYNOPSIS
|
9
|
-
.PP
|
10
7
|
sup-tweak-labels [\f[I]options\f[R]] source \&...
|
11
8
|
.SH DESCRIPTION
|
12
|
-
.PP
|
13
9
|
Batch modification of message state for messages already in the index.
|
14
10
|
.PP
|
15
11
|
Supported source URI schemes can be seen by running \[lq]sup-add
|
16
12
|
--help\[rq].
|
17
13
|
.SH OPTIONS
|
18
14
|
.TP
|
19
|
-
|
15
|
+
-a \f[I]STRING\f[R], --add \f[I]STRING\f[R]
|
20
16
|
One or more labels (comma-separated) to add to every message from the
|
21
17
|
specified sources (default: )
|
22
18
|
.TP
|
23
|
-
|
19
|
+
-r \f[I]STRING\f[R], --remove \f[I]STRING\f[R]
|
24
20
|
One or more labels (comma-separated) to remove from every message from
|
25
21
|
the specified sources, if those labels are present (default: )
|
26
22
|
.TP
|
27
|
-
|
23
|
+
-q \f[I]QUERY\f[R], --query \f[I]QUERY\f[R]
|
28
24
|
A Sup search query
|
29
25
|
.SH OTHER OPTIONS
|
30
26
|
.TP
|
31
|
-
|
27
|
+
-v, --verbose
|
32
28
|
Print message ids as they\[cq]re processed
|
33
29
|
.TP
|
34
|
-
|
30
|
+
-e, --very-verbose
|
35
31
|
Print message names and subjects as they\[cq]re processed
|
36
32
|
.TP
|
37
|
-
|
33
|
+
--all-sources
|
38
34
|
Scan over all sources
|
39
35
|
.TP
|
40
|
-
|
36
|
+
-n, --dry-run
|
41
37
|
Don\[cq]t actually modify the index.
|
42
38
|
Probably only useful with --verbose
|
43
39
|
.TP
|
44
|
-
|
40
|
+
--version
|
45
41
|
Show version information
|
46
42
|
.TP
|
47
|
-
|
43
|
+
-h, --help
|
48
44
|
Show help message
|
49
45
|
.SH SEE ALSO
|
50
|
-
.PP
|
51
46
|
sup(1), sup-add(1)
|
52
47
|
.SH REPORTING BUGS
|
53
|
-
.PP
|
54
48
|
You are welcome to submit bug reports to the Sup issue tracker, located
|
55
49
|
at
|
56
50
|
.PP
|
57
|
-
|
51
|
+
\c
|
52
|
+
.UR https://github.com/sup-heliotrope/sup/issues
|
53
|
+
.UE \c
|
58
54
|
.SH CONTACT INFORMATION
|
59
55
|
.TP
|
60
|
-
|
61
|
-
|
62
|
-
.
|
63
|
-
.
|
64
|
-
<https://github.com/sup-heliotrope/sup/>
|
56
|
+
The Sup web page:
|
57
|
+
\c
|
58
|
+
.UR https://sup-heliotrope.github.io/
|
59
|
+
.UE \c
|
65
60
|
.TP
|
66
|
-
|
67
|
-
|
61
|
+
Code repository:
|
62
|
+
\c
|
63
|
+
.UR https://github.com/sup-heliotrope/sup/
|
64
|
+
.UE \c
|
68
65
|
.TP
|
69
|
-
|
70
|
-
|
66
|
+
Sup Wiki:
|
67
|
+
\c
|
68
|
+
.UR https://github.com/sup-heliotrope/sup/wiki/
|
69
|
+
.UE \c
|
71
70
|
.TP
|
72
|
-
|
71
|
+
Mailing list:
|
73
72
|
supmua\[at]googlegroups.com
|
74
73
|
.RS
|
75
74
|
.PP
|
76
75
|
supmua+subscribe\[at]googlegroups.com
|
77
76
|
.PP
|
78
|
-
Archives:
|
77
|
+
Archives: \c
|
78
|
+
.UR https://groups.google.com/d/forum/supmua/
|
79
|
+
.UE \c
|
79
80
|
.RE
|
80
81
|
.SH COPYRIGHT
|
81
|
-
|
82
|
-
|
82
|
+
Copyright © 2006-2009 William Morgan \c
|
83
|
+
.MT mworgan-sup@masanjin.net
|
84
|
+
.ME \c
|
83
85
|
.PP
|
84
86
|
Copyright \[at] 2013-2014 Sup developers
|
85
87
|
.PP
|
@@ -87,5 +89,7 @@ Permission is granted to copy and distribute this manual under the terms
|
|
87
89
|
of the GNU General Public License; either version 2 or (at your option)
|
88
90
|
any later version.
|
89
91
|
.SH AUTHORS
|
90
|
-
Sup was originally written by William Morgan
|
91
|
-
|
92
|
+
Sup was originally written by William Morgan \c
|
93
|
+
.MT wmorgan-sup@masanjin.net
|
94
|
+
.ME \c
|
95
|
+
\ and is now developed and maintained by the Sup developers.
|
data/man/sup.1
CHANGED
@@ -1,15 +1,11 @@
|
|
1
|
-
.\" Automatically generated by Pandoc
|
1
|
+
.\" Automatically generated by Pandoc 3.1.9
|
2
2
|
.\"
|
3
3
|
.TH "SUP" "1" "April 8, 2014" "Sup User Manual" ""
|
4
|
-
.hy
|
5
4
|
.SH NAME
|
6
|
-
.PP
|
7
5
|
sup - a curses-based email client
|
8
6
|
.SH SYNOPSIS
|
9
|
-
.PP
|
10
7
|
sup [\f[I]options\f[R]]
|
11
8
|
.SH DESCRIPTION
|
12
|
-
.PP
|
13
9
|
Sup is a console-based email client for people with a lot of email.
|
14
10
|
.PP
|
15
11
|
It presents an interface of a list of threads, which are each
|
@@ -21,92 +17,98 @@ If you\[cq]re the type of person who treats email as an extension of
|
|
21
17
|
your long-term memory, Sup is for you.
|
22
18
|
.SH OPTIONS
|
23
19
|
.TP
|
24
|
-
|
20
|
+
-l, --list-hooks
|
25
21
|
List all hooks and descriptions, and quit.
|
26
22
|
Use \[en]hooks-matching to filter
|
27
23
|
.TP
|
28
|
-
|
24
|
+
-m, --hooks-matching=<s>
|
29
25
|
If given, list all hooks and descriptions matching the given pattern.
|
30
26
|
Needs the \[en]list-hooks option (default: )
|
31
27
|
.TP
|
32
|
-
|
28
|
+
-n, --no-threads
|
33
29
|
Turn off threading.
|
34
30
|
Helps with debugging.
|
35
31
|
(Necessarily disables background polling for new messages.)
|
36
32
|
.TP
|
37
|
-
|
33
|
+
-o, --no-initial-poll
|
38
34
|
Don\[cq]t poll for new messages when starting.
|
39
35
|
.TP
|
40
|
-
|
36
|
+
-s \f[I]QUERY\f[R], --search \f[I]QUERY\f[R]
|
41
37
|
Search for this query upon startup
|
42
38
|
.TP
|
43
|
-
|
39
|
+
-c \f[I]STRING\f[R], --compose \f[I]STRING\f[R]
|
44
40
|
Compose message to this recipient upon startup
|
45
41
|
.TP
|
46
|
-
|
42
|
+
-j \f[I]STRING\f[R], --subject \f[I]STRING\f[R]
|
47
43
|
When composing, use this subject
|
48
44
|
.TP
|
49
|
-
|
45
|
+
-v, --version
|
50
46
|
Print version and exit
|
51
47
|
.TP
|
52
|
-
|
48
|
+
-h, --help
|
53
49
|
Show brief help message
|
54
50
|
.SH ENVIRONMENT
|
55
51
|
.TP
|
56
|
-
|
52
|
+
SUP_LOG_LEVEL
|
57
53
|
Set log level verbosity.
|
58
54
|
Valid values ordered by decresing verbosity: debug info warn error.
|
59
55
|
Default log level is info.
|
60
56
|
.TP
|
61
|
-
|
57
|
+
SUP_BASE\[rs]
|
62
58
|
Specify home directory for configuration files and xapian index,
|
63
59
|
defaults to: $HOME/.sup.
|
64
60
|
.SH FILES
|
65
61
|
.TP
|
66
|
-
|
62
|
+
$HOME/.sup/config.yaml
|
67
63
|
Configuration file for Sup
|
68
64
|
.TP
|
69
|
-
|
65
|
+
$HOME/.sup/sources.yaml
|
70
66
|
Configuration file for Sup mail sources
|
71
67
|
.TP
|
72
|
-
|
68
|
+
$HOME/.sup/colors.yaml
|
73
69
|
Color theme for Sup
|
74
70
|
.SH SEE ALSO
|
75
|
-
.PP
|
76
71
|
mail(1), sup-add(1), sup-config(1), sup-dump(1), sup-import-dump(1),
|
77
72
|
sup-recover-sources(1), sup-sync(1), sup-sync-back-maildir(1),
|
78
73
|
sup-tweak-labels(1)
|
79
74
|
.SH REPORTING BUGS
|
80
|
-
.PP
|
81
75
|
You are welcome to submit bug reports to the Sup issue tracker, located
|
82
76
|
at
|
83
77
|
.PP
|
84
|
-
|
78
|
+
\c
|
79
|
+
.UR https://github.com/sup-heliotrope/sup/issues
|
80
|
+
.UE \c
|
85
81
|
.SH CONTACT INFORMATION
|
86
82
|
.TP
|
87
|
-
|
88
|
-
|
89
|
-
.
|
90
|
-
.
|
91
|
-
<https://github.com/sup-heliotrope/sup/>
|
83
|
+
The Sup web page:
|
84
|
+
\c
|
85
|
+
.UR https://sup-heliotrope.github.io/
|
86
|
+
.UE \c
|
92
87
|
.TP
|
93
|
-
|
94
|
-
|
88
|
+
Code repository:
|
89
|
+
\c
|
90
|
+
.UR https://github.com/sup-heliotrope/sup/
|
91
|
+
.UE \c
|
95
92
|
.TP
|
96
|
-
|
97
|
-
|
93
|
+
Sup Wiki:
|
94
|
+
\c
|
95
|
+
.UR https://github.com/sup-heliotrope/sup/wiki/
|
96
|
+
.UE \c
|
98
97
|
.TP
|
99
|
-
|
98
|
+
Mailing list:
|
100
99
|
supmua\[at]googlegroups.com
|
101
100
|
.RS
|
102
101
|
.PP
|
103
102
|
supmua+subscribe\[at]googlegroups.com
|
104
103
|
.PP
|
105
|
-
Archives:
|
104
|
+
Archives: \c
|
105
|
+
.UR https://groups.google.com/d/forum/supmua/
|
106
|
+
.UE \c
|
106
107
|
.RE
|
107
108
|
.SH COPYRIGHT
|
108
|
-
|
109
|
-
|
109
|
+
Copyright © 2006-2009 William Morgan \c
|
110
|
+
.MT mworgan-sup@masanjin.net
|
111
|
+
.ME \c
|
110
112
|
.PP
|
111
113
|
Copyright \[at] 2013-2014 Sup developers
|
112
114
|
.PP
|
@@ -114,5 +116,7 @@ Permission is granted to copy and distribute this manual under the terms
|
|
114
116
|
of the GNU General Public License; either version 2 or (at your option)
|
115
117
|
any later version.
|
116
118
|
.SH AUTHORS
|
117
|
-
Sup was originally written by William Morgan
|
118
|
-
|
119
|
+
Sup was originally written by William Morgan \c
|
120
|
+
.MT wmorgan-sup@masanjin.net
|
121
|
+
.ME \c
|
122
|
+
\ and is now developed and maintained by the Sup developers.
|
data/shell.nix
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
contrib/nix/ruby3.3-shell.nix
|
data/sup.gemspec
CHANGED
@@ -4,7 +4,7 @@ require 'sup/version'
|
|
4
4
|
|
5
5
|
Gem::Specification.new do |s|
|
6
6
|
s.name = "sup"
|
7
|
-
s.version = ENV["REL"] || (::Redwood::VERSION
|
7
|
+
s.version = ENV["REL"] || (/-git-/ =~ ::Redwood::VERSION ? "999" : ::Redwood::VERSION)
|
8
8
|
s.date = Time.now.strftime "%Y-%m-%d"
|
9
9
|
s.authors = ["William Morgan", "Gaute Hope", "Hamish Downer", "Matthieu Rakotojaona"]
|
10
10
|
s.email = "supmua@googlegroups.com"
|
@@ -32,7 +32,7 @@ SUP: please note that our old mailing lists have been shut down,
|
|
32
32
|
https://github.com/sup-heliotrope/sup/wiki/Installation%3A-OpenBSD.
|
33
33
|
EOF
|
34
34
|
|
35
|
-
s.files =
|
35
|
+
s.files = File.read("Manifest.txt").split
|
36
36
|
s.executables = s.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
37
37
|
s.test_files = s.files.grep(%r{^(test|spec|features)/})
|
38
38
|
s.require_paths = ["lib"]
|
@@ -51,7 +51,7 @@ SUP: please note that our old mailing lists have been shut down,
|
|
51
51
|
## ext/mkrf_conf_xapian.rb and Gemfile.
|
52
52
|
|
53
53
|
s.add_runtime_dependency "ncursesw", "~> 1.4.0"
|
54
|
-
s.add_runtime_dependency "rmail", "
|
54
|
+
s.add_runtime_dependency "rmail", ">= 1.1.2", "< 2"
|
55
55
|
s.add_runtime_dependency "highline"
|
56
56
|
s.add_runtime_dependency "optimist"
|
57
57
|
s.add_runtime_dependency "lockfile"
|
@@ -60,12 +60,14 @@ SUP: please note that our old mailing lists have been shut down,
|
|
60
60
|
s.add_runtime_dependency "chronic"
|
61
61
|
s.add_runtime_dependency "unicode", "~> 0.4.4"
|
62
62
|
s.add_runtime_dependency "unicode-display_width"
|
63
|
+
s.add_runtime_dependency "string-scrub" if /^2\.0\./ =~ RUBY_VERSION
|
63
64
|
|
64
65
|
s.add_development_dependency "bundler", ">= 1.3", "< 3"
|
65
66
|
s.add_development_dependency "rake"
|
66
|
-
s.add_development_dependency 'minitest', '~> 5.5
|
67
|
+
s.add_development_dependency 'minitest', '~> 5.5'
|
67
68
|
s.add_development_dependency "rr", "~> 1.1"
|
68
69
|
s.add_development_dependency "gpgme", ">= 2.0.2"
|
69
70
|
s.add_development_dependency "pry"
|
71
|
+
s.add_development_dependency "rubocop-packaging" unless /^2\.[012]\./ =~ RUBY_VERSION
|
70
72
|
|
71
73
|
end
|
data/test/dummy_source.rb
CHANGED
@@ -25,32 +25,38 @@ class DummySource < Source
|
|
25
25
|
return @messages ? @messages.length - 1 : 0
|
26
26
|
end
|
27
27
|
|
28
|
-
def
|
29
|
-
|
28
|
+
def with_file_for id
|
29
|
+
fn = @messages[id]
|
30
|
+
File.open(fn, 'rb') { |f| yield f }
|
30
31
|
end
|
31
32
|
|
32
|
-
def
|
33
|
-
|
33
|
+
def load_header id
|
34
|
+
with_file_for(id) { |f| parse_raw_email_header f }
|
34
35
|
end
|
35
36
|
|
36
|
-
def
|
37
|
+
def load_message id
|
38
|
+
with_file_for(id) { |f| RMail::Parser.read f }
|
39
|
+
end
|
40
|
+
|
41
|
+
def raw_header id
|
37
42
|
ret = ""
|
38
|
-
|
39
|
-
|
40
|
-
|
43
|
+
with_file_for(id) do |f|
|
44
|
+
until f.eof? || (l = f.gets) =~ /^$/
|
45
|
+
ret += l
|
46
|
+
end
|
41
47
|
end
|
42
48
|
ret
|
43
49
|
end
|
44
50
|
|
45
|
-
def raw_message
|
46
|
-
|
51
|
+
def raw_message id
|
52
|
+
with_file_for(id) { |f| f.read }
|
47
53
|
end
|
48
54
|
|
49
|
-
def each_raw_message_line
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
55
|
+
def each_raw_message_line id
|
56
|
+
with_file_for(id) do |f|
|
57
|
+
until f.eof?
|
58
|
+
yield f.gets
|
59
|
+
end
|
54
60
|
end
|
55
61
|
end
|
56
62
|
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
Return-Path: <return@example.com>
|
2
|
+
From: Sender <sender@example.com>
|
3
|
+
To: <recipient@example.invalid>
|
4
|
+
Subject: Email with embedded message
|
5
|
+
MIME-Version: 1.0
|
6
|
+
Content-Type: multipart/mixed; boundary="----------=_4F506AC2.EE281DC4"
|
7
|
+
Message-Id: <9181f493-df49-4af5-8ad2-e1a8eb692a98>
|
8
|
+
Date: Wed, 15 Jul 2020 19:48:41 +0100
|
9
|
+
|
10
|
+
This is a multi-part message in MIME format.
|
11
|
+
|
12
|
+
------------=_4F506AC2.EE281DC4
|
13
|
+
Content-Type: text/plain; charset=iso-8859-1
|
14
|
+
Content-Disposition: inline
|
15
|
+
Content-Transfer-Encoding: 8bit
|
16
|
+
|
17
|
+
Example outer message.
|
18
|
+
Example second line.
|
19
|
+
|
20
|
+
|
21
|
+
------------=_4F506AC2.EE281DC4
|
22
|
+
Content-Type: message/rfc822; x-spam-type=original
|
23
|
+
Content-Transfer-Encoding: 8bit
|
24
|
+
|
25
|
+
From: "Embed sender" <embed@example.com>
|
26
|
+
To: <rcpt2@example.invalid>
|
27
|
+
Subject: Embedded subject line
|
28
|
+
Date: Wed, 15 Jul 2020 12:34:56 +0000
|
29
|
+
|
30
|
+
Example embedded message.
|
31
|
+
Second line.
|
32
|
+
|
33
|
+
------------=_4F506AC2.EE281DC4--
|
34
|
+
|