GODT-2154: Allow noninteractive mode from launcher.
This commit is contained in:
parent
ece6d7b2d7
commit
37a46465ba
5
Makefile
5
Makefile
|
@ -293,7 +293,7 @@ gofiles: ./internal/bridge/credits.go
|
||||||
cd ./utils/ && ./credits.sh bridge
|
cd ./utils/ && ./credits.sh bridge
|
||||||
|
|
||||||
## Run and debug
|
## Run and debug
|
||||||
.PHONY: run run-qt run-qt-cli run-nogui run-nogui-cli run-debug run-qml-preview clean-vendor clean-frontend-qt clean-frontend-qt-common clean
|
.PHONY: run run-qt run-qt-cli run-nogui run-cli run-noninteractive run-debug run-qml-preview clean-vendor clean-frontend-qt clean-frontend-qt-common clean
|
||||||
|
|
||||||
LOG?=debug
|
LOG?=debug
|
||||||
LOG_IMAP?=client # client/server/all, or empty to turn it off
|
LOG_IMAP?=client # client/server/all, or empty to turn it off
|
||||||
|
@ -304,6 +304,9 @@ run: run-qt
|
||||||
|
|
||||||
run-cli: run-nogui
|
run-cli: run-nogui
|
||||||
|
|
||||||
|
run-noninteractive: build-nogui clean-vendor gofiles
|
||||||
|
PROTONMAIL_ENV=dev ./${LAUNCHER_EXE} ${RUN_FLAGS} -n
|
||||||
|
|
||||||
run-qt: build-gui
|
run-qt: build-gui
|
||||||
ifeq "${TARGET_OS}" "darwin"
|
ifeq "${TARGET_OS}" "darwin"
|
||||||
PROTONMAIL_ENV=dev ${DARWINAPP_CONTENTS}/MacOS/${LAUNCHER_EXE} ${RUN_FLAGS}
|
PROTONMAIL_ENV=dev ${DARWINAPP_CONTENTS}/MacOS/${LAUNCHER_EXE} ${RUN_FLAGS}
|
||||||
|
|
|
@ -47,10 +47,12 @@ const (
|
||||||
exeName = "bridge"
|
exeName = "bridge"
|
||||||
guiName = "bridge-gui"
|
guiName = "bridge-gui"
|
||||||
|
|
||||||
FlagCLI = "--cli"
|
FlagCLI = "cli"
|
||||||
FlagCLIShort = "-c"
|
FlagCLIShort = "c"
|
||||||
FlagLauncher = "--launcher"
|
FlagNonInteractive = "noninteractive"
|
||||||
FlagWait = "--wait"
|
FlagNonInteractiveShort = "n"
|
||||||
|
FlagLauncher = "--launcher"
|
||||||
|
FlagWait = "--wait"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() { //nolint:funlen
|
func main() { //nolint:funlen
|
||||||
|
@ -160,16 +162,21 @@ func appendLauncherPath(path string, args []string) []string {
|
||||||
return args
|
return args
|
||||||
}
|
}
|
||||||
|
|
||||||
// inCLIMode detect if CLI mode is asked.
|
|
||||||
func inCLIMode(args []string) bool {
|
|
||||||
return sliceContains(args, FlagCLI) || sliceContains(args, FlagCLIShort)
|
|
||||||
}
|
|
||||||
|
|
||||||
// sliceContains checks if a value is present in a list.
|
// sliceContains checks if a value is present in a list.
|
||||||
func sliceContains[T comparable](list []T, s T) bool {
|
func sliceContains[T comparable](list []T, s T) bool {
|
||||||
return xslices.Any(list, func(arg T) bool { return arg == s })
|
return xslices.Any(list, func(arg T) bool { return arg == s })
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// inCLIMode detect if CLI mode is asked.
|
||||||
|
func inCLIMode(args []string) bool {
|
||||||
|
return hasFlag(args, FlagCLI) || hasFlag(args, FlagCLIShort) || hasFlag(args, FlagNonInteractive) || hasFlag(args, FlagNonInteractiveShort)
|
||||||
|
}
|
||||||
|
|
||||||
|
// hasFlag checks if a flag is present in a list.
|
||||||
|
func hasFlag(args []string, flag string) bool {
|
||||||
|
return xslices.Any(args, func(arg string) bool { return (arg == "-"+flag) || (arg == "--"+flag) })
|
||||||
|
}
|
||||||
|
|
||||||
// findAndStrip check if a value is present in s list and remove all occurrences of the value from this list.
|
// findAndStrip check if a value is present in s list and remove all occurrences of the value from this list.
|
||||||
func findAndStrip[T comparable](slice []T, v T) (strippedList []T, found bool) {
|
func findAndStrip[T comparable](slice []T, v T) (strippedList []T, found bool) {
|
||||||
strippedList = xslices.Filter(slice, func(value T) bool {
|
strippedList = xslices.Filter(slice, func(value T) bool {
|
||||||
|
|
Loading…
Reference in New Issue