Add secret-safe copy and reveal UX coverage
This commit is contained in:
+18
-2
@@ -2,7 +2,6 @@ package clipboard
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
systemclipboard "github.com/atotto/clipboard"
|
||||
|
||||
@@ -10,6 +9,7 @@ import (
|
||||
)
|
||||
|
||||
var ErrUnsupportedTarget = errors.New("unsupported clipboard target")
|
||||
var ErrWriteFailed = errors.New("clipboard write failed")
|
||||
|
||||
type Target string
|
||||
|
||||
@@ -39,7 +39,7 @@ func (s Service) Copy(model vault.Model, entryID string, target Target) error {
|
||||
}
|
||||
|
||||
if err := s.writer().WriteText(content); err != nil {
|
||||
return fmt.Errorf("write clipboard text: %w", err)
|
||||
return writeError{err: err}
|
||||
}
|
||||
|
||||
return nil
|
||||
@@ -79,3 +79,19 @@ type systemWriter struct{}
|
||||
func (systemWriter) WriteText(text string) error {
|
||||
return systemclipboard.WriteAll(text)
|
||||
}
|
||||
|
||||
type writeError struct {
|
||||
err error
|
||||
}
|
||||
|
||||
func (e writeError) Error() string {
|
||||
return ErrWriteFailed.Error()
|
||||
}
|
||||
|
||||
func (e writeError) Unwrap() error {
|
||||
return e.err
|
||||
}
|
||||
|
||||
func (e writeError) Is(target error) bool {
|
||||
return target == ErrWriteFailed
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user