Created
December 7, 2023 03:57
-
-
Save Guilherme-HRamos/b16c55fb8fa7be1b7438c4e8a6c18665 to your computer and use it in GitHub Desktop.
Useful to get all itens mapped in a wiki repository
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
pasta_raiz=$(pwd) | |
pasta_ignorar="uploads" | |
arquivo_saida="${pasta_raiz}/index.md" | |
echo "# Índice de Arquivos" > "$arquivo_saida" | |
echo -e "_Gerado automaticamente via ***" >> "$arquivo_saida" | |
echo -e "Workflow: setup_wiki" >> "$arquivo_saida" | |
# Remover números do início do nome | |
remover_numeros() { | |
echo "$1" | sed -e 's/^[0-9]*\.//' | |
} | |
# Função para adicionar uma seção ao arquivo de saída | |
adicionar_secao() { | |
local caminho_pasta=$1 | |
local profundidade=$(echo "${caminho_pasta#$pasta_raiz}" | grep -o "/" | wc -l) | |
local nome_pasta=$(basename "$caminho_pasta") | |
nome_pasta=$(remover_numeros "$nome_pasta") | |
if [[ $profundidade -gt 0 ]]; then | |
local cabecalho=$(printf '%*s' $((profundidade + 1)) | tr ' ' '#') | |
echo -e "\n$cabecalho $nome_pasta\n" >> "$arquivo_saida" | |
fi | |
} | |
# Função para adicionar um link ao arquivo de saída | |
adicionar_link() { | |
local caminho_arquivo=$1 | |
local nome_arquivo=$(basename "$caminho_arquivo") | |
local caminho_relativo=${caminho_arquivo#$pasta_raiz/} | |
caminho_relativo=${caminho_relativo%.md} | |
echo "- [${nome_arquivo%.*}](${caminho_relativo})" >> "$arquivo_saida" | |
} | |
# Processar pastas e arquivos | |
processar_pasta() { | |
local pasta_atual=$1 | |
local nome_pasta=$(basename "$pasta_atual") | |
# Ignorar a pasta especificada | |
if [ "$nome_pasta" = "$pasta_ignorar" ]; then | |
return | |
fi | |
adicionar_secao "$pasta_atual" | |
for entrada in "$pasta_atual"/*; do | |
if [ -d "$entrada" ]; then | |
processar_pasta "$entrada" | |
elif [ -f "$entrada" ] && [[ $entrada == *.md ]]; then | |
adicionar_link "$entrada" | |
fi | |
done | |
} | |
# Iniciar a varredura a partir da pasta raiz | |
processar_pasta "$pasta_raiz" | |
content="content=$arquivo_saida" | |
curl --request PUT --data "${content}" \ | |
--header "PRIVATE-TOKEN: $TOKEN" "https://${PROJECT_BASE_URL}/api/v4/projects/${PROJECT_ID}/wikis/index |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment