diff options
Diffstat (limited to 'src/luarocks/install.lua')
-rw-r--r-- | src/luarocks/install.lua | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/luarocks/install.lua b/src/luarocks/install.lua index 3ef32c99..15e905e1 100644 --- a/src/luarocks/install.lua +++ b/src/luarocks/install.lua | |||
@@ -38,38 +38,35 @@ function install_binary_rock(rock_file) | |||
38 | if rep.is_installed(name, version) then | 38 | if rep.is_installed(name, version) then |
39 | rep.delete_version(name, version) | 39 | rep.delete_version(name, version) |
40 | end | 40 | end |
41 | |||
41 | local rollback = util.schedule_function(function() | 42 | local rollback = util.schedule_function(function() |
42 | fs.delete(path.install_dir(name, version)) | 43 | fs.delete(path.install_dir(name, version)) |
43 | fs.remove_dir_if_empty(path.versions_dir(name)) | 44 | fs.remove_dir_if_empty(path.versions_dir(name)) |
44 | end) | 45 | end) |
46 | |||
45 | local ok, err, errcode = fetch.fetch_and_unpack_rock(rock_file, path.install_dir(name, version)) | 47 | local ok, err, errcode = fetch.fetch_and_unpack_rock(rock_file, path.install_dir(name, version)) |
46 | if not ok then return nil, err, errcode end | 48 | if not ok then return nil, err, errcode end |
47 | ok, err = rep.install_bins(name, version) | 49 | |
48 | |||
49 | local rockspec, err, errcode = fetch.load_rockspec(path.rockspec_file(name, version)) | 50 | local rockspec, err, errcode = fetch.load_rockspec(path.rockspec_file(name, version)) |
50 | if err then | 51 | if err then |
51 | return nil, "Failed loading rockspec for installed package: "..err, errcode | 52 | return nil, "Failed loading rockspec for installed package: "..err, errcode |
52 | end | 53 | end |
53 | 54 | ||
54 | ok, err, errcode = deps.check_external_deps(rockspec, "install") | 55 | ok, err, errcode = deps.check_external_deps(rockspec, "install") |
55 | if err then | 56 | if err then return nil, err, errcode end |
56 | return nil, err, errcode | ||
57 | end | ||
58 | 57 | ||
59 | ok, err, errcode = deps.fulfill_dependencies(rockspec) | 58 | ok, err, errcode = deps.fulfill_dependencies(rockspec) |
60 | if err then | 59 | if err then return nil, err, errcode end |
61 | return nil, err, errcode | ||
62 | end | ||
63 | 60 | ||
64 | ok, err = rep.run_hook(rockspec, "post_install") | 61 | ok, err = rep.run_hook(rockspec, "post_install") |
65 | if err then | 62 | if err then return nil, err end |
66 | return nil, err | 63 | |
67 | end | 64 | ok, err = rep.deploy_files(name, version) |
65 | if err then return nil, err end | ||
68 | 66 | ||
69 | ok, err = manif.update_manifest(name, version) | 67 | ok, err = manif.update_manifest(name, version) |
70 | if err then | 68 | if err then return nil, err end |
71 | return nil, err | 69 | |
72 | end | ||
73 | util.remove_scheduled_function(rollback) | 70 | util.remove_scheduled_function(rollback) |
74 | return true | 71 | return true |
75 | end | 72 | end |