Publicado el :
Utilidad del sistema CREATION_INTERNE

Macro mp_gitstatus: Recuperación del estado de un repositorio Git

Este código también está disponible en: Deutsch English Français
En espera de validación
La macro utiliza las funciones nativas de interfaz Git de SAS© (`git_status`, `git_status_get`) para obtener el número de archivos modificados en un directorio objetivo. Luego itera sobre estos archivos para extraer su ruta, su estado (staged) y su situación (modificado, nuevo, eliminado), gestionando también los casos de error relacionados con la librería libgit2.
Análisis de datos

Type : CREATION_INTERNE


Los datos se generan directamente mediante llamadas a las funciones del sistema SAS Git a partir de la ruta del directorio proporcionada.

1 Bloque de código
DATA STEP Data
Explicación :
Inicializa la tabla de salida, verifica la disponibilidad de Git a través de `git_status`, e itera sobre los archivos detectados para extraer sus metadatos a través de `git_status_get`.
¡Copiado!
1DATA &outds;
2 LENGTH gitdir path $ 1024 STATUS $ 64 STAGED $ 32;
3 call missing (of _all_);
4 gitdir=symget('gitdir');
5 cnt=git_status(trim(gitdir));
6 IF cnt=-1 THEN DO;
7 put "The libgit2 library is unavailable...";
8 END;
9 ELSE IF cnt=-2 THEN DO;
10 put "The libgit2 library is available, but...";
11 END;
12 ELSE DO n=1 to cnt;
13 rc=GIT_STATUS_GET(n,gitdir,'PATH',path);
14 rc=GIT_STATUS_GET(n,gitdir,'STAGED',staged);
15 rc=GIT_STATUS_GET(n,gitdir,'STATUS',STATUS);
16 OUTPUT;
17 /* Debug log si activé */
18 END;
19 rc=git_status_free(trim(gitdir));
20 drop rc cnt;
21RUN;
Este material se proporciona "tal cual" por We Are Cas. No hay garantías, expresas o implícitas, en cuanto a la comerciabilidad o idoneidad para un propósito particular con respecto a los materiales o el código contenidos en este documento. We Are Cas no es responsable de los errores en este material tal como existe ahora o existirá, ni We Are Cas proporciona soporte técnico para el mismo.