# Procesos AGIP

Aplicaciones en Go para la descompresión y formateo de archivos planos de AGIP, preparándolos para su carga en Informix.

---

## Entorno (ENV)

En este archivo se encuentran las **variables de entorno** utilizadas por las aplicaciones en Go para obtener las rutas de los distintos archivos necesarios.

---

## Aplicaciones

### Go-unrar

Esta aplicación se encarga de descomprimir los archivos `.rar` proporcionados por AGIP.

### Go-proceso-env

Esta aplicación formatea los archivos planos descomprimidos según el número de **Tipo de Registro** (el primer ID de cada registro) y los agrupa en archivos `.txt` según su respectivo Tipo de Registro.

---

## Compilación (Build)

Para crear el archivo ejecutable, utiliza el siguiente comando. Ten en cuenta que, para garantizar la compatibilidad con Linux, es ideal compilarlo desde la terminal de WSL (Windows Subsystem for Linux).

### Acceder a la terminal de Linux desde Windows

```bash
wsl
```

### Compilar el archivo

```bash
go build -o nombre_ejecutable aplicacion/src/main.go
```

---

## Archivo CRON.bash

El archivo `CRON.bash` es el encargado de ejecutar las siguientes tareas:

1. Eliminar los archivos `.txt` ya utilizados.
2. Ejecutar las aplicaciones en Go.
3. Mover los archivos `.rar` a la carpeta de historial.

---

## Configuracion del CRON

El cron debe ejecutar el archivo cron.bash con SUDO, el dia 18 de cada mes.

```bash
0 6 18 * * root /bin/bash /root/procesos-agip/cron.bash
```

---

## Permisos de Ejecucion

Otorgar permisos de ejecucion a los 3 archivos (cron.bash - go-proceso-linux - go unrar-linux)

```bash
chmod +x cron.bash go-proceso-linux go-unrar-linux
```
