Instalación y actualización automática de SpotiWeb

spotiweb1

 

Si leíste la entrada sobre alternativas para escuchar música en streaming gratuitamente seguro que te llamó la atención SpotiWeb. Dado que el programa se basa en la versión web de spotify y está hecho con electron, para instalarlo lo único que tenemos que hacer es descargar el directorio del proyecto correspondiente a nuestra arquitectura  y ubicarlo donde deseemos, por ejemplo el directorio /opt. Tras hacerlo deberíamos crear un lanzador para el archivo SpotiWeb que encontramos en su interior.

Si ya utilizas esta aplicación te habrás dado cuenta de que no tiene una opción para descargar automáticamente la última versión e instalarla. Pues en esta entrada quiero proponeros un scrip para automatizar esta tarea y tener siempre SpotiWeb actualizado.

Antes de realizar el script es de cajón pasarnos por la web donde se aloja el proyecto en github. Allí encontramos una sección download donde se nos redirige a la página de las versiones de la aplicación donde podemos encontrar la última de ellas. Si vamos vemos que la primera que encontramos es la última, que en al momento de escribir esto es la 0.5. Pero si nos fijamos bien, a la izquierda en pequeño pone que es la v0.5.0. Esto lo comento porque si inspeccionáis los enlaces de más abajo. En la sección downloads de esta versión, por ejemplo el SpotiWeb-linux-x64, este nos lleva a https://github.com/tomasmcm/SpotiWeb/releases/download/v0.5.0/SpotiWeb-linux-x64.tar.gz. Por lo que la url usa un sistema de tres cifras para las versiones, lo cual debemos tener en cuenta para nuestro script.

Si bien usa estas tres cifras, las versiones, como podéis comprobar en la página releases, estas  son tal que así: 0.1, 0.2, 0.3, 0.4, 0.5…De modo que la tercera cifra siempre será cero en las urls. Esto nos va a ahorrar un bucle en nuestro script. Aquí lo tenéis,  lo he llamado actualizar_spotiweb.sh:

Lo primero, yo tengo SpotiWeb en el directorio /opt/SpotiWeb-linux-x64. Por otro lado tengo, para facilitar la explicación, también en /opt, un directorio llamado actualizar_spotiweb donde alojo el script y realizo la descarga y descompresión de la última versión de SpotiWeb.

Lo que vamos a hacer con el script es evaluar una url con una versión concreta y ver si existe (se supone que no sabemos cual es la versión que queremos descargar). Si es así descargaré el archivo, lo descomprimiré y sobrescribiré la instalación existente. Tras ello borraré los archivos descargados y descomprimidos.

Como antes se vio, los enlaces de descargas tienen un control de versiones de tres cifras en la url del tipo v0.5.0, pero que la última cifra siempre es cero. Así que sólo necesitaremos generar las dos primeras cifras, la última la establecemos a cero. Necesitamos entonces dos bucles for que van de 0 a 9 para ir recorriendo así las versiones desde la 0.0.0 a la 9.9.0. Dado que quiero descargar la última versión disponible, empezaré desde la 9.9.0, osea los bucles empiezan en 9 y acaban 0  y en cada iteración se resta una unidad.

Para un control de errores, en el segundo bucle empiezo comprobando si ya he descargado el archivo comprimido, si bien no es necesario pues al final elimino los archivos. Si el archivo no existe entonces compruebo si existe una url para esa versión del archivo mediante curl:

La primera comprobación se hará para los valores $i=9 y $j=9 dando como resultado

Así si existe una versión 9.9.0  para su descarga, entonces con wget la descargo, luego la descomprimo con tar y finalmente copio el contenido del directorio descomprimido al directorio de mi instalación de SpotiWeb sobrescribiendo así su contenido. Tras esto borro los archivos descargados y descomprimidos.

Si he realizado estos pasos, y dado que los bucles empiezan desde 9, habré descargado la versión más alta. Es decir no necesitaré descargar más versiones y con exit mando a salir del script. En cambio si esto no ha sucedido sigo comprobando urls hasta dar con una que si tenga versión para descargar.

Si queréis probar el script y ver lo que va pasando en la consola, podéis descomentar los echo, para que lance los mensajes.

Por último para que esta tarea se ejecute de manera desatendida la agregaremos a nuestras tareas programadas en el contrab. Así que ejecutamos.

Y añadimos al archivo lo siguiente:

Con lo que todos los domingos a la 9 de la mañana se ejecutará el script. Por su puesto podéis modificar la programación y hacer que se ejecute en cada reinicio por ejemplo:

Bueno con esto ya podemos olvidarnos de si SpotiWeb esta actualizado o no. ?


1 thought on “Instalación y actualización automática de SpotiWeb”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *