sup 1.0 → 1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/checks.yml +58 -0
  3. data/.rubocop.yml +5 -0
  4. data/CONTRIBUTORS +5 -2
  5. data/Gemfile +5 -1
  6. data/History.txt +33 -0
  7. data/Manifest.txt +171 -0
  8. data/README.md +9 -4
  9. data/Rakefile +40 -1
  10. data/bin/sup-add +4 -8
  11. data/bin/sup-sync-back-maildir +1 -1
  12. data/contrib/nix/Gemfile +22 -0
  13. data/contrib/nix/Gemfile.lock +80 -0
  14. data/contrib/nix/README +7 -0
  15. data/contrib/nix/gem-install-shell.nix +12 -0
  16. data/contrib/nix/gemset.nix +339 -0
  17. data/contrib/nix/ruby2.4-Gemfile.lock +81 -0
  18. data/contrib/nix/ruby2.4-gemset.nix +309 -0
  19. data/contrib/nix/ruby2.4-shell.nix +30 -0
  20. data/contrib/nix/ruby2.5-Gemfile.lock +81 -0
  21. data/contrib/nix/ruby2.5-gemset.nix +309 -0
  22. data/contrib/nix/ruby2.5-shell.nix +30 -0
  23. data/contrib/nix/ruby2.6-Gemfile.lock +83 -0
  24. data/contrib/nix/ruby2.6-gemset.nix +319 -0
  25. data/contrib/nix/ruby2.6-shell.nix +30 -0
  26. data/contrib/nix/ruby2.7-shell.nix +23 -0
  27. data/contrib/nix/ruby3.0-shell.nix +23 -0
  28. data/contrib/nix/ruby3.1-shell.nix +23 -0
  29. data/contrib/nix/ruby3.2-shell.nix +23 -0
  30. data/contrib/nix/ruby3.3-shell.nix +23 -0
  31. data/contrib/nix/test-all-rubies.sh +6 -0
  32. data/doc/Hooks.txt +1 -1
  33. data/ext/mkrf_conf_xapian.rb +12 -6
  34. data/lib/sup/colormap.rb +1 -1
  35. data/lib/sup/crypto.rb +1 -1
  36. data/lib/sup/hook.rb +1 -1
  37. data/lib/sup/index.rb +4 -4
  38. data/lib/sup/keymap.rb +1 -1
  39. data/lib/sup/maildir.rb +5 -5
  40. data/lib/sup/mbox.rb +5 -5
  41. data/lib/sup/message.rb +8 -7
  42. data/lib/sup/message_chunks.rb +27 -19
  43. data/lib/sup/modes/completion_mode.rb +0 -1
  44. data/lib/sup/modes/console_mode.rb +1 -1
  45. data/lib/sup/modes/file_browser_mode.rb +2 -2
  46. data/lib/sup/modes/label_list_mode.rb +1 -1
  47. data/lib/sup/modes/search_list_mode.rb +2 -2
  48. data/lib/sup/modes/thread_view_mode.rb +1 -2
  49. data/lib/sup/rfc2047.rb +21 -6
  50. data/lib/sup/source.rb +8 -2
  51. data/lib/sup/textfield.rb +0 -1
  52. data/lib/sup/thread.rb +20 -21
  53. data/lib/sup/util.rb +31 -53
  54. data/lib/sup/version.rb +1 -1
  55. data/lib/sup.rb +12 -8
  56. data/man/sup-add.1 +39 -39
  57. data/man/sup-config.1 +31 -27
  58. data/man/sup-dump.1 +34 -35
  59. data/man/sup-import-dump.1 +36 -32
  60. data/man/sup-psych-ify-config-files.1 +29 -25
  61. data/man/sup-recover-sources.1 +32 -28
  62. data/man/sup-sync-back-maildir.1 +34 -30
  63. data/man/sup-sync.1 +40 -36
  64. data/man/sup-tweak-labels.1 +36 -32
  65. data/man/sup.1 +41 -37
  66. data/shell.nix +1 -0
  67. data/sup.gemspec +6 -4
  68. data/test/dummy_source.rb +21 -15
  69. data/test/fixtures/embedded-message.eml +34 -0
  70. data/test/fixtures/non-ascii-header-in-nested-message.eml +36 -0
  71. data/test/fixtures/non-ascii-header.eml +8 -0
  72. data/test/fixtures/rfc2047-header-encoding.eml +15 -0
  73. data/test/fixtures/text-attachments-with-charset.eml +15 -1
  74. data/test/fixtures/utf8-header.eml +17 -0
  75. data/test/integration/test_maildir.rb +3 -0
  76. data/test/integration/test_mbox.rb +4 -1
  77. data/test/integration/test_sup-add.rb +83 -0
  78. data/test/integration/test_sup-sync-back-maildir.rb +40 -0
  79. data/test/test_crypto.rb +44 -0
  80. data/test/test_header_parsing.rb +11 -3
  81. data/test/test_helper.rb +7 -4
  82. data/test/test_message.rb +124 -32
  83. data/test/test_messages_dir.rb +13 -15
  84. data/test/unit/test_horizontal_selector.rb +4 -4
  85. data/test/unit/test_locale_fiddler.rb +1 -1
  86. data/test/unit/util/test_query.rb +1 -1
  87. data/test/unit/util/test_string.rb +3 -3
  88. data/test/unit/util/test_uri.rb +2 -2
  89. metadata +69 -18
  90. data/.travis.yml +0 -18
  91. data/bin/sup-psych-ify-config-files +0 -21
  92. data/test/integration/test_label_service.rb +0 -18
  93. data/test/test_yaml_migration.rb +0 -85
