sup 1.0 → 1.2
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 +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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9b3d74175eddced998ccf3d918989ba1f90781bb0f2432df5cc11ae2cf3a5ba9
|
4
|
+
data.tar.gz: f415405432adaa8fcfa9a10640107da0cce2575afee758902b934b137e1077e3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e3f012755517d29e9c2c0f5df80eac0432390bcbdd3108e32f921794aeafb2e791e9e6ff64b0663d1c1495b0040ebb1bbe8c006113380b787715ba85edf34dd
|
7
|
+
data.tar.gz: bc829f5939d98acd30f8c241b4f4defd3d6e8c09bde0a39802e28a5a2ecb78a15d7d7e4f25aa7456e0ddd6e20d01453d0715d8947942c74808c65037720fb25b
|
@@ -0,0 +1,58 @@
|
|
1
|
+
name: checks
|
2
|
+
on:
|
3
|
+
push:
|
4
|
+
branches:
|
5
|
+
- develop
|
6
|
+
pull_request:
|
7
|
+
branches:
|
8
|
+
- develop
|
9
|
+
permissions:
|
10
|
+
contents: read
|
11
|
+
jobs:
|
12
|
+
rake-ci:
|
13
|
+
strategy:
|
14
|
+
fail-fast: false
|
15
|
+
matrix:
|
16
|
+
os:
|
17
|
+
- ubuntu-latest
|
18
|
+
- macos-latest
|
19
|
+
ruby-version:
|
20
|
+
- '2.4'
|
21
|
+
- '2.5'
|
22
|
+
- '2.6'
|
23
|
+
- '2.7'
|
24
|
+
- '3.0'
|
25
|
+
- '3.1'
|
26
|
+
- '3.2'
|
27
|
+
- '3.3'
|
28
|
+
runs-on: ${{ matrix.os }}
|
29
|
+
env:
|
30
|
+
nixfile: "contrib/nix/ruby${{ matrix.ruby-version }}-shell.nix"
|
31
|
+
steps:
|
32
|
+
- name: Check out source
|
33
|
+
uses: actions/checkout@v3
|
34
|
+
with:
|
35
|
+
submodules: recursive
|
36
|
+
- name: Cache nix store
|
37
|
+
uses: actions/cache@v3
|
38
|
+
id: nix-cache
|
39
|
+
with:
|
40
|
+
path: /tmp/nixcache
|
41
|
+
key: nix-store-${{ matrix.os }}-ruby${{ matrix.ruby-version }}-${{ hashFiles('contrib/nix/**') }}
|
42
|
+
restore-keys: |
|
43
|
+
nix-store-${{ matrix.os }}-ruby${{ matrix.ruby-version }}-
|
44
|
+
nix-store-
|
45
|
+
- name: Install bash on MacOS
|
46
|
+
run: brew install bash
|
47
|
+
if: runner.os == 'macOS'
|
48
|
+
- name: Install nix
|
49
|
+
uses: nixbuild/nix-quick-install-action@v21
|
50
|
+
- name: Import nix cache
|
51
|
+
run: |
|
52
|
+
if [ -f /tmp/nixcache ] ; then
|
53
|
+
nix-store --import </tmp/nixcache
|
54
|
+
fi
|
55
|
+
- name: Run Rake ci task
|
56
|
+
run: nix-shell "$nixfile" --run 'rake ci'
|
57
|
+
- name: Export nix cache
|
58
|
+
run: nix-store --export $(nix-store -qR $(nix-build --no-out-link "$nixfile" -A inputDerivation | tail -n1)) >/tmp/nixcache
|
data/.rubocop.yml
ADDED
data/CONTRIBUTORS
CHANGED
@@ -1,23 +1,23 @@
|
|
1
1
|
William Morgan <william at the twitter dot coms>
|
2
2
|
Rich Lane <rlane at the club.cc.cmu dot edus>
|
3
3
|
Gaute Hope <eg at the gaute.vetsj dot coms>
|
4
|
+
Dan Callaghan <djc at the djc.id dot aus>
|
4
5
|
Whyme Lyu <callme5long at the gmail dot coms>
|
5
6
|
Hamish Downer <dmishd at the gmail dot coms>
|
6
7
|
Zeger-Jan van de Weg <mail at the zjvandeweg dot nls>
|
7
8
|
Damien Leone <damien.leone at the fensalir dot frs>
|
8
9
|
Sascha Silbe <sascha-pgp at the silbe dot orgs>
|
10
|
+
Iain Parris <ipv2.vcs at the parris dot orgs>
|
9
11
|
Eric Weikl <eric.weikl at the gmx dot nets>
|
10
12
|
Paweł Wilk <siefca at the gnu dot orgs>
|
11
13
|
Matthieu Rakotojaona <matthieu.rakotojaona at the gmail dot coms>
|
12
14
|
Ismo Puustinen <ismo at the iki dot fis>
|
13
|
-
Dan Callaghan <djc at the djc.id dot aus>
|
14
15
|
Nicolas Pouillard <nicolas.pouillard at the gmail dot coms>
|
15
16
|
Michael Stapelberg <michael at the stapelberg dot des>
|
16
17
|
Eric Sherman <hyperbolist at the gmail dot coms>
|
17
18
|
Tero Tilus <tero at the tilus dot nets>
|
18
19
|
Ben Walton <bwalton at the artsci.utoronto dot cas>
|
19
20
|
Scott Bonds <scott at the ggr dot coms>
|
20
|
-
Iain Parris <ipv2.vcs at the parris dot orgs>
|
21
21
|
Mike Stipicevic <stipim at the rpi dot edus>
|
22
22
|
Martin Bähr <mbaehr at the societyserver dot orgs>
|
23
23
|
Timon Vonk <timonv at the gmail dot coms>
|
@@ -87,6 +87,9 @@ Todd Eisenberger <teisenbe at the andrew.cmu dot edus>
|
|
87
87
|
Johannes Larsen <mail at the johslarsen dot nets>
|
88
88
|
Steven Schmeiser <steven at the schmeiser dot orgs>
|
89
89
|
Steven Walter <swalter at the monarch.(none)>
|
90
|
+
Patrice Duroux <patrice.duroux at the gmail dot coms>
|
91
|
+
gclv <gh at the sg.ggoncalves dot mes>
|
92
|
+
Utkarsh Gupta <utkarsh at the debian dot orgs>
|
90
93
|
Michael Dwyer <mdwyer at the michaelmdwyer dot coms>
|
91
94
|
Kyle Hunt <Kyle_Hunt at the ymail dot coms>
|
92
95
|
William A. Kennington III <william at the wkennington dot coms>
|
data/Gemfile
CHANGED
@@ -2,7 +2,11 @@ source 'https://rubygems.org/'
|
|
2
2
|
|
3
3
|
if !RbConfig::CONFIG['arch'].include?('openbsd')
|
4
4
|
# update version in ext/mkrf_conf_xapian.rb as well.
|
5
|
-
|
5
|
+
if /^2\.0\./ =~ RUBY_VERSION
|
6
|
+
gem 'xapian-ruby', ['~> 1.2', '< 1.3.6']
|
7
|
+
else
|
8
|
+
gem 'xapian-ruby', '~> 1.2'
|
9
|
+
end
|
6
10
|
end
|
7
11
|
|
8
12
|
gemspec
|
data/History.txt
CHANGED
@@ -1,3 +1,36 @@
|
|
1
|
+
== 1.2 / 2024-04-21
|
2
|
+
|
3
|
+
* #619: Sup is now compatible with and tested on Ruby 3.2 and Ruby 3.3.
|
4
|
+
(Dan Callaghan)
|
5
|
+
* #603: Fixed deprecated usage of Enumerator.new, which caused a crash on
|
6
|
+
Ruby 3+. (Gui Goncalves)
|
7
|
+
* OutOfSyncSourceErrors now show an error message in the thread view in place
|
8
|
+
of the out-of-sync message body, instead of crashing. (Dan Callaghan)
|
9
|
+
* #613: When installing Sup as a gem, the dependency on xapian-ruby is now
|
10
|
+
skipped if the SUP_SKIP_XAPIAN_GEM_INSTALL environment variable is set.
|
11
|
+
Previously it was skipped unconditionally on OpenBSD only. (Dan Callaghan)
|
12
|
+
|
13
|
+
== 1.1 / 2022-05-23
|
14
|
+
|
15
|
+
* #588, #577: Sup is now compatible with and tested on Ruby 3.0 and Ruby 3.1.
|
16
|
+
(Dan Callaghan)
|
17
|
+
* When the Sup gem installs xapian-ruby, it will install to the user gem
|
18
|
+
directory if the system gem directory is not writable. (Iain Parris)
|
19
|
+
* #571: To and From addresses of enclosed messages are now displayed normally,
|
20
|
+
instead of as Redwood::Person objects. (Iain Parris)
|
21
|
+
* #570: Fixed wording when displaying enclosed messages without Date header.
|
22
|
+
(Iain Parris)
|
23
|
+
* #205, #602: UTF-8 header values are now accepted and handled correctly, as
|
24
|
+
per RFC6532. (Dan Callaghan)
|
25
|
+
* #585: Text/plain attachments with invalid charset are now displayed as
|
26
|
+
US-ASCII (with high bytes replaced) instead of crashing. (Dan Callaghan)
|
27
|
+
* #424: Spaces are now accepted in RFC2047-encoded header words, even though
|
28
|
+
the RFC forbids them. (Dan Callaghan)
|
29
|
+
* Invalid RFC2047-encoded header words are now displayed in their raw form,
|
30
|
+
rather than trying to forcibly transcode them to UTF-8, as per the RFC's
|
31
|
+
recommendation. (Dan Callaghan)
|
32
|
+
* Sup now decodes UTF-7 correctly instead of crashing. (Dan Callaghan)
|
33
|
+
|
1
34
|
== 1.0 / 2020-07-12
|
2
35
|
|
3
36
|
No changes. The version number is incremented to 1.0 to reflect the fact that
|
data/Manifest.txt
ADDED
@@ -0,0 +1,171 @@
|
|
1
|
+
.github/workflows/checks.yml
|
2
|
+
.gitignore
|
3
|
+
.gitmodules
|
4
|
+
.rubocop.yml
|
5
|
+
CONTRIBUTORS
|
6
|
+
Gemfile
|
7
|
+
HACKING
|
8
|
+
History.txt
|
9
|
+
LICENSE
|
10
|
+
Manifest.txt
|
11
|
+
README.md
|
12
|
+
Rakefile
|
13
|
+
ReleaseNotes
|
14
|
+
bin/sup
|
15
|
+
bin/sup-add
|
16
|
+
bin/sup-config
|
17
|
+
bin/sup-dump
|
18
|
+
bin/sup-import-dump
|
19
|
+
bin/sup-recover-sources
|
20
|
+
bin/sup-sync
|
21
|
+
bin/sup-sync-back-maildir
|
22
|
+
bin/sup-tweak-labels
|
23
|
+
contrib/colorpicker.rb
|
24
|
+
contrib/completion/_sup.bash
|
25
|
+
contrib/completion/_sup.zsh
|
26
|
+
contrib/nix/Gemfile
|
27
|
+
contrib/nix/Gemfile.lock
|
28
|
+
contrib/nix/README
|
29
|
+
contrib/nix/gem-install-shell.nix
|
30
|
+
contrib/nix/gemset.nix
|
31
|
+
contrib/nix/ruby2.4-Gemfile.lock
|
32
|
+
contrib/nix/ruby2.4-gemset.nix
|
33
|
+
contrib/nix/ruby2.4-shell.nix
|
34
|
+
contrib/nix/ruby2.5-Gemfile.lock
|
35
|
+
contrib/nix/ruby2.5-gemset.nix
|
36
|
+
contrib/nix/ruby2.5-shell.nix
|
37
|
+
contrib/nix/ruby2.6-Gemfile.lock
|
38
|
+
contrib/nix/ruby2.6-gemset.nix
|
39
|
+
contrib/nix/ruby2.6-shell.nix
|
40
|
+
contrib/nix/ruby2.7-shell.nix
|
41
|
+
contrib/nix/ruby3.0-shell.nix
|
42
|
+
contrib/nix/ruby3.1-shell.nix
|
43
|
+
contrib/nix/ruby3.2-shell.nix
|
44
|
+
contrib/nix/ruby3.3-shell.nix
|
45
|
+
contrib/nix/test-all-rubies.sh
|
46
|
+
devel/console.sh
|
47
|
+
devel/count-loc.sh
|
48
|
+
devel/load-index.rb
|
49
|
+
devel/profile.rb
|
50
|
+
devel/start-console.rb
|
51
|
+
doc/FAQ.txt
|
52
|
+
doc/Hooks.txt
|
53
|
+
doc/Philosophy.txt
|
54
|
+
doc/wiki
|
55
|
+
ext/mkrf_conf_xapian.rb
|
56
|
+
lib/sup.rb
|
57
|
+
lib/sup/account.rb
|
58
|
+
lib/sup/buffer.rb
|
59
|
+
lib/sup/colormap.rb
|
60
|
+
lib/sup/contact.rb
|
61
|
+
lib/sup/crypto.rb
|
62
|
+
lib/sup/draft.rb
|
63
|
+
lib/sup/hook.rb
|
64
|
+
lib/sup/horizontal_selector.rb
|
65
|
+
lib/sup/idle.rb
|
66
|
+
lib/sup/index.rb
|
67
|
+
lib/sup/interactive_lock.rb
|
68
|
+
lib/sup/keymap.rb
|
69
|
+
lib/sup/label.rb
|
70
|
+
lib/sup/logger.rb
|
71
|
+
lib/sup/logger/singleton.rb
|
72
|
+
lib/sup/maildir.rb
|
73
|
+
lib/sup/mbox.rb
|
74
|
+
lib/sup/message.rb
|
75
|
+
lib/sup/message_chunks.rb
|
76
|
+
lib/sup/mode.rb
|
77
|
+
lib/sup/modes/buffer_list_mode.rb
|
78
|
+
lib/sup/modes/completion_mode.rb
|
79
|
+
lib/sup/modes/compose_mode.rb
|
80
|
+
lib/sup/modes/console_mode.rb
|
81
|
+
lib/sup/modes/contact_list_mode.rb
|
82
|
+
lib/sup/modes/edit_message_async_mode.rb
|
83
|
+
lib/sup/modes/edit_message_mode.rb
|
84
|
+
lib/sup/modes/file_browser_mode.rb
|
85
|
+
lib/sup/modes/forward_mode.rb
|
86
|
+
lib/sup/modes/help_mode.rb
|
87
|
+
lib/sup/modes/inbox_mode.rb
|
88
|
+
lib/sup/modes/label_list_mode.rb
|
89
|
+
lib/sup/modes/label_search_results_mode.rb
|
90
|
+
lib/sup/modes/line_cursor_mode.rb
|
91
|
+
lib/sup/modes/log_mode.rb
|
92
|
+
lib/sup/modes/person_search_results_mode.rb
|
93
|
+
lib/sup/modes/poll_mode.rb
|
94
|
+
lib/sup/modes/reply_mode.rb
|
95
|
+
lib/sup/modes/resume_mode.rb
|
96
|
+
lib/sup/modes/scroll_mode.rb
|
97
|
+
lib/sup/modes/search_list_mode.rb
|
98
|
+
lib/sup/modes/search_results_mode.rb
|
99
|
+
lib/sup/modes/text_mode.rb
|
100
|
+
lib/sup/modes/thread_index_mode.rb
|
101
|
+
lib/sup/modes/thread_view_mode.rb
|
102
|
+
lib/sup/person.rb
|
103
|
+
lib/sup/poll.rb
|
104
|
+
lib/sup/rfc2047.rb
|
105
|
+
lib/sup/search.rb
|
106
|
+
lib/sup/sent.rb
|
107
|
+
lib/sup/service/label_service.rb
|
108
|
+
lib/sup/source.rb
|
109
|
+
lib/sup/tagger.rb
|
110
|
+
lib/sup/textfield.rb
|
111
|
+
lib/sup/thread.rb
|
112
|
+
lib/sup/time.rb
|
113
|
+
lib/sup/undo.rb
|
114
|
+
lib/sup/update.rb
|
115
|
+
lib/sup/util.rb
|
116
|
+
lib/sup/util/axe.rb
|
117
|
+
lib/sup/util/locale_fiddler.rb
|
118
|
+
lib/sup/util/ncurses.rb
|
119
|
+
lib/sup/util/path.rb
|
120
|
+
lib/sup/util/query.rb
|
121
|
+
lib/sup/util/uri.rb
|
122
|
+
lib/sup/version.rb
|
123
|
+
shell.nix
|
124
|
+
sup.gemspec
|
125
|
+
test/dummy_source.rb
|
126
|
+
test/fixtures/bad-content-transfer-encoding-1.eml
|
127
|
+
test/fixtures/binary-content-transfer-encoding-2.eml
|
128
|
+
test/fixtures/blank-header-fields.eml
|
129
|
+
test/fixtures/contacts.txt
|
130
|
+
test/fixtures/embedded-message.eml
|
131
|
+
test/fixtures/mailing-list-header.eml
|
132
|
+
test/fixtures/malicious-attachment-names.eml
|
133
|
+
test/fixtures/missing-from-to.eml
|
134
|
+
test/fixtures/missing-line.eml
|
135
|
+
test/fixtures/multi-part-2.eml
|
136
|
+
test/fixtures/multi-part.eml
|
137
|
+
test/fixtures/no-body.eml
|
138
|
+
test/fixtures/non-ascii-header-in-nested-message.eml
|
139
|
+
test/fixtures/non-ascii-header.eml
|
140
|
+
test/fixtures/rfc2047-header-encoding.eml
|
141
|
+
test/fixtures/simple-message.eml
|
142
|
+
test/fixtures/text-attachments-with-charset.eml
|
143
|
+
test/fixtures/utf8-header.eml
|
144
|
+
test/fixtures/zimbra-quote-with-bottom-post.eml
|
145
|
+
test/gnupg_test_home/.gpg-v21-migrated
|
146
|
+
test/gnupg_test_home/gpg.conf
|
147
|
+
test/gnupg_test_home/private-keys-v1.d/306D2EE90FF0014B5B9FD07E265C751791674140.key
|
148
|
+
test/gnupg_test_home/pubring.gpg
|
149
|
+
test/gnupg_test_home/receiver_pubring.gpg
|
150
|
+
test/gnupg_test_home/receiver_secring.gpg
|
151
|
+
test/gnupg_test_home/regen_keys.sh
|
152
|
+
test/gnupg_test_home/secring.gpg
|
153
|
+
test/gnupg_test_home/sup-test-2@foo.bar.asc
|
154
|
+
test/integration/test_maildir.rb
|
155
|
+
test/integration/test_mbox.rb
|
156
|
+
test/integration/test_sup-add.rb
|
157
|
+
test/integration/test_sup-sync-back-maildir.rb
|
158
|
+
test/test_crypto.rb
|
159
|
+
test/test_header_parsing.rb
|
160
|
+
test/test_helper.rb
|
161
|
+
test/test_message.rb
|
162
|
+
test/test_messages_dir.rb
|
163
|
+
test/test_yaml_regressions.rb
|
164
|
+
test/unit/service/test_label_service.rb
|
165
|
+
test/unit/test_contact.rb
|
166
|
+
test/unit/test_horizontal_selector.rb
|
167
|
+
test/unit/test_locale_fiddler.rb
|
168
|
+
test/unit/test_person.rb
|
169
|
+
test/unit/util/test_query.rb
|
170
|
+
test/unit/util/test_string.rb
|
171
|
+
test/unit/util/test_uri.rb
|
data/README.md
CHANGED
@@ -38,7 +38,6 @@ Please report bugs to the [GitHub issue tracker](https://github.com/sup-heliotro
|
|
38
38
|
* [Homepage](https://sup-heliotrope.github.io/)
|
39
39
|
* [Code repository](https://github.com/sup-heliotrope/sup)
|
40
40
|
* [Wiki](https://github.com/sup-heliotrope/sup/wiki)
|
41
|
-
* IRC: [#sup @ freenode.net](http://webchat.freenode.net/?channels=#sup)
|
42
41
|
* Mailing list: supmua@googlegroups.com (subscribe: supmua+subscribe@googlegroups.com, archive: https://groups.google.com/d/forum/supmua )
|
43
42
|
|
44
43
|
## Maintenance status
|
@@ -57,9 +56,15 @@ some alternatives to consider:
|
|
57
56
|
* [Notmuch](https://notmuchmail.org/) was inspired by Sup. There are a wide
|
58
57
|
variety of [Notmuch clients](https://notmuchmail.org/frontends/) available.
|
59
58
|
The most similar to Sup's look-and-feel is
|
60
|
-
[Alot](https://github.com/pazz/alot) — also a curses-based
|
61
|
-
Alot even ships with a
|
62
|
-
[
|
59
|
+
[Alot](https://github.com/pazz/alot) — also a curses-based front end.
|
60
|
+
Alot even ships with a
|
61
|
+
[built-in](https://github.com/pazz/alot/blob/master/extra/themes/sup)
|
62
|
+
[Sup theme](https://github.com/pazz/alot/wiki/Gallery#user-content-theme-sup)!
|
63
|
+
|
64
|
+
* [mu](https://www.djcbsoftware.nl/code/mu/) /
|
65
|
+
[mu4e](https://www.djcbsoftware.nl/code/mu/mu4e.html). Like Sup, a search-based
|
66
|
+
email back end, and also implemented using Xapian. The emacs-based front end
|
67
|
+
[is quite different](https://www.djcbsoftware.nl/code/mu/mu4e/Other-mail-clients.html).
|
63
68
|
|
64
69
|
## License
|
65
70
|
|
data/Rakefile
CHANGED
@@ -1,6 +1,10 @@
|
|
1
1
|
require 'rake/testtask'
|
2
2
|
require "bundler/gem_tasks"
|
3
3
|
|
4
|
+
# Manifest.txt file in same folder as this Rakefile
|
5
|
+
manifest_filename = "#{File.dirname(__FILE__)}/Manifest.txt"
|
6
|
+
git_ls_files_command = "git ls-files | LC_ALL=C sort"
|
7
|
+
|
4
8
|
Rake::TestTask.new(:test) do |test|
|
5
9
|
test.libs << 'test'
|
6
10
|
test.test_files = FileList.new('test/**/test_*.rb')
|
@@ -9,7 +13,7 @@ end
|
|
9
13
|
task :default => :test
|
10
14
|
|
11
15
|
task :build => [:man]
|
12
|
-
task :
|
16
|
+
task :ci => [:test, :rubocop_packaging, :check_manifest, :build]
|
13
17
|
|
14
18
|
def test_pandoc
|
15
19
|
return system("pandoc -v > /dev/null 2>&1")
|
@@ -50,3 +54,38 @@ task :clean do
|
|
50
54
|
FileUtils.rm_r d if Dir.exist? d
|
51
55
|
end
|
52
56
|
end
|
57
|
+
|
58
|
+
task :manifest do
|
59
|
+
manifest = `#{git_ls_files_command}`
|
60
|
+
if $?.success? then
|
61
|
+
puts "Writing `git ls-files` output to #{manifest_filename}"
|
62
|
+
File.write(manifest_filename, manifest, mode: 'w')
|
63
|
+
else
|
64
|
+
abort "Failed to generate Manifest.txt (with `git ls-files`)"
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
task :check_manifest do
|
69
|
+
manifest = `#{git_ls_files_command}`
|
70
|
+
manifest_file_contents = File.read(manifest_filename)
|
71
|
+
if manifest == manifest_file_contents
|
72
|
+
puts "Manifest.txt OK"
|
73
|
+
else
|
74
|
+
puts "Manifest from `git ls-files`:\n#{manifest}"
|
75
|
+
STDERR.puts "Manifest.txt outdated. Please commit an updated Manifest.txt"
|
76
|
+
STDERR.puts "To generate Manifest.txt, run: rake manifest"
|
77
|
+
abort "Manifest.txt does not match `git ls-files`"
|
78
|
+
end
|
79
|
+
end
|
80
|
+
|
81
|
+
task :rubocop_packaging do
|
82
|
+
if /^2\.[012]\./ =~ RUBY_VERSION
|
83
|
+
puts "skipping rubocop-packaging checks on unsupported Ruby #{RUBY_VERSION}"
|
84
|
+
next
|
85
|
+
end
|
86
|
+
if system("rubocop --only Packaging")
|
87
|
+
puts "rubocop-packaging checks OK"
|
88
|
+
else
|
89
|
+
abort "rubocop-packaging checks failed"
|
90
|
+
end
|
91
|
+
end
|
data/bin/sup-add
CHANGED
@@ -94,18 +94,14 @@ begin
|
|
94
94
|
next
|
95
95
|
end
|
96
96
|
|
97
|
-
parsed_uri = URI(URI.escape(uri))
|
98
|
-
|
99
97
|
source =
|
100
|
-
case
|
101
|
-
when
|
98
|
+
case uri
|
99
|
+
when /^maildir:/
|
102
100
|
Redwood::Maildir.new uri, !$opts[:unusual], $opts[:archive], $opts[:sync_back], nil, labels
|
103
|
-
when
|
101
|
+
when /^mbox:/
|
104
102
|
Redwood::MBox.new uri, !$opts[:unusual], $opts[:archive], nil, labels
|
105
103
|
when nil
|
106
|
-
Optimist::die "Sources must be specified with
|
107
|
-
else
|
108
|
-
Optimist::die "Unknown source type #{parsed_uri.scheme.inspect}"
|
104
|
+
Optimist::die "Sources must be specified with a maildir:// or mbox:// URI"
|
109
105
|
end
|
110
106
|
@cli.say "Adding #{source}..."
|
111
107
|
Redwood::SourceManager.add_source source
|
data/bin/sup-sync-back-maildir
CHANGED
@@ -94,7 +94,7 @@ begin
|
|
94
94
|
next if STDIN.gets.chomp.downcase == 'n'
|
95
95
|
end
|
96
96
|
|
97
|
-
infos =
|
97
|
+
infos = index.enum_for(:each_source_info, s.id).to_a
|
98
98
|
counter = 0
|
99
99
|
infos.each do |info|
|
100
100
|
print "\rSynchronizing '#{s.uri}'... #{((counter += 1)/infos.size.to_f*100).to_i}%"
|
data/contrib/nix/Gemfile
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
source "https://rubygems.org/"
|
2
|
+
|
3
|
+
gem "xapian-ruby", "~> 1.2"
|
4
|
+
gem "ncursesw", "~> 1.4.0"
|
5
|
+
gem "rmail", ">= 1.1.2", "< 2"
|
6
|
+
gem "highline"
|
7
|
+
gem "optimist"
|
8
|
+
gem "lockfile"
|
9
|
+
gem "mime-types", "> 2.0"
|
10
|
+
gem "locale", "~> 2.0"
|
11
|
+
gem "chronic"
|
12
|
+
gem "unicode", "~> 0.4.4"
|
13
|
+
gem "unicode-display_width"
|
14
|
+
gem "string-scrub" if /^2\.0\./ =~ RUBY_VERSION
|
15
|
+
|
16
|
+
gem "bundler", ">= 1.3", "< 3"
|
17
|
+
gem "rake"
|
18
|
+
gem "minitest", "~> 5.5"
|
19
|
+
gem "rr", "~> 1.1"
|
20
|
+
gem "gpgme", ">= 2.0.2"
|
21
|
+
gem "pry"
|
22
|
+
gem "rubocop-packaging" unless /^2\.[012]\./ =~ RUBY_VERSION
|
@@ -0,0 +1,80 @@
|
|
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.24)
|
8
|
+
mini_portile2 (~> 2.7)
|
9
|
+
highline (3.0.1)
|
10
|
+
json (2.7.2)
|
11
|
+
language_server-protocol (3.17.0.3)
|
12
|
+
locale (2.1.4)
|
13
|
+
lockfile (2.1.3)
|
14
|
+
method_source (1.1.0)
|
15
|
+
mime-types (3.5.2)
|
16
|
+
mime-types-data (~> 3.2015)
|
17
|
+
mime-types-data (3.2024.0305)
|
18
|
+
mini_portile2 (2.8.6)
|
19
|
+
minitest (5.22.3)
|
20
|
+
ncursesw (1.4.11)
|
21
|
+
optimist (3.1.0)
|
22
|
+
parallel (1.24.0)
|
23
|
+
parser (3.3.0.5)
|
24
|
+
ast (~> 2.4.1)
|
25
|
+
racc
|
26
|
+
pry (0.14.2)
|
27
|
+
coderay (~> 1.1)
|
28
|
+
method_source (~> 1.0)
|
29
|
+
racc (1.7.3)
|
30
|
+
rainbow (3.1.1)
|
31
|
+
rake (13.2.1)
|
32
|
+
regexp_parser (2.9.0)
|
33
|
+
rexml (3.2.6)
|
34
|
+
rmail (1.1.4)
|
35
|
+
rr (1.2.1)
|
36
|
+
rubocop (1.63.2)
|
37
|
+
json (~> 2.3)
|
38
|
+
language_server-protocol (>= 3.17.0)
|
39
|
+
parallel (~> 1.10)
|
40
|
+
parser (>= 3.3.0.2)
|
41
|
+
rainbow (>= 2.2.2, < 4.0)
|
42
|
+
regexp_parser (>= 1.8, < 3.0)
|
43
|
+
rexml (>= 3.2.5, < 4.0)
|
44
|
+
rubocop-ast (>= 1.31.1, < 2.0)
|
45
|
+
ruby-progressbar (~> 1.7)
|
46
|
+
unicode-display_width (>= 2.4.0, < 3.0)
|
47
|
+
rubocop-ast (1.31.2)
|
48
|
+
parser (>= 3.3.0.4)
|
49
|
+
rubocop-packaging (0.5.2)
|
50
|
+
rubocop (>= 1.33, < 2.0)
|
51
|
+
ruby-progressbar (1.13.0)
|
52
|
+
unicode (0.4.4.4)
|
53
|
+
unicode-display_width (2.5.0)
|
54
|
+
xapian-ruby (1.4.22)
|
55
|
+
|
56
|
+
PLATFORMS
|
57
|
+
aarch64-linux
|
58
|
+
|
59
|
+
DEPENDENCIES
|
60
|
+
bundler (>= 1.3, < 3)
|
61
|
+
chronic
|
62
|
+
gpgme (>= 2.0.2)
|
63
|
+
highline
|
64
|
+
locale (~> 2.0)
|
65
|
+
lockfile
|
66
|
+
mime-types (> 2.0)
|
67
|
+
minitest (~> 5.5)
|
68
|
+
ncursesw (~> 1.4.0)
|
69
|
+
optimist
|
70
|
+
pry
|
71
|
+
rake
|
72
|
+
rmail (>= 1.1.2, < 2)
|
73
|
+
rr (~> 1.1)
|
74
|
+
rubocop-packaging
|
75
|
+
unicode (~> 0.4.4)
|
76
|
+
unicode-display_width
|
77
|
+
xapian-ruby (~> 1.2)
|
78
|
+
|
79
|
+
BUNDLED WITH
|
80
|
+
2.4.22
|
data/contrib/nix/README
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
After updating Gemfile, regenerate Gemfile.lock and gemset.nix:
|
2
|
+
|
3
|
+
nix-shell -p bundix --run 'bundix --gemfile=contrib/nix/Gemfile --lockfile=contrib/nix/Gemfile.lock --gemset=contrib/nix/gemset.nix -l'
|
4
|
+
|
5
|
+
Test gem installation:
|
6
|
+
|
7
|
+
nix-shell contrib/nix/gem-install-shell.nix --run 'gem install --verbose -i ./asdf ./pkg/sup-999.gem'
|