package main

import (
	"fmt"
	"os/exec"
	"strconv"
	"strings"
)

func GetDirectoryDiskUsed(directories []string) (uint64, error) {
	cmd := exec.Command("du", "-s")
	cmd.Args = append(cmd.Args, directories...)
	output, err := cmd.CombinedOutput()
	if err != nil {
		fmt.Println(err)
		return 0, err
	}
	lines := strings.Split(string(output), "\n")
	sum := uint64(0)
	for _, line := range lines {
		if len(line) > 0 {
			fmt.Println(line)
			fields := strings.Fields(line)
			parseUint, err := strconv.ParseUint(fields[0], 10, 64)
			fmt.Println("parseUint", parseUint)
			if err != nil {
				fmt.Println(err)
				return 0, err
			}
			sum += parseUint
		}
	}
	return sum, nil
}

func main() {
	diskUsed, err := GetDirectoryDiskUsed([]string{"/root/cicv-data-closedloop", "/root/pjirobot/data/cicv-data-closedloop"})
	if err != nil {
		return
	}
	fmt.Println("diskUsed", diskUsed)
}