mirror of
https://github.com/ProtonMail/proton-bridge.git
synced 2025-12-10 04:36:43 +00:00
40 lines
1.0 KiB
Go
40 lines
1.0 KiB
Go
package app
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/ProtonMail/proton-bridge/v2/internal/bridge"
|
|
"github.com/ProtonMail/proton-bridge/v2/internal/crash"
|
|
"github.com/ProtonMail/proton-bridge/v2/internal/events"
|
|
bridgeCLI "github.com/ProtonMail/proton-bridge/v2/internal/frontend/cli"
|
|
"github.com/ProtonMail/proton-bridge/v2/internal/frontend/grpc"
|
|
"github.com/ProtonMail/proton-bridge/v2/internal/locations"
|
|
"github.com/ProtonMail/proton-bridge/v2/pkg/restarter"
|
|
"github.com/urfave/cli/v2"
|
|
)
|
|
|
|
func runFrontend(
|
|
c *cli.Context,
|
|
crashHandler *crash.Handler,
|
|
restarter *restarter.Restarter,
|
|
locations *locations.Locations,
|
|
bridge *bridge.Bridge,
|
|
eventCh <-chan events.Event,
|
|
) error {
|
|
switch {
|
|
case c.Bool(flagCLI):
|
|
return bridgeCLI.New(bridge, eventCh).Loop()
|
|
|
|
case c.Bool(flagNonInteractive):
|
|
select {}
|
|
|
|
default:
|
|
service, err := grpc.NewService(crashHandler, restarter, locations, bridge, eventCh, !c.Bool(flagNoWindow))
|
|
if err != nil {
|
|
return fmt.Errorf("could not create service: %w", err)
|
|
}
|
|
|
|
return service.Loop()
|
|
}
|
|
}
|