From 9ef07e6052e7577510ac9d252c47e0bbc98d5e51 Mon Sep 17 00:00:00 2001
From: Paulo Truta <pinheirotruta5@gmail.com>
Date: Thu, 10 Jun 2021 11:45:02 +0000
Subject: [PATCH] Added ExecAndGetLines util func

---
 internal/storage/storage.go |  6 +-----
 internal/utils/utils.go     | 11 +++++++++++
 2 files changed, 12 insertions(+), 5 deletions(-)

diff --git a/internal/storage/storage.go b/internal/storage/storage.go
index 3f3b116..e46389b 100644
--- a/internal/storage/storage.go
+++ b/internal/storage/storage.go
@@ -1,7 +1,6 @@
 package storage
 
 import (
-	"bufio"
 	"fmt"
 	"os"
 	"path/filepath"
@@ -75,10 +74,7 @@ func GetDevices() []Device {
 	var devices []Device
 
 	cmdArgs := []string{"--raw", "--bytes", "--noheadings"}
-	cmdOutput := utils.Exec("lsblk", cmdArgs)
-	cmdOutputReader := strings.NewReader(cmdOutput)
-	scanner := bufio.NewScanner(cmdOutputReader)
-	scanner.Split(bufio.ScanLines)
+	scanner := utils.ExecAndGetLines("lsblk", cmdArgs)
 
 	var currentDevice Device
 	var currentPartitions []Partition
diff --git a/internal/utils/utils.go b/internal/utils/utils.go
index ce9d032..12b9e07 100644
--- a/internal/utils/utils.go
+++ b/internal/utils/utils.go
@@ -1,12 +1,14 @@
 package utils
 
 import (
+	"bufio"
 	"bytes"
 	"fmt"
 	"io"
 	"log"
 	"os"
 	"os/exec"
+	"strings"
 	"time"
 
 	"github.com/joho/godotenv"
@@ -53,6 +55,15 @@ func Exec(command string, args []string) string {
 
 }
 
+func ExecAndGetLines(command string, args []string) *bufio.Scanner {
+	cmdOutput := Exec(command, args)
+	cmdOutputReader := strings.NewReader(cmdOutput)
+	scanner := bufio.NewScanner(cmdOutputReader)
+	scanner.Split(bufio.ScanLines)
+
+	return scanner
+}
+
 // DeleteEmptySlices : Given a string array, delete empty entries.
 func DeleteEmptySlices(s []string) []string {
 	var r []string