From 6b75a60fa10d0f3e7e2938f2b0c37a2fc4d0bb27 Mon Sep 17 00:00:00 2001 From: Joe Date: Thu, 14 Dec 2023 20:20:20 +0100 Subject: up --- c_josh.go | 36 +++++++++++++++++++++++++++++++++--- 1 file changed, 33 insertions(+), 3 deletions(-) (limited to 'c_josh.go') diff --git a/c_josh.go b/c_josh.go index 4bde78e..79ddf9d 100644 --- a/c_josh.go +++ b/c_josh.go @@ -42,16 +42,16 @@ * Thu, 14 Dec 2023 12:59:13 +0100 * Joe * - * The main. + * the main */ -package josh +package main import ( "fmt" ) -func josh() { +func main() { var data_dir string if data_dir = c_get_data_dir() + "/josh"; len(data_dir) == 0 { @@ -59,3 +59,33 @@ func josh() { } fmt.Println("data dir: ", data_dir) } + +// This function will go get the data folder and try to create it if it does +// not exist. The first path being checked is $XDG_DATA_HOME then +// $HOME/.local/share. It returns the full data directory path. +func c_get_data_dir() string { + home := os.Getenv("HOME") + xdg_home := os.Getenv("XDG_DATA_HOME") + + if len(home) == 0 { + c_die("env variable HOME not defined", nil) + } + if len(xdg_home) > 0 { + if _, err := os.Stat(xdg_home); os.IsNotExist(err) { + if err := os.MkdirAll(xdg_home, os.ModePerm); err != nil { + c_die("could not create path " + xdg_home, err) + } + fmt.Println("created folder path " + xdg_home) + } + return xdg_home + } else { + home := home + ".local/share" + if _, err := os.Stat(home); os.IsNotExist(err) { + if err := os.MkdirAll(home, os.ModePerm); err != nil { + c_die("could not create path " + home, err) + } + fmt.Println("created folder path " + home) + } + return home + } +} -- cgit v1.2.3