Files
jellybit/cmd/jellybit/main.go
T

45 lines
1.3 KiB
Go

// Команда jellybit — связующий сервис qBittorrent ↔ Jellyfin.
//
// Подкоманды:
//
// jellybit [serve] --config <path> запустить сервис (по умолчанию)
// jellybit add <magnet> [--context] добавить загрузку через REST API сервиса
// jellybit recognize <infohash> --dry-run показать план распознавания (без записи)
// jellybit healthcheck --config <p> проверить /healthz (для docker HEALTHCHECK)
package main
import (
"os"
"strings"
)
func main() {
args := os.Args[1:]
// Первый позиционный аргумент (не флаг) — подкоманда. Без него (и при
// `--config ...`, как в Dockerfile ENTRYPOINT) запускаем сервис.
cmd := "serve"
if len(args) > 0 && !strings.HasPrefix(args[0], "-") {
cmd, args = args[0], args[1:]
}
var err error
switch cmd {
case "serve":
err = runServe(args)
case "add":
err = runAdd(args)
case "recognize":
err = runRecognize(args)
case "healthcheck":
err = runHealthcheck(args)
default:
_, _ = os.Stderr.WriteString("unknown command: " + cmd + "\n")
os.Exit(2)
}
if err != nil {
_, _ = os.Stderr.WriteString("fatal: " + err.Error() + "\n")
os.Exit(1)
}
}