1- // Package utils, anitr-cli uygulamasında genel amaçlı yardımcı fonksiyonları ve yapıları içerir.
21package utils
32
43import (
98 "net/http"
109 "os"
1110 "path/filepath"
11+ "runtime"
1212 "strings"
1313)
1414
@@ -21,9 +21,27 @@ type Logger struct {
2121 Log * log.Logger // Log işlemini gerçekleştiren nesne
2222}
2323
24+ // getTempDir işletim sistemine göre geçici dizin döner.
25+ func getTempDir () string {
26+ if runtime .GOOS == "windows" {
27+ // Windows ortam değişkeni TEMP veya TMP
28+ if temp := os .Getenv ("TEMP" ); temp != "" {
29+ return temp
30+ }
31+ if tmp := os .Getenv ("TMP" ); tmp != "" {
32+ return tmp
33+ }
34+ // Fallback
35+ return `C:\Temp`
36+ }
37+ // Unix benzeri sistemler için /tmp
38+ return "/tmp"
39+ }
40+
2441// GetImage, verilen URL'den bir görsel indirir ve geçici bir dosyaya kaydeder.
2542func GetImage (url string ) (string , error ) {
26- tempPath := filepath .Join ("/tmp" , "poster.png" )
43+ tempDir := getTempDir ()
44+ tempPath := filepath .Join (tempDir , "poster.png" )
2745
2846 resp , err := http .Get (url )
2947 if err != nil {
@@ -49,9 +67,11 @@ func GetImage(url string) (string, error) {
4967 return tempPath , nil
5068}
5169
52- // NewLogger, /tmp dizininde bir log dosyası oluşturur ve Logger döner.
70+ // NewLogger, işletim sistemine göre uygun dizinde bir log dosyası oluşturur ve Logger döner.
5371func NewLogger () (* Logger , error ) {
54- logPath := filepath .Join ("/tmp" , "anitr-cli.log" )
72+ tempDir := getTempDir ()
73+ logPath := filepath .Join (tempDir , "anitr-cli.log" )
74+
5575 file , err := os .OpenFile (logPath , os .O_CREATE | os .O_WRONLY | os .O_APPEND , 0644 )
5676 if err != nil {
5777 return nil , fmt .Errorf ("log dosyası açılamadı: %w" , err )
@@ -65,6 +85,8 @@ func NewLogger() (*Logger, error) {
6585 }, nil
6686}
6787
88+ // ... diğer fonksiyonlar değişmeden kalabilir ...
89+
6890// LogError, hata objesini loglar (nil ise işlem yapılmaz).
6991func (l * Logger ) LogError (err error ) {
7092 if err == nil {
0 commit comments