From 0e499ebb26da6eb61f6997155329b818c76326fa Mon Sep 17 00:00:00 2001 From: Liane Hampe Date: Sun, 31 Mar 2024 09:29:02 +0200 Subject: [PATCH 1/2] Support option -d to set xapian index database via CLI For running xapian indexer it is necessary to configure it to use the same database for indexing as defined in the user interface on plugin settings. In order to make the configuration of xapian indexer some kind of persistence the command line options in `redmine_dmsf/extra/xapian_indexer.rb` could be extended by providing a further option for the index database path: ```shell ruby redmine_dmsf/extra/xapian_indexer.rb -d ``` With this additional option it is possible to move the index database outside of redmine root to keep it even after running updates. Furthermore, custom configuration in `redmine_dmsf/extra/xapian_indexer.rb` won't be overridden when updating this plugin. --- extra/xapian_indexer.rb | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/extra/xapian_indexer.rb b/extra/xapian_indexer.rb index 542a8f03..fd4b2316 100644 --- a/extra/xapian_indexer.rb +++ b/extra/xapian_indexer.rb @@ -41,7 +41,7 @@ # OMINDEX += " --filter=image/jpeg:'tesseract -l chi_sim+chi_tra %f -'" # Directory containing Xapian databases for omindex (Attachments indexing) -DBROOTPATH = File.expand_path('dmsf_index', REDMINE_ROOT) +db_root_path = File.expand_path('dmsf_index', REDMINE_ROOT) # Verbose output, false/true verbose = false @@ -72,6 +72,9 @@ opts.separator('') opts.separator('') opts.separator('Options:') + opts.on('-d', '--index_db DB_PATH', 'Absolute path to index database according plugin settings in User Interface') do |db| + db_root_path = db + end opts.on('-s', '--stemming_lang a,b,c', Array, 'Comma separated list of stemming languages for indexing') do |s| stem_langs = s end @@ -104,6 +107,7 @@ opts.separator('') opts.separator('Examples:') opts.separator(' xapian_indexer.rb -s english,italian -v') + opts.separator(' xapian_indexer.rb -d $HOME/index_db -s english,italian -v') opts.separator('') opts.summary_width = 25 end @@ -142,7 +146,7 @@ def system_or_raise(command, verbose) warn "'#{filespath}' doesn't exist." exit 1 end - databasepath = File.join(DBROOTPATH, lang) + databasepath = File.join(db_root_path, lang) unless File.directory?(databasepath) log "#{databasepath} does not exist, creating ...", verbose FileUtils.mkdir_p databasepath From d59fe0d0ce51eb5cceda9f1d4fa235a8f04ff6e1 Mon Sep 17 00:00:00 2001 From: Liane Hampe Date: Tue, 2 Apr 2024 15:58:43 +0200 Subject: [PATCH 2/2] Fixes rubocop complaint about too long line --- extra/xapian_indexer.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extra/xapian_indexer.rb b/extra/xapian_indexer.rb index fd4b2316..7e632a07 100644 --- a/extra/xapian_indexer.rb +++ b/extra/xapian_indexer.rb @@ -72,7 +72,7 @@ opts.separator('') opts.separator('') opts.separator('Options:') - opts.on('-d', '--index_db DB_PATH', 'Absolute path to index database according plugin settings in User Interface') do |db| + opts.on('-d', '--index_db DB_PATH', 'Absolute path to index database according plugin settings in UI') do |db| db_root_path = db end opts.on('-s', '--stemming_lang a,b,c', Array, 'Comma separated list of stemming languages for indexing') do |s|