diff options
| author | hisham <hisham@9ca3f7c1-7366-0410-b1a3-b5c78f85698c> | 2009-10-04 16:06:35 +0000 |
|---|---|---|
| committer | hisham <hisham@9ca3f7c1-7366-0410-b1a3-b5c78f85698c> | 2009-10-04 16:06:35 +0000 |
| commit | ca15323a477a81e5f20c4b3195e318b36cbc71b4 (patch) | |
| tree | 16fc2b052f68514bb5ecd1a94fa07b1e37a87ab5 | |
| parent | e1ac67028db826a17126df0d44c1060522a9ec9c (diff) | |
| download | luarocks-ca15323a477a81e5f20c4b3195e318b36cbc71b4.tar.gz luarocks-ca15323a477a81e5f20c4b3195e318b36cbc71b4.tar.bz2 luarocks-ca15323a477a81e5f20c4b3195e318b36cbc71b4.zip | |
delegate the hard work to luarocks.rep
git-svn-id: http://luarocks.org/svn/luarocks/trunk@57 9ca3f7c1-7366-0410-b1a3-b5c78f85698c
| -rw-r--r-- | src/luarocks/remove.lua | 48 |
1 files changed, 5 insertions, 43 deletions
diff --git a/src/luarocks/remove.lua b/src/luarocks/remove.lua index ba70f53e..acbe94a4 100644 --- a/src/luarocks/remove.lua +++ b/src/luarocks/remove.lua | |||
| @@ -59,40 +59,6 @@ end | |||
| 59 | -- @return boolean or (nil, string): true on success or nil and an error message. | 59 | -- @return boolean or (nil, string): true on success or nil and an error message. |
| 60 | local function delete_versions(name, versions) | 60 | local function delete_versions(name, versions) |
| 61 | 61 | ||
| 62 | local manifest, err = manif.load_manifest(cfg.rocks_dir) | ||
| 63 | if not manifest then | ||
| 64 | return nil, err | ||
| 65 | end | ||
| 66 | |||
| 67 | local commands = {} | ||
| 68 | for version, data in pairs(versions) do | ||
| 69 | for _, command in pairs(manifest.repository[name][version][1].commands) do | ||
| 70 | if not commands[command] then commands[command] = {} end | ||
| 71 | table.insert(commands[command], name.."/"..version) | ||
| 72 | end | ||
| 73 | end | ||
| 74 | |||
| 75 | if next(commands) then | ||
| 76 | for command, users in pairs(commands) do | ||
| 77 | local providers_of_command = manifest.commands[command] | ||
| 78 | for _, user in ipairs(users) do | ||
| 79 | for i, value in ipairs(providers_of_command) do | ||
| 80 | if providers_of_command[i] == user then | ||
| 81 | table.remove(providers_of_command, i) | ||
| 82 | break | ||
| 83 | end | ||
| 84 | end | ||
| 85 | end | ||
| 86 | local remaining = next(providers_of_command) | ||
| 87 | if remaining then | ||
| 88 | local name, version = remaining:match("^([^/]*)/(.*)$") | ||
| 89 | rep.install_bins(name, version, command) | ||
| 90 | else | ||
| 91 | rep.delete_bin(command) | ||
| 92 | end | ||
| 93 | end | ||
| 94 | end | ||
| 95 | |||
| 96 | for version, _ in pairs(versions) do | 62 | for version, _ in pairs(versions) do |
| 97 | print("Removing "..name.." "..version.."...") | 63 | print("Removing "..name.." "..version.."...") |
| 98 | rep.delete_version(name, version) | 64 | rep.delete_version(name, version) |
| @@ -116,9 +82,7 @@ function run(...) | |||
| 116 | end | 82 | end |
| 117 | local results = {} | 83 | local results = {} |
| 118 | search.manifest_search(results, cfg.rocks_dir, search.make_query(name, version)) | 84 | search.manifest_search(results, cfg.rocks_dir, search.make_query(name, version)) |
| 119 | 85 | ||
| 120 | print("remove functionality is currently broken") | ||
| 121 | --[[ | ||
| 122 | local versions = results[name] | 86 | local versions = results[name] |
| 123 | if not versions then | 87 | if not versions then |
| 124 | return nil, "Could not find rock '"..name..(version and " "..version or "").."' in local tree." | 88 | return nil, "Could not find rock '"..name..(version and " "..version or "").."' in local tree." |
| @@ -141,11 +105,10 @@ function run(...) | |||
| 141 | print() | 105 | print() |
| 142 | end | 106 | end |
| 143 | local ok, err1 = delete_versions(name, versions) | 107 | local ok, err1 = delete_versions(name, versions) |
| 144 | -- FIXME | 108 | local ok, err2 = manif.make_manifest(cfg.rocks_dir) |
| 145 | -- local ok, err2 = manif.make_manifest(cfg.rocks_dir) | 109 | if err1 or err2 then |
| 146 | -- if err1 or err2 then | 110 | return nil, err1 or err2 |
| 147 | -- return nil, err1 or err2 | 111 | end |
| 148 | -- end | ||
| 149 | else | 112 | else |
| 150 | if not second then | 113 | if not second then |
| 151 | print("Will not remove "..name.." "..version..".") | 114 | print("Will not remove "..name.." "..version..".") |
| @@ -162,6 +125,5 @@ function run(...) | |||
| 162 | return nil, "Failed removing." | 125 | return nil, "Failed removing." |
| 163 | end | 126 | end |
| 164 | end | 127 | end |
| 165 | ]] | ||
| 166 | return true | 128 | return true |
| 167 | end | 129 | end |
