From 6aa59d846b3f4d3a4aba829c21f869148acc5e7e Mon Sep 17 00:00:00 2001 From: "Mauro Rosero P." Date: Wed, 12 Mar 2025 18:40:34 -0500 Subject: [PATCH] [ADDED] Soporte para nuevos tipos de proyectos: PHP, C, C++, C# y Rust --- bin/project_create.sh | 234 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 233 insertions(+), 1 deletion(-) diff --git a/bin/project_create.sh b/bin/project_create.sh index b77747b..622225f 100755 --- a/bin/project_create.sh +++ b/bin/project_create.sh @@ -40,7 +40,7 @@ PROJECT_TYPE="" PROJECT_DESCRIPTION="" PROJECT_LICENSE="" PROJECT_LICENSE_TEXT="" -VALID_TYPES=("ansible" "odoo" "sp32home" "nodejs" "python" "cobol" "otros") +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 @@ -428,6 +428,89 @@ EOF 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") @@ -518,6 +601,155 @@ EOF # 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"