forked from Silverfish/proton-bridge
GODT-2013: CLI flag for frontend is required (v3)
This commit is contained in:
@ -54,10 +54,14 @@ const (
|
|||||||
flagLogLevel = "log-level"
|
flagLogLevel = "log-level"
|
||||||
flagLogLevelShort = "l"
|
flagLogLevelShort = "l"
|
||||||
|
|
||||||
|
flagGRPC = "grpc"
|
||||||
|
flagGRPCShort = "g"
|
||||||
|
|
||||||
flagCLI = "cli"
|
flagCLI = "cli"
|
||||||
flagCLIShort = "c"
|
flagCLIShort = "c"
|
||||||
|
|
||||||
flagNonInteractive = "non-interactive"
|
flagNonInteractive = "noninteractive"
|
||||||
|
flagNonInteractiveShort = "n"
|
||||||
|
|
||||||
flagLogIMAP = "log-imap"
|
flagLogIMAP = "log-imap"
|
||||||
flagLogSMTP = "log-smtp"
|
flagLogSMTP = "log-smtp"
|
||||||
@ -95,13 +99,19 @@ func New() *cli.App {
|
|||||||
Usage: "Set the log level (one of panic, fatal, error, warn, info, debug)",
|
Usage: "Set the log level (one of panic, fatal, error, warn, info, debug)",
|
||||||
},
|
},
|
||||||
&cli.BoolFlag{
|
&cli.BoolFlag{
|
||||||
Name: flagCLI,
|
Name: flagGRPC,
|
||||||
Aliases: []string{flagCLIShort},
|
Aliases: []string{flagGRPCShort},
|
||||||
Usage: "Use command line interface",
|
Usage: "Start the gRPC service",
|
||||||
},
|
},
|
||||||
&cli.BoolFlag{
|
&cli.BoolFlag{
|
||||||
Name: flagNonInteractive,
|
Name: flagCLI,
|
||||||
Usage: "Run the app in non-interactive mode",
|
Aliases: []string{flagCLIShort},
|
||||||
|
Usage: "Start the command line interface",
|
||||||
|
},
|
||||||
|
&cli.BoolFlag{
|
||||||
|
Name: flagNonInteractive,
|
||||||
|
Aliases: []string{flagNonInteractiveShort},
|
||||||
|
Usage: "Start the app in non-interactive mode",
|
||||||
},
|
},
|
||||||
&cli.StringFlag{
|
&cli.StringFlag{
|
||||||
Name: flagLogIMAP,
|
Name: flagLogIMAP,
|
||||||
|
|||||||
@ -27,6 +27,7 @@ import (
|
|||||||
"github.com/ProtonMail/proton-bridge/v2/internal/frontend/grpc"
|
"github.com/ProtonMail/proton-bridge/v2/internal/frontend/grpc"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/internal/locations"
|
"github.com/ProtonMail/proton-bridge/v2/internal/locations"
|
||||||
"github.com/ProtonMail/proton-bridge/v2/pkg/restarter"
|
"github.com/ProtonMail/proton-bridge/v2/pkg/restarter"
|
||||||
|
"github.com/sirupsen/logrus"
|
||||||
"github.com/urfave/cli/v2"
|
"github.com/urfave/cli/v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -45,12 +46,19 @@ func runFrontend(
|
|||||||
case c.Bool(flagNonInteractive):
|
case c.Bool(flagNonInteractive):
|
||||||
select {}
|
select {}
|
||||||
|
|
||||||
default:
|
case c.Bool(flagGRPC):
|
||||||
service, err := grpc.NewService(crashHandler, restarter, locations, bridge, eventCh, !c.Bool(flagNoWindow))
|
service, err := grpc.NewService(crashHandler, restarter, locations, bridge, eventCh, !c.Bool(flagNoWindow))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return fmt.Errorf("could not create service: %w", err)
|
return fmt.Errorf("could not create service: %w", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return service.Loop()
|
return service.Loop()
|
||||||
|
|
||||||
|
default:
|
||||||
|
if err := cli.ShowAppHelp(c); err != nil {
|
||||||
|
logrus.WithError(err).Error("Failed to show app help")
|
||||||
|
}
|
||||||
|
|
||||||
|
return fmt.Errorf("no frontend specified, use --cli, --grpc or --noninteractive")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -257,7 +257,7 @@ void launchBridge(QStringList const &args)
|
|||||||
else
|
else
|
||||||
app().log().debug(QString("Bridge executable path: %1").arg(QDir::toNativeSeparators(bridgeExePath)));
|
app().log().debug(QString("Bridge executable path: %1").arg(QDir::toNativeSeparators(bridgeExePath)));
|
||||||
|
|
||||||
overseer = std::make_unique<Overseer>(new ProcessMonitor(bridgeExePath, args, nullptr), nullptr);
|
overseer = std::make_unique<Overseer>(new ProcessMonitor(bridgeExePath, QStringList("--grpc") + args, nullptr), nullptr);
|
||||||
overseer->startWorker(true);
|
overseer->startWorker(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user