media_management_scripts/check_Names_and_Paths.sh

174 lines
5.4 KiB
Bash

#!/bin/bash
#####################################################
# #
# SCRIPT USAGE #
# #
# copy script in root from hdd beside the #
# folderers /movies and /tvshows and run #
# with sh ./check_Names_and_Paths.sh #
# #
# #
#####################################################
echo "Starting script ..."
if [[ -d movies ]]
then
echo "Movie directory found"
else
echo "Movie directory not found"
exit 1
fi
if [[ -d tvshows ]]
then
echo "TV-Shows directory found"
else
echo "TV-Shows directory not found"
exit 1
fi
if [[ -d books ]]
then
echo "Books directory found"
else
echo "Books directory not found"
exit 1
fi
echo ""
echo "Checking Movies ..."
echo ""
for file in movies/*
do
filename=$(basename "$file") # file name with extension
filebasename=$(echo "$filename" | cut -f 1 -d '.') # file name without extension
#echo "Processing $file"
#echo "filename: $filename"
#echo "filebasename: $filebasename"
###### check for amount of points ######
pointCount=$(echo "$filename" | tr -cd '.' | wc -c)
if [[ $pointCount != 1 ]]
then
echo "Incident: Incorrect amount of points: $file"
fi
###### check extension ######
ext="${filename##*.}"
if [ "$ext" != "mkv" ] && [ "$ext" != "mp4" ]
then
echo "Incident: Incorrect extension: $file"
fi
###### check for not allowed chars ######
if [[ ! "$filebasename" =~ ^[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0-9\\-\\_]+$ ]]
then
echo "Incident: Not allowed char found in: $file"
fi
done
#done with movies
echo ""
echo "Checking TV-Shows ..."
echo ""
for show in tvshows/*; do
if [[ -d $show ]]; then
showname=$(basename "$show") # file name with extension
#echo "TV-Show found: $show"
#echo "showname: $showname"
###### check for not allowed chars in showname ######
if [[ ! "$showname" =~ ^[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0-9\\-\\_]+$ ]]
then
echo "Incident: Not allowed char found in: $show"
fi
for season in tvshows/$showname/*; do
if [[ -d $season ]]; then
seasonname=$(basename "$season") # file name with extension
#echo "Season found: $season"
#echo "seasonname: $seasonname"
###### check for not allowed chars in season name ######
if [[ ! "$seasonname" =~ ^[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0-9\\-\\_]+$ ]]
then
echo "Incident: Not allowed char found in: $season"
fi
for episode in tvshows/$showname/$seasonname/*; do
if [[ -f $episode ]]; then
episodename=$(basename "$episode") # file name with extension
episodebasename=$(echo "$episodename" | cut -f 1 -d '.') # file name without extension
#echo "Episode found: $episode"
#echo "Episodename: $episodename"
#echo "Episodebasename: $episodebasename"
###### check for amount of points ######
pointCount=$(echo "$episodename" | tr -cd '.' | wc -c)
if [[ $pointCount != 1 ]]
then
echo "Incident: Incorrect amount of points: $episode"
fi
###### check extension ######
ext="${episodename##*.}"
if [ "$ext" != "mkv" ] && [ "$ext" != "mp4" ]
then
echo "Incident: Incorrect extension: $episode"
fi
###### check for not allowed chars ######
if [[ ! "$episodebasename" =~ ^[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0-9\\-\\_]+$ ]]
then
echo "Incident: Not allowed char found in: $episode"
fi
fi
done
fi
done
fi
done
echo ""
echo "Checking Books ..."
echo ""
for file in books/*
do
filename=$(basename "$file") # file name with extension
filebasename=$(echo "$filename" | cut -f 1 -d '.') # file name without extension
#echo "Processing $file"
#echo "filename: $filename"
#echo "filebasename: $filebasename"
###### check for amount of points ######
pointCount=$(echo "$filename" | tr -cd '.' | wc -c)
if [[ $pointCount != 1 ]]
then
echo "Incident: Incorrect amount of points: $file"
fi
###### check extension ######
ext="${filename##*.}"
if [ "$ext" != "pdf" ] && [ "$ext" != "epub" ]
then
echo "Incident: Incorrect extension: $file"
fi
###### check for not allowed chars ######
if [[ ! "$filebasename" =~ ^[ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0-9\\-\\_]+$ ]]
then
echo "Incident: Not allowed char found in: $file"
fi
done
#done with books
echo ""
echo "Finished script successfully"