Publié le :
Administration CREATION_INTERNE

Staging de fichiers Git

Ce code est également disponible en : Deutsch English Español Français
Attention : Ce code nécessite des droits administrateur.
La macro `%mp_gitadd` est conçue pour automatiser l'opération de staging de fichiers dans un dépôt Git. Elle prend en entrée le chemin du répertoire Git (`gitdir`), un jeu de données (`inds`) contenant la liste des fichiers à considérer (généralement issu de la macro `mp_gitstatus`), et un indicateur de débogage (`mdebug`). Pour chaque fichier du jeu de données `inds` dont le statut 'STAGED' n'est pas 'TRUE', la macro appelle la fonction `git_index_add`. Cette fonction intègre le fichier au sein de l'index Git, le marquant ainsi comme prêt pour le prochain commit. En cas d'erreur de la fonction `git_index_add` ou si le mode débogage est activé, le code de retour de l'opération est affiché dans le log SAS©.
Analyse des données

Type : CREATION_INTERNE


La macro utilise un jeu de données d'entrée (`inds`, par défaut `work.mp_gitadd`) qui est attendu comme étant créé et géré au sein de la session SAS, par exemple, par une autre macro telle que `mp_gitstatus`. Il ne s'agit pas de données provenant directement de fichiers externes au format non-SAS (comme des fichiers plats ou des bases de données externes).

1 Bloc de code
DATA STEP
Explication :
Ce bloc `DATA _NULL_` parcourt les observations du jeu de données d'entrée spécifié par `&inds`. Pour chaque observation, il vérifie si la variable `STAGED` n'est pas égale à 'TRUE'. Si cette condition est remplie (le fichier n'est pas encore staged), il invoque la fonction `git_index_add`. Cette fonction est chargée d'ajouter le fichier (identifié par `cats(path)`) depuis le répertoire Git (`&gitdir`) avec son `status` à la zone de staging de Git. Le code de retour (`rc`) de `git_index_add` est capturé. Si `rc` est différent de zéro (indiquant une erreur) ou si la variable macro `&mdebug` est égale à 1, la valeur de `rc` est écrite dans le log SAS à des fins de diagnostic.
Copié !
1DATA _null_;
2 SET &inds;
3 IF STAGED ne "TRUE";
4 rc=git_index_add("&gitdir",cats(path),STATUS);
5 IF rc ne 0 or &mdebug=1 THEN put rc=;
6RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.