- whence = `whence #{params[:uuid]}`
- colorindex = -1
- whence.split("\n").each do |line|
- if line.match /^(\#\d+@\S+)$/
- job = Job.where(submit_id: line).first
- @provenance << {job: job, target: line}
- elsif (re = line.match /^ +output *= *(\S+)/)
- if !@provenance.empty?
- @provenance[-1][:output] = re[1]
- @output2job[re[1]] = @provenance[-1][:job]
- if !@output2colorindex[re[1]]
- @output2colorindex[re[1]] = (colorindex += 1) % 10
- end
- @sourcedata.delete re[1]
- end
- elsif (re = line.match /^([0-9a-f]{32}\b)/)
- @sourcedata[re[1]] ||= {uuid: re[1]}
- end
- end