You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

91 lines
2.3 KiB

#!/bin/bash
# Default to the current directory if none provided
# https://stackoverflow.com/a/48829326
dir="${1:-.}"
dbg=$1
# Colors are fun
blk=$(tput setaf 0);red=$(tput setaf 1);grn=$(tput setaf 2)
ylw=$(tput setaf 3);blu=$(tput setaf 4);cyn=$(tput setaf 6)
wht=$(tput setaf 7);und=$(tput smul);bld=$(tput bold)
# Uncoloring is important
rst=$(tput sgr0)
function dependencycheck() {
which ffmpeg
if [[ $? -eq 1 ]]; then
die "Dependency check failed. ffmpeg not found."
fi
}
major=0;minor=0;
function getversion() {
# This script was written with 4.4. Other versions may work but are untested
#local version=5.5 #`ffmpeg -version | head -n1 | cut -d' ' -f3 | cut -d- -f1`
major=`echo $version | cut -d. -f1`
minor=`echo $version | cut -d. -f2`
}
function die() {
echo -en ${rst}${red}Exiting for: ${rst}
echo -e ${rst}${2:-$red}${1}${rst}
[[ $dbg != "--dont-die" ]] && exit 1
}
function warn() {
echo -en ${rst}${ylw}Warning: ${rst}
echo -e ${rst}${2:-$ylw}${1}${rst}
}
function info() {
echo -en ${rst}${blu}Info: ${rst}
echo -e ${rst}${2:-$blu}
}
function checkversion() {
if [[ $major -eq 0 && $minor -eq 0 ]]; then
die "version check failed."
fi
if [[ $major -lt 4 || $major -eq 4 && $minor -lt 4 ]]; then
warn "ffmpeg version less than 4.4 ($major.$minor). This script may work but it has not been tested"
fi
}
# trap ctrl-c and call ctrl_c()
# https://rimuhosting.com/knowledgebase/linux/misc/trapping-ctrl-c-in-bash
trap ctrl_c INT
function ctrl_c() {
tput cnorm
echo "${rst}${red}CTRL+C Detected, exiting.${rst}"
exit
}
function convertfile () {
# https://stackoverflow.com/a/62520505
local file=$1
local filename=`echo $file | rev | cut -d. -f2- | rev`
ffmpeg -i $filename.flac -c:v copy -c:a alac $filename.m4a
}
###############################################################
# _| _| _| _| #
# _|_| _|_| _|_|_| _|_|_| _|_|_| _| #
# _| _| _| _| _| _| _| _| _| _| #
# _| _| _| _| _| _| _| _| _| #
# _| _| _|_|_| _|_|_| _| _|_|_| _| _| _| #
# _| _|_|_| #
# _|_| _| #
###############################################################
dependencycheck
getversion
checkversion