local ldd_file="/wyf/test/tmp_lib/ldd_tmp"
local count=0
local lib_num=0
local read_lib_txt_size=0
function create_lib_file()
local file=io.open("/wyf/test/tmp_lib/output_lib.txt","r")
if file == nil then
print("open file fail")
return
end
file:seek("set",read_lib_txt_size)
while true do
local line=file:read()
if line == nil then
print("read all line in lib.txt")
break
end
local file_lib=string.format("%s%d",ldd_file,count)
local cmd = "ldd "..line.." > "..file_lib
print("cmd is [["..cmd.."]]")
os.execute(cmd)
count = count+1
print("count = "..count)
sort_lib(file_lib)
end
file:close()
end
function sort_lib(ldd_file)
print("sort lib file begin: "..ldd_file)
local file=io.open(ldd_file,"r")
if file== nil then
print("open "..ldd_file.."fail")
return
end
local file2=io.open("/wyf/test/tmp_lib/output_lib.txt","a+")
if file2 == nil then
print("open ".."/wyf/test/tmp_lib/lib.txt".."fail")
return
end
read_lib_txt_size= file2:seek("end")
file2:seek("set")
local line = file:read()
local pos =1
while line do
size=file2:seek("end")
--print("size = ",size)
file2:seek("set")
lib_all = file2:read(size)
local d2 = string.match(line,"/%w+/.+")
--print("d2 = :[["..d2.."]]")
if d2 then
--print(lib_all)
a,b=string.find(lib_all, string.sub(d2, 1, -14), 1, true)
--print("[["..string.sub(d2,1,-14).."]]")
--print("a, b = ",a,b)
if a == nil then
--print("[["..string.sub(d2,1,-14).."]]")
lib_num = lib_num + 1
print("Add lib:"..string.sub(d2,1, -14))
print("lib_num="..lib_num)
file2:write(string.sub(d2,1,-14))
file2:write('\n')
file2:flush()
end
end
line=file:read()
--print(line)
end
file:close()
file2:close()
print("sort lib file over")
create_lib_file()
return nil
end
local input_file=arg[1]
input_file=string.format("ldd %s > /wyf/test/tmp_lib/ldd.txt",input_file)
print("input_file:"..input_file)
os.execute(input_file)
local output_lib_txt= "/wyf/test/tmp_lib/output_lib.txt"
print("lib_txt name is:"..output_lib_txt)
local lib_txt=string.format("echo 0 > %s",output_lib_txt)
os.execute(lib_txt)
sort_lib("/wyf/test/tmp_lib/ldd.txt")
--sort_lib("/wyf/test/tmp_lib/ldd_tmp4")
local rm_ldd_tmp="rm /wyf/test/tmp_lib/ldd*"
os.execute(rm_ldd_tmp)
local count=0
local lib_num=0
local read_lib_txt_size=0
function create_lib_file()
local file=io.open("/wyf/test/tmp_lib/output_lib.txt","r")
if file == nil then
print("open file fail")
return
end
file:seek("set",read_lib_txt_size)
while true do
local line=file:read()
if line == nil then
print("read all line in lib.txt")
break
end
local file_lib=string.format("%s%d",ldd_file,count)
local cmd = "ldd "..line.." > "..file_lib
print("cmd is [["..cmd.."]]")
os.execute(cmd)
count = count+1
print("count = "..count)
sort_lib(file_lib)
end
file:close()
end
function sort_lib(ldd_file)
print("sort lib file begin: "..ldd_file)
local file=io.open(ldd_file,"r")
if file== nil then
print("open "..ldd_file.."fail")
return
end
local file2=io.open("/wyf/test/tmp_lib/output_lib.txt","a+")
if file2 == nil then
print("open ".."/wyf/test/tmp_lib/lib.txt".."fail")
return
end
read_lib_txt_size= file2:seek("end")
file2:seek("set")
local line = file:read()
local pos =1
while line do
size=file2:seek("end")
--print("size = ",size)
file2:seek("set")
lib_all = file2:read(size)
local d2 = string.match(line,"/%w+/.+")
--print("d2 = :[["..d2.."]]")
if d2 then
--print(lib_all)
a,b=string.find(lib_all, string.sub(d2, 1, -14), 1, true)
--print("[["..string.sub(d2,1,-14).."]]")
--print("a, b = ",a,b)
if a == nil then
--print("[["..string.sub(d2,1,-14).."]]")
lib_num = lib_num + 1
print("Add lib:"..string.sub(d2,1, -14))
print("lib_num="..lib_num)
file2:write(string.sub(d2,1,-14))
file2:write('\n')
file2:flush()
end
end
line=file:read()
--print(line)
end
file:close()
file2:close()
print("sort lib file over")
create_lib_file()
return nil
end
local input_file=arg[1]
input_file=string.format("ldd %s > /wyf/test/tmp_lib/ldd.txt",input_file)
print("input_file:"..input_file)
os.execute(input_file)
local output_lib_txt= "/wyf/test/tmp_lib/output_lib.txt"
print("lib_txt name is:"..output_lib_txt)
local lib_txt=string.format("echo 0 > %s",output_lib_txt)
os.execute(lib_txt)
sort_lib("/wyf/test/tmp_lib/ldd.txt")
--sort_lib("/wyf/test/tmp_lib/ldd_tmp4")
local rm_ldd_tmp="rm /wyf/test/tmp_lib/ldd*"
os.execute(rm_ldd_tmp)