ultimacartella 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #!/bin/bash
  2. usage() {
  3. echo "Usage: $0 [options] BASEDIR"
  4. echo " Accoda tutti i file presenti nella cartella "
  5. echo " piu' recente (usando l mtime) all interno di BASEDIR"
  6. echo ""
  7. echo " I file sono messi tutti, ordinati in ordine alfabetico"
  8. echo ""
  9. echo "Options:"
  10. echo " -p DIRPREFIX La directory deve iniziare con questa stringa"
  11. }
  12. pickdir() {
  13. base=$1
  14. prefix=$2
  15. sorting="-r" # time-based; use "-r" for name-based
  16. if [[ -z "$prefix" ]]; then
  17. ls -1d $sorting "$base"/*/|head -n1
  18. else
  19. ls -1d $sorting "$base/${prefix}"*/|head -n1
  20. fi
  21. }
  22. prefix=
  23. while getopts p: opt; do
  24. case $opt in
  25. p)
  26. prefix=$OPTARG
  27. ;;
  28. esac
  29. done
  30. shift $((OPTIND-1))
  31. if [[ $# -ne 1 ]]; then
  32. usage >&2
  33. exit 2
  34. fi
  35. base=$1
  36. shift
  37. set -e
  38. set -u
  39. if [[ ! -d "$base" ]]; then
  40. echo "Errore: cartella non esistente" >&2
  41. usage >&2
  42. exit 2
  43. fi
  44. pickeddir=$(pickdir "$base" "$prefix")
  45. if [[ -z "$pickeddir" ]]; then
  46. echo "Errore: cartella vuota" >&2
  47. exit 2
  48. fi
  49. if [[ ! -d "$pickeddir" ]]; then
  50. echo "Errore: cartella trovata non esistente ($pickeddir)"
  51. exit 2
  52. fi
  53. empty=true
  54. while read fpath
  55. do
  56. empty=false
  57. fpath=$(readlink -f "$fpath")
  58. echo "file://$fpath"
  59. done < <(find "$pickeddir" -type f -size +10k \( -iname '*.mp3' -o -iname '*.ogg' \)| sort)
  60. if $empty; then
  61. echo "Warning: no file output ($pickeddir)" >&2
  62. exit 1
  63. else
  64. exit 0
  65. fi