Skip to content

Instantly share code, notes, and snippets.

@andersonbosa
Created April 6, 2025 13:25
Show Gist options
  • Save andersonbosa/651075e95a40a9cd065df6e8186eba7d to your computer and use it in GitHub Desktop.
Save andersonbosa/651075e95a40a9cd065df6e8186eba7d to your computer and use it in GitHub Desktop.
#!/bin/bash
create_domain_structure() {
local domain_name=$1
mkdir -p ${PROJECT_NAME}/src/modules/${domain_name}/application/{commands,queries,services}
touch ${PROJECT_NAME}/src/modules/${domain_name}/application/{commands,queries,services}/index.ts
mkdir -p ${PROJECT_NAME}/src/modules/${domain_name}/domain/{entities,value-objects,repositories,events}
touch ${PROJECT_NAME}/src/modules/${domain_name}/domain/{entities,value-objects,repositories,events}/index.ts
mkdir -p ${PROJECT_NAME}/src/modules/${domain_name}/infrastructure/{orm,services}
touch ${PROJECT_NAME}/src/modules/${domain_name}/infrastructure/{orm,services}/index.ts
mkdir -p ${PROJECT_NAME}/src/modules/${domain_name}/presentation/{controllers,dtos}
touch ${PROJECT_NAME}/src/modules/${domain_name}/presentation/{controllers,dtos}/index.ts
}
if [[ -z "$1" ]]; then
echo "ERROR: missing parameter: PROJECT_NAME"
return 1
fi
PROJECT_NAME="$@"
# Criar a estrutura de diretórios
create_domain_structure auth
create_domain_structure user
create_domain_structure orders
mkdir -p ${PROJECT_NAME}/src/shared/{decorators,exceptions,middleware,utils}
mkdir -p ${PROJECT_NAME}/src/config
# Criar arquivos iniciais
touch ${PROJECT_NAME}/src/main.ts
touch ${PROJECT_NAME}/src/app.module.ts
# Criar arquivos de configuração
touch ${PROJECT_NAME}/package.json
touch ${PROJECT_NAME}/tsconfig.json
touch ${PROJECT_NAME}/.env
touch ${PROJECT_NAME}/.env.development
touch ${PROJECT_NAME}/.env.staging
touch ${PROJECT_NAME}/.env.production
echo "Estrutura de pastas criada com sucesso em ${PROJECT_NAME}."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment