Files
reg/cmd/auth.go
2026-11-05 06:40:24 +03:00

43 lines
1.2 KiB
Go

package cmd
import (
"context"
reg "reg/internal/reg"
"reg/internal/reg/vault"
)
// RunAuth реализует диспетчеризацию подкоманд `auth`:
//
// reg auth login <registry> [-user <u>] [-pass <p>]
// reg auth logout <registry>
// reg auth status
// reg auth migrate -from docker|local -to docker|local [-dry-run] [-overwrite] [-registry <host>]
// reg auth token [-raw] [<repo>]
// reg auth whoami [<repo>]
func RunAuth(ctx context.Context, client *reg.RegistryClient, v vault.Vault, vaultExplicit bool, cfg *reg.Config, args []string) int {
if len(args) == 0 {
reg.PrintError(MsgAuthRequiresSub.String())
return 1
}
sub := args[0]
rest := args[1:]
switch sub {
case "login":
return RunAuthLogin(ctx, client, v, vaultExplicit, rest)
case "logout":
return RunAuthLogout(ctx, client, v, rest)
case "status":
return RunAuthStatus(ctx, client, v, rest)
case "migrate":
return RunAuthMigrate(ctx, cfg, rest)
case "token":
return RunToken(ctx, client, rest)
case "whoami":
return RunWhoami(ctx, client, rest)
default:
reg.PrintError(MsgAuthUnknownSub.F(sub))
return 1
}
}