forked from TrueCloudLab/frostfs-node
[#1437] neofs-cli: Move util
command to a separate package
Signed-off-by: Evgenii Stratonikov <evgeniy@nspcc.ru>
This commit is contained in:
parent
786c920fb2
commit
dda56f1319
16 changed files with 645 additions and 566 deletions
57
cmd/neofs-cli/internal/common/token.go
Normal file
57
cmd/neofs-cli/internal/common/token.go
Normal file
|
@ -0,0 +1,57 @@
|
|||
package common
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
||||
"github.com/nspcc-dev/neofs-sdk-go/bearer"
|
||||
"github.com/nspcc-dev/neofs-sdk-go/session"
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
// ReadBearerToken reads bearer token from the path provided in a specified flag.
|
||||
func ReadBearerToken(cmd *cobra.Command, flagname string) *bearer.Token {
|
||||
path, err := cmd.Flags().GetString(flagname)
|
||||
ExitOnErr(cmd, "", err)
|
||||
|
||||
if len(path) == 0 {
|
||||
return nil
|
||||
}
|
||||
|
||||
data, err := os.ReadFile(path)
|
||||
ExitOnErr(cmd, "can't read bearer token file: %w", err)
|
||||
|
||||
var tok bearer.Token
|
||||
if err := tok.UnmarshalJSON(data); err != nil {
|
||||
err = tok.Unmarshal(data)
|
||||
ExitOnErr(cmd, "can't decode bearer token: %w", err)
|
||||
|
||||
PrintVerbose("Using binary encoded bearer token")
|
||||
} else {
|
||||
PrintVerbose("Using JSON encoded bearer token")
|
||||
}
|
||||
|
||||
return &tok
|
||||
}
|
||||
|
||||
// ReadSessionToken reads session token as JSON file with session token
|
||||
// from path provided in a specified flag.
|
||||
func ReadSessionToken(cmd *cobra.Command, flag string) *session.Token {
|
||||
// try to read session token from file
|
||||
var tok *session.Token
|
||||
|
||||
path, err := cmd.Flags().GetString(flag)
|
||||
ExitOnErr(cmd, "", err)
|
||||
|
||||
if path == "" {
|
||||
return tok
|
||||
}
|
||||
|
||||
data, err := os.ReadFile(path)
|
||||
ExitOnErr(cmd, "could not open file with session token: %w", err)
|
||||
|
||||
tok = session.NewToken()
|
||||
err = tok.UnmarshalJSON(data)
|
||||
ExitOnErr(cmd, "could not ummarshal session token from file: %w", err)
|
||||
|
||||
return tok
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue