Skip to content

Commit bf8650d

Browse files
committed
chore: improve coder server ux
1 parent db4945d commit bf8650d

File tree

4 files changed

+23
-16
lines changed

4 files changed

+23
-16
lines changed

cli/cliui/cliui.go

+5
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ type Styles struct {
2222
DateTimeStamp,
2323
Error,
2424
Field,
25+
Hyperlink,
2526
Keyword,
2627
Placeholder,
2728
Prompt,
@@ -149,6 +150,10 @@ func init() {
149150
pretty.Wrap("> ", ""),
150151
pretty.FgColor(brightBlue),
151152
},
153+
Hyperlink: pretty.Style{
154+
pretty.FgColor(magenta),
155+
pretty.Underline(),
156+
},
152157
Keyword: pretty.Style{
153158
pretty.FgColor(green),
154159
},

cli/root.go

+1-8
Original file line numberDiff line numberDiff line change
@@ -695,14 +695,7 @@ func namedWorkspace(ctx context.Context, client *codersdk.Client, identifier str
695695
func initAppearance(client *codersdk.Client, outConfig *codersdk.AppearanceConfig) serpent.MiddlewareFunc {
696696
return func(next serpent.HandlerFunc) serpent.HandlerFunc {
697697
return func(inv *serpent.Invocation) error {
698-
var err error
699-
cfg, err := client.Appearance(inv.Context())
700-
if err != nil {
701-
var sdkErr *codersdk.Error
702-
if !(xerrors.As(err, &sdkErr) && sdkErr.StatusCode() == http.StatusNotFound) {
703-
return err
704-
}
705-
}
698+
cfg, _ := client.Appearance(inv.Context())
706699
if cfg.DocsURL == "" {
707700
cfg.DocsURL = codersdk.DefaultDocsURL()
708701
}

cli/server.go

+13-4
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ import (
3232
"sync/atomic"
3333
"time"
3434

35+
"github.com/charmbracelet/lipgloss"
3536
"github.com/coreos/go-oidc/v3/oidc"
3637
"github.com/coreos/go-systemd/daemon"
3738
embeddedpostgres "github.com/fergusstrange/embedded-postgres"
@@ -483,8 +484,15 @@ func (r *RootCmd) Server(newAPI func(context.Context, *coderd.Options) (*coderd.
483484
)
484485
}
485486

486-
// A newline is added before for visibility in terminal output.
487-
cliui.Infof(inv.Stdout, "\nView the Web UI: %s", vals.AccessURL.String())
487+
accessURL := vals.AccessURL.String()
488+
cliui.Infof(inv.Stdout, lipgloss.NewStyle().
489+
Border(lipgloss.DoubleBorder()).
490+
Align(lipgloss.Center).
491+
Padding(0, 3).
492+
BorderForeground(lipgloss.Color("12")).
493+
Render(fmt.Sprintf("View the Web UI:\n%s",
494+
pretty.Sprint(cliui.DefaultStyles.Hyperlink, accessURL))))
495+
_ = openURL(inv, accessURL)
488496

489497
// Used for zero-trust instance identity with Google Cloud.
490498
googleTokenValidator, err := idtoken.NewValidator(ctx, option.WithoutAuthentication())
@@ -1438,6 +1446,7 @@ func newProvisionerDaemon(
14381446

14391447
// Omit any duplicates
14401448
provisionerTypes = slice.Unique(provisionerTypes)
1449+
provisionerLogger := logger.Named(fmt.Sprintf("provisionerd-%s", name))
14411450

14421451
// Populate the connector with the supported types.
14431452
connector := provisionerd.LocalProvisioners{}
@@ -1494,7 +1503,7 @@ func newProvisionerDaemon(
14941503
err := terraform.Serve(ctx, &terraform.ServeOptions{
14951504
ServeOptions: &provisionersdk.ServeOptions{
14961505
Listener: terraformServer,
1497-
Logger: logger.Named("terraform"),
1506+
Logger: provisionerLogger,
14981507
WorkDirectory: workDir,
14991508
},
15001509
CachePath: tfDir,
@@ -1519,7 +1528,7 @@ func newProvisionerDaemon(
15191528
// in provisionerdserver.go to learn more!
15201529
return coderAPI.CreateInMemoryProvisionerDaemon(dialCtx, name, provisionerTypes)
15211530
}, &provisionerd.Options{
1522-
Logger: logger.Named(fmt.Sprintf("provisionerd-%s", name)),
1531+
Logger: provisionerLogger,
15231532
UpdateInterval: time.Second,
15241533
ForceCancelInterval: cfg.Provisioner.ForceCancelInterval.Value(),
15251534
Connector: connector,

coderd/database/pubsub/pubsub.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -413,15 +413,15 @@ func (d logDialer) DialContext(ctx context.Context, network, address string) (ne
413413

414414
logger := d.logger.With(slog.F("network", network), slog.F("address", address), slog.F("timeout_ms", timeoutMS))
415415

416-
logger.Info(ctx, "pubsub dialing postgres")
416+
logger.Debug(ctx, "pubsub dialing postgres")
417417
start := time.Now()
418418
conn, err := d.d.DialContext(ctx, network, address)
419419
if err != nil {
420420
logger.Error(ctx, "pubsub failed to dial postgres")
421421
return nil, err
422422
}
423423
elapsed := time.Since(start)
424-
logger.Info(ctx, "pubsub postgres TCP connection established", slog.F("elapsed_ms", elapsed.Milliseconds()))
424+
logger.Debug(ctx, "pubsub postgres TCP connection established", slog.F("elapsed_ms", elapsed.Milliseconds()))
425425
return conn, nil
426426
}
427427

@@ -466,7 +466,7 @@ func (p *PGPubsub) startListener(ctx context.Context, connectURL string) error {
466466
Listener: pq.NewConnectorListener(connector, connectURL, time.Second, time.Minute, func(t pq.ListenerEventType, err error) {
467467
switch t {
468468
case pq.ListenerEventConnected:
469-
p.logger.Info(ctx, "pubsub connected to postgres")
469+
p.logger.Debug(ctx, "pubsub connected to postgres")
470470
p.connected.Set(1.0)
471471
case pq.ListenerEventDisconnected:
472472
p.logger.Error(ctx, "pubsub disconnected from postgres", slog.Error(err))
@@ -618,7 +618,7 @@ func New(startCtx context.Context, logger slog.Logger, db *sql.DB, connectURL st
618618
return nil, err
619619
}
620620
go p.listen()
621-
logger.Info(startCtx, "pubsub has started")
621+
logger.Debug(startCtx, "pubsub has started")
622622
return p, nil
623623
}
624624

0 commit comments

Comments
 (0)