- initial import of revision 374 from cnc
[apt.git] / contrib / apt-files / apt-files.lua
1 -- This script must be plugged into the APT script slot
2 -- Scripts::AptGet::Install::TranslateArg
3 --
4 -- Author: Gustavo Niemeyer <niemeyer@conectiva.com>
5 --
6 -- Data sample:
7 --   argument = "/usr/bin/python"
8 --   contents = "/var/state/apt/Contents.gz"
9 --   translated = {}
10
11 if string.sub(argument, 1, 1) == "/" then
12     contents = confget("Dir::State::contents/f")
13     if string.sub(contents, -3) == ".gz" then
14         file = io.popen("zcat "..contents)
15     elseif string.sub(contents, -4) == ".bz2" then
16         file = io.popen("bzcat "..contents)
17     else
18         file = io.open(contents)
19     end
20     len = string.len(argument)
21     for line in file:lines() do
22         if string.sub(line, 1, len) == argument then
23             _, _, path, name = string.find(line, '(%S+)%s+(%S+)')
24             if path == argument then
25                 translated = name
26                 break
27             end
28         end
29     end
30     for line in file:lines() do
31         -- nothing, just don't break the pipe
32     end
33     file:close()
34 end
35
36 -- vim:st=4:sw=4:et