Skip to content

Commit fe6ca94

Browse files
committed
Use sink for already logged in output
1 parent 5e3be15 commit fe6ca94

3 files changed

Lines changed: 24 additions & 9 deletions

File tree

cmd/login.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@ package cmd
22

33
import (
44
"fmt"
5+
"os"
56

67
"github.com/localstack/lstk/internal/api"
78
"github.com/localstack/lstk/internal/auth"
89
"github.com/localstack/lstk/internal/env"
910
"github.com/localstack/lstk/internal/log"
11+
"github.com/localstack/lstk/internal/output"
1012
"github.com/localstack/lstk/internal/telemetry"
1113
"github.com/localstack/lstk/internal/ui"
1214
"github.com/localstack/lstk/internal/version"
@@ -23,14 +25,25 @@ func newLoginCmd(cfg *env.Env, tel *telemetry.Client, logger log.Logger) *cobra.
2325
if !isInteractiveMode(cfg) {
2426
return fmt.Errorf("login requires an interactive terminal")
2527
}
28+
tokenStorage, err := auth.NewTokenStorage(cfg.ForceFileKeyring, logger)
29+
if err != nil {
30+
return fmt.Errorf("failed to initialize token storage: %w", err)
31+
}
32+
sink := output.NewPlainSink(os.Stdout)
33+
if cfg.AuthToken != "" {
34+
output.EmitNote(sink, "You're already logged in")
35+
return nil
36+
}
37+
if token, err := tokenStorage.GetAuthToken(); err == nil && token != "" {
38+
output.EmitNote(sink, "You're already logged in")
39+
return nil
40+
}
2641
platformClient := api.NewPlatformClient(cfg.APIEndpoint, logger)
2742
if err := ui.RunLogin(cmd.Context(), version.Version(), platformClient, cfg.AuthToken, cfg.ForceFileKeyring, cfg.WebAppURL, logger); err != nil {
2843
return err
2944
}
30-
if tokenStorage, err := auth.NewTokenStorage(cfg.ForceFileKeyring, logger); err == nil {
31-
if token, err := tokenStorage.GetAuthToken(); err == nil && token != "" {
32-
tel.SetAuthToken(token)
33-
}
45+
if token, err := tokenStorage.GetAuthToken(); err == nil && token != "" {
46+
tel.SetAuthToken(token)
3447
}
3548
return nil
3649
}),

internal/output/plain_format.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ import (
44
"fmt"
55
"strings"
66
"time"
7+
8+
"github.com/localstack/lstk/internal/ui/styles"
79
)
810

911
// FormatEventLine converts an output event into a single display line.
@@ -116,13 +118,13 @@ func formatAuthEvent(e AuthEvent) string {
116118
func formatMessageEvent(e MessageEvent) string {
117119
switch e.Severity {
118120
case SeveritySuccess:
119-
return SuccessMarker() + " " + e.Text
121+
return styles.Success.Render(SuccessMarker()) + " " + e.Text
120122
case SeverityNote:
121-
return "> Note: " + e.Text
123+
return styles.Secondary.Render(">") + " " + styles.Note.Render("Note:") + " " + e.Text
122124
case SeverityWarning:
123-
return "> Warning: " + e.Text
125+
return styles.Secondary.Render(">") + " " + styles.Warning.Render("Warning:") + " " + e.Text
124126
case SeveritySecondary:
125-
return e.Text
127+
return styles.SecondaryMessage.Render(e.Text)
126128
default:
127129
return e.Text
128130
}

internal/ui/styles/styles.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ var (
4545
Foreground(lipgloss.Color(SuccessColor))
4646

4747
Note = lipgloss.NewStyle().
48-
Foreground(lipgloss.Color("33"))
48+
Foreground(lipgloss.Color("69"))
4949

5050
Warning = lipgloss.NewStyle().
5151
Foreground(lipgloss.Color("214"))

0 commit comments

Comments
 (0)