45 lines
1.3 KiB
Go
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)
|
|
}
|
|
}
|