Update autodocAI authored by Ramicés dos Santos Silva's avatar Ramicés dos Santos Silva
......@@ -46,24 +46,102 @@ Este documento descreve o procedimento para a geração automatizada de document
```
- Substitua `YOUR_API_KEY` pela chave API copiada.
## Criação e Execução de Scripts de Automação
## Scripts de Automação
### Estrutura dos Scripts
Scripts de automação foram utilizados para geração da documentação em dois cenários diferentes, um deles provendo documentação do código e outro trazendo uma visão geral das funcionalidade encontradas com base nos módulos. A seguir a explicação operacionalização de cada um.
Os scripts de automação devem seguir uma estrutura padrão para garantir a consistência na geração de documentação. Um exemplo básico de script pode ser:
# Script de Geração Automatizada de Documentação
```shell
#!/bin/bash
## Visão Geral
Este script Bash automatiza a criação de documentação para arquivos de código em um diretório específico usando a ferramenta `bito`. Ele gera arquivos de documentação Markdown para scripts com extensões `.sh`, `.py`, `.php` e `.js`, organizando-os em uma estrutura de diretórios correspondente ao diretório de origem.
## Funcionamento do Script
O script segue os seguintes passos para gerar a documentação:
### 1. Configuração das Variáveis
O script configura algumas variáveis essenciais:
- `BITO_CMD`: Localiza o comando `bito` no sistema.
- `BITO_CMD_VEP`: Define uma opção adicional para o comando `bito`, dependendo da versão.
- `BITO_VERSION`: Obtém a versão atual do `bito` e compara com a versão 3.7 para definir `BITO_CMD_VEP`.
```bash
BITO_CMD=`which bito`
BITO_CMD_VEP=""
BITO_VERSION=`$BITO_CMD -v | awk '{print $NF}'`
# Compare BITO_VERSION to check if its greater than 3.7
if awk "BEGIN {exit !($BITO_VERSION > 3.7)}"; then
BITO_CMD_VEP="--agent create_code_doc"
fi
```
### 2. Verificação de Argumentos
O script verifica se um nome de diretório foi fornecido como argumento de linha de comando. Se não for fornecido, o script exibe uma mensagem de erro e encerra.
```bash
if [ $# -eq 0 ]; then
echo "Please provide folder name as command line argument"
exit 1
fi
```
### 3. Verificação e Criação de Diretório de Documentação
Verifica se o diretório fornecido existe. Se não existir, exibe uma mensagem de erro e encerra.
Cria um diretório para a documentação, prefixando "doc" ao nome do diretório original.
```bash
folder=$1
# Script de Geração de Documentação
if [ ! -d "$folder" ]; then
echo "Folder $folder does not exist"
exit 1
fi
# Definição das variáveis
DOCUMENTATION_PATH="/caminho/para/documentacao"
OUTPUT_PATH="/caminho/para/saida"
CONFIG_FILE="/caminho/para/configuracao.json"
doc_folder="doc_$(basename $folder)"
# Comando para gerar a documentação
bito generate --config $CONFIG_FILE --output $OUTPUT_PATH
if [ ! -d "$doc_folder" ]; then
mkdir -p "$doc_folder"
fi
```
### 4. Geração de Documentação
Encontra todos os arquivos com extensões específicas no diretório fornecido e seus subdiretórios.
Para cada arquivo encontrado, cria uma estrutura de diretórios correspondente no diretório de documentação.
Gera a documentação para cada arquivo usando o comando bito e salva a documentação no diretório apropriado.
```bash
find "$folder" -type f -name "*.sh" -o -name "*.py" -o -name "*.php" -o -name "*.js" | while read file; do
# Get relative path of file from folder
rel_path="${file#$folder/}"
# Get directory path of file in document folder
doc_dir="$doc_folder/$(dirname "$rel_path")"
# Create directory if it does not exist
if [ ! -d "$doc_dir" ]; then
mkdir -p "$doc_dir"
fi
# Create documentation using bito and save it in document folder
file2write="$doc_dir/$(basename "${file%.*}").md"
echo "Creating documentation in: " $file2write
# The below command does not work and gives following error
# Only "-p" flag is applicable for this command. Remove any additional flags and then try again.
# bito -p docprmt.txt -f "$file" >> "$file2write"
cat $file | bito -p ./prompts/structured_doc.txt $BITO_CMD_VEP > $file2write
done
```
echo "Documentação gerada com sucesso!"
### 5. Finalização
Após gerar a documentação para todos os arquivos, o script exibe uma mensagem indicando onde a documentação foi criada.
```bash
echo "Documentation created in $doc_folder"
```
*** 6. Uso
Para usar o script, execute o seguinte comando, substituindo <folder_name> pelo nome do diretório que contém os arquivos de código:
```bash
./nome_do_script.sh <folder_name>
```