add fileInfo to verify not directory

This commit is contained in:
2023-07-19 15:57:11 +01:00
parent 0f2a9b34e9
commit 32d76d1693

View File

@@ -45,6 +45,18 @@ func ArRead(args ...any) (any, ArErr) {
if err != nil {
return ArObject{}, ArErr{TYPE: "Runtime Error", message: err.Error(), EXISTS: true}
}
fileInfo, err := os.Stat(filename)
if err != nil {
if os.IsNotExist(err) {
return ArObject{}, ArErr{TYPE: "Runtime Error", message: "File does not exist: " + filename, EXISTS: true}
} else {
return ArObject{}, ArErr{TYPE: "Runtime Error", message: err.Error(), EXISTS: true}
}
} else if fileInfo.Mode().IsDir() {
return ArObject{}, ArErr{TYPE: "Runtime Error", message: "path goes to a directory, not a file: " + filename, EXISTS: true}
}
return Map(anymap{
"text": builtinFunc{"text", func(...any) (any, ArErr) {
text, err := readtext(file)
@@ -61,7 +73,8 @@ func ArRead(args ...any) (any, ArErr) {
return jsonparse(text), ArErr{}
}},
"contentType": builtinFunc{"contentType", func(...any) (any, ArErr) {
mimetype, err := mimetype.DetectFile(filename)
file.Seek(0, io.SeekStart)
mimetype, err := mimetype.DetectReader(file)
if err != nil {
return ArObject{}, ArErr{TYPE: "Runtime Error", message: err.Error(), EXISTS: true}
}