sup 0.22.1 → 1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/.github/workflows/checks.yml +70 -0
- data/.gitignore +1 -3
- data/.rubocop.yml +5 -0
- data/CONTRIBUTORS +14 -5
- data/Gemfile +6 -1
- data/History.txt +76 -0
- data/Manifest.txt +149 -0
- data/README.md +32 -5
- data/Rakefile +40 -1
- data/bin/sup +7 -5
- data/bin/sup-add +16 -20
- data/bin/sup-config +30 -44
- data/bin/sup-dump +2 -2
- data/bin/sup-import-dump +4 -4
- data/bin/sup-sync +3 -3
- data/bin/sup-sync-back-maildir +2 -2
- data/bin/sup-tweak-labels +5 -5
- data/ext/mkrf_conf_xapian.rb +10 -4
- data/lib/sup/colormap.rb +1 -1
- data/lib/sup/crypto.rb +17 -8
- data/lib/sup/hook.rb +9 -9
- data/lib/sup/index.rb +20 -7
- data/lib/sup/keymap.rb +1 -1
- data/lib/sup/logger.rb +1 -1
- data/lib/sup/maildir.rb +4 -4
- data/lib/sup/mbox.rb +4 -4
- data/lib/sup/message.rb +26 -15
- data/lib/sup/message_chunks.rb +29 -20
- data/lib/sup/mode.rb +1 -0
- data/lib/sup/modes/completion_mode.rb +0 -1
- data/lib/sup/modes/contact_list_mode.rb +1 -0
- data/lib/sup/modes/file_browser_mode.rb +2 -2
- data/lib/sup/modes/label_list_mode.rb +1 -1
- data/lib/sup/modes/reply_mode.rb +3 -1
- data/lib/sup/modes/search_list_mode.rb +2 -2
- data/lib/sup/modes/thread_index_mode.rb +1 -1
- data/lib/sup/modes/thread_view_mode.rb +15 -13
- data/lib/sup/rfc2047.rb +21 -6
- data/lib/sup/source.rb +9 -3
- data/lib/sup/textfield.rb +0 -1
- data/lib/sup/thread.rb +0 -1
- data/lib/sup/util/axe.rb +17 -0
- data/lib/sup/util/ncurses.rb +3 -3
- data/lib/sup/util.rb +42 -67
- data/lib/sup/version.rb +10 -1
- data/lib/sup.rb +13 -8
- data/man/sup-add.1 +34 -55
- data/man/sup-config.1 +23 -36
- data/man/sup-dump.1 +25 -35
- data/man/sup-import-dump.1 +33 -54
- data/man/sup-psych-ify-config-files.1 +25 -34
- data/man/sup-recover-sources.1 +34 -49
- data/man/sup-sync-back-maildir.1 +39 -60
- data/man/sup-sync.1 +49 -79
- data/man/sup-tweak-labels.1 +35 -58
- data/man/sup.1 +50 -62
- data/sup.gemspec +12 -9
- data/test/dummy_source.rb +21 -15
- data/test/fixtures/embedded-message.eml +34 -0
- data/test/fixtures/mailing-list-header.eml +80 -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 +60 -0
- data/test/fixtures/utf8-header.eml +17 -0
- data/test/fixtures/zimbra-quote-with-bottom-post.eml +27 -0
- data/test/gnupg_test_home/gpg.conf +2 -1
- data/test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key +0 -0
- data/test/gnupg_test_home/pubring.gpg +0 -0
- data/test/gnupg_test_home/receiver_pubring.gpg +0 -0
- data/test/gnupg_test_home/receiver_secring.gpg +0 -0
- data/test/gnupg_test_home/regen_keys.sh +69 -18
- data/test/gnupg_test_home/secring.gpg +0 -0
- data/test/gnupg_test_home/sup-test-2@foo.bar.asc +20 -22
- data/test/integration/test_mbox.rb +1 -1
- data/test/integration/test_sup-add.rb +83 -0
- data/test/test_crypto.rb +46 -0
- data/test/test_header_parsing.rb +9 -1
- data/test/test_helper.rb +7 -4
- data/test/test_message.rb +188 -22
- 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 +10 -4
- data/test/unit/util/test_string.rb +9 -3
- data/test/unit/util/test_uri.rb +2 -2
- metadata +93 -51
- data/.travis.yml +0 -13
- data/bin/sup-psych-ify-config-files +0 -21
- data/test/gnupg_test_home/key1.gen +0 -15
- data/test/gnupg_test_home/key2.gen +0 -15
- data/test/gnupg_test_home/key_ecc.gen +0 -13
- data/test/gnupg_test_home/private-keys-v1.d/719C7455A7169C6EE8819C6E91002E4F9DD00A65.key +0 -1
- data/test/gnupg_test_home/private-keys-v1.d/8A130806A754AA29D59487D76BD355040D9F26C0.key +0 -0
- data/test/gnupg_test_home/private-keys-v1.d/B7AA46B22BD8A6AD1B4F266C19A3B124A32DDD71.key +0 -0
- data/test/gnupg_test_home/private-keys-v1.d/FA64ACD7CC871371BDF57285A6CDF0E618827783.key +0 -0
- data/test/integration/test_label_service.rb +0 -18
- data/test/test_yaml_migration.rb +0 -85
data/lib/sup/util.rb
CHANGED
|
@@ -4,13 +4,15 @@ require 'thread'
|
|
|
4
4
|
require 'lockfile'
|
|
5
5
|
require 'mime/types'
|
|
6
6
|
require 'pathname'
|
|
7
|
+
require 'rmail'
|
|
7
8
|
require 'set'
|
|
8
9
|
require 'enumerator'
|
|
9
10
|
require 'benchmark'
|
|
10
11
|
require 'unicode'
|
|
12
|
+
require 'unicode/display_width'
|
|
11
13
|
require 'fileutils'
|
|
12
14
|
|
|
13
|
-
|
|
15
|
+
module ExtendedLockfile
|
|
14
16
|
def gen_lock_id
|
|
15
17
|
Hash[
|
|
16
18
|
'host' => "#{ Socket.gethostname }",
|
|
@@ -36,6 +38,7 @@ class Lockfile
|
|
|
36
38
|
|
|
37
39
|
def touch_yourself; touch path end
|
|
38
40
|
end
|
|
41
|
+
Lockfile.send :prepend, ExtendedLockfile
|
|
39
42
|
|
|
40
43
|
class File
|
|
41
44
|
# platform safe file.link which attempts a copy if hard-linking fails
|
|
@@ -105,7 +108,7 @@ module RMail
|
|
|
105
108
|
end
|
|
106
109
|
end
|
|
107
110
|
|
|
108
|
-
|
|
111
|
+
module CustomizedSerialize
|
|
109
112
|
## Don't add MIME-Version headers on serialization. Sup sometimes want's to serialize
|
|
110
113
|
## message parts where these headers are not needed and messing with the message on
|
|
111
114
|
## serialization breaks gpg signatures. The commented section shows the original RMail
|
|
@@ -117,48 +120,7 @@ module RMail
|
|
|
117
120
|
# end
|
|
118
121
|
end
|
|
119
122
|
end
|
|
120
|
-
|
|
121
|
-
class Header
|
|
122
|
-
|
|
123
|
-
# Convert to ASCII before trying to match with regexp
|
|
124
|
-
class Field
|
|
125
|
-
|
|
126
|
-
class << self
|
|
127
|
-
def parse(field)
|
|
128
|
-
field = field.dup.to_s
|
|
129
|
-
field = field.fix_encoding!.ascii
|
|
130
|
-
if field =~ EXTRACT_FIELD_NAME_RE
|
|
131
|
-
[ $1, $'.chomp ]
|
|
132
|
-
else
|
|
133
|
-
[ "", Field.value_strip(field) ]
|
|
134
|
-
end
|
|
135
|
-
end
|
|
136
|
-
end
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
## Be more cautious about invalid content-type headers
|
|
140
|
-
## the original RMail code calls
|
|
141
|
-
## value.strip.split(/\s*;\s*/)[0].downcase
|
|
142
|
-
## without checking if split returned an element
|
|
143
|
-
|
|
144
|
-
# This returns the full content type of this message converted to
|
|
145
|
-
# lower case.
|
|
146
|
-
#
|
|
147
|
-
# If there is no content type header, returns the passed block is
|
|
148
|
-
# executed and its return value is returned. If no block is passed,
|
|
149
|
-
# the value of the +default+ argument is returned.
|
|
150
|
-
def content_type(default = nil)
|
|
151
|
-
if value = self['content-type'] and ct = value.strip.split(/\s*;\s*/)[0]
|
|
152
|
-
return ct.downcase
|
|
153
|
-
else
|
|
154
|
-
if block_given?
|
|
155
|
-
yield
|
|
156
|
-
else
|
|
157
|
-
default
|
|
158
|
-
end
|
|
159
|
-
end
|
|
160
|
-
end
|
|
161
|
-
end
|
|
123
|
+
Serialize.send :prepend, CustomizedSerialize
|
|
162
124
|
end
|
|
163
125
|
|
|
164
126
|
class Module
|
|
@@ -239,21 +201,14 @@ end
|
|
|
239
201
|
|
|
240
202
|
class String
|
|
241
203
|
def display_length
|
|
242
|
-
@display_length ||= Unicode.
|
|
243
|
-
|
|
244
|
-
# if Unicode.width fails and returns -1, fall back to
|
|
245
|
-
# regular String#length, see pull-request: #256.
|
|
246
|
-
if @display_length < 0
|
|
247
|
-
@display_length = self.length
|
|
248
|
-
end
|
|
249
|
-
|
|
250
|
-
@display_length
|
|
204
|
+
@display_length ||= Unicode::DisplayWidth.of(self)
|
|
251
205
|
end
|
|
252
206
|
|
|
253
207
|
def slice_by_display_length len
|
|
254
208
|
each_char.each_with_object "" do |c, buffer|
|
|
255
|
-
len -= c
|
|
256
|
-
buffer
|
|
209
|
+
len -= Unicode::DisplayWidth.of(c)
|
|
210
|
+
return buffer if len < 0
|
|
211
|
+
buffer << c
|
|
257
212
|
end
|
|
258
213
|
end
|
|
259
214
|
|
|
@@ -341,13 +296,14 @@ class String
|
|
|
341
296
|
ret = []
|
|
342
297
|
s = self
|
|
343
298
|
while s.display_length > len
|
|
344
|
-
|
|
299
|
+
slice = s.slice_by_display_length(len)
|
|
300
|
+
cut = slice.rindex(/\s/)
|
|
345
301
|
if cut
|
|
346
302
|
ret << s[0 ... cut]
|
|
347
303
|
s = s[(cut + 1) .. -1]
|
|
348
304
|
else
|
|
349
|
-
ret <<
|
|
350
|
-
s = s[
|
|
305
|
+
ret << slice
|
|
306
|
+
s = s[slice.length .. -1]
|
|
351
307
|
end
|
|
352
308
|
end
|
|
353
309
|
ret << s
|
|
@@ -397,8 +353,23 @@ class String
|
|
|
397
353
|
self
|
|
398
354
|
end
|
|
399
355
|
|
|
356
|
+
## Decodes UTF-7 and returns the resulting decoded string as UTF-8.
|
|
357
|
+
##
|
|
358
|
+
## Ruby doesn't supply a UTF-7 encoding natively. There is
|
|
359
|
+
## Net::IMAP::decode_utf7 which only handles the IMAP "modified UTF-7"
|
|
360
|
+
## encoding. This implementation is inspired by that one but handles
|
|
361
|
+
## standard UTF-7 shift characters and not the IMAP-specific variation.
|
|
362
|
+
def decode_utf7
|
|
363
|
+
gsub(/\+([^-]+)?-/) {
|
|
364
|
+
if $1
|
|
365
|
+
($1 + "===").unpack("m")[0].encode(Encoding::UTF_8, Encoding::UTF_16BE)
|
|
366
|
+
else
|
|
367
|
+
"+"
|
|
368
|
+
end
|
|
369
|
+
}
|
|
370
|
+
end
|
|
371
|
+
|
|
400
372
|
def normalize_whitespace
|
|
401
|
-
fix_encoding!
|
|
402
373
|
gsub(/\t/, " ").gsub(/\r/, "")
|
|
403
374
|
end
|
|
404
375
|
|
|
@@ -410,7 +381,7 @@ class String
|
|
|
410
381
|
|
|
411
382
|
unless method_defined? :each
|
|
412
383
|
def each &b
|
|
413
|
-
each_line
|
|
384
|
+
each_line(&b)
|
|
414
385
|
end
|
|
415
386
|
end
|
|
416
387
|
|
|
@@ -460,18 +431,18 @@ class Numeric
|
|
|
460
431
|
|
|
461
432
|
def to_human_size
|
|
462
433
|
if self < 1024
|
|
463
|
-
to_s + "
|
|
434
|
+
to_s + "B"
|
|
464
435
|
elsif self < (1024 * 1024)
|
|
465
|
-
(self / 1024).to_s + "
|
|
436
|
+
(self / 1024).to_s + "KiB"
|
|
466
437
|
elsif self < (1024 * 1024 * 1024)
|
|
467
|
-
(self / 1024 / 1024).to_s + "
|
|
438
|
+
(self / 1024 / 1024).to_s + "MiB"
|
|
468
439
|
else
|
|
469
|
-
(self / 1024 / 1024 / 1024).to_s + "
|
|
440
|
+
(self / 1024 / 1024 / 1024).to_s + "GiB"
|
|
470
441
|
end
|
|
471
442
|
end
|
|
472
443
|
end
|
|
473
444
|
|
|
474
|
-
class
|
|
445
|
+
class Integer
|
|
475
446
|
def to_character
|
|
476
447
|
if self < 128 && self >= 0
|
|
477
448
|
chr
|
|
@@ -512,7 +483,9 @@ module Enumerable
|
|
|
512
483
|
ret
|
|
513
484
|
end
|
|
514
485
|
|
|
515
|
-
|
|
486
|
+
if not method_defined? :sum
|
|
487
|
+
def sum; inject(0) { |x, y| x + y }; end
|
|
488
|
+
end
|
|
516
489
|
|
|
517
490
|
def map_to_hash
|
|
518
491
|
ret = {}
|
|
@@ -568,7 +541,9 @@ class Array
|
|
|
568
541
|
inject([]) { |a, e| a + e }
|
|
569
542
|
end
|
|
570
543
|
|
|
571
|
-
|
|
544
|
+
if not method_defined? :to_h
|
|
545
|
+
def to_h; Hash[*flatten_one_level]; end
|
|
546
|
+
end
|
|
572
547
|
def rest; self[1..-1]; end
|
|
573
548
|
|
|
574
549
|
def to_boolean_h; Hash[*map { |x| [x, true] }.flatten]; end
|
data/lib/sup/version.rb
CHANGED
data/lib/sup.rb
CHANGED
|
@@ -26,7 +26,7 @@ class Module
|
|
|
26
26
|
props = props.map { |p| p.to_s }
|
|
27
27
|
|
|
28
28
|
path = name.gsub(/::/, "/")
|
|
29
|
-
yaml_tag "
|
|
29
|
+
yaml_tag "tag:#{Redwood::YAML_DOMAIN},#{Redwood::YAML_DATE}/#{path}"
|
|
30
30
|
|
|
31
31
|
define_method :init_with do |coder|
|
|
32
32
|
initialize(*coder.map.values_at(*props))
|
|
@@ -38,9 +38,6 @@ class Module
|
|
|
38
38
|
hash
|
|
39
39
|
end
|
|
40
40
|
end
|
|
41
|
-
|
|
42
|
-
# Legacy
|
|
43
|
-
Psych.load_tags["!#{Redwood::LEGACY_YAML_DOMAIN},#{Redwood::YAML_DATE}/#{path}"] = self
|
|
44
41
|
end
|
|
45
42
|
end
|
|
46
43
|
|
|
@@ -139,10 +136,17 @@ module Redwood
|
|
|
139
136
|
|
|
140
137
|
def load_yaml_obj fn, compress=false
|
|
141
138
|
o = if File.exist? fn
|
|
142
|
-
if compress
|
|
143
|
-
Zlib::GzipReader.open(fn) { |f|
|
|
139
|
+
raw_contents = if compress
|
|
140
|
+
Zlib::GzipReader.open(fn) { |f| f.read }
|
|
141
|
+
else
|
|
142
|
+
File::open(fn) { |f| f.read }
|
|
143
|
+
end
|
|
144
|
+
## fix up malformed tag URIs created by earlier versions of sup
|
|
145
|
+
raw_contents.gsub!(/!supmua.org,2006-10-01\/(\S*)$/) { |m| "!<tag:supmua.org,2006-10-01/#{$1}>" }
|
|
146
|
+
if YAML.respond_to?(:unsafe_load) # Ruby 3.1+
|
|
147
|
+
YAML::unsafe_load raw_contents
|
|
144
148
|
else
|
|
145
|
-
YAML::
|
|
149
|
+
YAML::load raw_contents
|
|
146
150
|
end
|
|
147
151
|
end
|
|
148
152
|
if o.is_a?(Array)
|
|
@@ -331,6 +335,7 @@ EOM
|
|
|
331
335
|
:poll_interval => 300,
|
|
332
336
|
:wrap_width => 0,
|
|
333
337
|
:slip_rows => 0,
|
|
338
|
+
:indent_spaces => 2,
|
|
334
339
|
:col_jump => 2,
|
|
335
340
|
:stem_language => "english",
|
|
336
341
|
:sync_back_to_maildir => false,
|
|
@@ -348,7 +353,7 @@ EOM
|
|
|
348
353
|
name ||= ENV["USER"]
|
|
349
354
|
email = ENV["USER"] + "@" +
|
|
350
355
|
begin
|
|
351
|
-
|
|
356
|
+
Addrinfo.getaddrinfo(Socket.gethostname, 'smtp').first.getnameinfo.first
|
|
352
357
|
rescue SocketError
|
|
353
358
|
Socket.gethostname
|
|
354
359
|
end
|
data/man/sup-add.1
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
.\" Automatically generated by Pandoc 2.9.2.1
|
|
2
|
+
.\"
|
|
3
|
+
.TH "SUP-ADD" "1" "April 9, 2012" "Sup User Manual" ""
|
|
4
|
+
.hy
|
|
2
5
|
.SH NAME
|
|
3
6
|
.PP
|
|
4
|
-
sup
|
|
7
|
+
sup-add - add a source to the Sup source list
|
|
5
8
|
.SH SYNOPSIS
|
|
6
9
|
.PP
|
|
7
|
-
sup
|
|
10
|
+
sup-add [\f[I]options\f[R]] [\f[I]source uri\&...\f[R]]
|
|
8
11
|
.SH DESCRIPTION
|
|
9
12
|
.PP
|
|
10
13
|
Add one ore more sources to the Sup source list
|
|
@@ -13,67 +16,51 @@ For mbox files on local disk, use the form:
|
|
|
13
16
|
.IP
|
|
14
17
|
.nf
|
|
15
18
|
\f[C]
|
|
16
|
-
mbox:<path
|
|
19
|
+
mbox:<path to mbox file>, or
|
|
17
20
|
|
|
18
|
-
mbox://<path
|
|
19
|
-
\f[]
|
|
21
|
+
mbox://<path to mbox file>
|
|
22
|
+
\f[R]
|
|
20
23
|
.fi
|
|
21
24
|
.PP
|
|
22
25
|
For Maildir folders, use the form:
|
|
23
26
|
.IP
|
|
24
27
|
.nf
|
|
25
28
|
\f[C]
|
|
26
|
-
maildir:<path
|
|
29
|
+
maildir:<path to Maildir directory>; or
|
|
27
30
|
|
|
28
|
-
maildir://<path
|
|
29
|
-
\f[]
|
|
31
|
+
maildir://<path to Maildir directory>
|
|
32
|
+
\f[R]
|
|
30
33
|
.fi
|
|
31
34
|
.SH OPTIONS
|
|
32
35
|
.TP
|
|
33
|
-
|
|
36
|
+
-a, --archive
|
|
34
37
|
Automatically archive all new messages from thesesources.
|
|
35
|
-
.RS
|
|
36
|
-
.RE
|
|
37
38
|
.TP
|
|
38
|
-
|
|
39
|
+
-u, --unusual
|
|
39
40
|
Do not automatically poll these sources for new messages.
|
|
40
|
-
.RS
|
|
41
|
-
.RE
|
|
42
41
|
.TP
|
|
43
|
-
|
|
44
|
-
A comma
|
|
42
|
+
-l \f[I]STRING\f[R], --labels \f[I]STRING\f[R]
|
|
43
|
+
A comma-separated set of labels to apply to all messages from this
|
|
45
44
|
source
|
|
46
|
-
.RS
|
|
47
|
-
.RE
|
|
48
45
|
.TP
|
|
49
|
-
|
|
46
|
+
-f, --force-new
|
|
50
47
|
Create a new account for this source, even if one already exists
|
|
51
|
-
.RS
|
|
52
|
-
.RE
|
|
53
48
|
.TP
|
|
54
|
-
|
|
55
|
-
Reuse previously defined account user
|
|
56
|
-
.RS
|
|
57
|
-
.RE
|
|
49
|
+
-o \f[I]STRING\f[R], --force-account \f[I]STRING\f[R]
|
|
50
|
+
Reuse previously defined account user\[at]hostname
|
|
58
51
|
.TP
|
|
59
|
-
|
|
52
|
+
-v, --version
|
|
60
53
|
Print version and exit
|
|
61
|
-
.RS
|
|
62
|
-
.RE
|
|
63
54
|
.TP
|
|
64
|
-
|
|
55
|
+
-h, --help
|
|
65
56
|
Show help message
|
|
66
|
-
.RS
|
|
67
|
-
.RE
|
|
68
57
|
.SH FILES
|
|
69
58
|
.TP
|
|
70
|
-
|
|
59
|
+
$HOME/.sup/sources.yaml
|
|
71
60
|
Configuration file for Sup mail sources
|
|
72
|
-
.RS
|
|
73
|
-
.RE
|
|
74
61
|
.SH SEE ALSO
|
|
75
62
|
.PP
|
|
76
|
-
sup(1), sup
|
|
63
|
+
sup(1), sup-config(1)
|
|
77
64
|
.SH REPORTING BUGS
|
|
78
65
|
.PP
|
|
79
66
|
You are welcome to submit bug reports to the Sup issue tracker, located
|
|
@@ -82,39 +69,31 @@ at
|
|
|
82
69
|
<https://github.com/sup-heliotrope/sup/issues>
|
|
83
70
|
.SH CONTACT INFORMATION
|
|
84
71
|
.TP
|
|
85
|
-
|
|
86
|
-
<
|
|
87
|
-
.RS
|
|
88
|
-
.RE
|
|
72
|
+
The Sup web page:
|
|
73
|
+
<https://sup-heliotrope.github.io/>
|
|
89
74
|
.TP
|
|
90
|
-
|
|
75
|
+
Code repository:
|
|
91
76
|
<https://github.com/sup-heliotrope/sup/>
|
|
92
|
-
.RS
|
|
93
|
-
.RE
|
|
94
77
|
.TP
|
|
95
|
-
|
|
78
|
+
Sup Wiki:
|
|
96
79
|
<https://github.com/sup-heliotrope/sup/wiki/>
|
|
97
|
-
.RS
|
|
98
|
-
.RE
|
|
99
80
|
.TP
|
|
100
|
-
|
|
101
|
-
#sup
|
|
102
|
-
.RS
|
|
103
|
-
.RE
|
|
81
|
+
Sup IRC channel:
|
|
82
|
+
#sup \[at] freenode.net
|
|
104
83
|
.TP
|
|
105
|
-
|
|
106
|
-
supmua
|
|
84
|
+
Mailing list:
|
|
85
|
+
supmua\[at]googlegroups.com
|
|
107
86
|
.RS
|
|
108
87
|
.PP
|
|
109
|
-
supmua+subscribe
|
|
88
|
+
supmua+subscribe\[at]googlegroups.com
|
|
110
89
|
.PP
|
|
111
90
|
Archives: <https://groups.google.com/d/forum/supmua/>
|
|
112
91
|
.RE
|
|
113
92
|
.SH COPYRIGHT
|
|
114
93
|
.PP
|
|
115
|
-
Copyright
|
|
94
|
+
Copyright \[co] 2006-2009 William Morgan <mworgan-sup@masanjin.net>
|
|
116
95
|
.PP
|
|
117
|
-
Copyright
|
|
96
|
+
Copyright \[at] 2013-2014 Sup developers
|
|
118
97
|
.PP
|
|
119
98
|
Permission is granted to copy and distribute this manual under the terms
|
|
120
99
|
of the GNU General Public License; either version 2 or (at your option)
|
data/man/sup-config.1
CHANGED
|
@@ -1,39 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
.\" Automatically generated by Pandoc 2.9.2.1
|
|
2
|
+
.\"
|
|
3
|
+
.TH "SUP-CONFIG" "1" "April 9, 2012" "Sup User Manual" ""
|
|
4
|
+
.hy
|
|
2
5
|
.SH NAME
|
|
3
6
|
.PP
|
|
4
|
-
sup
|
|
7
|
+
sup-config - interactive configuration tool for Sup
|
|
5
8
|
.SH SYNOPSIS
|
|
6
9
|
.PP
|
|
7
|
-
sup
|
|
10
|
+
sup-config [\f[I]options\f[R]]
|
|
8
11
|
.SH DESCRIPTION
|
|
9
12
|
.PP
|
|
10
13
|
Interactive configuration tool for Sup.
|
|
11
|
-
Won\[
|
|
14
|
+
Won\[cq]t destroy existing configuration.
|
|
12
15
|
.SH OPTIONS
|
|
13
16
|
.TP
|
|
14
|
-
|
|
17
|
+
-v, --version
|
|
15
18
|
Print versian and exit
|
|
16
|
-
.RS
|
|
17
|
-
.RE
|
|
18
19
|
.TP
|
|
19
|
-
|
|
20
|
+
-h, --help
|
|
20
21
|
Show help message
|
|
21
|
-
.RS
|
|
22
|
-
.RE
|
|
23
22
|
.SH FILES
|
|
24
23
|
.TP
|
|
25
|
-
|
|
24
|
+
$HOME/.sup/config.yaml
|
|
26
25
|
Configuration file for Sup
|
|
27
|
-
.RS
|
|
28
|
-
.RE
|
|
29
26
|
.TP
|
|
30
|
-
|
|
27
|
+
$HOME/.sup/sources.yaml
|
|
31
28
|
Configuration file for Sup mail sources
|
|
32
|
-
.RS
|
|
33
|
-
.RE
|
|
34
29
|
.SH SEE ALSO
|
|
35
30
|
.PP
|
|
36
|
-
sup(1), sup
|
|
31
|
+
sup(1), sup-add(1)
|
|
37
32
|
.SH REPORTING BUGS
|
|
38
33
|
.PP
|
|
39
34
|
You are welcome to submit bug reports to the Sup issue tracker, located
|
|
@@ -42,39 +37,31 @@ at
|
|
|
42
37
|
<https://github.com/sup-heliotrope/sup/issues>
|
|
43
38
|
.SH CONTACT INFORMATION
|
|
44
39
|
.TP
|
|
45
|
-
|
|
46
|
-
<
|
|
47
|
-
.RS
|
|
48
|
-
.RE
|
|
40
|
+
The Sup web page:
|
|
41
|
+
<https://sup-heliotrope.github.io/>
|
|
49
42
|
.TP
|
|
50
|
-
|
|
43
|
+
Code repository:
|
|
51
44
|
<https://github.com/sup-heliotrope/sup/>
|
|
52
|
-
.RS
|
|
53
|
-
.RE
|
|
54
45
|
.TP
|
|
55
|
-
|
|
46
|
+
Sup Wiki:
|
|
56
47
|
<https://github.com/sup-heliotrope/sup/wiki/>
|
|
57
|
-
.RS
|
|
58
|
-
.RE
|
|
59
48
|
.TP
|
|
60
|
-
|
|
61
|
-
#sup
|
|
62
|
-
.RS
|
|
63
|
-
.RE
|
|
49
|
+
Sup IRC channel:
|
|
50
|
+
#sup \[at] freenode.net
|
|
64
51
|
.TP
|
|
65
|
-
|
|
66
|
-
supmua
|
|
52
|
+
Mailing list:
|
|
53
|
+
supmua\[at]googlegroups.com
|
|
67
54
|
.RS
|
|
68
55
|
.PP
|
|
69
|
-
supmua+subscribe
|
|
56
|
+
supmua+subscribe\[at]googlegroups.com
|
|
70
57
|
.PP
|
|
71
58
|
Archives: <https://groups.google.com/d/forum/supmua/>
|
|
72
59
|
.RE
|
|
73
60
|
.SH COPYRIGHT
|
|
74
61
|
.PP
|
|
75
|
-
Copyright
|
|
62
|
+
Copyright \[co] 2006-2009 William Morgan <mworgan-sup@masanjin.net>
|
|
76
63
|
.PP
|
|
77
|
-
Copyright
|
|
64
|
+
Copyright \[at] 2013-2014 Sup developers
|
|
78
65
|
.PP
|
|
79
66
|
Permission is granted to copy and distribute this manual under the terms
|
|
80
67
|
of the GNU General Public License; either version 2 or (at your option)
|
data/man/sup-dump.1
CHANGED
|
@@ -1,49 +1,47 @@
|
|
|
1
|
-
|
|
1
|
+
.\" Automatically generated by Pandoc 2.9.2.1
|
|
2
|
+
.\"
|
|
3
|
+
.TH "SUP-DUMP" "1" "April 9, 2012" "Sup User Manual" ""
|
|
4
|
+
.hy
|
|
2
5
|
.SH NAME
|
|
3
6
|
.PP
|
|
4
|
-
sup
|
|
7
|
+
sup-dump - dumps message state from Sup index
|
|
5
8
|
.SH SYNOPSIS
|
|
6
9
|
.PP
|
|
7
|
-
sup
|
|
10
|
+
sup-dump [\f[I]options\f[R]]
|
|
8
11
|
.SH DESCRIPTION
|
|
9
12
|
.PP
|
|
10
13
|
Dumps all message state from the Sup index to standard out.
|
|
11
|
-
You can later use sup
|
|
12
|
-
index.
|
|
14
|
+
You can later use sup-sync --restored --restore to recover the index.
|
|
13
15
|
.PP
|
|
14
16
|
This tool is primarily useful in the event that a Sup upgrade breaks
|
|
15
17
|
index format compatibility.
|
|
16
18
|
.SH OPTIONS
|
|
17
19
|
.TP
|
|
18
|
-
|
|
20
|
+
-v, --version
|
|
19
21
|
Print version and exit
|
|
20
|
-
.RS
|
|
21
|
-
.RE
|
|
22
22
|
.TP
|
|
23
|
-
|
|
23
|
+
-h, --help
|
|
24
24
|
Show help message
|
|
25
|
-
.RS
|
|
26
|
-
.RE
|
|
27
25
|
.SH EXAMPLES
|
|
28
26
|
.PP
|
|
29
27
|
Dump message state and store in file
|
|
30
28
|
.IP
|
|
31
29
|
.nf
|
|
32
30
|
\f[C]
|
|
33
|
-
sup
|
|
34
|
-
\f[]
|
|
31
|
+
sup-dump > filename
|
|
32
|
+
\f[R]
|
|
35
33
|
.fi
|
|
36
34
|
.PP
|
|
37
35
|
Dump message state and compress output to store in file
|
|
38
36
|
.IP
|
|
39
37
|
.nf
|
|
40
38
|
\f[C]
|
|
41
|
-
sup
|
|
42
|
-
\f[]
|
|
39
|
+
sup-dump | bzip2 > filename.bz2
|
|
40
|
+
\f[R]
|
|
43
41
|
.fi
|
|
44
42
|
.SH SEE ALSO
|
|
45
43
|
.PP
|
|
46
|
-
sup(1), sup
|
|
44
|
+
sup(1), sup-sync(1), sup-import-dump(1)
|
|
47
45
|
.SH REPORTING BUGS
|
|
48
46
|
.PP
|
|
49
47
|
You are welcome to submit bug reports to the Sup issue tracker, located
|
|
@@ -52,39 +50,31 @@ at
|
|
|
52
50
|
<https://github.com/sup-heliotrope/sup/issues>
|
|
53
51
|
.SH CONTACT INFORMATION
|
|
54
52
|
.TP
|
|
55
|
-
|
|
56
|
-
<
|
|
57
|
-
.RS
|
|
58
|
-
.RE
|
|
53
|
+
The Sup web page:
|
|
54
|
+
<https://sup-heliotrope.github.io/>
|
|
59
55
|
.TP
|
|
60
|
-
|
|
56
|
+
Code repository:
|
|
61
57
|
<https://github.com/sup-heliotrope/sup/>
|
|
62
|
-
.RS
|
|
63
|
-
.RE
|
|
64
58
|
.TP
|
|
65
|
-
|
|
59
|
+
Sup Wiki:
|
|
66
60
|
<https://github.com/sup-heliotrope/sup/wiki/>
|
|
67
|
-
.RS
|
|
68
|
-
.RE
|
|
69
61
|
.TP
|
|
70
|
-
|
|
71
|
-
#sup
|
|
72
|
-
.RS
|
|
73
|
-
.RE
|
|
62
|
+
Sup IRC channel:
|
|
63
|
+
#sup \[at] freenode.net
|
|
74
64
|
.TP
|
|
75
|
-
|
|
76
|
-
supmua
|
|
65
|
+
Mailing list:
|
|
66
|
+
supmua\[at]googlegroups.com
|
|
77
67
|
.RS
|
|
78
68
|
.PP
|
|
79
|
-
supmua+subscribe
|
|
69
|
+
supmua+subscribe\[at]googlegroups.com
|
|
80
70
|
.PP
|
|
81
71
|
Archives: <https://groups.google.com/d/forum/supmua/>
|
|
82
72
|
.RE
|
|
83
73
|
.SH COPYRIGHT
|
|
84
74
|
.PP
|
|
85
|
-
Copyright
|
|
75
|
+
Copyright \[co] 2006-2009 William Morgan <mworgan-sup@masanjin.net>
|
|
86
76
|
.PP
|
|
87
|
-
Copyright
|
|
77
|
+
Copyright \[at] 2013-2014 Sup developers
|
|
88
78
|
.PP
|
|
89
79
|
Permission is granted to copy and distribute this manual under the terms
|
|
90
80
|
of the GNU General Public License; either version 2 or (at your option)
|