package basic import ( "encoding/json" "fmt" "log/slog" "os/exec" "git.jmbit.de/jmb/scanfile/server/internal/store" ) // DiecScan() runs diec -jdu on the file func DiecScan(fileName string) ([]byte, error) { var by []byte filepath, err := store.AbsPath(fileName) if err != nil { slog.Error("Error in DiecScan", "file-uuid", fileName, "error", err) return by, err } cmd := exec.Command("/usr/bin/diec", "-jdu", filepath) result, err := cmd.Output() if err != nil { slog.Error("Error in DiecScan", "file-uuid", fileName, "error", err) return by, err } if json.Valid(result) == false { return by, fmt.Errorf("JSON not valid") } return result, nil }