diff options
author | Joe <rbo@gmx.us> | 2023-12-14 20:20:20 +0100 |
---|---|---|
committer | Joe <rbo@gmx.us> | 2023-12-14 20:20:20 +0100 |
commit | 55fd04eba95d2861ef51385e40b4e76ef6424499 (patch) | |
tree | 028c20b3cd1d116f6c03928c573ec0df3c90b98a /c_init.go | |
parent | up (diff) | |
download | hardflip-55fd04eba95d2861ef51385e40b4e76ef6424499.tar.gz hardflip-55fd04eba95d2861ef51385e40b4e76ef6424499.tar.bz2 hardflip-55fd04eba95d2861ef51385e40b4e76ef6424499.tar.xz hardflip-55fd04eba95d2861ef51385e40b4e76ef6424499.tar.zst hardflip-55fd04eba95d2861ef51385e40b4e76ef6424499.zip |
up
Diffstat (limited to '')
-rw-r--r-- | c_init.go | 29 |
1 files changed, 29 insertions, 0 deletions
@@ -52,4 +52,33 @@ import ( "os" ) +// 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 + } +} |