[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 :o)) 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 :o))

polomi6
2022-02-13 16:41:08

je suis désolé j'ai pas compris :snif:

polomi6
2022-02-13 16:51:09

si quelqu'un arrive a m'éclairer un peu plus j'en serai ravi :coeur:

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é :rire:

il manque une guillemet par contre a la fin de la commande :o))
je vois que j'ai encore du boulot :mort:

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é :rire:

il manque une guillemet par contre a la fin de la commande :o))
je vois que j'ai encore du boulot :mort:

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

:snif:

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)

Infos
Gestion du forum

contact@geevey.com

API disponible. Utilisez le paramètre "api" en GET, peu importe le contenu, sur une page du site.

Notes

    ⚠️ Les archives de novembre sont désormais disponibles.
Non-assumage
    Personne n'a pas assumé de topic pour le moment.