@@ -0,0 +1,339 @@
1
+ {
2
+ ast = {
3
+ groups = ["default"];
4
+ platforms = [];
5
+ source = {
6
+ remotes = ["https://rubygems.org"];
7
+ sha256 = "04nc8x27hlzlrr5c2gn7mar4vdr0apw5xg22wp6m8dx3wqr04a0y";
8
+ type = "gem";
9
+ };
10
+ version = "2.4.2";
11
+ };
12
+ chronic = {
13
+ groups = ["default"];
14
+ platforms = [];
15
+ source = {
16
+ remotes = ["https://rubygems.org"];
17
+ sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn";
18
+ type = "gem";
19
+ };
20
+ version = "0.10.2";
21
+ };
22
+ coderay = {
23
+ groups = ["default"];
24
+ platforms = [];
25
+ source = {
26
+ remotes = ["https://rubygems.org"];
27
+ sha256 = "0jvxqxzply1lwp7ysn94zjhh57vc14mcshw1ygw14ib8lhc00lyw";
28
+ type = "gem";
29
+ };
30
+ version = "1.1.3";
31
+ };
32
+ gpgme = {
33
+ dependencies = ["mini_portile2"];
34
+ groups = ["default"];
35
+ platforms = [];
36
+ source = {
37
+ remotes = ["https://rubygems.org"];
38
+ sha256 = "0r1vmql7w7ka5xzj1aqf8pk2a4sv0znwj2zkg1fgvd5b89qcvv2k";
39
+ type = "gem";
40
+ };
41
+ version = "2.0.24";
42
+ };
43
+ highline = {
44
+ groups = ["default"];
45
+ platforms = [];
46
+ source = {
47
+ remotes = ["https://rubygems.org"];
48
+ sha256 = "02ghhvigqbq4252gsi4w8a9klkdkybmbz29ghfp1y6sqzlcb466a";
49
+ type = "gem";
50
+ };
51
+ version = "3.0.1";
52
+ };
53
+ json = {
54
+ groups = ["default"];
55
+ platforms = [];
56
+ source = {
57
+ remotes = ["https://rubygems.org"];
58
+ sha256 = "0b4qsi8gay7ncmigr0pnbxyb17y3h8kavdyhsh7nrlqwr35vb60q";
59
+ type = "gem";
60
+ };
61
+ version = "2.7.2";
62
+ };
63
+ language_server-protocol = {
64
+ groups = ["default"];
65
+ platforms = [];
66
+ source = {
67
+ remotes = ["https://rubygems.org"];
68
+ sha256 = "0gvb1j8xsqxms9mww01rmdl78zkd72zgxaap56bhv8j45z05hp1x";
69
+ type = "gem";
70
+ };
71
+ version = "3.17.0.3";
72
+ };
73
+ locale = {
74
+ groups = ["default"];
75
+ platforms = [];
76
+ source = {
77
+ remotes = ["https://rubygems.org"];
78
+ sha256 = "107pm4ccmla23z963kyjldgngfigvchnv85wr6m69viyxxrrjbsj";
79
+ type = "gem";
80
+ };
81
+ version = "2.1.4";
82
+ };
83
+ lockfile = {
84
+ groups = ["default"];
85
+ platforms = [];
86
+ source = {
87
+ remotes = ["https://rubygems.org"];
88
+ sha256 = "0dij3ijywylvfgrpi2i0k17f6w0wjhnjjw0k9030f54z56cz7jrr";
89
+ type = "gem";
90
+ };
91
+ version = "2.1.3";
92
+ };
93
+ method_source = {
94
+ groups = ["default"];
95
+ platforms = [];
96
+ source = {
97
+ remotes = ["https://rubygems.org"];
98
+ sha256 = "1igmc3sq9ay90f8xjvfnswd1dybj1s3fi0dwd53inwsvqk4h24qq";
99
+ type = "gem";
100
+ };
101
+ version = "1.1.0";
102
+ };
103
+ mime-types = {
104
+ dependencies = ["mime-types-data"];
105
+ groups = ["default"];
106
+ platforms = [];
107
+ source = {
108
+ remotes = ["https://rubygems.org"];
109
+ sha256 = "1r64z0m5zrn4k37wabfnv43wa6yivgdfk6cf2rpmmirlz889yaf1";
110
+ type = "gem";
111
+ };
112
+ version = "3.5.2";
113
+ };
114
+ mime-types-data = {
115
+ groups = ["default"];
116
+ platforms = [];
117
+ source = {
118
+ remotes = ["https://rubygems.org"];
119
+ sha256 = "00x7w5xqsj9m33v3vkmy23wipkkysafksib53ypzn27p5g81w455";
120
+ type = "gem";
121
+ };
122
+ version = "3.2024.0305";
123
+ };
124
+ mini_portile2 = {
125
+ groups = ["default"];
126
+ platforms = [];
127
+ source = {
128
+ remotes = ["https://rubygems.org"];
129
+ sha256 = "149r94xi6b3jbp6bv72f8383b95ndn0p5sxnq11gs1j9jadv0ajf";
130
+ type = "gem";
131
+ };
132
+ version = "2.8.6";
133
+ };
134
+ minitest = {
135
+ groups = ["default"];
136
+ platforms = [];
137
+ source = {
138
+ remotes = ["https://rubygems.org"];
139
+ sha256 = "07lq26b86giy3ha3fhrywk9r1ajhc2pm2mzj657jnpnbj1i6g17a";
140
+ type = "gem";
141
+ };
142
+ version = "5.22.3";
143
+ };
144
+ ncursesw = {
145
+ groups = ["default"];
146
+ platforms = [];
147
+ source = {
148
+ remotes = ["https://rubygems.org"];
149
+ sha256 = "0qlfhp9b445g0qp9kkdiylfjlpfzrv6nqvry4ar6y0yacn0zr5y8";
150
+ type = "gem";
151
+ };
152
+ version = "1.4.11";
153
+ };
154
+ optimist = {
155
+ groups = ["default"];
156
+ platforms = [];
157
+ source = {
158
+ remotes = ["https://rubygems.org"];
159
+ sha256 = "0q4jqq3v1bxlfr9jgqmahnygkvl81lr6s1rhm8qg66c9xr9nz241";
160
+ type = "gem";
161
+ };
162
+ version = "3.1.0";
163
+ };
164
+ parallel = {
165
+ groups = ["default"];
166
+ platforms = [];
167
+ source = {
168
+ remotes = ["https://rubygems.org"];
169
+ sha256 = "15wkxrg1sj3n1h2g8jcrn7gcapwcgxr659ypjf75z1ipkgxqxwsv";
170
+ type = "gem";
171
+ };
172
+ version = "1.24.0";
173
+ };
174
+ parser = {
175
+ dependencies = ["ast" "racc"];
176
+ groups = ["default"];
177
+ platforms = [];
178
+ source = {
179
+ remotes = ["https://rubygems.org"];
180
+ sha256 = "11r6kp8wam0nkfvnwyc1fmvky102r1vcfr84vi2p1a2wa0z32j3p";
181
+ type = "gem";
182
+ };
183
+ version = "3.3.0.5";
184
+ };
185
+ pry = {
186
+ dependencies = ["coderay" "method_source"];
187
+ groups = ["default"];
188
+ platforms = [];
189
+ source = {
190
+ remotes = ["https://rubygems.org"];
191
+ sha256 = "0k9kqkd9nps1w1r1rb7wjr31hqzkka2bhi8b518x78dcxppm9zn4";
192
+ type = "gem";
193
+ };
194
+ version = "0.14.2";
195
+ };
196
+ racc = {
197
+ groups = ["default"];
198
+ platforms = [];
199
+ source = {
200
+ remotes = ["https://rubygems.org"];
201
+ sha256 = "01b9662zd2x9bp4rdjfid07h09zxj7kvn7f5fghbqhzc625ap1dp";
202
+ type = "gem";
203
+ };
204
+ version = "1.7.3";
205
+ };
206
+ rainbow = {
207
+ groups = ["default"];
208
+ platforms = [];
209
+ source = {
210
+ remotes = ["https://rubygems.org"];
211
+ sha256 = "0smwg4mii0fm38pyb5fddbmrdpifwv22zv3d3px2xx497am93503";
212
+ type = "gem";
213
+ };
214
+ version = "3.1.1";
215
+ };
216
+ rake = {
217
+ groups = ["default"];
218
+ platforms = [];
219
+ source = {
220
+ remotes = ["https://rubygems.org"];
221
+ sha256 = "17850wcwkgi30p7yqh60960ypn7yibacjjha0av78zaxwvd3ijs6";
222
+ type = "gem";
223
+ };
224
+ version = "13.2.1";
225
+ };
226
+ regexp_parser = {
227
+ groups = ["default"];
228
+ platforms = [];
229
+ source = {
230
+ remotes = ["https://rubygems.org"];
231
+ sha256 = "1ndxm0xnv27p4gv6xynk6q41irckj76q1jsqpysd9h6f86hhp841";
232
+ type = "gem";
233
+ };
234
+ version = "2.9.0";
235
+ };
236
+ rexml = {
237
+ groups = ["default"];
238
+ platforms = [];
239
+ source = {
240
+ remotes = ["https://rubygems.org"];
241
+ sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
242
+ type = "gem";
243
+ };
244
+ version = "3.2.6";
245
+ };
246
+ rmail = {
247
+ groups = ["default"];
248
+ platforms = [];
249
+ source = {
250
+ remotes = ["https://rubygems.org"];
251
+ sha256 = "0m5npkmv764m725wzjzasgf3k8q5anf3vfr6k2cac1xj6jc8lcqi";
252
+ type = "gem";
253
+ };
254
+ version = "1.1.4";
255
+ };
256
+ rr = {
257
+ groups = ["default"];
258
+ platforms = [];
259
+ source = {
260
+ remotes = ["https://rubygems.org"];
261
+ sha256 = "1n9g78ba4c2zzmz8cdb97c38h1xm0clircag00vbcxwqs4dq0ymp";
262
+ type = "gem";
263
+ };
264
+ version = "1.2.1";
265
+ };
266
+ rubocop = {
267
+ dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
268
+ groups = ["default"];
269
+ platforms = [];
270
+ source = {
271
+ remotes = ["https://rubygems.org"];
272
+ sha256 = "1dmj955zbvhlrzzag6hc77xdyyzn8ihvffpjalnzn5asxhz7jcdl";
273
+ type = "gem";
274
+ };
275
+ version = "1.63.2";
276
+ };
277
+ rubocop-ast = {
278
+ dependencies = ["parser"];
279
+ groups = ["default"];
280
+ platforms = [];
281
+ source = {
282
+ remotes = ["https://rubygems.org"];
283
+ sha256 = "1v3q8n48w8h809rqbgzihkikr4g3xk72m1na7s97jdsmjjq6y83w";
284
+ type = "gem";
285
+ };
286
+ version = "1.31.2";
287
+ };
288
+ rubocop-packaging = {
289
+ dependencies = ["rubocop"];
290
+ groups = ["default"];
291
+ platforms = [];
292
+ source = {
293
+ remotes = ["https://rubygems.org"];
294
+ sha256 = "1iqgsbpj7y8ksddbb9gj5vpzs2y8202khyk2mcc165kkfmvm6rx3";
295
+ type = "gem";
296
+ };
297
+ version = "0.5.2";
298
+ };
299
+ ruby-progressbar = {
300
+ groups = ["default"];
301
+ platforms = [];
302
+ source = {
303
+ remotes = ["https://rubygems.org"];
304
+ sha256 = "0cwvyb7j47m7wihpfaq7rc47zwwx9k4v7iqd9s1xch5nm53rrz40";
305
+ type = "gem";
306
+ };
307
+ version = "1.13.0";
308
+ };
309
+ unicode = {
310
+ groups = ["default"];
311
+ platforms = [];
312
+ source = {
313
+ remotes = ["https://rubygems.org"];
314
+ sha256 = "1v8kxmq9i85agjpl7pnl72688901xhs8wxhmj6lpy16a8xz3nzxk";
315
+ type = "gem";
316
+ };
317
+ version = "0.4.4.4";
318
+ };
319
+ unicode-display_width = {
320
+ groups = ["default"];
321
+ platforms = [];
322
+ source = {
323
+ remotes = ["https://rubygems.org"];
324
+ sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
325
+ type = "gem";
326
+ };
327
+ version = "2.5.0";
328
+ };
329
+ xapian-ruby = {
330
+ groups = ["default"];
331
+ platforms = [];
332
+ source = {
333
+ remotes = ["https://rubygems.org"];
334
+ sha256 = "0xlzgk2sis7nnasiplpg6x7mdvqa17ahq2d27i8fd5hs8dmqcsh2";
335
+ type = "gem";
336
+ };
337
+ version = "1.4.22";
338
+ };
339
+ }
@@ -0,0 +1,81 @@
1
+ GEM
2
+ remote: https://rubygems.org/
3
+ specs:
4
+ ast (2.4.2)
5
+ chronic (0.10.2)
6
+ coderay (1.1.3)
7
+ gpgme (2.0.20)
8
+ mini_portile2 (~> 2.3)
9
+ highline (2.0.3)
10
+ locale (2.1.3)
11
+ lockfile (2.1.3)
12
+ method_source (1.0.0)
13
+ mime-types (3.4.1)
14
+ mime-types-data (~> 3.2015)
15
+ mime-types-data (3.2022.0105)
16
+ mini_portile2 (2.8.0)
17
+ minitest (5.15.0)
18
+ ncursesw (1.4.11)
19
+ optimist (3.0.1)
20
+ parallel (1.20.1)
21
+ parser (3.1.2.0)
22
+ ast (~> 2.4.1)
23
+ pry (0.14.1)
24
+ coderay (~> 1.1)
25
+ method_source (~> 1.0)
26
+ rainbow (3.1.1)
27
+ rake (13.0.6)
28
+ regexp_parser (2.5.0)
29
+ rexml (3.2.5)
30
+ rmail (1.1.4)
31
+ rr (1.2.1)
32
+ rubocop (1.12.1)
33
+ parallel (~> 1.10)
34
+ parser (>= 3.0.0.0)
35
+ rainbow (>= 2.2.2, < 4.0)
36
+ regexp_parser (>= 1.8, < 3.0)
37
+ rexml
38
+ rubocop-ast (>= 1.2.0, < 2.0)
39
+ ruby-progressbar (~> 1.7)
40
+ unicode-display_width (>= 1.4.0, < 3.0)
41
+ rubocop-ast (1.4.1)
42
+ parser (>= 2.7.1.5)
43
+ rubocop-packaging (0.5.1)
44
+ rubocop (>= 0.89, < 2.0)
45
+ ruby-progressbar (1.11.0)
46
+ unicode (0.4.4.4)
47
+ unicode-display_width (2.2.0)
48
+ xapian-ruby (1.4.18)
49
+
50
+ PLATFORMS
51
+ aarch64-linux
52
+ x86_64-darwin-17
53
+ x86_64-darwin-18
54
+ x86_64-darwin-19
55
+ x86_64-darwin-20
56
+ x86_64-darwin-21
57
+ x86_64-darwin-22
58
+ x86_64-linux
59
+
60
+ DEPENDENCIES
61
+ bundler (>= 1.3, < 3)
62
+ chronic
63
+ gpgme (>= 2.0.2)
64
+ highline
65
+ locale (~> 2.0)
66
+ lockfile
67
+ mime-types (> 2.0)
68
+ minitest (~> 5.5)
69
+ ncursesw (~> 1.4.0)
70
+ optimist
71
+ pry
72
+ rake
73
+ rmail (>= 1.1.2, < 2)
74
+ rr (~> 1.1)
75
+ rubocop-packaging
76
+ unicode (~> 0.4.4)
77
+ unicode-display_width
78
+ xapian-ruby (~> 1.2)
79
+
80
+ BUNDLED WITH
81
+ 2.2.20