diff options
author | hisham <hisham@9ca3f7c1-7366-0410-b1a3-b5c78f85698c> | 2009-10-11 08:37:52 +0000 |
---|---|---|
committer | hisham <hisham@9ca3f7c1-7366-0410-b1a3-b5c78f85698c> | 2009-10-11 08:37:52 +0000 |
commit | 673fe23f430398f0485c793626ab86f830238f7d (patch) | |
tree | 943682cd5c014ef7045e3f2201b1d9ce366008b8 /src | |
parent | 2605a681a0e4f668ee360ba83f08e0b02e96f054 (diff) | |
download | luarocks-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.lua | 5 | ||||
-rw-r--r-- | src/luarocks/fs/lua.lua | 1 | ||||
-rw-r--r-- | 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) | |||
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 | |||
201 | function remove_dir_tree_if_empty(d) | 201 | function 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) |