43 lines
1.2 KiB
Go
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
|
|
}
|
|
}
|