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