LolYangccool Posted August 4, 2021 Share Posted August 4, 2021 (edited) Bonjour, J'aimerai créer un script qui puisse afficher une liste de choix de fichier à télécharger. Par exemple, en tapant 1, le choix un serait sélectionné et déclencherai le téléchargement du fichier correspondant sur un serveur web. Les URLS correspondantes pourraient soient être indiquées en dur dans le script, ce qui m'obligerai à le mettre à jour régulièrement, ou, et c'est la solution que je préfèrerai, le scirpt scannerai le serveur web et afficherai les fichiers à télécharger sous la fome : 1) Fichier 1 2) Fichier 2 etc... Les fichiers seraient soit des .zip, soit des applications au format .app, soit d'autres (ipsw par exemple). Le but est de me faire un script pour accéder à mes macOS, et ipsw d'iOS entre autres. Je sais déjà récupérer mes fichiers via scp depuis mes Mac (ou Linux), mais je ne sais pas faire de choix, je suis tombé sur un outil qui s'appelle Display je crois, et qui permet d'afficher des choix sur fond bleu comme j'ai déjà rencontré plein de fois sur Linux, mais c'est dispo que sur Linux et surtout, ça implique d'installer cet outil sur tous les Mac ou j'utiliserai le script. J'aimerai quelques chose de natif. Obtenir quelque chose dans ce style là ça serait top (je n'ai pas forcément besoin des dates d'ajouts, juste le nom ça m'irait) : Si quelqu'un se sens chaud de m'aider... Merci. Edited August 4, 2021 by LolYangccool Quote Link to comment Share on other sites More sharing options...
clive-guilde Posted August 5, 2021 Share Posted August 5, 2021 (edited) Salut @LolYangccool Vaste programme Tu souhaites utiliser quel langage ? Il y a 15 heures, LolYangccool a dit : J'aimerai créer un script qui puisse afficher une liste de choix de fichier à télécharger. Pour faire une liste de choix, généralement c'est le couple de commande switch / case qu'il faut utiliser. Je veux bien essayer de t'aider dans la mesure de mes petits moyens 😉 Edited August 5, 2021 by clive-guilde Quote Link to comment Share on other sites More sharing options...
LolYangccool Posted August 5, 2021 Author Share Posted August 5, 2021 En fait j’osais espérer, peut-être à tord, que ce soit faisable via un script shell. Je ne sais pas programmer en Python ou autre même si j’ai des notions. Quote Link to comment Share on other sites More sharing options...
clive-guilde Posted August 5, 2021 Share Posted August 5, 2021 Si c'est réalisable en shell. regarde l'exemple donné sur ce site, c'est exactement ce que tu souhaites faire. switch-case-in-shell Quote Link to comment Share on other sites More sharing options...
pehache Posted August 7, 2021 Share Posted August 7, 2021 Tout ça peut se faire en Shell script. Comment tu accèdes au serveur pour lister les fichiers ? Uniquement en http ? Ou ssh possible ? Quote Link to comment Share on other sites More sharing options...
LolYangccool Posted August 7, 2021 Author Share Posted August 7, 2021 http dispo et SSH aussi. J'aimerai éviter le SSH (par mesure de sécurité) mais si c'est indispensable je peux passer par là. Quote Link to comment Share on other sites More sharing options...
pehache Posted August 8, 2021 Share Posted August 8, 2021 (edited) Lister des fichiers sur un serveur distant est quand même plus facile en ssh... Au pire en sftp... Voilà un exemple de script qui marche. Comme souvent, le plus pénible en shell script c'est la gestion des espaces éventuels dans les noms de fichiers. Ici je suppose que tous les fichiers sont dans un même dossier (on peut adapter facilement pour plusieurs dossiers ou une arborescence) #!/bin/bash # on recupere le contenu du dossier et on le met dans un fichier texte ssh localhost ls SynologyDrive/Labo/LLYCC/TOTO > liste.txt noms=() #initialisation d'un tableau vide n=0 # boucle qui lit toutes les lignes et remplit le tableau des noms while read line ; do ((n++)) echo $n" : "$line noms+=("$line") done < liste.txt # note : en local il suffirait de faire noms=(SynologyDrive/Labo/LLYCC/TOTO/*) # a la place de tout ce qu'il y a au-dessus echo echo "Votre choix ?" read choix ((choix--)) # decremente de 1 car les index des tableaux bash commencent a 0 file=${noms[$choix]} file=${file// /\\ } # regle de substition bash qui "echappe" les espaces dans le nom # (remplacement des " " par des "\ ", necessaire pour le scp qui suit) scp localhost:"SynologyDrive/Labo/LLYCC/TOTO/$file" . Par contre s'il y a un accès http, pourquoi ne pas utiliser directement l'URL du dossier qui contient les fichiers ? Si ce dossier ne contient pas de fichier "index.*" le serveur renvoie le contenu du dossier et il suffit de cliquer sur un fichier pour le télécharger. Et aucun besoin de script. Edited August 11, 2021 by pehache Quote Link to comment Share on other sites More sharing options...
LolYangccool Posted August 8, 2021 Author Share Posted August 8, 2021 Merci pehache. Pourquoi ne pas utiliser le listing apache ? Parce que les .app sont vu comme des dossiers, il n'y a que sur macOS que le .app est géré comme un fichier. De base les fichiers ne sont pas sur un serveur web. Ils sont stocké sur le NAS dans un dossier partagé nommé « OSes » de cette façon : Et puis à terme, pourquoi ne pas automatiser, scripter les téléchargements etc... Quote Link to comment Share on other sites More sharing options...
pehache Posted August 8, 2021 Share Posted August 8, 2021 S’ils sont dans un dossier partagé, pas besoin de ssh/SCP en fait ? Quote Link to comment Share on other sites More sharing options...
LolYangccool Posted August 8, 2021 Author Share Posted August 8, 2021 Oui ils sont bien dans un dossier partagés. Mais une interface avec arborescence ça serai cool, pour gérer les différents OS. Quote Link to comment Share on other sites More sharing options...
pehache Posted August 9, 2021 Share Posted August 9, 2021 J'avoue ne pas bien comprendre ce que tu cherches à faire, alors que tout est accessible par le Finder... Quote Link to comment Share on other sites More sharing options...
LolYangccool Posted August 9, 2021 Author Share Posted August 9, 2021 Le but c'est de pouvoir les récupérer à distance en quelques secondes/clics, par internet donc. Quote Link to comment Share on other sites More sharing options...
pehache Posted August 10, 2021 Share Posted August 10, 2021 Ok, donc sans avoir accès directement au dossier partagé. Ce n’était pas très clair. Le script que j’ai mis peut servir de base et être amélioré. Mais une autre solution c’est un accès sftp. Un client comme Filezilla sait récupérer un dossier complet. Quote Link to comment Share on other sites More sharing options...
clive-guilde Posted August 11, 2021 Share Posted August 11, 2021 (edited) Il y a 21 heures, pehache a dit : Un client comme Filezilla sait récupérer un dossier complet. Oui ce logiciel est vraiment top, open-source, multiplateforme et simple à utiliser. Le 10/08/2021 à 00:10, pehache a dit : J'avoue ne pas bien comprendre ce que tu cherches à faire Oui je suis d'accord. C'est difficile de t'aider @LolYangccool sans connaitre plus ton projet ... Edited August 11, 2021 by clive-guilde Quote Link to comment Share on other sites More sharing options...
LolYangccool Posted August 11, 2021 Author Share Posted August 11, 2021 FileZilla je connaîs bien. Il a une interface vieillotte, en général j’utilise transmit sur Mac mais les dernières version demandent sans arrêt le mot de passe à chaque dossier accédé et ça a tendance à m’énerver. Le but c’est juste de pouvoir télécharger rapidement un os complet à la façon du script dont j’ai mis un screenshot ci-dessus. Quote Link to comment Share on other sites More sharing options...
pehache Posted August 11, 2021 Share Posted August 11, 2021 (edited) il y a une heure, LolYangccool a dit : FileZilla je connaîs bien. Il a une interface vieillotte, en général j’utilise transmit sur Mac mais les dernières version demandent sans arrêt le mot de passe à chaque dossier accédé et ça a tendance à m’énerver. Du coup mieux vaut l'interface viellotte qui fonctionne bien 😛 il y a une heure, LolYangccool a dit : Le but c’est juste de pouvoir télécharger rapidement un os complet à la façon du script dont j’ai mis un screenshot ci-dessus. J'ai commenté un peu mon script aussi Edited August 11, 2021 by pehache Quote Link to comment Share on other sites More sharing options...
LolYangccool Posted August 11, 2021 Author Share Posted August 11, 2021 Il y a 3 heures, pehache a dit : Du coup mieux vaut l'interface viellotte qui fonctionne bien 😛 Oui je suis passé sur FileZilla sur Mac, je l'utilisais uniquement sur Windows et Linux auparavant. Mais l'interface n'évolue pas, franchement c'est dommage, elle fait pas moderne, mais il a des qualités ce logiciel c'est sur. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.