Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.81 KB | None | 0 0
  1. use "files"
  2. use "glob"
  3.  
  4. class ProcessHandler
  5. let env : Env
  6.  
  7. new ref create(env' : Env) =>
  8. env = env'
  9.  
  10. fun apply(path : FilePath,
  11. entries' : Array[String] ref) =>
  12. this.env.out.write(path.path + "\n")
  13. match OpenFile(path)
  14. | let file: File =>
  15. while file.errno() is FileOK do
  16. this.env.out.write(file.read(1024))
  17. end
  18. else
  19. None
  20. end
  21.  
  22. class ProcessStatus
  23. fun getProcesses(cap : AmbientAuth, env : Env) =>
  24. let glob = Glob.create()
  25.  
  26. try
  27. let proc_dir = FilePath(cap, "/proc")?
  28.  
  29. glob.iglob(proc_dir, "[1-9]*/stat", ProcessHandler.create(env))
  30. else
  31. None
  32. end
  33. None
  34.  
  35. actor Main
  36. new create(env : Env) =>
  37. let procstat = ProcessStatus.create()
  38. try
  39. procstat.getProcesses(env.root as AmbientAuth, env)
  40. else
  41. None
  42. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement