opencode.go 485 B

1234567891011121314151617181920212223242526272829303132
  1. package main
  2. import (
  3. "context"
  4. "os"
  5. "os/signal"
  6. "github.com/sst/opencode/pkg/app"
  7. "github.com/sst/opencode/pkg/server"
  8. "golang.org/x/sync/errgroup"
  9. )
  10. func main() {
  11. ctx, stop := signal.NotifyContext(context.Background(), os.Interrupt)
  12. cwd, _ := os.Getwd()
  13. app, err := app.New(ctx, cwd)
  14. if err != nil {
  15. panic(err)
  16. }
  17. server, err := server.New(app)
  18. var wg errgroup.Group
  19. wg.Go(func() error {
  20. defer stop()
  21. return server.Start(ctx)
  22. })
  23. <-ctx.Done()
  24. wg.Wait()
  25. }