[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