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 | |
| 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
| -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) |
