Script dans le Client de ligne de commande interplateforme pour Team Foundation Server
Voulez-vous automatiser des tâches, telles que la vérification et l'extraction du code source ? Vous pouvez utiliser l'automation externe ou interne pour accomplir les tâches. D'abord, examinons ces deux modes d'automation. Ou, vous pouvez passer directement au pour et contre.
Automatisation externe
L'automatisation externe configure un autre processus pour appeler l'outil de ligne de commande tf à plusieurs reprises avec les arguments entièrement contextuels chaque fois. Vous n'avez besoin d'aucune syntaxe spéciale pour activer ce mode. Vous pouvez utiliser l'un des processus externes suivants pour appliquer cette méthode :
Shell Unix, tel que sh, ksh, bash ou csh
Perl ou un autre langage de programmation qui est utilisé pour le script
Apache Ant ou un autre outil orienté build
Un autre outil qui peut démarrer le programme tf et fournir les arguments
Automatisation interne
L'automatisation interne configure l'outil en ligne de commande tf pour piloter le processus d'automatisation et interpréter un fichier de commandes passé comme argument. Vous pouvez appeler l'automation interne en fournissant le symbole @ suivi immédiatement d'un chemin d'accès local à un fichier de commandes. Tous les arguments supplémentaires que vous fournissez dans cette ligne de commande sont disponibles pour les commandes dans le fichier de commandes sous forme d'arguments de position.
Notes
Pour traiter l'entrée standard comme votre fichier de commandes, fournissez le symbole @ sans nom de fichier après.Le flux d'entrée est interprété comme du texte selon l'encodage par défaut et le jeu de caractères de votre plateforme.
Le fichier de commande suivant obtient la version spécifiée d'un fichier et imprime les données historiques détaillées à propos de cette version.
# This line is ignored because it is a comment.
get "-version:%2" -force "%1"
history -format:detailed "-version:%2" "%1"
Le fichier de commandes, nommé /home/john/get-and-history.tfc, attend deux arguments de position, vous pouvez l'exécuter comme indiqué dans l'exemple suivant :
tf @/home/john/get-and-history.tfc README.doc C5087
Le premier argument, README.doc, est remplacé pour %1 lorsque chaque ligne est interprétée. %2 est remplacé par C5087.
Notes
Dans le fichier de commandes, les deux arguments de position sont placés entre guillemets doubles car leurs valeurs substituées peuvent contenir des espaces (par exemple, un nom de fichier ou une spécification de version de date).
Le format du fichier de commandes peut être décrit par la forme Backus-Naur (EBNF) étendue :
command file ::= { line } ;
line ::= comment line | blank line | action line , EOL ;
comment-line ::= "#" | "rem" , { ? any non-EOL character ? } ;
blank line ::= { ? any whitespace character ? };
action line ::= tf command , [ { white space , tf option } ] , [ { white space , tf free argument } ] ;
tf command ::= ? any tf command ?
tf option ::= ? any tf option ? | positional argument ;
tf free argument::= ? any tf free argument ? | positional argument ;
positional argument::= "%" , non-zero digit , [ { digit } ] ;
EOL ::= ? your platform's EOL character or sequence ?
white space ::= { ? any non-EOL whitespace character ? }
digit ::= "0" | "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
non-zero digit ::= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" ;
tf command peut être n'importe quelle commande valide tf, telle que get, workfold et workspace.
tf option peut être n'importe quelle option valide tf, telle que -login, -profile et -format.
tf free argument peut être une chaîne qui est conçue comme un argument libre pour tf, tel qu'un chemin d'accès au serveur et un chemin d'accès local.
positional argument est un espace réservé pour le texte qui est remplacé à partir d'arguments de ligne de commande externe tf . Le nombre est un entier positif qui correspond à l'index de l'argument de ligne de commande que vous souhaitez remplacer, par exemple « %1 » et « %2 ». %1 fait référence au premier argument. Vous pouvez utiliser des arguments de position comme options ou arguments libres et dans n'importe quel ordre après la commande.
Notes
Utilisez des guillemets doubles pour délimiter les options et les arguments qui contiennent des espaces.Par exemple, utilisez “-version:LRelease 2.1” pour un spécificateur d'étiquette, “$/Inventory/Client Project/main.c” pour un argument libre et « %1 » pour un argument de position qui peut contenir des espaces.Seules les guillemets doubles dénotent des limites d'option dans les fichiers de commandes.Les guillemets simples sont interprétées littéralement.Pour spécifier un guillemet double littéral dans votre ligne d'action, vous devez utiliser deux guillemets doubles ensemble ("").Les règles de mise entre guillemets dans les fichiers de commandes peuvent différer des règles que le shell utilise, car il n'analyse pas les lignes du fichier de commandes.
Avantages et inconvénients des deux méthodes
Quelle méthode devez-vous utilisez (automation interne ou externe ?) Examinons les avantages et les inconvénients de chaque méthode :
Automatisation externe |
Automatisation interne |
|
Avantages |
|
|
Cons |
|
Il est moins flexible que l'automatisation externe. Voici pourquoi :
|