[ADDED] Soporte para nuevos tipos de proyectos: PHP, C, C++, C# y Rust
This commit is contained in:
parent
9c651f54c8
commit
6aa59d846b
1 changed files with 233 additions and 1 deletions
|
@ -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 '<?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"
|
||||
|
|
Loading…
Reference in a new issue