From 673fe23f430398f0485c793626ab86f830238f7d Mon Sep 17 00:00:00 2001 From: hisham Date: Sun, 11 Oct 2009 08:37:52 +0000 Subject: improved rollback function git-svn-id: http://luarocks.org/svn/luarocks/trunk@93 9ca3f7c1-7366-0410-b1a3-b5c78f85698c --- src/luarocks/build.lua | 5 +++++ src/luarocks/fs/lua.lua | 1 - src/luarocks/install.lua | 9 +++++++-- 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) ok, err = rep.deploy_files(name, version) if err then return nil, err end + + util.remove_scheduled_function(rollback) + rollback = util.schedule_function(function() + rep.delete_version(name, version) + end) ok, err = rep.run_hook(rockspec, "post_install") 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 function remove_dir_tree_if_empty(d) assert(d) for i=1,10 do - print(d) lfs.rmdir(d) d = dir.dir_name(d) 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) if err then return nil, err end end - ok, err = rep.run_hook(rockspec, "post_install") + ok, err = rep.deploy_files(name, version) if err then return nil, err end - ok, err = rep.deploy_files(name, version) + util.remove_scheduled_function(rollback) + rollback = util.schedule_function(function() + rep.delete_version(name, version) + end) + + ok, err = rep.run_hook(rockspec, "post_install") if err then return nil, err end ok, err = manif.update_manifest(name, version) -- cgit v1.2.3-55-g6feb