31 lines
		
	
	
	
		
			636 B
		
	
	
	
		
			Text
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
	
		
			636 B
		
	
	
	
		
			Text
		
	
	
	
	
	
| 
								 | 
							
								#!/usr/bin/env elixir
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Mix.install([
							 | 
						||
| 
								 | 
							
								  {:jason, "~> 1.0"}
							 | 
						||
| 
								 | 
							
								])
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								%{"source_files" => data} =
							 | 
						||
| 
								 | 
							
								  "cover/excoveralls.json"
							 | 
						||
| 
								 | 
							
								  |> File.read!()
							 | 
						||
| 
								 | 
							
								  |> Jason.decode!()
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								{total_covered, total_total} =
							 | 
						||
| 
								 | 
							
								  data
							 | 
						||
| 
								 | 
							
								  |> Enum.reduce({0,0}, fn %{"coverage" => cover}, {covered, total} ->
							 | 
						||
| 
								 | 
							
								    file_covered =
							 | 
						||
| 
								 | 
							
								      cover
							 | 
						||
| 
								 | 
							
								      |> Enum.reduce(0, &(if is_integer(&1) && &1 > 0, do: &2 + 1, else: &2))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    file_total =
							 | 
						||
| 
								 | 
							
								      cover
							 | 
						||
| 
								 | 
							
								      |> Enum.reduce(0, &(if is_nil(&1), do: &2, else: &2 + 1))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    {covered + file_covered, total + file_total}
							 | 
						||
| 
								 | 
							
								  end)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								ratio =
							 | 
						||
| 
								 | 
							
								  (total_covered / total_total)
							 | 
						||
| 
								 | 
							
								  |> Float.round(3)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								File.write!("metrics.txt", "coverage #{ratio}")
							 |