From f29bcb7940708e6820d8eb939b642e1b3c8e342b Mon Sep 17 00:00:00 2001 From: "Mauro Rosero P." Date: Thu, 13 Mar 2025 07:40:30 -0500 Subject: [PATCH] =?UTF-8?q?[SOPS]=20Limpieza=20de=20archivos=20obsoletos?= =?UTF-8?q?=20y=20adici=C3=B3n=20de=20archivos=20de=20configuraci=C3=B3n?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Eliminados scripts obsoletos (project_create.sh, odoo_set.sh) - Eliminados archivos de configuración obsoletos (odoo.repo.1, odoo.repo.2) - Añadidos nuevos archivos de configuración (python.head, rate_temperature.ai) 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- bin/config/odoo.repo.1 | 1 - bin/config/odoo.repo.2 | 1 - bin/config/python.head | 11 + bin/config/rate_temperature.ai | 1 + bin/odoo_set.sh | 169 ------- bin/project_create.sh | 807 --------------------------------- 6 files changed, 12 insertions(+), 978 deletions(-) delete mode 100644 bin/config/odoo.repo.1 delete mode 100644 bin/config/odoo.repo.2 create mode 100644 bin/config/python.head create mode 100644 bin/config/rate_temperature.ai delete mode 100755 bin/odoo_set.sh delete mode 100755 bin/project_create.sh diff --git a/bin/config/odoo.repo.1 b/bin/config/odoo.repo.1 deleted file mode 100644 index 5aa4c4f..0000000 --- a/bin/config/odoo.repo.1 +++ /dev/null @@ -1 +0,0 @@ -git@git.rosero.one:mrosero/devs_odoo.git diff --git a/bin/config/odoo.repo.2 b/bin/config/odoo.repo.2 deleted file mode 100644 index c1df027..0000000 --- a/bin/config/odoo.repo.2 +++ /dev/null @@ -1 +0,0 @@ -https://git.rosero.one/mrosero/devs_odoo.git diff --git a/bin/config/python.head b/bin/config/python.head new file mode 100644 index 0000000..cc4d004 --- /dev/null +++ b/bin/config/python.head @@ -0,0 +1,11 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Programa:[program filename] +Descripción: [short program description] +Autor: [git user fullname ] +Creación: [Created Date] +Actualización: [updated] +Versión: [from version file] +Licencia: AGPL +""" diff --git a/bin/config/rate_temperature.ai b/bin/config/rate_temperature.ai new file mode 100644 index 0000000..bd73f47 --- /dev/null +++ b/bin/config/rate_temperature.ai @@ -0,0 +1 @@ +0.4 diff --git a/bin/odoo_set.sh b/bin/odoo_set.sh deleted file mode 100755 index ce23fd2..0000000 --- a/bin/odoo_set.sh +++ /dev/null @@ -1,169 +0,0 @@ -#\!/bin/bash -# -# odoo_set.sh -# Modified: 2025/03/12 15:00:00 -# Derechos de Autor (C) [2025] [Mauro Rosero P. (mauro.rosero@gmail.com)] -# -# Este programa es software libre: usted puede redistribuirlo y/o modificarlo -# bajo los términos de la Licencia Pública Affero General de GNU tal como -# lo publica la Free Software Foundation, ya sea la versión 3 de la licencia, -# o (a su elección) cualquier versión posterior. -# -# Este programa se distribuye con la esperanza de que sea útil, -# pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de -# COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la -# Licencia Pública Affero General de GNU para obtener más detalles. -# -# Debería haber recibido una copia de la Licencia Pública Affero General -# junto con este programa. Si no la recibió, consulte . - -# Script para crear proyectos Odoo -# Uso: -# ./odoo_set.sh - -DEVSPATH=devs -BIN_HOME=$HOME/$DEVSPATH -BIN_MESG=bin/msg -BIN_LIBS=bin/lib -BIN_CFGS=bin/config -VERSION=1.0.0 - -# CHECK SHELL LANGUAGE -BIN_LANG=${LANG:0:2} - -# LOAD BASE BASH LIBRARY -source $BIN_HOME/$BIN_LIBS/base.lib - -# LOAD CONSOLE BASH LIBRARY -source $BIN_HOME/$BIN_LIBS/console.lib - -# LOAD ODOO BASH LIBRARY -source $BIN_HOME/$BIN_LIBS/odoo.lib - -# Load head messages -load_messages $BIN_HOME $BIN_MESG $BIN_LANG "head" - -# Load odoo messages -load_messages $BIN_HOME $BIN_MESG $BIN_LANG "odoo" - -########### MAIN PROGRAM ########### - -# Set program title -title="$head_000 $odmsg_000" -apps_title="${odmsg_102}" - -# Check if dialog is not installed, exited\! -command_installed "dialog" -if [ $? -ne 0 ] -then - display_devstools_header "${odmsg_000}" - echo "${head_001}" - exit 200 -fi - -# Check if os is valid\! -get_osname -if [ "${os_name}" == "${head_unknow}" ] -then - dialog_error_box "${head_error}" "${head_os_error}" - exit 3 -fi - -# Obtener el nombre de carpeta de proyectos desde projects.dat -if [ -f "$BIN_HOME/$BIN_CFGS/projects.dat" ]; then - PROJECTS_FOLDER=$(cat "$BIN_HOME/$BIN_CFGS/projects.dat" | head -n 1) -else - dialog_error_box "${head_error}" "${odmsg_112}" - exit 4 -fi - -# Solicitar nombre del proyecto Odoo -clear -dialog_input_box "${odmsg_105}" "${odmsg_106}" "" - -if [ $? -ne 0 ]; then - dialog_error_box "${head_error}" "${head_op_error}" - exit 1 -fi - -# Validar que el nombre no esté vacío -if [ -z "$value" ]; then - dialog_error_box "${head_error}" "${odmsg_107}" - exit 2 -fi - -PROJECT_NAME="$value" - -# Solicitar descripción del proyecto Odoo -clear -dialog_input_box "${odmsg_117}" "" "" - -if [ $? -ne 0 ]; then - dialog_error_box "${head_error}" "${head_op_error}" - exit 1 -fi - -PROJECT_DESCRIPTION="$value" -# Si no se proporciona descripción, usar un texto predeterminado -if [ -z "$PROJECT_DESCRIPTION" ]; then - PROJECT_DESCRIPTION="Este es un proyecto Odoo para gestionar procesos de negocio." -fi - -# Inicializar la variable result -result=0 -TEMP_FILE="/tmp/odoo_set_result.$$" - -# Mostrar progreso de creación -( - echo 0; sleep 1 - echo 20; echo "# ${odmsg_111}" - - # Crear el proyecto Odoo - odoo_create_project "$PROJECT_NAME" "$PROJECTS_FOLDER" "$PROJECT_DESCRIPTION" - result=$? - - # Guardar el resultado en un archivo temporal para recuperarlo después - echo $result > "$TEMP_FILE" - - echo 80; - # Mensaje basado en el resultado - if [ $result -eq 0 ]; then - echo "# ${odmsg_115}" - elif [ $result -eq 1 ]; then - echo "# ${odmsg_110}" - else - echo "# ${odmsg_109}" - fi - sleep 1 - - # Finalizar - echo 100 - sleep 1 -) | dialog --backtitle "${title}" --title "${apps_title}" --gauge "" 10 70 0 - -# Recuperar el resultado -result=0 # Valor predeterminado en caso de error -if [ -f "$TEMP_FILE" ]; then - result=$(cat "$TEMP_FILE") - rm -f "$TEMP_FILE" -fi - -case $result in - 0) - # Mostrar mensaje de éxito con caja de diálogo ampliada para mejor visibilidad - # Bypassing dialog_error_box para tener más control sobre el tamaño - title_text="${head_info} - ${apps_title}" - message_text="${odmsg_108} $HOME/$DEVSPATH/$PROJECTS_FOLDER/$PROJECT_NAME\n\n${odmsg_116}" - dialog --backtitle "${title}" --title "${title_text}" --msgbox "\n${message_text}" 12 80 - ;; - 1) - dialog_error_box "${head_warning}" "${odmsg_110}" - ;; - 2|3) - dialog_error_box "${head_error}" "${odmsg_109}" - ;; -esac - -# End Main Program -clear -exit 0 diff --git a/bin/project_create.sh b/bin/project_create.sh deleted file mode 100755 index 1bbc977..0000000 --- a/bin/project_create.sh +++ /dev/null @@ -1,807 +0,0 @@ -#!/bin/bash -# -# Script: project_create.sh -# Description: Crea una carpeta de proyecto con la estructura requerida -# Modified: 2025-03-12 20:26:07 -# Derechos de Autor (C) [2025] [Mauro Rosero P. ] -# -# Este programa es software libre: usted puede redistribuirlo y/o modificarlo -# bajo los términos de la Licencia Pública Affero General de GNU tal como -# lo publica la Free Software Foundation, ya sea la versión 3 de la licencia, -# o (a su elección) cualquier versión posterior. -# -# Este programa se distribuye con la esperanza de que sea útil, -# pero SIN NINGUNA GARANTÍA; sin siquiera la garantía implícita de -# COMERCIABILIDAD o IDONEIDAD PARA UN PROPÓSITO PARTICULAR. Consulte la -# Licencia Pública Affero General de GNU para obtener más detalles. -# -# Debería haber recibido una copia de la Licencia Pública Affero General -# junto con este programa. Si no la recibió, consulte . - -# Directorios base -SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -BASE_DIR="$(dirname "$SCRIPT_DIR")" -CONFIG_DIR="$SCRIPT_DIR/config" -LIB_DIR="$SCRIPT_DIR/lib" -MSG_DIR="$SCRIPT_DIR/msg" - -# Cargar libraries -source "$LIB_DIR/base.lib" -source "$LIB_DIR/console.lib" -source "$MSG_DIR/head.es" - -# Variables globales -title="${head_000} ${head_002}" -apps_title="${proj_001}" -PROJECT_FOLDER="" -PROJECT_NAME="" -PROJECT_PATH="" -PROJECT_TYPE="" -PROJECT_DESCRIPTION="" -PROJECT_LICENSE="" -PROJECT_LICENSE_TEXT="" -VALID_TYPES=("ansible" "odoo" "sp32home" "nodejs" "python" "cobol" "php" "c" "cpp" "csharp" "rust" "otros") - -# Estructura de datos para licencias: nombre, badge, texto corto -declare -A LICENSE_BADGES -LICENSE_BADGES["AGPL-3.0"]="https://img.shields.io/badge/License-AGPL--3.0-blue.svg" -LICENSE_BADGES["GPL-3.0"]="https://img.shields.io/badge/License-GPL--3.0-blue.svg" -LICENSE_BADGES["LGPL-3.0"]="https://img.shields.io/badge/License-LGPL--3.0-blue.svg" -LICENSE_BADGES["MIT"]="https://img.shields.io/badge/License-MIT-yellow.svg" -LICENSE_BADGES["Apache-2.0"]="https://img.shields.io/badge/License-Apache_2.0-blue.svg" -LICENSE_BADGES["BSD-3-Clause"]="https://img.shields.io/badge/License-BSD_3--Clause-blue.svg" -LICENSE_BADGES["BSD-2-Clause"]="https://img.shields.io/badge/License-BSD_2--Clause-orange.svg" -LICENSE_BADGES["CC-BY-4.0"]="https://img.shields.io/badge/License-CC_BY_4.0-lightgrey.svg" -LICENSE_BADGES["CC-BY-SA-4.0"]="https://img.shields.io/badge/License-CC_BY--SA_4.0-lightgrey.svg" -LICENSE_BADGES["CC0-1.0"]="https://img.shields.io/badge/License-CC0_1.0-lightgrey.svg" -LICENSE_BADGES["EPL-2.0"]="https://img.shields.io/badge/License-EPL_2.0-red.svg" -LICENSE_BADGES["MPL-2.0"]="https://img.shields.io/badge/License-MPL_2.0-brightgreen.svg" -LICENSE_BADGES["Unlicense"]="https://img.shields.io/badge/license-Unlicense-blue.svg" -LICENSE_BADGES["OPL-1.0"]="https://img.shields.io/badge/License-OPL--1.0-orange.svg" -LICENSE_BADGES["OEEL-1.0"]="https://img.shields.io/badge/License-OEEL--1.0-red.svg" -LICENSE_BADGES["CC-BY-NC-4.0"]="https://img.shields.io/badge/License-CC_BY--NC_4.0-lightgrey.svg" -LICENSE_BADGES["CC-BY-NC-SA-4.0"]="https://img.shields.io/badge/License-CC_BY--NC--SA_4.0-lightgrey.svg" -LICENSE_BADGES["CC-BY-ND-4.0"]="https://img.shields.io/badge/License-CC_BY--ND_4.0-lightgrey.svg" -LICENSE_BADGES["CC-BY-NC-ND-4.0"]="https://img.shields.io/badge/License-CC_BY--NC--ND_4.0-lightgrey.svg" -LICENSE_BADGES["Copyright"]="https://img.shields.io/badge/License-Copyright-darkred.svg" -LICENSE_BADGES["Proprietary"]="https://img.shields.io/badge/License-Proprietary-darkblue.svg" - -declare -A LICENSE_TEXTS -LICENSE_TEXTS["AGPL-3.0"]="Este proyecto está licenciado bajo la Licencia Pública General Affero de GNU (AGPL-3.0)." -LICENSE_TEXTS["GPL-3.0"]="Este proyecto está licenciado bajo la Licencia Pública General de GNU (GPL-3.0)." -LICENSE_TEXTS["LGPL-3.0"]="Este proyecto está licenciado bajo la Licencia Pública General Menor de GNU (LGPL-3.0)." -LICENSE_TEXTS["MIT"]="Este proyecto está licenciado bajo la Licencia MIT." -LICENSE_TEXTS["Apache-2.0"]="Este proyecto está licenciado bajo la Licencia Apache 2.0." -LICENSE_TEXTS["BSD-3-Clause"]="Este proyecto está licenciado bajo la Licencia BSD de 3 cláusulas." -LICENSE_TEXTS["BSD-2-Clause"]="Este proyecto está licenciado bajo la Licencia BSD de 2 cláusulas." -LICENSE_TEXTS["CC-BY-4.0"]="Este proyecto está licenciado bajo Creative Commons Attribution 4.0 International." -LICENSE_TEXTS["CC-BY-SA-4.0"]="Este proyecto está licenciado bajo Creative Commons Attribution-ShareAlike 4.0 International." -LICENSE_TEXTS["CC0-1.0"]="Este proyecto está dedicado al dominio público bajo Creative Commons Zero v1.0 Universal." -LICENSE_TEXTS["EPL-2.0"]="Este proyecto está licenciado bajo la Licencia Pública Eclipse 2.0." -LICENSE_TEXTS["MPL-2.0"]="Este proyecto está licenciado bajo la Licencia Pública de Mozilla 2.0." -LICENSE_TEXTS["Unlicense"]="Este proyecto está en el dominio público bajo The Unlicense." -LICENSE_TEXTS["OPL-1.0"]="Este proyecto está licenciado bajo la Licencia Pública de Odoo (OPL-1.0)." -LICENSE_TEXTS["OEEL-1.0"]="Este proyecto está licenciado bajo la Licencia de Empresa de Odoo (OEEL-1.0)." -LICENSE_TEXTS["CC-BY-NC-4.0"]="Este proyecto está licenciado bajo Creative Commons Attribution-NonCommercial 4.0 International." -LICENSE_TEXTS["CC-BY-NC-SA-4.0"]="Este proyecto está licenciado bajo Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International." -LICENSE_TEXTS["CC-BY-ND-4.0"]="Este proyecto está licenciado bajo Creative Commons Attribution-NoDerivatives 4.0 International." -LICENSE_TEXTS["CC-BY-NC-ND-4.0"]="Este proyecto está licenciado bajo Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International." -LICENSE_TEXTS["Copyright"]="Este proyecto está protegido por derechos de autor (Copyright). Todos los derechos reservados." -LICENSE_TEXTS["Proprietary"]="Este proyecto está bajo licencia propietaria. Todos los derechos reservados." - -# Verifica que dialog esté instalado -if ! command -v dialog &> /dev/null; then - echo "${head_001}" - exit 1 -fi - -# Función para obtener la carpeta de proyectos desde projects.dat -function get_projects_folder() { - if [ -f "$CONFIG_DIR/projects.dat" ]; then - PROJECTS_DIR_NAME=$(head -n 1 "$CONFIG_DIR/projects.dat") - else - PROJECTS_DIR_NAME="proyectos" - echo "$PROJECTS_DIR_NAME" > "$CONFIG_DIR/projects.dat" - fi - - # La carpeta de proyectos siempre está dentro de devs (BASE_DIR) - PROJECT_FOLDER="$BASE_DIR/$PROJECTS_DIR_NAME" - - # Verificar si la carpeta base de proyectos existe, si no, crearla - if [ ! -d "$PROJECT_FOLDER" ]; then - mkdir -p "$PROJECT_FOLDER" - fi -} - -# Función para solicitar el nombre del proyecto -function request_project_name() { - dialog_input_box "${proj_002}" "${proj_003}" "" - - if [ $codex -ne 0 ]; then - echo "${head_canceled}" - exit 1 - fi - - PROJECT_NAME="$value" - - # Validar que el nombre no esté vacío - if [ -z "$PROJECT_NAME" ]; then - dialog_error_box "$head_error" "${proj_004}" - request_project_name - return - fi - - # Validar que el nombre sea válido para una carpeta - if [[ "$PROJECT_NAME" =~ [^a-zA-Z0-9_-] ]]; then - dialog_error_box "$head_error" "${proj_005}" - request_project_name - return - fi - - PROJECT_PATH="$PROJECT_FOLDER/$PROJECT_NAME" - - # Verificar si el proyecto ya existe - if [ -d "$PROJECT_PATH" ]; then - # Crear mensaje personalizado con el nombre del proyecto - proyecto_existe_msg="El proyecto '$PROJECT_NAME' ya existe. ¿Desea seleccionar otro nombre?" - dialog_yesno "$proyecto_existe_msg" - - if [ $? -eq 0 ]; then - request_project_name - else - echo "${proj_007}" - exit 1 - fi - fi -} - -# Función para solicitar el tipo de proyecto -function request_project_type() { - # Construir las opciones para el diálogo - OPTIONS="" - for i in "${!VALID_TYPES[@]}"; do - if [ "${VALID_TYPES[$i]}" == "otros" ]; then - # Seleccionar "otros" como opción por defecto - OPTIONS="$OPTIONS ${VALID_TYPES[$i]} ${VALID_TYPES[$i]} on" - else - OPTIONS="$OPTIONS ${VALID_TYPES[$i]} ${VALID_TYPES[$i]} off" - fi - done - - dialog_input_radio "${proj_008}" "${proj_009}" "$OPTIONS" 22 22 70 - - if [ $codex -ne 0 ]; then - echo "${head_canceled}" - exit 1 - fi - - PROJECT_TYPE="$value" - - # Validar que el tipo seleccionado sea válido - VALID_TYPE=0 - for t in "${VALID_TYPES[@]}"; do - if [ "$t" == "$PROJECT_TYPE" ]; then - VALID_TYPE=1 - break - fi - done - - if [ $VALID_TYPE -eq 0 ]; then - dialog_error_box "$head_error" "${proj_010}" - request_project_type - fi -} - -# Función para solicitar la licencia del proyecto -function request_project_license() { - # Construir las opciones para el diálogo - OPTIONS="" - - # Obtenemos todas las claves del array asociativo - license_keys=("${!LICENSE_BADGES[@]}") - - # Ordenamos las claves alfabéticamente - IFS=$'\n' sorted_keys=($(sort <<<"${license_keys[*]}")) - unset IFS - - # Filtramos las licencias específicas de Odoo si el proyecto no es de tipo odoo - filtered_keys=() - for license in "${sorted_keys[@]}"; do - # Si es licencia de Odoo (OPL o OEEL) y el proyecto no es de tipo odoo, la omitimos - if [[ "$license" == "OPL-1.0" || "$license" == "OEEL-1.0" ]]; then - if [[ "$PROJECT_TYPE" == "odoo" ]]; then - filtered_keys+=("$license") - fi - else - filtered_keys+=("$license") - fi - done - - # Establecemos AGPL-3.0 como seleccionada por defecto (es la licencia predeterminada del proyecto) - # Para proyectos Odoo, usar OPL-1.0 como predeterminada - default_license="AGPL-3.0" - if [[ "$PROJECT_TYPE" == "odoo" ]]; then - default_license="OPL-1.0" - fi - - for license in "${filtered_keys[@]}"; do - if [ "$license" == "$default_license" ]; then - OPTIONS="$OPTIONS $license \"$license\" on" - else - OPTIONS="$OPTIONS $license \"$license\" off" - fi - done - - # Reducimos el tamaño del diálogo para que muestre menos opciones a la vez - dialog_input_radio "${proj_014}" "${proj_015}" "$OPTIONS" 22 22 70 - - if [ $codex -ne 0 ]; then - echo "${head_canceled}" - exit 1 - fi - - PROJECT_LICENSE="$value" - PROJECT_LICENSE_TEXT="${LICENSE_TEXTS[$PROJECT_LICENSE]}" - - # Si por alguna razón no se encuentra la licencia, usamos la predeterminada según el tipo de proyecto - if [ -z "$PROJECT_LICENSE_TEXT" ]; then - if [[ "$PROJECT_TYPE" == "odoo" ]]; then - PROJECT_LICENSE="OPL-1.0" - else - PROJECT_LICENSE="AGPL-3.0" - fi - PROJECT_LICENSE_TEXT="${LICENSE_TEXTS[$PROJECT_LICENSE]}" - fi -} - -# Función para solicitar la descripción del proyecto -function request_project_description() { - # Aumentar número de filas y columnas para mostrar más líneas en el diálogo - # Parámetros: mensaje, ayuda, valor_defecto, filas, ancho - # La altura predeterminada es CROWS=8, aumentamos a 12 para mostrar las 3 líneas - dialog_input_box "${proj_012}" "${proj_013}" "" 12 80 - - if [ $codex -ne 0 ]; then - echo "${head_canceled}" - exit 1 - fi - - PROJECT_DESCRIPTION="$value" - - # Usar una descripción por defecto si está vacía - if [ -z "$PROJECT_DESCRIPTION" ]; then - PROJECT_DESCRIPTION="Proyecto de tipo $PROJECT_TYPE creado con MRDevs Tools." - fi -} - -# Función para crear la estructura del proyecto -function create_project_structure() { - # Crear la carpeta del proyecto - mkdir -p "$PROJECT_PATH" - - # Crear estructura básica común a todos los proyectos - mkdir -p "$PROJECT_PATH/docs" - mkdir -p "$PROJECT_PATH/src" - - # Inicializar repositorio git - cd "$PROJECT_PATH" - git init - - # Crear archivo setup.md básico - cat > "$PROJECT_PATH/docs/setup.md" << EOF -# Configuración del Entorno de Desarrollo - -Este documento describe los pasos necesarios para configurar el entorno de desarrollo para el proyecto $PROJECT_NAME. - -## Requisitos Previos - -- [Requisito 1] -- [Requisito 2] -- [Requisito 3] - -## Instalación - -1. Clone el repositorio: - \`\`\`bash - git clone [URL-del-repositorio] - cd $PROJECT_NAME - \`\`\` - -2. Configure el entorno según el tipo de proyecto ($PROJECT_TYPE). - -3. [Pasos adicionales específicos del proyecto] - -## Configuración - -[Instrucciones de configuración específicas] - -## Pruebas - -[Instrucciones para ejecutar pruebas] - -## Solución de Problemas - -[Problemas comunes y soluciones] - ---- - -> Nota: Este es un documento de configuración inicial que debe ser completado con la información específica del proyecto. -EOF - - # Obtener fecha actual - CURRENT_DATE=$(date +%Y-%m-%d) - - # Crear archivo README.md mejorado - cat > "$PROJECT_PATH/README.md" << EOF -# $PROJECT_NAME - -![License](${LICENSE_BADGES[$PROJECT_LICENSE]}) -![Status](https://img.shields.io/badge/Status-En%20Desarrollo-yellow) - -## 📋 Descripción - -$PROJECT_DESCRIPTION - -## 🔧 Tecnologías - -\`\`\` -Tipo de Proyecto: $PROJECT_TYPE -Fecha de Creación: $CURRENT_DATE -\`\`\` - -## 📁 Estructura - -\`\`\` -$PROJECT_NAME/ -├── docs/ # Documentación del proyecto -├── src/ # Código fuente -EOF - - # Añadir estructura específica según el tipo de proyecto - case "$PROJECT_TYPE" in - "ansible") - cat >> "$PROJECT_PATH/README.md" << EOF -├── inventories/ # Inventarios de Ansible -├── roles/ # Roles de Ansible -└── playbooks/ # Playbooks de Ansible -\`\`\` - -## 🚀 Uso - -1. Actualice el inventario en \`inventories/\` -2. Configure los roles necesarios en \`roles/\` -3. Ejecute los playbooks mediante \`ansible-playbook playbooks/nombre-playbook.yml\` -EOF - ;; - "odoo") - cat >> "$PROJECT_PATH/README.md" << EOF -├── addons/ # Módulos personalizados de Odoo -├── data/ # Archivos de datos -├── scripts/ # Scripts de utilidad -└── build/ # Configuración de construcción -\`\`\` - -## 🚀 Uso - -1. Configure el entorno en la carpeta \`build/\` -2. Ejecute \`scripts/start.sh\` para iniciar el entorno Odoo -3. Acceda a la aplicación en http://localhost:8069 -EOF - ;; - "sp32home") - cat >> "$PROJECT_PATH/README.md" << EOF -├── hardware/ # Diseños y esquemas de hardware -├── firmware/ # Código firmware ESP32 -├── libraries/ # Bibliotecas personalizadas -└── build/ # Archivos de construcción -\`\`\` - -## 🚀 Uso - -1. Revise los esquemas en \`hardware/\` -2. Compile el firmware usando PlatformIO o Arduino IDE -3. Cargue el firmware en su dispositivo ESP32 -EOF - ;; - "nodejs") - cat >> "$PROJECT_PATH/README.md" << EOF -├── src/ -│ ├── controllers/ # Controladores de la aplicación -│ ├── models/ # Modelos de datos -│ └── routes/ # Definición de rutas -├── public/ # Archivos estáticos -└── tests/ # Pruebas unitarias y de integración -\`\`\` - -## 🚀 Uso - -1. Instale las dependencias: \`npm install\` -2. Configure las variables de entorno en \`.env\` -3. Ejecute la aplicación: \`npm start\` -EOF - ;; - "python") - cat >> "$PROJECT_PATH/README.md" << EOF -├── src/ -│ └── $PROJECT_NAME/ # Código fuente del paquete -└── tests/ # Pruebas unitarias -\`\`\` - -## 🚀 Uso - -1. Cree un entorno virtual: \`python -m venv .venv\` -2. Active el entorno virtual: \`source .venv/bin/activate\` -3. Instale las dependencias: \`pip install -r requirements.txt\` -4. Instale el paquete en modo desarrollo: \`pip install -e .\` -EOF - ;; - "php") - cat >> "$PROJECT_PATH/README.md" << EOF -├── src/ # Código fuente PHP -├── public/ # Archivos públicos y punto de entrada -├── assets/ # Recursos estáticos (CSS, JS, imágenes) -├── templates/ # Plantillas -└── vendor/ # Dependencias (gestionadas por Composer) -\`\`\` - -## 🚀 Uso - -1. Instale las dependencias: \`composer install\` -2. Configure el servidor web para apuntar a la carpeta \`public/\` -3. Visite la aplicación en su navegador -EOF - ;; - "c") - cat >> "$PROJECT_PATH/README.md" << EOF -├── include/ # Archivos de cabecera (.h) -├── src/ # Archivos fuente (.c) -├── lib/ # Bibliotecas -├── tests/ # Pruebas unitarias -└── build/ # Archivos de compilación -\`\`\` - -## 🚀 Uso - -1. Configure el proyecto: \`mkdir build && cd build && cmake ..\` -2. Compile el proyecto: \`make\` -3. Ejecute las pruebas: \`make test\` -4. Ejecute la aplicación: \`./bin/$PROJECT_NAME\` -EOF - ;; - "cpp") - cat >> "$PROJECT_PATH/README.md" << EOF -├── include/ # Archivos de cabecera (.hpp) -├── src/ # Archivos fuente (.cpp) -├── lib/ # Bibliotecas -├── tests/ # Pruebas unitarias -└── build/ # Archivos de compilación -\`\`\` - -## 🚀 Uso - -1. Configure el proyecto: \`mkdir build && cd build && cmake ..\` -2. Compile el proyecto: \`make\` -3. Ejecute las pruebas: \`make test\` -4. Ejecute la aplicación: \`./bin/$PROJECT_NAME\` -EOF - ;; - "csharp") - cat >> "$PROJECT_PATH/README.md" << EOF -├── src/ # Código fuente C# -├── Tests/ # Pruebas unitarias -├── Models/ # Modelos de datos -├── Controllers/ # Controladores (si es una aplicación web) -└── Properties/ # Configuraciones y propiedades -\`\`\` - -## 🚀 Uso - -1. Restaure las dependencias: \`dotnet restore\` -2. Compile el proyecto: \`dotnet build\` -3. Ejecute las pruebas: \`dotnet test\` -4. Ejecute la aplicación: \`dotnet run\` -EOF - ;; - "rust") - cat >> "$PROJECT_PATH/README.md" << EOF -├── src/ # Código fuente Rust -├── tests/ # Pruebas -├── examples/ # Ejemplos de uso -└── target/ # Directorio de compilación (generado) -\`\`\` - -## 🚀 Uso - -1. Compile el proyecto: \`cargo build\` -2. Ejecute las pruebas: \`cargo test\` -3. Ejecute la aplicación: \`cargo run\` -4. Compile para producción: \`cargo build --release\` -EOF - ;; - "cobol") - cat >> "$PROJECT_PATH/README.md" << EOF -├── src/ -│ ├── main/ # Programas principales -│ └── copy/ # Libros de copybook -└── build/ # Archivos de compilación -\`\`\` - -## 🚀 Uso - -1. Configure el entorno COBOL según su implementación (GnuCOBOL, MicroFocus, etc.) -2. Compile los programas usando la configuración en \`build/\` -3. Ejecute los programas compilados -EOF - ;; - "otros") - cat >> "$PROJECT_PATH/README.md" << EOF -\`\`\` - -## 🚀 Uso - -Consulte la documentación específica en la carpeta \`docs/\` para instrucciones de configuración y uso. -EOF - ;; - esac - - # Añadir secciones comunes al final - cat >> "$PROJECT_PATH/README.md" << EOF - -## 🔍 Prerrequisitos - -> Por definir según las necesidades específicas del proyecto - -## ⚙️ Configuración - -Para configurar el entorno de desarrollo, siga las instrucciones en [docs/setup.md](docs/setup.md). - -## 📄 Licencia - -$PROJECT_LICENSE_TEXT -Ver el archivo [LICENSE](LICENSE) para más detalles. - -## 👥 Autores - -- **$(git config user.name)** - Desarrollador Principal - [$(git config user.email)](mailto:$(git config user.email)) - ---- - -Generado con MRDevs Tools © $(date +%Y) -EOF - - # Crear estructura específica según el tipo de proyecto - case "$PROJECT_TYPE" in - "ansible") - mkdir -p "$PROJECT_PATH/inventories" - mkdir -p "$PROJECT_PATH/roles" - mkdir -p "$PROJECT_PATH/playbooks" - touch "$PROJECT_PATH/ansible.cfg" - ;; - "odoo") - mkdir -p "$PROJECT_PATH/addons" - mkdir -p "$PROJECT_PATH/data" - mkdir -p "$PROJECT_PATH/scripts" - mkdir -p "$PROJECT_PATH/build" - touch "$PROJECT_PATH/.typset" - ;; - "sp32home") - mkdir -p "$PROJECT_PATH/hardware" - mkdir -p "$PROJECT_PATH/firmware" - mkdir -p "$PROJECT_PATH/libraries" - mkdir -p "$PROJECT_PATH/build" - ;; - "nodejs") - mkdir -p "$PROJECT_PATH/src/controllers" - mkdir -p "$PROJECT_PATH/src/models" - mkdir -p "$PROJECT_PATH/src/routes" - mkdir -p "$PROJECT_PATH/public" - mkdir -p "$PROJECT_PATH/tests" - touch "$PROJECT_PATH/package.json" - ;; - "python") - mkdir -p "$PROJECT_PATH/src/$PROJECT_NAME" - mkdir -p "$PROJECT_PATH/tests" - touch "$PROJECT_PATH/setup.py" - touch "$PROJECT_PATH/requirements.txt" - # Crear un __init__.py básico - touch "$PROJECT_PATH/src/$PROJECT_NAME/__init__.py" - ;; - "php") - mkdir -p "$PROJECT_PATH/src" - mkdir -p "$PROJECT_PATH/public" - mkdir -p "$PROJECT_PATH/assets/css" - mkdir -p "$PROJECT_PATH/assets/js" - mkdir -p "$PROJECT_PATH/assets/img" - mkdir -p "$PROJECT_PATH/templates" - mkdir -p "$PROJECT_PATH/vendor" - # Crear un archivo index.php básico - echo ' "$PROJECT_PATH/public/index.php" - # Crear composer.json básico - cat > "$PROJECT_PATH/composer.json" << EOF -{ - "name": "rosero-one/$PROJECT_NAME", - "description": "Proyecto PHP $PROJECT_NAME", - "type": "project", - "require": { - "php": ">=7.4" - }, - "autoload": { - "psr-4": { - "App\\\\": "src/" - } - } -} -EOF - ;; - "c") - mkdir -p "$PROJECT_PATH/include" - mkdir -p "$PROJECT_PATH/src" - mkdir -p "$PROJECT_PATH/lib" - mkdir -p "$PROJECT_PATH/tests" - mkdir -p "$PROJECT_PATH/build" - # Crear un archivo CMakeLists.txt básico - cat > "$PROJECT_PATH/CMakeLists.txt" << EOF -cmake_minimum_required(VERSION 3.10) -project($PROJECT_NAME C) - -set(CMAKE_C_STANDARD 11) -set(CMAKE_C_STANDARD_REQUIRED ON) - -include_directories(include) - -file(GLOB SOURCES "src/*.c") -add_executable(\${PROJECT_NAME} \${SOURCES}) -EOF - # Crear un archivo main.c básico - cat > "$PROJECT_PATH/src/main.c" << EOF -#include - -int main(int argc, char *argv[]) { - printf("Hola desde $PROJECT_NAME!\n"); - return 0; -} -EOF - ;; - "cpp") - mkdir -p "$PROJECT_PATH/include" - mkdir -p "$PROJECT_PATH/src" - mkdir -p "$PROJECT_PATH/lib" - mkdir -p "$PROJECT_PATH/tests" - mkdir -p "$PROJECT_PATH/build" - # Crear un archivo CMakeLists.txt básico - cat > "$PROJECT_PATH/CMakeLists.txt" << EOF -cmake_minimum_required(VERSION 3.10) -project($PROJECT_NAME CXX) - -set(CMAKE_CXX_STANDARD 17) -set(CMAKE_CXX_STANDARD_REQUIRED ON) - -include_directories(include) - -file(GLOB SOURCES "src/*.cpp") -add_executable(\${PROJECT_NAME} \${SOURCES}) -EOF - # Crear un archivo main.cpp básico - cat > "$PROJECT_PATH/src/main.cpp" << EOF -#include - -int main(int argc, char *argv[]) { - std::cout << "Hola desde $PROJECT_NAME!" << std::endl; - return 0; -} -EOF - ;; - "csharp") - mkdir -p "$PROJECT_PATH/src" - mkdir -p "$PROJECT_PATH/Tests" - mkdir -p "$PROJECT_PATH/Models" - mkdir -p "$PROJECT_PATH/Controllers" - mkdir -p "$PROJECT_PATH/Properties" - # Crear un archivo de proyecto .csproj básico - cat > "$PROJECT_PATH/$PROJECT_NAME.csproj" << EOF - - - - Exe - net6.0 - enable - enable - - - -EOF - # Crear un archivo Program.cs básico - cat > "$PROJECT_PATH/src/Program.cs" << EOF -namespace $PROJECT_NAME; - -public class Program -{ - public static void Main(string[] args) - { - Console.WriteLine("Hola desde $PROJECT_NAME!"); - } -} -EOF - ;; - "rust") - mkdir -p "$PROJECT_PATH/src" - mkdir -p "$PROJECT_PATH/tests" - mkdir -p "$PROJECT_PATH/examples" - # Crear un archivo Cargo.toml básico - cat > "$PROJECT_PATH/Cargo.toml" << EOF -[package] -name = "$PROJECT_NAME" -version = "0.1.0" -edition = "2021" - -[dependencies] -EOF - # Crear un archivo main.rs básico - cat > "$PROJECT_PATH/src/main.rs" << EOF -fn main() { - println!("Hola desde $PROJECT_NAME!"); -} -EOF - # Crear un archivo lib.rs básico - cat > "$PROJECT_PATH/src/lib.rs" << EOF -// Biblioteca principal para $PROJECT_NAME - -#[cfg(test)] -mod tests { - #[test] - fn it_works() { - assert_eq!(2 + 2, 4); - } -} -EOF - ;; - "cobol") - mkdir -p "$PROJECT_PATH/src/main" - mkdir -p "$PROJECT_PATH/src/copy" - mkdir -p "$PROJECT_PATH/build" - ;; - "otros") - # Estructura mínima, ya creada anteriormente - ;; - esac - - # Crear archivo de configuración para indicar el tipo de proyecto - echo "$PROJECT_TYPE" > "$PROJECT_PATH/.protype" - - # Guardar información de la licencia en un archivo - echo "$PROJECT_LICENSE" > "$PROJECT_PATH/.license" - - # Hacer commit inicial del proyecto - cd "$PROJECT_PATH" - git add . - git commit -m "[INIT] Proyecto $PROJECT_NAME" - - # Mostrar mensaje de éxito - dialog_error_box "$head_info" "${proj_011}\n$PROJECT_PATH" -} - -# Función principal -function main() { - clear - - # Obtener la carpeta de proyectos - get_projects_folder - - # Solicitar nombre del proyecto - request_project_name - - # Solicitar tipo de proyecto - request_project_type - - # Solicitar licencia del proyecto - request_project_license - - # Solicitar descripción del proyecto - request_project_description - - # Crear estructura del proyecto - create_project_structure -} - -# Ejecutar función principal -main