1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| #!/bin/bash
listfile() {
#Sauvegarde de L'Internal Field Separator (Utile ???)
SaveIFS=$IFS
#Seprateur uniquement au saut de page
IFS=$'\n'
#Pour tout les fichiers du répertoire donné en paramètre
for fichier in $(eval ls \"$1\"); do
#Si c'est un fichier
if [ -f "$1/$fichier" ]; then
#Si le nom du fichier contient '.flac'
if [ ${fichier##*.} == 'flac' ]; then
#Détermination du nom complet du fichier cible
local fileDest=$(replaceStr "$1/$fichier" "FLAC" "OGG")
local fichier_flac=$1/$fichier
fileDest=$(replaceStr "$fileDest" ".flac" ".ogg")
#Recherche si fichier cible existant
if [ ! -f "$fileDest" ]; then
echo "Compression de : "$fileDest
#On le compresse
oggenc "$fichier_flac" -q9
#On le met dans le repertoire OGG
fichier_ogg=$(replaceStr "$fichier_flac" ".flac" ".ogg")
mv "$fichier_ogg" "$fileDest"
fi
elif [ ${fichier##*.} == 'png' ] || [ ${fichier##*.} == 'jpg' ] || [ ${fichier##*.} == 'txt' ]; then
#Détermination du nom complet du fichier cible
local fileDest=$(replaceStr "$1/$fichier" "FLAC" "OGG")
local fileSrc=$1/$fichier
#Recherche si fichier cible existant
if [ ! -f "$fileDest" ]; then
echo "Copie de : "$fileDest
#On copie le fichier
mv "$fileSrc" "$fileDest"
fi
fi
#Si c'est un répertoire
elif [ -d "$1/$fichier" ]; then
local rep=$1/$fichier
#Détermination du nom du répertoire cible
local repDest=$(replaceStr "$rep" "FLAC" "OGG")
#Si inexitant
if [ ! -d "$repDest" ]; then
echo "___KO : "$repDest
#Création du répertoire
eval mkdir \"$repDest\"
fi
#Appel récursif avec ce nouveau répertoire
listfile "$rep"
fi
done
#On réapplique le IFS sauvegardé (Utile ???)
IFS=$SaveIFS
}
replaceStr(){
local cible=$(echo $1 | sed -e "s/$2/$3/")
echo $cible
}
source=$1
echo $source
listfile "$source" |
Partager