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
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'
|