43 lines
764 B
Go
43 lines
764 B
Go
package main
|
|
|
|
import (
|
|
"embed"
|
|
"os"
|
|
"path/filepath"
|
|
)
|
|
|
|
//go:embed ml/*.py ml/*.json
|
|
var embeddedMLFiles embed.FS
|
|
|
|
func trainingEmbeddedMLDir() (string, error) {
|
|
dir := filepath.Join(os.TempDir(), "nsfwapp-ml")
|
|
|
|
if err := os.MkdirAll(dir, 0755); err != nil {
|
|
return "", err
|
|
}
|
|
|
|
files := []string{
|
|
"predict_scene_model.py",
|
|
"train_scene_model.py",
|
|
"predict_detector_model.py",
|
|
"train_detector_model.py",
|
|
"detection_labels.json",
|
|
}
|
|
|
|
for _, name := range files {
|
|
srcPath := filepath.Join("ml", name)
|
|
|
|
b, err := embeddedMLFiles.ReadFile(filepath.ToSlash(srcPath))
|
|
if err != nil {
|
|
return "", err
|
|
}
|
|
|
|
dstPath := filepath.Join(dir, name)
|
|
if err := os.WriteFile(dstPath, b, 0644); err != nil {
|
|
return "", err
|
|
}
|
|
}
|
|
|
|
return dir, nil
|
|
}
|