aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhisham <hisham@9ca3f7c1-7366-0410-b1a3-b5c78f85698c>2009-10-11 08:37:52 +0000
committerhisham <hisham@9ca3f7c1-7366-0410-b1a3-b5c78f85698c>2009-10-11 08:37:52 +0000
commit673fe23f430398f0485c793626ab86f830238f7d (patch)
tree943682cd5c014ef7045e3f2201b1d9ce366008b8 /src
parent2605a681a0e4f668ee360ba83f08e0b02e96f054 (diff)
downloadluarocks-673fe23f430398f0485c793626ab86f830238f7d.tar.gz
luarocks-673fe23f430398f0485c793626ab86f830238f7d.tar.bz2
luarocks-673fe23f430398f0485c793626ab86f830238f7d.zip
improved rollback function
git-svn-id: http://luarocks.org/svn/luarocks/trunk@93 9ca3f7c1-7366-0410-b1a3-b5c78f85698c
Diffstat (limited to 'src')
-rw-r--r--src/luarocks/build.lua5
-rw-r--r--src/luarocks/fs/lua.lua1
-rw-r--r--src/luarocks/install.lua9
3 files changed, 12 insertions, 3 deletions
diff --git a/src/luarocks/build.lua b/src/luarocks/build.lua
index 98d5dd61..085c7b40 100644
--- a/src/luarocks/build.lua
+++ b/src/luarocks/build.lua
@@ -217,6 +217,11 @@ function build_rockspec(rockspec_file, need_to_fetch, minimal_mode)
217 217
218 ok, err = rep.deploy_files(name, version) 218 ok, err = rep.deploy_files(name, version)
219 if err then return nil, err end 219 if err then return nil, err end
220
221 util.remove_scheduled_function(rollback)
222 rollback = util.schedule_function(function()
223 rep.delete_version(name, version)
224 end)
220 225
221 ok, err = rep.run_hook(rockspec, "post_install") 226 ok, err = rep.run_hook(rockspec, "post_install")
222 if err then return nil, err end 227 if err then return nil, err end
diff --git a/src/luarocks/fs/lua.lua b/src/luarocks/fs/lua.lua
index c7d7fb2a..af75f912 100644
--- a/src/luarocks/fs/lua.lua
+++ b/src/luarocks/fs/lua.lua
@@ -201,7 +201,6 @@ end
201function remove_dir_tree_if_empty(d) 201function remove_dir_tree_if_empty(d)
202 assert(d) 202 assert(d)
203 for i=1,10 do 203 for i=1,10 do
204 print(d)
205 lfs.rmdir(d) 204 lfs.rmdir(d)
206 d = dir.dir_name(d) 205 d = dir.dir_name(d)
207 end 206 end
diff --git a/src/luarocks/install.lua b/src/luarocks/install.lua
index 3b399ebc..8e8b5f6b 100644
--- a/src/luarocks/install.lua
+++ b/src/luarocks/install.lua
@@ -64,10 +64,15 @@ function install_binary_rock(rock_file)
64 if err then return nil, err end 64 if err then return nil, err end
65 end 65 end
66 66
67 ok, err = rep.run_hook(rockspec, "post_install") 67 ok, err = rep.deploy_files(name, version)
68 if err then return nil, err end 68 if err then return nil, err end
69 69
70 ok, err = rep.deploy_files(name, version) 70 util.remove_scheduled_function(rollback)
71 rollback = util.schedule_function(function()
72 rep.delete_version(name, version)
73 end)
74
75 ok, err = rep.run_hook(rockspec, "post_install")
71 if err then return nil, err end 76 if err then return nil, err end
72 77
73 ok, err = manif.update_manifest(name, version) 78 ok, err = manif.update_manifest(name, version)