[LINUX] comment auto updater une appimage ?
polomi6
2022-02-13 15:23:33
je suis un total noob en linux mais je voulais creer un alias qui fait un wget sur le lien du bouton download de Godot par exemple https://downloads.tuxfamily.org/godotengine/3.4.2/Godot_v3.4.2-stable_x11.64.zip
mais comme on peux le voir ca met un numero de version dans le lien.. numéro de version qui ne change jamais
j'ai voulu comme un noob remplacer a la place des numero de versions sur le lien mettre des ? mais evidemment ca fonctionne pas
comment je pourrais faire pour que le lien soit toujours celui de la derniere version?
merci
TraficDeMeta-
2022-02-13 15:25:56
Parser la page web ?
Édit : tu as pas un lien "latest version" que les dev mettent à jour ?
polomi6
2022-02-13 15:26:23
Le 13 février 2022 à 15:25:56 :
Parser la page web ?
c'est quoi j'y connais pas grand chose
polomi6
2022-02-13 15:30:07
il y a ce lien
https://godotengine.org/download
mais si tu fais un clic droit copier l'adresse du lien comme j'ai fait ben ca donne un numero de version defini a chaque fois
du coup faudrait une commande qui recupere le dernier lien a chaque fois
ubunchu
2022-02-13 15:34:19
tu dois créer un petit script je pense, install python et avec html.parser ( pas besoin de library externe ) tu lis la page HTML généré en donnant l'url, tu récupères la valeur du "href" de la balise <a> qui se trouve dans la div.class "btn split download" et tu auras toujours le dernier lien
polomi6
2022-02-13 15:40:14
Le 13 février 2022 à 15:34:19 :
tu dois créer un petit script je pense, install python et avec html.parser ( pas besoin de library externe ) tu lis la page HTML généré en donnant l'url, tu récupères la valeur du "href" de la balise <a> qui se trouve dans la div.class "btn split download" et tu auras toujours le dernier lien
ok j'y connais absolument rien mais je vais jeter un oeil
polomi6
2022-02-13 15:40:39
merci pour vos réponses
polomi6
2022-02-13 15:53:46
je sais meme pas comment ca fonctionne html parse je vois que je l'ai quand je fais un pip --list
mais j'arrive pas a le lancer
polomi6
2022-02-13 16:02:15
je dois être un trop low iq pour ca
polomi6
2022-02-13 16:41:08
je suis désolé j'ai pas compris
polomi6
2022-02-13 16:51:09
si quelqu'un arrive a m'éclairer un peu plus j'en serai ravi
Azerban
2022-02-13 16:56:44
Il faut télécharger le HTML de la page et parser le HTML en identifiant le sélécteur CSS qui pointe vers ton anchor. Ensuite tu extrais le href (hyperlien) et tu le passes à la commande wget.
Azerban
2022-02-13 17:12:32
Tu peux taper cette commande dans ton terminal :
wget $(curl -s https://godotengine.org/download/linux | hxnormalize -x 2>&1 | hxselect 'div.btn.split.download a' | tr " " "\n" | sed -n 's/.*href="\([^"]*\).*/\1/p' | head -n 1) && echo "Dernière version de Godotengine téléchargée avec succès !"
Il faut juste installer un petit parseur de HTML en ligne de commande avant de lancer la commande :
sudo apt install html-xml-utils
Azerban
2022-02-13 17:19:54
Encore mieux :
wget $(curl -s https://godotengine.org/download/linux | hxnormalize -x 2>&1 | hxselect 'div.btn.split.download:first-of-type a' | sed -n 's/.*href="\([^"]*\).*/\1/p') && echo "Dernière version de Godotengine téléchargée avec succès !
polomi6
2022-02-13 17:28:27
merci beaucoup .. meme si j'essaie de comprendre la commande et ca me parait compliqué
il manque une guillemet par contre a la fin de la commande
je vois que j'ai encore du boulot
Azerban
2022-02-13 17:31:04
Le 13 février 2022 à 17:28:27 :
merci beaucoup .. meme si j'essaie de comprendre la commande et ca me parait compliqué
il manque une guillemet par contre a la fin de la commande
je vois que j'ai encore du boulot
Correction :
wget $(curl -s https://godotengine.org/download/linux | hxnormalize -x 2>&1 | hxselect 'div.btn.split.download:first-of-type a' | sed -n 's/.*href="\([^"]*\).*/\1/p') && echo "Dernière version de Godotengine téléchargée avec succès !"
polomi6
2022-02-13 17:32:16
mais en meme temps je comprend meme pas curl et pareil les command $(autrecommande) j'ai pas compris ce que ca signifiait.. les autres metacaractères je pige mais pas encore ca
polomi6
2022-02-13 17:33:23
je vais reviser un peu ce que je suis surement censé connaitre apres un an de linux daily
Azerban
2022-02-13 17:38:06
curl c'est une commande qui te permet de télécharger le HTML d'une page web (l'option -s pour silent, on masque les données du téléchargement comme la vitesse de transfert, la taille du html, etc...)
hxnormalize c'est un utilitaire en ligne de commande qui créé un arbre syntaxique pour parser le HTML téléchargé précédemment
hxselect permet sélectionner le nœud de l'arbre syntaxique (tag) qui nous intéresse en utilisant un sélecteur CSS
sed permet de nettoyer le tag (enlever les balises <a ... > pour ne conserver que le lien (https:// ...)
&& exécute la commande suivante si le code d'erreur de la commande précédente équivaut à 0 (aucune erreur)