[SOPS] Limpieza de archivos obsoletos y adición de archivos de configuración
- 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 <noreply@anthropic.com>
This commit is contained in:
parent
bd0b200118
commit
f29bcb7940
6 changed files with 12 additions and 978 deletions
|
@ -1 +0,0 @@
|
|||
git@git.rosero.one:mrosero/devs_odoo.git
|
|
@ -1 +0,0 @@
|
|||
https://git.rosero.one/mrosero/devs_odoo.git
|
11
bin/config/python.head
Normal file
11
bin/config/python.head
Normal file
|
@ -0,0 +1,11 @@
|
|||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
Programa:[program filename]
|
||||
Descripción: [short program description]
|
||||
Autor: [git user fullname <git user email>]
|
||||
Creación: [Created Date]
|
||||
Actualización: [updated]
|
||||
Versión: [from version file]
|
||||
Licencia: AGPL
|
||||
"""
|
1
bin/config/rate_temperature.ai
Normal file
1
bin/config/rate_temperature.ai
Normal file
|
@ -0,0 +1 @@
|
|||
0.4
|
169
bin/odoo_set.sh
169
bin/odoo_set.sh
|
@ -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.one> (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 <https://www.gnu.org/licenses/>.
|
||||
|
||||
# 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
|
|
@ -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. <mauro@rosero.one>]
|
||||
#
|
||||
# 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 <https://www.gnu.org/licenses/>.
|
||||
|
||||
# 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
|
||||
|
||||

|
||||

|
||||
|
||||
## 📋 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 '<?php\n// Punto de entrada de la aplicación\nrequire_once __DIR__ . "/../vendor/autoload.php";\n' > "$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 <stdio.h>
|
||||
|
||||
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 <iostream>
|
||||
|
||||
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
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net6.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
</Project>
|
||||
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
|
Loading…
Reference in a new issue