Skip to content

Commit 35ed72e

Browse files
authored
[perf UX] add spinner to print-dev-env output (#1551)
## Summary Added a nice spinner to while we get a result from nix ## How was it tested? Spinning state: <img width="461" alt="Screenshot 2023-10-10 at 4 43 34 PM" src="https://github.com/jetpack-io/devbox/assets/676452/fb6cd91f-e8b6-470a-b7b5-9dc06d8e4adb"> Final state: <img width="751" alt="Screenshot 2023-10-10 at 4 41 30 PM" src="https://github.com/jetpack-io/devbox/assets/676452/fc405da8-5392-4ca4-a432-dfa2be4b6934">
1 parent 8f1f0dc commit 35ed72e

File tree

2 files changed

+13
-1
lines changed

2 files changed

+13
-1
lines changed

internal/impl/devbox.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ import (
1818
"strconv"
1919
"strings"
2020
"text/tabwriter"
21+
"time"
2122

23+
"github.com/briandowns/spinner"
2224
"github.com/pkg/errors"
2325
"github.com/samber/lo"
2426
"go.jetpack.io/devbox/internal/devpkg"
@@ -781,11 +783,22 @@ func (d *Devbox) computeNixEnv(ctx context.Context, usePrintDevEnvCache bool) (m
781783
originalEnv := make(map[string]string, len(env))
782784
maps.Copy(originalEnv, env)
783785

786+
var spinny *spinner.Spinner
787+
if !usePrintDevEnvCache {
788+
spinny = spinner.New(spinner.CharSets[11], 100*time.Millisecond, spinner.WithWriter(d.stderr))
789+
spinny.FinalMSG = "✓ Computed the Devbox environment.\n"
790+
spinny.Suffix = " Computing the Devbox environment...\n"
791+
spinny.Start()
792+
}
793+
784794
vaf, err := d.nix.PrintDevEnv(ctx, &nix.PrintDevEnvArgs{
785795
FlakeDir: d.flakeDir(),
786796
PrintDevEnvCachePath: d.nixPrintDevEnvCachePath(),
787797
UsePrintDevEnvCache: usePrintDevEnvCache,
788798
})
799+
if spinny != nil {
800+
spinny.Stop()
801+
}
789802
if err != nil {
790803
return nil, err
791804
}

internal/impl/packages.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,6 @@ func (d *Devbox) ensurePackagesAreInstalled(ctx context.Context, mode installMod
248248
return err
249249
}
250250

251-
fmt.Fprintf(d.stderr, "Recomputing the devbox environment.\n")
252251
// Force print-dev-env cache to be recomputed.
253252
nixEnv, err := d.computeNixEnv(ctx, false /*use cache*/)
254253
if err != nil {

0 commit comments

Comments
 (0)