mirror of
https://github.com/aljazceru/signal-cli-rest-api.git
synced 2025-12-19 23:54:22 +01:00
added possibility to specify the signal-cli command timeout in the
docker-compose.yml file see #145
This commit is contained in:
@@ -347,6 +347,12 @@ func runSignalCli(wait bool, args []string, stdin string) (string, error) {
|
|||||||
log.Debug("*) su signal-api")
|
log.Debug("*) su signal-api")
|
||||||
log.Debug("*) ", fullCmd)
|
log.Debug("*) ", fullCmd)
|
||||||
|
|
||||||
|
cmdTimeout, err := utils.GetIntEnv("SIGNAL_CLI_CMD_TIMEOUT", 60)
|
||||||
|
if err != nil {
|
||||||
|
log.Error("Env variable 'SIGNAL_CLI_CMD_TIMEOUT' contains an invalid timeout...falling back to default timeout (60 seconds)")
|
||||||
|
cmdTimeout = 60
|
||||||
|
}
|
||||||
|
|
||||||
cmd := exec.Command(signalCliBinary, args...)
|
cmd := exec.Command(signalCliBinary, args...)
|
||||||
if stdin != "" {
|
if stdin != "" {
|
||||||
cmd.Stdin = strings.NewReader(stdin)
|
cmd.Stdin = strings.NewReader(stdin)
|
||||||
@@ -367,7 +373,7 @@ func runSignalCli(wait bool, args []string, stdin string) (string, error) {
|
|||||||
done <- cmd.Wait()
|
done <- cmd.Wait()
|
||||||
}()
|
}()
|
||||||
select {
|
select {
|
||||||
case <-time.After(60 * time.Second):
|
case <-time.After(time.Duration(cmdTimeout) * time.Second):
|
||||||
err := cmd.Process.Kill()
|
err := cmd.Process.Kill()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", err
|
return "", err
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package utils
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"os"
|
"os"
|
||||||
|
"strconv"
|
||||||
)
|
)
|
||||||
|
|
||||||
func GetEnv(key string, defaultVal string) string {
|
func GetEnv(key string, defaultVal string) string {
|
||||||
@@ -10,3 +11,14 @@ func GetEnv(key string, defaultVal string) string {
|
|||||||
}
|
}
|
||||||
return defaultVal
|
return defaultVal
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func GetIntEnv(key string, defaultVal int) (int, error) {
|
||||||
|
if value, exists := os.LookupEnv(key); exists {
|
||||||
|
intValue, err := strconv.Atoi(value)
|
||||||
|
if err != nil {
|
||||||
|
return 0, err
|
||||||
|
}
|
||||||
|
return intValue, nil
|
||||||
|
}
|
||||||
|
return defaultVal, nil
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user