Добавил конвенции для конфигурации и сделал рефакторинг кода
This commit is contained in:
@@ -16,7 +16,7 @@ import (
|
||||
// нет shell/curl: docker зовёт сам бинарь.
|
||||
func runHealthcheck(args []string) error {
|
||||
fs := flag.NewFlagSet("healthcheck", flag.ContinueOnError)
|
||||
configPath := fs.String("config", "/config/config.toml", "путь к config.toml")
|
||||
configPath := fs.String("config", config.DefaultPath, "путь к config.toml")
|
||||
if err := fs.Parse(args); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -29,8 +29,21 @@ func serveHealthz(t *testing.T, status int) int {
|
||||
|
||||
func writeConfig(t *testing.T, port int) string {
|
||||
t.Helper()
|
||||
path := filepath.Join(t.TempDir(), "config.toml")
|
||||
content := "[http]\nlisten = \"127.0.0.1:" + strconv.Itoa(port) + "\"\n"
|
||||
dir := t.TempDir()
|
||||
// Медиа-пути должны существовать как каталоги (fail-fast валидация конфига).
|
||||
for _, sub := range []string{"downloads", "movies", "series"} {
|
||||
if err := os.MkdirAll(filepath.Join(dir, sub), 0o755); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
path := filepath.Join(dir, "config.toml")
|
||||
content := "" +
|
||||
"[qbittorrent]\nurl = \"http://qbit:8080\"\npassword = \"secret\"\n\n" +
|
||||
"[paths]\n" +
|
||||
"downloads = \"" + filepath.Join(dir, "downloads") + "\"\n" +
|
||||
"movies = \"" + filepath.Join(dir, "movies") + "\"\n" +
|
||||
"series = \"" + filepath.Join(dir, "series") + "\"\n\n" +
|
||||
"[http]\nlisten = \"127.0.0.1:" + strconv.Itoa(port) + "\"\n"
|
||||
if err := os.WriteFile(path, []byte(content), 0o644); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ import (
|
||||
// Только чтение: ни записи в БД, ни хардлинков.
|
||||
func runRecognize(args []string) error {
|
||||
fs := flag.NewFlagSet("recognize", flag.ContinueOnError)
|
||||
configPath := fs.String("config", "/config/config.toml", "путь к config.toml")
|
||||
configPath := fs.String("config", config.DefaultPath, "путь к config.toml")
|
||||
dryRun := fs.Bool("dry-run", true, "только показать план, без изменений (единственный режим)")
|
||||
contextStr := fs.String("context", "", "доп. текстовый контекст для распознавания")
|
||||
if err := fs.Parse(args); err != nil {
|
||||
|
||||
@@ -34,7 +34,7 @@ import (
|
||||
// воркер (фоном) → HTTP-сервер; останавливается по SIGINT/SIGTERM.
|
||||
func runServe(args []string) error {
|
||||
fs := flag.NewFlagSet("serve", flag.ContinueOnError)
|
||||
configPath := fs.String("config", "/config/config.toml", "путь к config.toml")
|
||||
configPath := fs.String("config", config.DefaultPath, "путь к config.toml")
|
||||
if err := fs.Parse(args); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user