Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EnvJSON Utilities

Este repositorio contiene una colección de utilidades para convertir entre variables de entorno y formato JSON, facilitando la gestión de configuraciones en diferentes entornos.

Contenido

  • e2j.sh - Script Bash para convertir variables de entorno a JSON
  • j2e.sh - Script Bash para convertir JSON a variables de entorno
  • envjson.py - Módulo Python para conversiones bidireccionales con soporte para snapshots

Requisitos

  • Para los scripts Bash:
    • Bash 4+
    • El script j2e.sh requiere jq
  • Para el módulo Python:
    • Python 3.6+

Instalación

Clona este repositorio o descarga los archivos individuales:

git clone https://github.com/tuusuario/envjson-utilities.git
cd envjson-utilities
chmod +x e2j.sh j2e.sh envjson.py

e2j.sh

Convierte variables de entorno a formato JSON.

Uso

./e2j.sh [-g patron]

Opciones

  • -g patron: Solo incluye variables que coincidan con el patrón (expresión regular)
  • -h: Muestra ayuda

Ejemplos

# Convertir todas las variables de entorno a JSON
./e2j.sh > variables.json

# Convertir solo variables que contengan PATH
./e2j.sh -g PATH > path_variables.json

# Convertir variables que empiecen con USER o HOME
./e2j.sh -g "^(USER|HOME)" > user_variables.json

# Combinar con jq para filtrar y formatear el resultado
./e2j.sh | jq '.PATH, .HOME'

j2e.sh

Convierte un archivo JSON a variables de entorno.

Uso

cat archivo.json | ./j2e.sh [-f archivo_salida]

Opciones

  • -f archivo: Añade las variables al final del archivo especificado
  • -h: Muestra ayuda

Ejemplos

# Cargar variables en el entorno actual
cat config.json | ./j2e.sh

# Añadir variables al final de .zshrc
cat config.json | ./j2e.sh -f ~/.zshrc

# Convertir y guardar en un script para uso posterior
cat config.json | ./j2e.sh -f variables.sh

# Utilizar con redirección
./j2e.sh -f ~/.bashrc < config.json

envjson.py

Módulo Python para convertir entre variables de entorno y JSON, con soporte para snapshots de variables internas de módulos.

Uso como script

python envjson.py {e2j|j2e} [opciones]

Opciones

  • e2j: Convierte de entorno a JSON
  • j2e: Convierte de JSON a entorno
  • -i, --input ARCHIVO: Archivo JSON de entrada (solo para j2e)
  • -o, --output ARCHIVO: Archivo de salida
  • -g, --pattern PATRON: Patrón para filtrar variables (solo para e2j)

Ejemplos como script

# Convertir variables de entorno a JSON
python envjson.py e2j -o variables.json

# Filtrar variables por patrón
python envjson.py e2j -g "^PYTHON" -o python_vars.json

# Convertir JSON a variables de entorno en un archivo shell
python envjson.py j2e -i config.json -o variables.sh

Uso como módulo importado

import envjson

# Convertir variables de entorno a JSON
variables = envjson.convert('e2j', output_file='config.json')

# Convertir JSON a variables de entorno
variables = envjson.convert('j2e', input_file='config.json', output_file='variables.sh')

# Usar modo snapshot para guardar variables del módulo actual
local_vars = locals()
envjson.convert('e2j', output_file='snapshot.json', snapshot_mode=True, snapshot_vars=local_vars)

# Cargar snapshot en otro módulo
globals_dict = globals()
envjson.convert('j2e', input_file='snapshot.json', snapshot_mode=True, snapshot_vars=globals_dict)

Casos de uso avanzados

Snapshot de variables en Python

El modo snapshot permite guardar el estado de las variables de un módulo Python:

# Guardar todas las variables locales
import envjson

def mi_funcion():
    x = 10
    y = "Hello"
    z = [1, 2, 3]
    
    # Guardar estado actual
    envjson.convert('e2j', output_file='snapshot.json', 
                   snapshot_mode=True, snapshot_vars=locals())
    
mi_funcion()

Transferencia de configuración entre sistemas

Exportar configuración de un sistema:

# En servidor1
./e2j.sh -g "APP_" > app_config.json

Importar en otro sistema:

# En servidor2
cat app_config.json | ./j2e.sh -f ~/.profile
source ~/.profile

Guardar configuración de un contenedor Docker

# Desde el host
docker exec mi_contenedor /bin/bash -c "export -p | ./e2j.sh" > container_env.json

Contribuciones

Se aceptan contribuciones a través de Pull Requests. Para cambios mayores, primero abra un Issue para discutir el cambio propuesto.

Licencia

Este proyecto está licenciado bajo una licencia de código abierto - ver el archivo LICENSE para más detalles.

Licencia abierta: Todo el mundo puede modificar y distribuir este software, pero deben mantener la atribución al autor original en todas las copias o trabajos derivados.

Autor

Tu Nombre

Agradecimientos

  • Comunidad de Bash y Python
  • Equipo de jq por su excelente herramienta para procesamiento de JSON

About

Convert env variables (Linux) 2 JSON

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages