scanfile/server/internal/processing/basic/diec.go
2025-06-12 13:00:13 +02:00

31 lines
676 B
Go

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
}