sup 0.19.0 → 0.22.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 +4 -4
- data/.gitignore +5 -0
- data/.gitmodules +3 -0
- data/.travis.yml +3 -2
- data/CONTRIBUTORS +19 -13
- data/Gemfile +4 -0
- data/History.txt +41 -0
- data/Rakefile +41 -1
- data/ReleaseNotes +17 -0
- data/bin/sup +5 -18
- data/bin/sup-add +1 -2
- data/bin/sup-config +0 -1
- data/bin/sup-dump +0 -1
- data/bin/sup-import-dump +1 -2
- data/bin/sup-sync +0 -1
- data/bin/sup-sync-back-maildir +1 -2
- data/bin/sup-tweak-labels +1 -2
- data/contrib/colorpicker.rb +0 -2
- data/contrib/completion/_sup.bash +102 -0
- data/devel/profile.rb +0 -1
- data/ext/mkrf_conf_xapian.rb +47 -0
- data/lib/sup.rb +9 -8
- data/lib/sup/buffer.rb +12 -0
- data/lib/sup/colormap.rb +5 -2
- data/lib/sup/contact.rb +4 -2
- data/lib/sup/crypto.rb +41 -8
- data/lib/sup/draft.rb +8 -8
- data/lib/sup/hook.rb +1 -1
- data/lib/sup/index.rb +2 -2
- data/lib/sup/label.rb +1 -1
- data/lib/sup/maildir.rb +16 -5
- data/lib/sup/mbox.rb +13 -5
- data/lib/sup/message.rb +17 -3
- data/lib/sup/message_chunks.rb +10 -2
- data/lib/sup/mode.rb +33 -28
- data/lib/sup/modes/edit_message_mode.rb +3 -2
- data/lib/sup/modes/forward_mode.rb +22 -3
- data/lib/sup/modes/line_cursor_mode.rb +1 -1
- data/lib/sup/modes/text_mode.rb +6 -1
- data/lib/sup/modes/thread_index_mode.rb +11 -1
- data/lib/sup/modes/thread_view_mode.rb +103 -9
- data/lib/sup/person.rb +68 -61
- data/lib/sup/search.rb +1 -1
- data/lib/sup/sent.rb +1 -1
- data/lib/sup/util.rb +1 -75
- data/lib/sup/util/locale_fiddler.rb +24 -0
- data/lib/sup/version.rb +1 -1
- data/sup.gemspec +22 -5
- data/test/{messages → fixtures}/bad-content-transfer-encoding-1.eml +0 -0
- data/test/{messages → fixtures}/binary-content-transfer-encoding-2.eml +0 -0
- data/test/fixtures/blank-header-fields.eml +71 -0
- data/test/fixtures/contacts.txt +1 -0
- data/test/fixtures/malicious-attachment-names.eml +55 -0
- data/test/fixtures/missing-from-to.eml +18 -0
- data/test/{messages → fixtures}/missing-line.eml +0 -0
- data/test/fixtures/multi-part-2.eml +72 -0
- data/test/fixtures/multi-part.eml +61 -0
- data/test/fixtures/no-body.eml +18 -0
- data/test/fixtures/simple-message.eml +29 -0
- data/test/gnupg_test_home/gpg.conf +2 -1
- data/test/gnupg_test_home/key1.gen +15 -0
- data/test/gnupg_test_home/key2.gen +15 -0
- data/test/gnupg_test_home/key_ecc.gen +13 -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 +38 -0
- data/test/gnupg_test_home/secring.gpg +0 -0
- data/test/gnupg_test_home/sup-test-2@foo.bar.asc +22 -17
- data/test/integration/test_maildir.rb +75 -0
- data/test/integration/test_mbox.rb +69 -0
- data/test/test_crypto.rb +12 -2
- data/test/test_header_parsing.rb +1 -1
- data/test/test_helper.rb +6 -3
- data/test/test_message.rb +42 -342
- data/test/test_messages_dir.rb +4 -28
- data/test/test_yaml_regressions.rb +1 -1
- data/test/unit/test_contact.rb +33 -0
- data/test/unit/test_locale_fiddler.rb +15 -0
- data/test/unit/test_person.rb +37 -0
- metadata +108 -38
- data/test/gnupg_test_home/receiver_trustdb.gpg +0 -0
- data/test/gnupg_test_home/trustdb.gpg +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 703c8b0175724e4a3a4965081e8a0b12fb01147a
|
4
|
+
data.tar.gz: 86557dfd9de2f477dbf4f8322cd732c221d51c9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ba46b62b4cd8059cd1835624270e715da259934f4f497f56471e81bd02876b83518c8b647ed4c1d0f43520f0a42fcdbec500b6a8b1abb4002bfdea7fe5e44ddd
|
7
|
+
data.tar.gz: 0e5f694ae6cd39770120ef26163a68bddb8179baa6cbcaec87acdbee17be1627cc9520c802427dd5f4958c7d367017034cf62360acddedef27f8a95d27b288cf
|
data/.gitignore
CHANGED
@@ -4,6 +4,7 @@
|
|
4
4
|
*~
|
5
5
|
# artifact
|
6
6
|
pkg/
|
7
|
+
man/
|
7
8
|
*.gem
|
8
9
|
# i have accidently added this one one too many times
|
9
10
|
sup-exception-log.txt
|
@@ -14,4 +15,8 @@ Gemfile.lock
|
|
14
15
|
|
15
16
|
# generated file for gnupg test
|
16
17
|
test/gnupg_test_home/random_seed
|
18
|
+
test/gnupg_test_home/trustdb.gpg
|
19
|
+
test/gnupg_test_home/.gpg-v21-migrated
|
20
|
+
test/gnupg_test_home/private-keys-v1.d
|
21
|
+
|
17
22
|
|
data/.gitmodules
ADDED
data/.travis.yml
CHANGED
@@ -3,10 +3,11 @@ language: ruby
|
|
3
3
|
rvm:
|
4
4
|
- 2.1.1
|
5
5
|
- 2.0.0
|
6
|
-
-
|
6
|
+
- 2.2.0
|
7
7
|
|
8
8
|
before_install:
|
9
9
|
- sudo apt-get update -qq
|
10
|
-
- sudo apt-get install -qq uuid-dev uuid libncursesw5-dev libncursesw5 gnupg2
|
10
|
+
- sudo apt-get install -qq uuid-dev uuid libncursesw5-dev libncursesw5 gnupg2 pandoc
|
11
|
+
- git submodule update --init --recursive
|
11
12
|
|
12
13
|
script: bundle exec rake travis
|
data/CONTRIBUTORS
CHANGED
@@ -3,28 +3,31 @@ Rich Lane
|
|
3
3
|
Gaute Hope <eg at the gaute.vetsj dot coms>
|
4
4
|
Whyme Lyu <callme5long at the gmail dot coms>
|
5
5
|
Hamish Downer <dmishd at the gmail dot coms>
|
6
|
+
Zeger-Jan van de Weg <mail at the zjvandeweg dot nls>
|
6
7
|
Damien Leone <damien.leone at the fensalir dot frs>
|
7
8
|
Sascha Silbe <sascha-pgp at the silbe dot orgs>
|
8
9
|
Eric Weikl <eric.weikl at the gmx dot nets>
|
9
10
|
Paweł Wilk <siefca at the gnu dot orgs>
|
10
11
|
Ismo Puustinen <ismo at the iki dot fis>
|
12
|
+
Matthieu Rakotojaona <matthieu.rakotojaona at the gmail dot coms>
|
11
13
|
Nicolas Pouillard <nicolas.pouillard at the gmail dot coms>
|
12
14
|
Michael Stapelberg <michael at the stapelberg dot des>
|
13
15
|
Eric Sherman <hyperbolist at the gmail dot coms>
|
14
16
|
Tero Tilus <tero at the tilus dot nets>
|
15
17
|
Ben Walton <bwalton at the artsci.utoronto dot cas>
|
18
|
+
Scott Bonds <scott at the ggr dot coms>
|
16
19
|
Mike Stipicevic <stipim at the rpi dot edus>
|
17
20
|
Martin Bähr <mbaehr at the societyserver dot orgs>
|
21
|
+
Timon Vonk <timonv at the gmail dot coms>
|
18
22
|
Clint Byrum <clint at the ubuntu dot coms>
|
19
23
|
Wael M. Nasreddine <wael.nasreddine at the gmail dot coms>
|
20
24
|
Marcus Williams <marcus-sup at the bar-coded dot nets>
|
21
|
-
Matthieu Rakotojaona <matthieu.rakotojaona at the gmail dot coms>
|
22
25
|
Lionel Ott <white.magic at the gmx dot des>
|
23
26
|
Gaudenz Steinlin <gaudenz at the soziologie dot chs>
|
24
|
-
|
27
|
+
Per Andersson <avtobiff at the gmail dot coms>
|
25
28
|
Mark Alexander <marka at the pobox dot coms>
|
29
|
+
Ingmar Vanhassel <ingmar at the exherbo dot orgs>
|
26
30
|
Edward Z. Yang <ezyang at the mit dot edus>
|
27
|
-
Timon Vonk <timonv at the gmail dot coms>
|
28
31
|
julien@macbook <julien.stechele at the gmail dot coms>
|
29
32
|
Christopher Warrington <chrisw at the rice dot edus>
|
30
33
|
W. Trevor King <wking at the drexel dot edus>
|
@@ -37,8 +40,8 @@ Markus Klinik
|
|
37
40
|
Bo Borgerson <gigabo at the gmail dot coms>
|
38
41
|
Atte Kojo <atte.kojo at the reaktor dot fis>
|
39
42
|
Michael Hamann <michael at the content-space dot des>
|
40
|
-
William Erik Baxter <web at the superscript dot coms>
|
41
43
|
Jonathan Lassoff <jof at the thejof dot coms>
|
44
|
+
William Erik Baxter <web at the superscript dot coms>
|
42
45
|
Grant Hollingworth <grant at the antiflux dot orgs>
|
43
46
|
Ico Doornekamp <ico at the pruts dot nls>
|
44
47
|
Adeodato Simó <dato at the net.com.org dot ess>
|
@@ -48,6 +51,7 @@ Jason Petsod
|
|
48
51
|
Robin Burchell <viroteck at the viroteck dot nets>
|
49
52
|
Steve Goldman <sgoldman at the tower-research dot coms>
|
50
53
|
Peter Harkins <ph at the malaprop dot orgs>
|
54
|
+
rjg-vB <rthrd at the web dot des>
|
51
55
|
Decklin Foster <decklin at the red-bean dot coms>
|
52
56
|
Cameron Matheson <cam+sup at the cammunism dot orgs>
|
53
57
|
Carl Worth <cworth at the cworth dot orgs>
|
@@ -56,29 +60,31 @@ Andrew Pimlott
|
|
56
60
|
Jeff Balogh <its.jeff.balogh at the gmail dot coms>
|
57
61
|
Matías Aguirre <matiasaguirre at the gmail dot coms>
|
58
62
|
PaulSmecker <paul.smecker at the gmail dot coms>
|
63
|
+
Ruthard Baudach <rthrd at the web dot des>
|
59
64
|
Kornilios Kourtis <kkourt at the cslab.ece.ntua dot grs>
|
60
65
|
Lars Fischer <fischer at the wiwi.uni-siegen dot des>
|
61
66
|
madhat2r <MaDhAt2r at the dukefoo dot coms>
|
62
|
-
Giorgio Lando <patroclo7 at the gmail dot coms>
|
63
67
|
Kevin Riggle <kevinr at the free-dissociation dot coms>
|
68
|
+
Giorgio Lando <patroclo7 at the gmail dot coms>
|
64
69
|
Benoît PIERRE <benoit.pierre at the gmail dot coms>
|
65
|
-
Alvaro Herrera <alvherre at the alvh.no-ip dot orgs>
|
66
70
|
Steven Lawrance <stl at the koffein dot nets>
|
71
|
+
Alvaro Herrera <alvherre at the alvh.no-ip dot orgs>
|
67
72
|
Jonah <Jonah at the GoodCoffee dot cas>
|
68
73
|
ian <itaylor at the uark dot edus>
|
69
|
-
|
74
|
+
Elias Norberg <xyzzy at the kudzu dot ses>
|
75
|
+
0xACE <0xACE at the users.noreply.github dot coms>
|
70
76
|
MichaelRevell <mikearevell at the gmail dot coms>
|
71
77
|
Gregor Hoffleit <gregor at the sam.mediasupervision dot des>
|
78
|
+
Adam Lloyd <adam at the alloy-d dot nets>
|
72
79
|
Todd Eisenberger <teisenbe at the andrew.cmu dot edus>
|
73
|
-
|
74
|
-
|
80
|
+
Johannes Larsen <mail at the johslarsen dot nets>
|
81
|
+
Sharif Olorin <sio at the tesser dot orgs>
|
75
82
|
Steven Schmeiser <steven at the schmeiser dot orgs>
|
76
83
|
Steven Walter <swalter at the monarch.(none)>
|
77
|
-
Jon M. Dugan <jdugan at the es dot nets>
|
78
|
-
akojo <atte.kojo at the gmail dot coms>
|
79
|
-
Matthias Vallentin <vallentin at the icir dot orgs>
|
80
84
|
William A. Kennington III <william at the wkennington dot coms>
|
85
|
+
akojo <atte.kojo at the gmail dot coms>
|
81
86
|
Horacio Sanson <horacio at the skillupjapan.co dot jps>
|
87
|
+
Matthias Vallentin <vallentin at the icir dot orgs>
|
88
|
+
Jon M. Dugan <jdugan at the es dot nets>
|
82
89
|
Stefan Lundström <lundst at the snabb.(none)>
|
83
|
-
Johannes Larsen <johs.a.larsen at the gmail dot coms>
|
84
90
|
Kirill Smelkov <kirr at the landau.phys.spbu dot rus>
|
data/Gemfile
CHANGED
data/History.txt
CHANGED
@@ -1,3 +1,44 @@
|
|
1
|
+
== 0.22.1 / 2015-06-18
|
2
|
+
|
3
|
+
* Fix bug (#429) in gem build / install.
|
4
|
+
|
5
|
+
== 0.22.0 / 2015-06-16
|
6
|
+
|
7
|
+
* Use mime-types 2
|
8
|
+
* Fix ruby style (Zeger-Jan van de Weg)
|
9
|
+
* Johannes Larsen: fix long-standing bug with draft-id mixups causing
|
10
|
+
drafts to disappear.
|
11
|
+
* Various bugs and minor improvements.
|
12
|
+
|
13
|
+
== 0.21.0 / 2015-02-12
|
14
|
+
|
15
|
+
* Key binding to fetch GPG key from keyserver (Matthieu Rakotojaona)
|
16
|
+
* Replace occurences of File.exists? with File.exist? (Zeger-Jan van de
|
17
|
+
Weg)
|
18
|
+
* You can now unsubscribe from mailinglists using an url, if you have a
|
19
|
+
goto-hook setup (Timon Vonk).
|
20
|
+
* Forward attribution can be customized using the forward-attribution
|
21
|
+
hook (Ruthard Baudach)
|
22
|
+
* Do a few more checks for buffer not nil in the hope to fix a few
|
23
|
+
random crashes
|
24
|
+
* Add bash completion (Per Andersson)
|
25
|
+
* Replace dl/import with Fiddle (Timon Vonk)
|
26
|
+
* Drop support for ruby 1.9.3
|
27
|
+
* Add tests for contact manager and persons (Zeger-Jan van de Weg)
|
28
|
+
|
29
|
+
== 0.20.0 / 2014-10-06
|
30
|
+
|
31
|
+
* add man-pages (generated from wiki) (Per Andersson)!
|
32
|
+
* HTML messages or messages that are decoded with the mime-decode hook
|
33
|
+
are now indexed if the mime-decode hook is set up (Scott Bonds).
|
34
|
+
* OpenBSD support (Scott Bonds)!
|
35
|
+
* goto-hook for keybinding to open URLs.
|
36
|
+
* support special charaters in source URIs (Scott Bonds).
|
37
|
+
* output message id and locations on all load_from_source failures
|
38
|
+
* fix long-standing getlocal bug
|
39
|
+
* make new test GPG keys (old ones expired), valid for one year, script
|
40
|
+
now available in devel/ for making new ones.
|
41
|
+
|
1
42
|
== 0.19.0 / 2014-07-05
|
2
43
|
|
3
44
|
* new check-attachment hook
|
data/Rakefile
CHANGED
@@ -1,4 +1,3 @@
|
|
1
|
-
require 'rubygems'
|
2
1
|
require 'rake/testtask'
|
3
2
|
require "bundler/gem_tasks"
|
4
3
|
|
@@ -9,4 +8,45 @@ Rake::TestTask.new(:test) do |test|
|
|
9
8
|
end
|
10
9
|
task :default => :test
|
11
10
|
|
11
|
+
task :build => [:man]
|
12
12
|
task :travis => [:test, :build]
|
13
|
+
|
14
|
+
def test_pandoc
|
15
|
+
return system("pandoc -v > /dev/null 2>&1")
|
16
|
+
end
|
17
|
+
|
18
|
+
task :man do
|
19
|
+
puts "building manpages from wiki.."
|
20
|
+
unless test_pandoc
|
21
|
+
puts "no pandoc installed, needed for manpage generation."
|
22
|
+
return
|
23
|
+
end
|
24
|
+
|
25
|
+
# test if wiki is cloned
|
26
|
+
unless Dir.exist? 'doc/wiki/man'
|
27
|
+
puts "wiki git repository is not cloned in doc/wiki, try: git submodule update --init."
|
28
|
+
return
|
29
|
+
end
|
30
|
+
|
31
|
+
unless Dir.exist? 'man'
|
32
|
+
Dir.mkdir 'man'
|
33
|
+
end
|
34
|
+
|
35
|
+
Dir.glob("doc/wiki/man/*.md").each do |md|
|
36
|
+
m = /^.*\/(?<manpage>[^\/]*)\.md$/.match(md)[:manpage]
|
37
|
+
puts "generating manpage for: #{m}.."
|
38
|
+
r = system "pandoc -s -f markdown -t man #{md} -o man/#{m}"
|
39
|
+
|
40
|
+
unless r
|
41
|
+
puts "failed to generate manpage: #{m}."
|
42
|
+
return
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
task :clean do
|
48
|
+
['man', 'pkg'].each do |d|
|
49
|
+
puts "cleaning #{d}.."
|
50
|
+
FileUtils.rm_r d if Dir.exist? d
|
51
|
+
end
|
52
|
+
end
|
data/ReleaseNotes
CHANGED
@@ -1,3 +1,20 @@
|
|
1
|
+
Release 0.21.0:
|
2
|
+
|
3
|
+
Several small features as well as polishing (including fetching a GPG key with
|
4
|
+
a shortcut and unsubscribing from mailinglist using an url). Several old
|
5
|
+
deprecated parts of sup have been modernized. Support for Ruby 1.9.3 has been
|
6
|
+
dropped. Have a look in History.txt for the details.
|
7
|
+
|
8
|
+
Release 0.20.0:
|
9
|
+
|
10
|
+
We've got man pages (Mr. Andersson)! We've got OpenBSD support (Scott Bonds)!
|
11
|
+
It is now possible to get your HTML emails indexed by setting up a mime-decode
|
12
|
+
hook before you index (Scott Bonds)! Scott Bonds also fixed up special character handing in source URIs. It is now possible to set up a goto hook
|
13
|
+
for opening the URL below the cursor.
|
14
|
+
|
15
|
+
Also a few long standing bugs have been fixed, and new GPG keys have been made
|
16
|
+
for the tests.
|
17
|
+
|
1
18
|
Release 0.19.0:
|
2
19
|
|
3
20
|
New hook: check-attachment and a new option to shows dates in 24h format.
|
data/bin/sup
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
|
4
4
|
$:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
|
5
5
|
|
6
|
-
require 'rubygems'
|
7
6
|
require 'ncursesw'
|
8
7
|
|
9
8
|
require 'sup/util/ncurses'
|
9
|
+
require 'sup/util/locale_fiddler'
|
10
10
|
|
11
11
|
no_gpgme = false
|
12
12
|
begin
|
@@ -102,27 +102,14 @@ global_keymap = Keymap.new do |k|
|
|
102
102
|
end
|
103
103
|
end
|
104
104
|
|
105
|
-
## the following magic enables wide characters when used with a ruby
|
106
|
-
## ncurses.so that's been compiled against libncursesw. (note the w.) why
|
107
|
-
## this works, i have no idea. much like pretty much every aspect of
|
108
|
-
## dealing with curses. cargo cult programming at its best.
|
109
|
-
require 'dl/import'
|
110
105
|
require 'rbconfig'
|
111
|
-
module LibC
|
112
|
-
extend DL.const_defined?(:Importer) ? DL::Importer : DL::Importable
|
113
|
-
setlocale_lib = case RbConfig::CONFIG['arch']
|
114
|
-
when /darwin/; "libc.dylib"
|
115
|
-
when /cygwin/; "cygwin1.dll"
|
116
|
-
when /freebsd/; "libc.so.7"
|
117
|
-
else; "libc.so.6"
|
118
|
-
end
|
119
106
|
|
120
|
-
|
107
|
+
unless RbConfig::CONFIG['arch'] =~ /openbsd/
|
108
|
+
debug "dynamically loading setlocale()"
|
121
109
|
begin
|
122
|
-
|
123
|
-
extern "void setlocale(int, const char *)"
|
110
|
+
class LibC; extend LocaleFiddler; end
|
124
111
|
debug "setting locale..."
|
125
|
-
LibC.setlocale(6, "")
|
112
|
+
LibC.setlocale(6, "")
|
126
113
|
rescue RuntimeError => e
|
127
114
|
warn "cannot dlload setlocale(); ncurses wide character support probably broken."
|
128
115
|
warn "dlload error was #{e.class}: #{e.message}"
|
data/bin/sup-add
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
$:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
|
4
4
|
|
5
5
|
require 'uri'
|
6
|
-
require 'rubygems'
|
7
6
|
require 'highline/import'
|
8
7
|
require 'trollop'
|
9
8
|
require "sup"
|
@@ -95,7 +94,7 @@ begin
|
|
95
94
|
next
|
96
95
|
end
|
97
96
|
|
98
|
-
parsed_uri = URI(uri)
|
97
|
+
parsed_uri = URI(URI.escape(uri))
|
99
98
|
|
100
99
|
source =
|
101
100
|
case parsed_uri.scheme
|
data/bin/sup-config
CHANGED
data/bin/sup-dump
CHANGED
data/bin/sup-import-dump
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
$:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
|
4
4
|
|
5
5
|
require 'uri'
|
6
|
-
require 'rubygems'
|
7
6
|
require 'trollop'
|
8
7
|
require "sup"
|
9
8
|
|
@@ -82,7 +81,7 @@ begin
|
|
82
81
|
next if opts[:dry_run]
|
83
82
|
|
84
83
|
m.labels = new_labels
|
85
|
-
index.update_message_state m
|
84
|
+
index.update_message_state [m, false]
|
86
85
|
end
|
87
86
|
|
88
87
|
index.commit_transaction if opts[:atomic]
|
data/bin/sup-sync
CHANGED
data/bin/sup-sync-back-maildir
CHANGED
@@ -3,7 +3,6 @@
|
|
3
3
|
|
4
4
|
$:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
|
5
5
|
|
6
|
-
require 'rubygems'
|
7
6
|
require 'trollop'
|
8
7
|
require "sup"
|
9
8
|
|
@@ -60,7 +59,7 @@ $config[:sync_back_to_maildir] = true
|
|
60
59
|
|
61
60
|
begin
|
62
61
|
sync_performed = []
|
63
|
-
sync_performed = File.readlines(Redwood::SYNC_OK_FN).collect { |e| e.strip }.find_all { |e| not e.empty? } if File.
|
62
|
+
sync_performed = File.readlines(Redwood::SYNC_OK_FN).collect { |e| e.strip }.find_all { |e| not e.empty? } if File.exist? Redwood::SYNC_OK_FN
|
64
63
|
sources = []
|
65
64
|
|
66
65
|
## Try to find out sources given in parameters
|
data/bin/sup-tweak-labels
CHANGED
@@ -2,7 +2,6 @@
|
|
2
2
|
|
3
3
|
$:.unshift File.join(File.dirname(__FILE__), *%w[.. lib])
|
4
4
|
|
5
|
-
require 'rubygems'
|
6
5
|
require 'trollop'
|
7
6
|
require "sup"
|
8
7
|
|
@@ -83,7 +82,7 @@ begin
|
|
83
82
|
## query to only messages with those labels
|
84
83
|
query += " (" + remove_labels.map { |l| "label:#{l}" }.join(" OR ") + ")"
|
85
84
|
end
|
86
|
-
query += ' ' + opts[:query] if opts[:query]
|
85
|
+
query += ' AND ' + opts[:query] if opts[:query]
|
87
86
|
|
88
87
|
parsed_query = index.parse_query query
|
89
88
|
parsed_query.merge! :load_spam => true, :load_deleted => true, :load_killed => true
|
data/contrib/colorpicker.rb
CHANGED
@@ -0,0 +1,102 @@
|
|
1
|
+
# Sup Bash completion
|
2
|
+
#
|
3
|
+
# * Complete options for all Sup commands.
|
4
|
+
# * Disable completion for next option when current option takes an argument.
|
5
|
+
# * Complete sources, directories, and files, where applicable.
|
6
|
+
|
7
|
+
_sup_cmds() {
|
8
|
+
local cur prev opts sources
|
9
|
+
COMPREPLY=()
|
10
|
+
cur="${COMP_WORDS[COMP_CWORD]}"
|
11
|
+
prev="${COMP_WORDS[COMP_CWORD-1]}"
|
12
|
+
sources="$(sed -n '/uri:/ {s/.*uri:\s*//p}' $HOME/.sup/sources.yaml)"
|
13
|
+
|
14
|
+
case "${1##/*}" in
|
15
|
+
sup-add)
|
16
|
+
opts="--archive -a --unusual -u --sync-back --no-sync-back -s
|
17
|
+
--labels -l --force-new -f --force-account -o --version -v
|
18
|
+
--help -h mbox: maildir:"
|
19
|
+
|
20
|
+
case $prev in
|
21
|
+
--labels|-l|--force-account|-o)
|
22
|
+
COMPREPLY=()
|
23
|
+
return 0
|
24
|
+
;;
|
25
|
+
esac
|
26
|
+
;;
|
27
|
+
sup-config|sup-dump)
|
28
|
+
opts="--version -v --help -h"
|
29
|
+
;;
|
30
|
+
sup-import-dump)
|
31
|
+
opts="--verbose -v --ignore-missing -i --warn-missing -w
|
32
|
+
--abort-missing -a --atomic -t --dry-run -n --version --help
|
33
|
+
-h"
|
34
|
+
;;
|
35
|
+
sup)
|
36
|
+
opts="--list-hooks -l --no-threads -n --no-initial-poll -o --search
|
37
|
+
-s --compose -c --subject -j --version -v --help -h"
|
38
|
+
|
39
|
+
case $prev in
|
40
|
+
--search|-s|--compose|-c|--subject|-j)
|
41
|
+
COMPREPLY=()
|
42
|
+
return 0
|
43
|
+
;;
|
44
|
+
esac
|
45
|
+
;;
|
46
|
+
sup-recover-sources)
|
47
|
+
opts="--unusual --archive --scan-num --help -h $sources"
|
48
|
+
|
49
|
+
case $prev in
|
50
|
+
--scan-num)
|
51
|
+
COMPREPLY=()
|
52
|
+
return 0
|
53
|
+
;;
|
54
|
+
esac
|
55
|
+
;;
|
56
|
+
sup-sync)
|
57
|
+
opts="--asis --restore --discard --archive -x --read -r
|
58
|
+
--extra-labels --verbose -v --optimize -o --all-sources
|
59
|
+
--dry-run -n --version --help -h ${sources}"
|
60
|
+
|
61
|
+
|
62
|
+
case $prev in
|
63
|
+
--restore|--extra-labels)
|
64
|
+
COMPREPLY=()
|
65
|
+
return 0
|
66
|
+
;;
|
67
|
+
esac
|
68
|
+
;;
|
69
|
+
sup-sync-back-maildir)
|
70
|
+
maildir_sources="$(echo $sources | tr ' ' '\n' | grep maildir)"
|
71
|
+
opts="--no-confirm -n --no-merge -m --list-sources -l
|
72
|
+
--unusual-sources-too -u --version -v --help -h
|
73
|
+
$maildir_sources"
|
74
|
+
;;
|
75
|
+
sup-tweak-labels)
|
76
|
+
opts="--add -a --remove -r --query -q --verbose -v --very-verbose
|
77
|
+
-e --all-sources --dry-run -n --no-sync-back -o --version
|
78
|
+
--help -h $sources"
|
79
|
+
|
80
|
+
case $prev in
|
81
|
+
--add|-a|--remove|-r|--query|-q)
|
82
|
+
COMPREPLY=()
|
83
|
+
return 0
|
84
|
+
;;
|
85
|
+
esac
|
86
|
+
;;
|
87
|
+
esac
|
88
|
+
|
89
|
+
COMPREPLY=( $(compgen -W "$opts" -- ${cur}) )
|
90
|
+
return 0
|
91
|
+
}
|
92
|
+
|
93
|
+
complete -F _sup_cmds sup \
|
94
|
+
sup-add \
|
95
|
+
sup-config \
|
96
|
+
sup-dump \
|
97
|
+
sup-recover-sources \
|
98
|
+
sup-sync \
|
99
|
+
sup-sync-back-maildir \
|
100
|
+
sup-tweak-labels
|
101
|
+
|
102
|
+
complete -F _sup_cmds -o filenames -o plusdirs sup-import-dump
|