FTPRush client FTP et FXP : fonctions avancées

I. Introduction aux fonctions de FTPRush

Ce tutoriel est le deuxième concernant ce très bon logiciel client FTP/FXP qu'est FTPRush. Le premier traitait de l'installation, et vous expliquait comment bien débuter avec FTPRush. Dans celui-ci, nous allons voir des fonctions plus avancées comme le "script designer" qui font que ce logiciel FTP est aussi et surtout intéressant.

II. Explications

Étape 1 : Les commandes prédéfinies

Si vous allez dans le menu "Outils", puis "Commande", vous verrez que vous avez des commandes prédéfinies, ce qui peut être très pratique lorsque vous vous connectez régulièrement à des serveurs FTP de types : glFTPd, ioFTPD, RaidenFTPD, Serv-U...

tuto ftprush scripts commandes image 1

Mais ce qui est encore mieux, c'est que vous pouvez définir vos propres serveurs FTP et vos propres commandes pour ainsi gagner du temps sur les commandes que vous utilisez régulièrement.

Je vais prendre un exemple assez simple à comprendre. Admettons, par exemple, que j'utilise souvent la commande "help" pour avoir de l'aide sur les commandes disponibles des FTP. Je vais aller dans le menu "Outils", puis "Commandes Designer" (ou alors en faisant F4 directement) :

tuto ftprush scripts commandes image 2

Faites alors un clic droit sur "Commandes FTP" à gauche, "Nouveau" puis "Nouvelle commande" :

tuto ftprush scripts commandes image 3

Vous obtiendrez cette fenêtre dans laquelle vous devrez choisir un nom pour votre commande (1), taper la commande qui s'éxécutera (2), et un raccourci éventuellement qui sera pratique si c'est une commande que vous utilisez beaucoup :

tuto ftprush scripts commandes image 4

Fermez la fenêtre une fois que avez rentré votre commande, et enregistrez les changements lorsqu'une fenêtre vous le demandant apparaîtra.
Ensuite, connectez vous à un serveur FTP et allez dans le menu "Outils" puis "Commande", vous devriez alors avoir votre nouvelle commande créée et vous pouvez cliquer dessus :

tuto ftprush scripts commandes image 5

On voit que le fait de cliquer dessus éxécute bien la commande, donc ça fonctionne, on pourrait imaginer des commandes beaucoup plus complexes lançant des transferts, etc.

tuto ftprush scripts commandes image 6



Étape 2 : Le script designer et les scripts

Si vous allez dans le menu "Outils" puis "Script Designer", vous allez voir quelque chose d'assez extraordinaire (ou qui ne veut rien dire suivant les points de vue :-).
Il s'agit du script designer, un espace dédié à écrire des scripts persos pour FTPRush. Ce scripts doivent être écrits en Pascal et vont permettre d'étendre les possibilités du logiciel.

tuto ftprush scripts commandes image 7

Nous allons voir un peu comment s'en servir maintenant, mais sachez tout d'abord que si vous vous baladez dans le répertoire d'installation de FTP Rush, vous aurez deux types de fichiers en rapport avec ces scripts : les fichiers sources des scripts d'extension .PAC, et les fichiers compilés des scripts qui portent l'extension .PCC.

Une fois le script desginer ouvert, vous verrez qu'il contient déjà du code, qui est là à des fins de démonstration plus qu'autre chose. Il contient 3 procédures et le point d'entrée de l'éxécution du script. Ce qui est appelé procédure, c'est tout simplement une fonction. Voici un exemple de procédure que vous avez par défaut :

tuto ftprush scripts commandes image 8

Pour pouvoir écrire ces scripts, il va vous falloir quelques notions de Pascal / Delphi, c'est ce que nous allons voir par la suite.

Les variables

Les noms des variables, fonctions, procedures, etc. doivent respecter certaines règles. Ils doivent par une lettre comprise entre A et Z et ne contenir que des lettres, chiffres ou tirets bas '_' . Ils ne peuvent pas contenir d'autres caractères ou d'espace. Vous n'êtes pas obligé de déclarer le type de variable. Exemple :
var Message;
Message = 'Bonjour tout le monde';

Déclaration de chaînes de caractères

