73 lines
1.3 KiB
Bash
Executable file
73 lines
1.3 KiB
Bash
Executable file
#!/bin/bash
|
|
|
|
usage() {
|
|
echo "Usage: $0 [options] BASEDIR"
|
|
echo " Accoda tutti i file presenti nella cartella "
|
|
echo " piu' recente (usando l mtime) all interno di BASEDIR"
|
|
echo ""
|
|
echo " I file sono messi tutti, ordinati in ordine alfabetico"
|
|
echo ""
|
|
echo "Options:"
|
|
echo " -p DIRPREFIX La directory deve iniziare con questa stringa"
|
|
}
|
|
|
|
pickdir() {
|
|
base=$1
|
|
prefix=$2
|
|
sorting="-r" # time-based; use "-r" for name-based
|
|
if [[ -z "$prefix" ]]; then
|
|
ls -1d $sorting "$base"/*/|head -n1
|
|
else
|
|
ls -1d $sorting "$base/${prefix}"*/|head -n1
|
|
fi
|
|
}
|
|
|
|
prefix=
|
|
while getopts p: opt; do
|
|
case $opt in
|
|
p)
|
|
prefix=$OPTARG
|
|
;;
|
|
esac
|
|
done
|
|
shift $((OPTIND-1))
|
|
if [[ $# -ne 1 ]]; then
|
|
usage >&2
|
|
exit 2
|
|
fi
|
|
base=$1
|
|
shift
|
|
|
|
set -e
|
|
set -u
|
|
|
|
if [[ ! -d "$base" ]]; then
|
|
echo "Errore: cartella non esistente" >&2
|
|
usage >&2
|
|
exit 2
|
|
fi
|
|
|
|
pickeddir=$(pickdir "$base" "$prefix")
|
|
if [[ -z "$pickeddir" ]]; then
|
|
echo "Errore: cartella vuota" >&2
|
|
exit 2
|
|
fi
|
|
if [[ ! -d "$pickeddir" ]]; then
|
|
echo "Errore: cartella trovata non esistente ($pickeddir)"
|
|
exit 2
|
|
fi
|
|
|
|
empty=true
|
|
while read -r fpath
|
|
do
|
|
empty=false
|
|
fpath=$(readlink -f "$fpath")
|
|
echo "file://$fpath"
|
|
done < <(find "$pickeddir" -type f -size +10k \( -iname '*.mp3' -o -iname '*.ogg' \)| sort)
|
|
|
|
if $empty; then
|
|
echo "Warning: no file output ($pickeddir)" >&2
|
|
exit 1
|
|
else
|
|
exit 0
|
|
fi
|