# MRDevs Tools

License: AGPL-3.0 Version: 1.0.0

## 📋 Descripción MRDevs Tools es un conjunto integral de herramientas para entornos de desarrollo que facilita la instalación, configuración y gestión de aplicaciones y servicios en múltiples sistemas operativos. Diseñado para aumentar la productividad de los desarrolladores, este toolkit automatiza tareas repetitivas y estandariza entornos de desarrollo. ## 🚀 Inicio Rápido ### Requisitos Previos - Git instalado en su sistema - Permisos de administrador (para algunas operaciones) - Conexión a Internet ### Instalación ```bash # Clonar el repositorio cd $HOME git clone https://git.rosero.one/mrosero/devs.git # Instalar herramientas básicas cd $HOME/devs bin/bootstrap.sh # Actualizar el entorno (opcional) bin/update.sh ``` ## 🔧 Funcionalidades Principales ### Gestión del Entorno de Desarrollo | Comando | Descripción | |---------|-------------| | `bin/bootstrap.sh` | Instala herramientas básicas y configura la gestión de contenedores | | `bin/update.sh` | Actualiza el entorno de desarrollo con las últimas funcionalidades | | `bin/npm_install.sh` | Instala NodeJS y npm de forma interactiva | ### Herramientas de IA y Productividad | Comando | Descripción | |---------|-------------| | `bin/cortana_install.sh` | Instala Claude Code CLI (Cortana) | | `bin/cortana_install.sh -u` | Desinstala Claude Code CLI | | `bin/cortana_token.sh` | Gestiona la encriptación del token de Cortana vía SOPS | | `bin/cortana_alias.sh` | Configura alias de línea de comandos para Cortana | | `bin/cortana_enable.sh` | Activa el uso de Cortana | | `bin/cortana_disable.sh` | Desactiva temporalmente Cortana | ### Herramientas para Editores de Código | Comando | Descripción | |---------|-------------| | `bin/helix_install.sh` | Instala Helix Editor con soporte multiplataforma (apt, snap, pacman, etc.) | ### Seguridad y Acceso | Comando | Descripción | |---------|-------------| | `bin/vpn_install.sh` | Instala el cliente Pritunl VPN | | `bin/vpn_install.sh --update` | Actualiza el cliente VPN a la última versión | | `bin/vpn_users.sh` | Gestiona usuarios de la VPN | | `bin/gpg_init.sh` | Inicializa configuración GPG para cifrado seguro | ### Gestión de Perfiles | Comando | Descripción | |---------|-------------| | `bin/profile_backup.sh` | Realiza copia de seguridad del perfil del desarrollador | | `bin/profile_restore.sh ` | Restaura perfil desde copia de seguridad | ### Desarrollo Especializado | Comando | Descripción | |---------|-------------| | `bin/odoo_set.sh` | Crea un nuevo proyecto Odoo con estructura completa | | `bin/rate_update.py` | Actualiza tarifas por hora de diferentes tipos de programadores | | `bin/cocomo.py` | Calcula costos de proyecto usando el modelo COCOMO | ## 📚 Guía de Usuario ### Preparación del Entorno El directorio `$HOME/devs` sirve como área principal de desarrollo donde se gestionan diversos ambientes y proyectos. Por razones de seguridad, se prioriza [podman](https://podman.io/) sobre [docker](https://www.docker.com/) como gestor de contenedores. Si desea usar Docker en lugar de Podman, debe instalarlo manualmente antes de ejecutar `bootstrap.sh`. ### Configuración de Claude Code (Cortana) MRDevs Tools facilita el trabajo con herramientas de IA como Claude Code CLI: ```bash # Instalación bin/cortana_install.sh # Gestión del token de forma segura bin/cortana_token.sh # Crear alias para facilitar su uso bin/cortana_alias.sh # Habilitar uso de Cortana bin/cortana_enable.sh # Deshabilitar temporalmente Cortana bin/cortana_disable.sh ``` El token se encripta usando SOPS y se almacena de forma segura en `$HOME/.cortana/cortana.sops.yaml`. La configuración de proyectos se almacena en `bin/config/projects.dat`, donde se encuentra el nombre de la carpeta de proyectos utilizada por el sistema. ### Instalación de Helix Editor Helix es un editor de código moderno similar a Vim/Neovim pero con una curva de aprendizaje más amigable: ```bash # Instalación automatizada bin/helix_install.sh ``` El script detecta automáticamente tu sistema operativo y utiliza el método de instalación más adecuado: - En Ubuntu: Instala mediante snap para obtener la versión más reciente - En Arch Linux: Utiliza pacman - En Fedora: Instala a través de dnf - En otros sistemas: Descarga e instala desde el tarball oficial ### Copias de Seguridad Para respaldar configuraciones importantes: ```bash bin/profile_backup.sh ``` Esto crea un archivo ZIP en `$HOME/secure/backups`. La carpeta puede contener múltiples archivos de respaldo con un archivo `gpg.secret` que contiene la contraseña encriptada. La pérdida de este archivo imposibilitará la restauración. Para restaurar: ```bash bin/profile_restore.sh ``` ### Desarrollo con Odoo MRDevs Tools facilita el desarrollo de proyectos Odoo con el script especializado: ```bash # Crear un nuevo proyecto Odoo bin/odoo_set.sh ``` El script `odoo_set.sh` crea automáticamente una estructura completa para un proyecto Odoo: - Estructura de carpetas (addons, build, settings, data, scripts, etc.) - Archivos de configuración iniciales (Dockerfile, docker-compose.yml) - Scripts de utilidad para el desarrollo - Marca el proyecto con el archivo `.typset` para identificarlo como proyecto Odoo Para iniciar el entorno Odoo después de la creación: ```bash cd [ruta-al-proyecto] ./scripts/start.sh ``` ### Gestión de Tarifas y Costos MRDevs Tools incluye utilidades para la gestión de tarifas y estimación de costos: #### Actualización de Tarifas El script `rate_update.py` permite mantener actualizadas las tarifas por hora de diferentes tipos de programadores: ```bash # Actualizar tarifas faltantes bin/rate_update.py # Listar todas las tarifas disponibles bin/rate_update.py --list # Actualizar la tarifa de un tipo específico de programador bin/rate_update.py --type python # Actualizar todas las tarifas, incluso las existentes bin/rate_update.py --init ``` Las tarifas se almacenan en archivos individuales dentro de `bin/config/rates/` y pueden ser utilizadas por otras herramientas. #### Estimación de Costos con COCOMO El script `cocomo.py` implementa el modelo COCOMO para estimar costos de proyectos de software basados en las líneas de código: ```bash # Calcular costo de un proyecto bin/cocomo.py --project /ruta/al/proyecto # Usar un tipo específico de programador para los costos bin/cocomo.py --project /ruta/al/proyecto --type devops # Especificar un modelo COCOMO específico bin/cocomo.py --project /ruta/al/proyecto --model embedded # Ignorar patrones adicionales de archivos bin/cocomo.py --project /ruta/al/proyecto --ignore "*.generated.js" --ignore "vendor/**" ``` El script analizará el código fuente, contará las líneas efectivas, y calculará estimaciones de esfuerzo, tiempo y costos utilizando las tarifas por hora configuradas. ## 🔌 Arquitectura del Sistema ### Estructura de Directorios ``` bin/ ├── lib/ # Bibliotecas compartidas ├── msg/ # Archivos de mensajes multilingües ├── config/ # Configuraciones y parámetros └── ansible/ # Recursos para automatización ``` ### Componentes Principales - **Bibliotecas Base**: Conjunto de funciones reutilizables (`base.lib`, `bootstrap.lib`, etc.) - **Sistema de Mensajes**: Soporte multilingüe para internacionalización - **Gestión de Configuración**: Archivos de configuración centralizados - **Herramientas de Automatización**: Scripts y playbooks de Ansible ## 💻 Compatibilidad El proyecto está diseñado para funcionar en múltiples sistemas operativos: - Ubuntu/Debian (apt) - Red Hat/Fedora (dnf/yum) - Arch Linux (pacman) - BSD (pkg) - macOS (brew) ## 🤝 Contribución Para contribuir al proyecto: 1. Asegúrese de seguir las convenciones de codificación 2. Use los mensajes de commit con prefijos estándar: [ADDED], [IMPROVED], [FIXED], [SOPS] 3. Documente cualquier nueva funcionalidad añadida ## 📄 Licencia Este proyecto está licenciado bajo la Licencia Pública General Affero (AGPL) - vea el archivo LICENSE para más detalles. ## 📞 Soporte Para dudas o problemas, contacte con: - Email: mauro@rosero.one - Web: https://rosero.one --- **MRDevs Tools** - Simplificando el entorno de desarrollo © 2025 Mauro Rosero P.