12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #!/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
|