UNPKG

project-nexus

Version:

A hub for all your programming projects

48 lines (43 loc) 1.54 kB
async = require "async" is_running = require "is-running" is_under_control = (pid)-> if window.background_processes? if pid in window.background_processes return yes if ProjectNexus.projects for project in ProjectNexus.projects for command, proc of project.processes if proc.pid is pid console.log "#{pid} is owned by #{project.name}:", proc return yes return no prevent_recursion = off Settings.watch "running_processes", (running_processes = [])-> console.log "watching running_processes", running_processes, "prevent recursion?", prevent_recursion return prevent_recursion = off if prevent_recursion running_processes_new = [] runaway_processes = [] async.each running_processes, (rproc, callback)-> if is_under_control rproc.pid running_processes_new.push rproc callback null else is_running rproc.pid, (err, rproc_is_running)-> return callback err if err if rproc_is_running console.log "this process is still running:", rproc running_processes_new.push rproc runaway_processes.push rproc else console.log "this process appears to have exited:", rproc callback null (err)-> return console.error err if err console.log "running:", running_processes_new console.log "runaway:", runaway_processes prevent_recursion = on Settings.set "running_processes", running_processes_new prevent_recursion = off ProjectNexus.runaway_processes = runaway_processes window.render()