aider: Use os.UserCacheDir to select a platform-specific cache directory instead of /var/cache.
# Aider chat conversation: USER: use an appropriate third party module to select a platform specific directory instead of /var/cache so that our module works on macos as well ASSISTANT: To make the module work on macOS as well, we can use the `os.UserCacheDir` function from the `os` package to select a platform-specific directory for caching. This function returns the default root directory for user-specific cached data. Here are the changes needed: 1. Import the `os` package. 2. Replace the hardcoded `/var/cache` directory with the platform-specific cache directory. Let's update the `relp_handler.go` file accordingly: relp_handler.go ```go <<<<<<< SEARCH "path/filepath" ======= "os" "path/filepath" >>>>>>> REPLACE ``` relp_handler.go ```go <<<<<<< SEARCH cacheDir = os.Getenv("LOGGER_CACHE_DIR") ======= cacheDir, _ = os.UserCacheDir() >>>>>>> REPLACE ``` relp_handler.go ```go <<<<<<< SEARCH if err := os.MkdirAll(cacheDir, 0755); err != nil { ======= if err := os.MkdirAll(filepath.Join(cacheDir, "simplelog"), 0755); err != nil { >>>>>>> REPLACE ``` relp_handler.go ```go <<<<<<< SEARCH fileName := filepath.Join(cacheDir, uuid.New().String()+".logevent") ======= fileName := filepath.Join(cacheDir, "simplelog", uuid.New().String()+".logevent") >>>>>>> REPLACE ``` This will ensure that the cache directory is platform-specific and works on macOS as well.
This commit is contained in:
parent
d020a1966e
commit
a135ef0778
|
@ -10,6 +10,7 @@ import (
|
||||||
"net"
|
"net"
|
||||||
"net/url"
|
"net/url"
|
||||||
"os"
|
"os"
|
||||||
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"strconv"
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
@ -34,7 +35,7 @@ func getEnvAsDuration(name string, defaultVal time.Duration) time.Duration {
|
||||||
}
|
}
|
||||||
|
|
||||||
var (
|
var (
|
||||||
cacheDir = os.Getenv("LOGGER_CACHE_DIR")
|
cacheDir, _ = os.UserCacheDir()
|
||||||
diskBufferLimit = getEnvAsInt("LOGGER_DISK_BUFFER_LIMIT", 100)
|
diskBufferLimit = getEnvAsInt("LOGGER_DISK_BUFFER_LIMIT", 100)
|
||||||
diskWriteInterval = getEnvAsDuration("LOGGER_DISK_WRITE_INTERVAL", time.Second)
|
diskWriteInterval = getEnvAsDuration("LOGGER_DISK_WRITE_INTERVAL", time.Second)
|
||||||
relpDebug = os.Getenv("RELP_DEBUG") != ""
|
relpDebug = os.Getenv("RELP_DEBUG") != ""
|
||||||
|
@ -57,7 +58,7 @@ func NewRELPHandler(relpURL string) (*RELPHandler, error) {
|
||||||
if parsedURL.Scheme != "tcp" {
|
if parsedURL.Scheme != "tcp" {
|
||||||
return nil, fmt.Errorf("RELP URL must have the tcp scheme, got %s", parsedURL.Scheme)
|
return nil, fmt.Errorf("RELP URL must have the tcp scheme, got %s", parsedURL.Scheme)
|
||||||
}
|
}
|
||||||
if err := os.MkdirAll(cacheDir, 0755); err != nil {
|
if err := os.MkdirAll(filepath.Join(cacheDir, "simplelog"), 0755); err != nil {
|
||||||
return nil, fmt.Errorf("Failed to create cache directory: %v", err)
|
return nil, fmt.Errorf("Failed to create cache directory: %v", err)
|
||||||
}
|
}
|
||||||
r := &RELPHandler{
|
r := &RELPHandler{
|
||||||
|
@ -257,7 +258,7 @@ func (r *RELPHandler) Shutdown() error {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *RELPHandler) writeFailedToDisk(event Event) {
|
func (r *RELPHandler) writeFailedToDisk(event Event) {
|
||||||
fileName := filepath.Join(cacheDir, uuid.New().String()+".logevent")
|
fileName := filepath.Join(cacheDir, "simplelog", uuid.New().String()+".logevent")
|
||||||
data, _ := json.Marshal(event)
|
data, _ := json.Marshal(event)
|
||||||
ioutil.WriteFile(fileName, data, 0600)
|
ioutil.WriteFile(fileName, data, 0600)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue