Skip to content

Instantly share code, notes, and snippets.

@Guilherme-HRamos
Created December 7, 2023 03:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Guilherme-HRamos/b16c55fb8fa7be1b7438c4e8a6c18665 to your computer and use it in GitHub Desktop.
Save Guilherme-HRamos/b16c55fb8fa7be1b7438c4e8a6c18665 to your computer and use it in GitHub Desktop.
Useful to get all itens mapped in a wiki repository
#!/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