package helper

import (
	"os"
	"strings"
)

// CreateDirectory creates direcory with all missing parents and panic if error
func CreateDirectory(dir string) {
	Log.Debugf("trying to create output directory: %s", dir)

	if dirH, err := os.Stat(dir); os.IsNotExist(err) {
		err := os.MkdirAll(dir, 0755)
		if err != nil {
			Log.Panicf("could not create output directory '%s': %s", dir, err)
		}
		Log.Noticef("created output directory: %s", dir)
	} else if dirH != nil {
		if dirH.IsDir() {
			Log.Noticef("output directory '%s' already exists", dir)
		} else {
			Log.Panicf("output directory '%s' is no directory", dir)
		}
	} else {
		Log.Panicf("unknown error for output directory '%s': %s", dir, err)
	}
}

// BackToRoot builds ../../ string
func BackToRoot(curNavPath string) string {
	tmpPath := ""
	if curNavPath != "" {
		for i := strings.Count(curNavPath, "/") + 1; i > 0; i-- {
			tmpPath += "../"
		}
	}
	return tmpPath
}
