Gerando lista de arquivos mp3 do disco em arquivo de formato HTML
Publicado por Carlos Junior 20/04/2009
[ Hits: 7.112 ]
É muito trabalhoso quando se tem muitas músicas armazenadas no disco e queremos criar uma página WEB contendo uma lista desses nossos arquivos de mp3, seja para publicarmos em um servidor, compartilhá-los com amigos, ou até mesmo para uso pessoal.
Este Script faz todo o trabalho automaticamente, criando links simbólicos para os arquivos mp3 em um diretório definido pelo usuário, gerando um arquivo HTML chamado 'gera-mp3.html', e ainda gerando um log com o resultado final.
#!/bin/bash
# ##### Nome: gera-mp3 - Versão: 2.0
# ##### Autor: Carlos Schwarz - Data: 30 Nov 2007
# Procura, no diretório atual e sub-diretórios, por arquivos
# tipo .mp3, e cria, dentro do diretório passado pelo parâmetro 1,
# um link simbólico para cada arquivo encontrado.
# Também gera, no diretório atual, um arquivo HTML chamado
# 'gera-mp3.html' com links para os arquivos simbólicos criados.
##########################################################
########## CONFIRMANDO ENTRADA DE DADOS CORRETA ##########
MsgErro()
{
echo "Uso: gera-mp3 <diretório>"
echo "Onde: <diretório> é aonde serão criados os links simbólicos"
echo " dos arquivos .mp3 encontrados no disco."
echo -e "OBS: Somente o usuário 'root' tem permissão.\n"
# echo -e "Digite: 'gera-mp3 --help' para mais informações (ainda não disponível).\n"
}
if [ $# != 1 ]
then
echo "ERRO: Passagem incorreta de parâmetros."
MsgErro
exit 1
elif [ ! -e "$1/." ]
then
echo "ERRO: Diretório de destino não encontrado."
MsgErro
exit 2
elif [ "$(cd "$1"; pwd)" = "$(pwd)" ]
then
echo "ERRO: Diretório de destino não deve ser diretório atual."
MsgErro
exit 3
fi
if [ "$(whoami)" != "root" ]
then
echo "ERRO: Somente o usuário 'root' tem permissão."
MsgErro
exit 4
fi
DirHTML="$(echo "$(cd "$1"; pwd)" | cut -d"/" -f"$(echo $(cd "$1"; pwd) | tr "/" "\n" | grep -c "")")"
echo -e "\e[1mDestino dos links simbólicos:\e[m"
echo " $(cd "$1"; pwd)"
echo -e "\e[1mDestino do arquivo HTML:\e[m"
echo " $(pwd)/gera-mp3.html"
echo -e "\e[1mDestino dos links dentro do arquivo HTML:\e[m"
echo -e " href=\"$DirHTML/nome_da_música.mp3\"\n"
while true
do
nulo=""
tput sc
read -n1 -p "Confirmar (S/n): " Confirmar
[ "$Confirmar" != "" ] && read -n1 -s nulo
Confirmar=$(echo "$Confirmar" | tr [A-Z] [a-z])
if [ "$Confirmar" = "" ]; then Confirmar="s"; tput cuu1; fi
if [ "$Confirmar" = "s" -a "$nulo" = "" ]; then echo; break; fi
if [ "$Confirmar" = "n" -a "$nulo" = "" ]; then echo -e "\nCancelado pelo usuário.\n"; exit; fi
tput rc ; tput el
done
##########################################################
########## DECLARAÇÃO DAS VARIÁVEIS DE AMBIENTE ##########
oIFS="$IFS"
IFS="
"
ContMp3=0
ContDupl=0
Arq=""
##########################################################
########## PROCURANDO, CRIANDO DADOS NO ARQUIVO ##########
echo -e "Trabalhando \e[1m...\e[m"
echo -e "\n\n################################################################" >> "gera-mp3.log"
echo "######### gera-mp3.log - $(date) #########" >> "gera-mp3.log"
echo -e "################################################################\n" >> "gera-mp3.log"
echo -e " - ARQUIVOS DUPLICADOS NÃO ADICIONADOS: -\n" >> "gera-mp3.log"
# echo -e "------------------------------------\n" >> "gera-mp3.log"
for Arq in $(find / -wholename "$(pwd)/*.mp3")
do
Musica="$(echo "$Arq" | tr "/" "\n" | grep ".mp3$")"
ln -s "$Arq" "$1/$Musica" > /dev/null 2>&1
if [ $? != 0 ]
then
echo -e "$Arq" >> "gera-mp3.log"
((ContDupl++))
else
echo " <a target=\"_top\"" >> "gera-mp3.html"
echo " href=\"$DirHTML/$Musica\">$Musica</a><br>" >> "gera-mp3.html"
# echo " target=\"_top\">$Musica</a><br>" >> "gera-mp3.html"
echo -e "\n" >> "gera-mp3.html"
((ContMp3++))
fi
done
[ "$ContDupl" = "0" ] && echo "Nenhum arquivo duplicado foi encontrado." >> "gera-mp3.log"
echo -e "\n - RELATÓRIO FINAL: -\n" >> "gera-mp3.log"
echo "Encontradas $(echo $ContMp3 + $ContDupl | bc) músicas." >> "gera-mp3.log"
echo "Destas, $ContMp3 foram adicionadas com sucesso." >> "gera-mp3.log"
[ "$ContDupl" != "0" ] && echo "$ContDupl continham nomes iguais e não foram adicionadas." >> "gera-mp3.log"
echo
echo "Encontradas $(echo $ContMp3 + $ContDupl | bc) músicas."
echo "Destas, $ContMp3 foram adicionadas com sucesso."
[ "$ContDupl" != "0" ] && echo "$ContDupl continham nomes iguais e não foram adicionadas."
echo
IFS="$oIFS"
Script para criar usuarios Dialup
bookmaker.bash: Script para imprimir livros com 4 páginas em uma folha
Backup de arquivos do Linux para um servidor FTP
Localizar e excluir linhas repetidas em um arquivo texto
Nenhum comentário foi encontrado.
O Journal no Linux para a guarda e consulta de logs do sistema
A evolução do Linux e as mudanças que se fazem necessárias desde o seu lançamento
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Sway no Arch Linux: configuração Inicial sem enrolação
Resolvendo o bloqueio do Módulo Warsaw no Arch Linux (Porta 30900)
Continuando meus tópicos anteriores (0)
Saída de loop após teste de if. (2)
Governo da França vai trocar Windows por Linux (9)
Warsaw não é reconhecido no Google Chrome 147.0.7727.55 [RESOLVIDO] (9)









