Advertisement
Guest User

FAST_THUMBS_GEN

a guest
Oct 28th, 2010
830
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.38 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. ## FAST THUMBNAIL GENERATION OF GIVEN DIRECTORIES (non-resursive, for nautilus, rox-filer, ...)
  4. # requirements: bash, perl, graphicsmagick, ffmpegthumbnailer, (readlink)
  5.  
  6. # syntax: $0 dir [dir, ...]
  7.  
  8. if [[ $# -le 0 ]]; then
  9.     exit 0
  10. fi
  11.  
  12. umask 177
  13. if ! [[ -d "$HOME/.thumbnails/normal" ]]; then
  14.     mkdir -p "$HOME/.thumbnails/normal"
  15.     mkdir -p "$HOME/.thumbnails/fail"
  16.     find "$HOME/.thumbnails" -type d -exec chmod 0700 "{}" \;
  17. fi
  18.  
  19. filedb=$(mktemp /tmp/.filedb.XXXXXXXX)
  20. xvlist=$(mktemp /tmp/.xvlist.XXXXXXXX)
  21. xplist=$(mktemp /tmp/.xplist.XXXXXXXX)
  22.  
  23. find $(for i in "$@"; do test -d "$i" && readlink -f "$i"; done | sort -u) -mindepth 1 -maxdepth 1 -type f |
  24. file -0 --mime-type -p -r -f - | awk -F '\0' '$2 ~ /(video|image)\//' > $filedb
  25.  
  26. awk -F '\0' '$2 ~ /video\// {printf("%s\0",$1)}' $filedb | perl -MDigest::MD5=md5_hex -e \
  27.     '$/="\0"; while(<>){chomp; print "$_\0".$ENV{"HOME"}."/.thumbnails/normal/".md5_hex("file://$_").".png\0"}' > $xvlist
  28.  
  29. if [[ -s $xvlist ]]; then
  30.     xargs -a $xvlist -0 -n 2 -P 4 vids_thumbnailer
  31. fi
  32.  
  33. awk -F '\0' '$2 ~ /image\// {printf("%s\0",$1)}' $filedb |
  34. perl -MDigest::MD5=md5_hex -e \
  35.     '$/="\0"; while(<>){chomp; print "$_\0".$ENV{"HOME"}."/.thumbnails/normal/".md5_hex("file://$_").".png\0"}' > $xplist
  36.  
  37. if [[ -s $xplist ]]; then
  38.     xargs -a $xplist -0 -n 2 -P 4 pics_thumbnailer
  39. fi
  40.  
  41. rm $xplist $xvlist $filedb
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement