gopass/internal/action/context.go
google-labs-jules[bot] 86720090b6
docs: Add GoDoc to pkg and improve markdown files (#3251)
This change adds GoDoc comments to many of the public symbols in the
`pkg/` directory. It also includes various improvements to the
documentation in `README.md` and other markdown files in the `docs/`
directory.

This is a partial documentation effort, as requested by the user, to
get a pull request submitted quickly.

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2025-09-22 19:37:15 +02:00

170 lines
4.0 KiB
Go

package action
import "context"
type contextKey int
const (
ctxKeyClip contextKey = iota
ctxKeyPasswordOnly
ctxKeyPrintQR
ctxKeyRevision
ctxKeyKey
ctxKeyOnlyClip
ctxKeyAlsoClip
ctxKeyPrintChars
ctxKeyWithQRBody
)
// WithClip returns a context with the value for clip (for copy to clipboard)
// set.
func WithClip(ctx context.Context, clip bool) context.Context {
return context.WithValue(ctx, ctxKeyClip, clip)
}
// IsClip returns the value of clip or the default (false).
func IsClip(ctx context.Context) bool {
bv, ok := ctx.Value(ctxKeyClip).(bool)
if !ok {
return false
}
return bv
}
// WithAlsoClip returns a context with the value for alsoclip (copy to
// clipboard and print to stdout) set.
func WithAlsoClip(ctx context.Context, clip bool) context.Context {
return context.WithValue(ctx, ctxKeyAlsoClip, clip)
}
// IsAlsoClip returns the value for alsoclip or the default (false).
func IsAlsoClip(ctx context.Context) bool {
bv, ok := ctx.Value(ctxKeyAlsoClip).(bool)
if !ok {
return false
}
return bv
}
// WithOnlyClip returns a context with the value for clip (for copy to clipboard)
// set.
func WithOnlyClip(ctx context.Context, clip bool) context.Context {
return context.WithValue(ctx, ctxKeyOnlyClip, clip)
}
// IsOnlyClip returns the value of clip or the default (false).
func IsOnlyClip(ctx context.Context) bool {
bv, ok := ctx.Value(ctxKeyOnlyClip).(bool)
if !ok {
return false
}
return bv
}
// WithPasswordOnly returns a context with the value of password only set.
func WithPasswordOnly(ctx context.Context, pw bool) context.Context {
return context.WithValue(ctx, ctxKeyPasswordOnly, pw)
}
// IsPasswordOnly returns the value of password only or the default (false).
func IsPasswordOnly(ctx context.Context) bool {
bv, ok := ctx.Value(ctxKeyPasswordOnly).(bool)
if !ok {
return false
}
return bv
}
// WithPrintQR returns a context with the value of print QR set.
func WithPrintQR(ctx context.Context, qr bool) context.Context {
return context.WithValue(ctx, ctxKeyPrintQR, qr)
}
// IsPrintQR returns the value of print QR or the default (false).
func IsPrintQR(ctx context.Context) bool {
bv, ok := ctx.Value(ctxKeyPrintQR).(bool)
if !ok {
return false
}
return bv
}
// WithRevision returns a context withe the value of revision set.
func WithRevision(ctx context.Context, rev string) context.Context {
return context.WithValue(ctx, ctxKeyRevision, rev)
}
// HasRevision returns true if a value for revision was set in this context.
func HasRevision(ctx context.Context) bool {
sv, ok := ctx.Value(ctxKeyRevision).(string)
return ok && sv != ""
}
// GetRevision returns the revison set in this context or an empty string.
func GetRevision(ctx context.Context) string {
sv, ok := ctx.Value(ctxKeyRevision).(string)
if !ok {
return ""
}
return sv
}
// WithKey returns a context with the key set.
func WithKey(ctx context.Context, sv string) context.Context {
return context.WithValue(ctx, ctxKeyKey, sv)
}
// HasKey returns true if the key is set.
func HasKey(ctx context.Context) bool {
_, ok := ctx.Value(ctxKeyKey).(string)
return ok
}
// GetKey returns the value of key or the default (empty string).
func GetKey(ctx context.Context) string {
sv, ok := ctx.Value(ctxKeyKey).(string)
if !ok {
return ""
}
return sv
}
// WithPrintChars returns the context with the print chars set.
func WithPrintChars(ctx context.Context, c []int) context.Context {
return context.WithValue(ctx, ctxKeyPrintChars, c)
}
// GetPrintChars returns a map of all character positions to print.
func GetPrintChars(ctx context.Context) []int {
mv, ok := ctx.Value(ctxKeyPrintChars).([]int)
if !ok {
return nil
}
return mv
}
// WithQRBody returns the context with the value of with QR body set.
func WithQRBody(ctx context.Context, qr bool) context.Context {
return context.WithValue(ctx, ctxKeyWithQRBody, qr)
}
// IsQRBody returns the value of with QR body or the default (false).
func IsQRBody(ctx context.Context) bool {
bv, ok := ctx.Value(ctxKeyWithQRBody).(bool)
if !ok {
return false
}
return bv
}