codecrafters-http-server-go/app/file.go

45 lines
740 B
Go
Raw Permalink Normal View History

2024-05-25 12:11:36 +02:00
package main
import (
"log"
"os"
"path/filepath"
)
2024-05-25 18:27:53 +02:00
var DIR string = ""
2024-05-25 12:11:36 +02:00
func getFilepath(filename string) string {
2024-05-26 02:04:59 +02:00
// Set the DIR if not already set
2024-05-25 18:27:53 +02:00
if DIR == "" {
if len(os.Args) != 3 {
log.Fatal("Not enough args")
}
dir, err := filepath.Abs(os.Args[2])
if err != nil {
log.Fatal(err)
}
DIR = dir
2024-05-25 12:11:36 +02:00
}
2024-05-25 18:27:53 +02:00
return filepath.Join(DIR, filename)
2024-05-25 12:11:36 +02:00
}
func readFile(filename string) ([]byte, bool) {
path := getFilepath(filename)
file, err := os.ReadFile(path)
if os.IsNotExist(err) {
return nil, true
}
if err != nil {
log.Fatal(err)
}
return file, false
}
func writeFile(filename string, data []byte) {
path := getFilepath(filename)
err := os.WriteFile(path, data, 0755)
if err != nil {
log.Fatal(err)
}
}