helpers.lua 1006 B

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