[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_DESCRIPTION=""
|
||||||
PROJECT_LICENSE=""
|
PROJECT_LICENSE=""
|
||||||
PROJECT_LICENSE_TEXT=""
|
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
|
# Estructura de datos para licencias: nombre, badge, texto corto
|
||||||
declare -A LICENSE_BADGES
|
declare -A LICENSE_BADGES
|
||||||
|
@ -428,6 +428,89 @@ EOF
|
||||||
2. Active el entorno virtual: \`source .venv/bin/activate\`
|
2. Active el entorno virtual: \`source .venv/bin/activate\`
|
||||||
3. Instale las dependencias: \`pip install -r requirements.txt\`
|
3. Instale las dependencias: \`pip install -r requirements.txt\`
|
||||||
4. Instale el paquete en modo desarrollo: \`pip install -e .\`
|
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
|
EOF
|
||||||
;;
|
;;
|
||||||
"cobol")
|
"cobol")
|
||||||
|
@ -518,6 +601,155 @@ EOF
|
||||||
# Crear un __init__.py básico
|
# Crear un __init__.py básico
|
||||||
touch "$PROJECT_PATH/src/$PROJECT_NAME/__init__.py"
|
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")
|
"cobol")
|
||||||
mkdir -p "$PROJECT_PATH/src/main"
|
mkdir -p "$PROJECT_PATH/src/main"
|
||||||
mkdir -p "$PROJECT_PATH/src/copy"
|
mkdir -p "$PROJECT_PATH/src/copy"
|
||||||
|
|
Loading…
Reference in a new issue