En Pascal, les déclarations doivent se faire avec :=, et la déclaration de chaines de caractères (string) se fait avec des simple quotes ' et non des guillemets. Exemple :
Message_erreur := 'Il y a eu une erreur';

Commentaires

Le commentaires se font avec les caractères suivant :
// commentaire
(* commentaire *)
{ commentaire }

Tableaux

Vous pouvez construire des variables de types tableaux avec les caractères [ et ]. Petit exemple qui sera plus parlant que des explications :
ChiffresPairs := [ 2,4,6,8 ];
ChiffrePair3 := ChiffresPairs[2]; // Ici ChiffrePair3 recevra la valeur 6

Les conditions if

Les conditions s'expriment par les instructions if...then..else (ou if...then tout court), qui veut dire : SI condition1 est vraie ALORS execute ce code SINON execute cet autre code.
Exemple qui vérifie qu'un nombre i est différent de 0 avant de diviser j par i :

if i <> 0 then
begin
Result := j/i;
end

Les boucles while, repeat, for

Une boucle while est utile pour répéter un bloc d'instructions tant qu'une condition est vraie, le contrôle étant effectué avant le bloc d'instructions. Quant à la boucle repeat, elle sert à répéter un bloc d'instruction tant qu'une condition retourne un booléen true, le contrôle étant effectué après le bloc d'instructions.
La boucle for sert à exéctuer un bloc d'instruction tant qu'un compteur n'a pas atteint une certaine valeur, le compteur s'incrémentant ou se décrémentant à chaque occurence de la boucle. Cela peut paraître compliqué exprimé comme ça, mais vous devriez comprendre avec les exemples.

Une boucle while qui lit les lignes d'un fichiers tant qu'on est pas à la fin de celui-ci :

while not Eof(InputFile) do
begin
Readln(InputFile, Line);
Process(Line);
end;

Une boucle repeat qui affiche toujours le même message tant qu'on a pas entrer un chiffre :

repeat
Write('Entrez un chiffre entre 0 et 9: ');
Readln(I);
until (I >= 0) and (I <= 9);

Les fonctions et procédures

Dans les déclarations des fonctions ou procédures, vous n'avez également pas besoin de déclarer de types de variables. Dans une fonction, il peut y avoir des variables passées en paramètres ou non, et une valeur de retour ou non.
Exemple d'une fonction qui renvoie le plus grand nombre entre A et B :

function Max(A,B);
begin
if A>B then
result:=A
else
result:=B;
end;

Tout cela devrez déjà vous permettre d'écrire quelques scripts sympathiques. Vous pouvez pour cela vous servir de l'objet Rushapp, qui supporte les fonctions suivantes pour le moment :
RushApp.FTP.Login, RushApp.FTP.CWD, RushApp.FTP.Transfer, RushApp.FTP.Delete, RushApp.FTP.Logout, RushApp.FTP.RAW, RushApp.FTP.RemoveQueue

Voici un exemple extrait de l'aide de FTPRush qui permet d'envoyer une fenêtre qui vous demande un FTP en favoris et fait se connecter à ce favori :

defBookmark := '';
if inputQuery('Entrer un ftp en favoris', 'favoris', defBookmark) then
RushApp.FTP.CWD('', defBookmark, RS_BOOKMARK);

On peut donc faire un tas de scripts intéressants, dont le lancement peut être effectué partir de Mirc ou autre client irc, à l'aide d'une DLL complémentaire : rushmirc.dll.
Pour ma part, je n'irais pas plus loin dans cette intéraction car ce n'était pas le but du tutoriel, et puis sachez que ces fonctionnalités sont en partie bloquées en version d'évalutation telle que celle que j'ai. Il vous faudra une licence pour pousser un peu plus, voir sur le site officiel.

III. Conclusion du tutorial

Voilà, vous devriez en savoir un peu plus sur les fonctionnalités avancées de FTPRush, qui peuvent être très pratiques une fois qu'on a appris à s'en servir. Je vous ai principalement parlé des fonctions qu'on trouve très rarement dans un client FTP/FXP de ce genre sous Windows, en supposant que vous savez déjà vous servir d'un client FTP. C'est un logiciel qui offre bien plus de possibilités, mais maintenant vous en savez assez pour pouvoir pousser les rechercher par vous-mêmes je pense.