commit: 149ce341820a66010e8592975d86e5d6dd0c6b7e
Author: Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 24 01:47:30 2015 +0000
Commit: Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
CommitDate: Tue Feb 24 01:49:07 2015 +0000
URL: http://sources.gentoo.org/gitweb/?p=proj/ag.git;a=commit;h=149ce341
Expose delete index.
Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>
---
ag | 23 +++++++++++++++++++----
lib/storage.rb | 11 +++++++++--
2 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/ag b/ag
index c5056ff..4636675 100755
--- a/ag
+++ b/ag
@@ -27,7 +27,7 @@ $options.readonly = false
$options.jobs = false
op = OptionParser.new do |opts|
- opts.banner = "Usage: ag
<<--index-full|--index-new|--delete|--reindex|--info> <--list listname>>
<[--file|--msgid|--hash] <maildir/file/hash/messageid>> [options]"
+ opts.banner = "Usage: ag
<<--index-full|--index-new|--delete-msg|--delete-index|--reindex|--info>
<--list listname>> <[--file|--msgid|--hash] <maildir/file/hash/messageid>>
[options]"
opts.on('--index-full', 'Read the full past archive from the .cur Maildir')
do
abort 'Can only select one action' if $options.action != nil
@@ -41,10 +41,16 @@ op = OptionParser.new do |opts|
$options.action = :do_incremental
end
- opts.on('--delete', 'Delete message. Needs --file, --msgid, or --hash') do
+ opts.on('--delete-msg', 'Delete message. Needs --file, --msgid, or --hash')
do
abort 'Can only select one action' if $options.action != nil
- $options.action = :do_delete
+ $options.action = :do_delete_msg
+ end
+
+ opts.on('--delete-Index', 'Delete index. Needs --list') do
+ abort 'Can only select one action' if $options.action != nil
+
+ $options.action = :do_index
end
opts.on('--info', 'Display message details. Needs --file, --msgid, or
--hash') do
@@ -156,7 +162,7 @@ def do_incremental
Ag::Threading.calc($options.name) unless $options.no_threading
end
-def do_delete
+def do_delete_msg
id = Ag::Utils.resolve_id
begin
@@ -166,6 +172,15 @@ def do_delete
end
end
+def do_delete_index
+ begin
+ Ag::Storage.delete_index($options.name)
+ rescue Elasticsearch::Transport::Transport::Errors::NotFound => e
+ rescue => e
+ $stderr.puts "Cannot delete index: #{e}"
+ end
+end
+
def do_reindex
abort 'Come back later.'
end
diff --git a/lib/storage.rb b/lib/storage.rb
index 5b360f5..656a6bf 100644
--- a/lib/storage.rb
+++ b/lib/storage.rb
@@ -3,9 +3,16 @@ require 'date'
module Ag::Storage
module_function
+
+ # Throws Elasticsearch::Transport::Transport::Errors::NotFound
+ # if the list does not exist
+ def delete_index(list)
+ $es.indices.delete index: 'ml-' + list
+ end
+
def create_index(list)
begin
- $es.indices.delete index: 'ml-' + list
+ delete_index(ist)
rescue Elasticsearch::Transport::Transport::Errors::NotFound => e
$stderr.puts "Index did not exist yet. Creating." if $options.debug
end
@@ -267,4 +274,4 @@ module Ag::Storage
return nil if result['hits']['total'] == 0
result['hits']['hits'].first
end
-end
\ No newline at end of file
+end