info.lua 983 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. string.split=util.string.split
  2. local function get_info(disk)
  3. local infos={}
  4. local info={}
  5. local k,v=""
  6. local komut="lsblk -P -no TYPE,NAME,LABEL,PATH,MOUNTPOINT,FSSIZE,FSTYPE,FSUSED,FSUSE%,SIZE,UUID"
  7. for line in util.shell(komut):gmatch("[^\r\n]+") do
  8. for val in line:gmatch("%S+") do
  9. k=val:split("=")[1]
  10. v=val:split("=")[2]
  11. info[k:lower()]=v:gsub('"',"")
  12. end
  13. infos[info.name]=info
  14. --table.insert(infos,info)
  15. info={}
  16. end
  17. if disk then
  18. return infos[disk]
  19. else
  20. return infos
  21. end
  22. end
  23. function run()
  24. ret.data={}
  25. if request and request.data then
  26. req=json.decode(request.data)
  27. if req.method == "get" then
  28. if req.disk == nil then
  29. ret.data=get_info()
  30. else
  31. ret.data=get_info(req.disk)
  32. end
  33. if next(ret.data) == nil then ret={error="undefined get query"} end
  34. end
  35. else
  36. ret.api={
  37. title="Disk Bilgisi",
  38. auth=false,
  39. method={
  40. get={
  41. disk="bilgi alınacak disk",
  42. },
  43. },
  44. }
  45. end
  46. response=json.encode(ret)
  47. end