commit:     45f28da0876f572b0bc5d81b7baeefda1b2b108f
Author:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
AuthorDate: Mon Feb 23 22:44:14 2015 +0000
Commit:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
CommitDate: Mon Feb 23 22:44:14 2015 +0000
URL:        http://sources.gentoo.org/gitweb/?p=proj/ag.git;a=commit;h=45f28da0

Include a --jobs parameter.

Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>

---
 ag           | 7 +++++++
 lib/utils.rb | 9 ++++++++-
 2 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/ag b/ag
index d36acc4..97c223f 100755
--- a/ag
+++ b/ag
@@ -24,6 +24,7 @@ $options.index_only = false
 $options.no_threading = false
 $options.debug = false
 $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]"
@@ -93,6 +94,10 @@ op = OptionParser.new do |opts|
   opts.on('--readonly', 'Do not alter the maildir in any way') do
     $options.readonly = true
   end
+
+  opts.on('--jobs', 'Number of parallel jobs to run (defaults to 75% of core 
count)') do |jobs|
+    $options.jobs = jobs
+  end
 end
 op.parse!
 
@@ -110,6 +115,8 @@ $maildir.serializer = Maildir::Serializer::Mail.new
 $es = Elasticsearch::Client.new(log: false)
 $es.transport.reload_connections!
 
+Ag::Utils.proc_count = $options.jobs
+
 ###############################################################################
 
 def do_full

diff --git a/lib/utils.rb b/lib/utils.rb
index 0213c6d..b37437b 100644
--- a/lib/utils.rb
+++ b/lib/utils.rb
@@ -67,8 +67,15 @@ module Ag
       ''
     end
 
+    @proc_count = nil
+    def proc_count=(cnt)
+        cnt = nil if cnt == false
+        @proc_count = cnt
+    end
+
     def proc_count
+      return @proc_count unless @proc_count.nil? or @proc_count == false
       (Parallel::ProcessorCount.processor_count.to_f * 0.75).floor
     end
   end
-end
\ No newline at end of file
+end

Reply via email to