diff lucene/src/luan/modules/lucene/Lucene.luan @ 761:99356cfde2f0

remove horrible java zip
author Franklin Schmidt <fschmidt@gmail.com>
date Wed, 20 Jul 2016 01:52:20 -0600
parents e1dfeddfbc7b
children 50f279d3f889
line wrap: on
line diff
--- a/lucene/src/luan/modules/lucene/Lucene.luan	Tue Jul 19 19:15:02 2016 -0600
+++ b/lucene/src/luan/modules/lucene/Lucene.luan	Wed Jul 20 01:52:20 2016 -0600
@@ -103,13 +103,16 @@
 	end
 
 	function index.zip(zip_file)
-		index.snapshot( function(dir,file_names)
-			local t = {}
+		index.snapshot( function(dir_path,file_names)
+			zip_file.delete()
+			local zip_path = zip_file.canonical().to_string()
+			local dir = uri("file:"..dir_path)
+			local dir_name = dir.name()
+			local options = {dir=dir.parent()}
 			for _, file_name in ipairs(file_names) do
-				t[#t+1] = dir.."/"..file_name
+				local cmd = "zip "..zip_path.." "..dir_name.."/"..file_name
+				Io.uri("os:"..cmd,options).read_text()
 			end
-			local base = uri("file:"..dir).parent().to_string()
-			zip_file.zip(base,t)
 		end )
 	end
 
@@ -120,7 +123,7 @@
 			index.zip(before_restore)
 			java_index.close()
 			lucene_dir.delete()
-			zip_file.unzip(lucene_dir.parent().to_string())
+			Io.uri("os:unzip "..zip_file.canonical().to_string(),{dir=lucene_dir.parent()}).read_text()
 			java_index.reopen()
 		end )
 	end
@@ -140,7 +143,9 @@
 
 		function Rpc.functions.lucene_restore(password,zip_file)
 			Io.password == password or error "wrong password"
-			index.restore(zip_file)
+			local backup_zip = uri("file:"..index.dir).parent().child("backup.zip")
+			backup_zip.write(zip_file)
+			index.restore(backup_zip)
 		end
 
 	else