helpers.lua 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. local M = {}
  2. function M.search_file(file, args)
  3. local Job = require "plenary.job"
  4. local stderr = {}
  5. local stdout, ret = Job
  6. :new({
  7. command = "grep",
  8. args = { args, file },
  9. cwd = get_cache_dir(),
  10. on_stderr = function(_, data)
  11. table.insert(stderr, data)
  12. end,
  13. })
  14. :sync()
  15. return stdout, ret, stderr
  16. end
  17. function M.file_contains(file, query)
  18. local stdout, ret, stderr = M.search_file(file, query)
  19. if ret == 0 then
  20. return true
  21. end
  22. if not vim.tbl_isempty(stderr) then
  23. error(vim.inspect(stderr))
  24. end
  25. if not vim.tbl_isempty(stdout) then
  26. error(vim.inspect(stdout))
  27. end
  28. return false
  29. end
  30. function M.log_contains(query)
  31. local logfile = require("lvim.core.log"):get_path()
  32. local stdout, ret, stderr = M.search_file(logfile, query)
  33. if ret == 0 then
  34. return true
  35. end
  36. if not vim.tbl_isempty(stderr) then
  37. error(vim.inspect(stderr))
  38. end
  39. if not vim.tbl_isempty(stdout) then
  40. error(vim.inspect(stdout))
  41. end
  42. if not vim.tbl_isempty(stderr) then
  43. error(vim.inspect(stderr))
  44. end
  45. return false
  46. end
  47. return M