¿Cómo iniciar Safari en una página del navegador solo cuando el Error 502 deja de suceder?

3

Tengo una situación en la que si presiono una actualización de una instancia en la web, la compilación tardará entre 3 y 5 minutos, y cuando la compilación haya finalizado correctamente, la instancia se disparará Error 502 durante un par de minutos antes de que comience a ejecutarse de nuevo.

Estoy buscando una solución donde, la instancia (una URL del servidor) se consultará cada 5 segundos aproximadamente, y cuando deje de responder 502 , Safari se iniciará.

¿Alguna idea de cómo podría hacer eso? Hasta ahora, en la terminal, puedo ejecutar esto:

curl -I http://url 2>/dev/null | head -n 1 | cut -d$' ' -f2

y esto generará la respuesta del puerto HTTP o lo que sea, pero no soy lo suficientemente inteligente como para "hacerlo cada 5 segundos" o para definir un "Si (respuesta resultante) es X, sigue repitiendo el bucle, pero si la respuesta) es Y, luego inicie Safari con una URL ".

¿Alguna idea?

    
pregunta esaruoho 29.01.2018 - 15:44

1 respuesta

3

Una secuencia de comandos "rápida y sucia" para lograr lo que está buscando hacer podría escribirse como:

#!/bin/bash

url = "http://url"
code='curl -I $url 2>/dev/null | head -n 1 | cut -d$' ' -f2'

while [ "$code" == 502 ]
do
  sleep 5
  echo trying again
  code='curl -I $url 2>/dev/null | head -n 1 | cut -d$' ' -f2'
done

open -a Safari $url

Básicamente, lo que hace es capturar el valor que se genera en una variable llamada code . Luego evalúa esa variable en un bucle While / Do cada 5 segundos hasta que el valor cambie. Una vez que eso sucede, existe el bucle y se inicia una instancia de Safari que apunta a la URL.

    
respondido por el Allan 29.01.2018 - 16:56

Lea otras preguntas en las etiquetas