Advertisement
MichalMMac

SubCoder

Mar 14th, 2014
879
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.36 KB | None | 0 0
  1. #!/bin/bash
  2. # Author: MichalM.Mac
  3.  
  4. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  5. # Config
  6.  
  7. export ENCODING_FROM='CP1250'
  8. export ENCODING_TO='UTF-8'
  9. SUB_EXTENSION='.srt'
  10.  
  11. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  12.  
  13. error_printer() {
  14.   echo "$@" 1>&2;
  15. }
  16.  
  17. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  18.  
  19. convert_sub_encoding(){
  20.   if file --mime-encoding "$1"  | grep -iq "$ENCODING_TO"; then
  21.     error_printer "Error: File $1 is alredy encoded in $ENCODING_TO"
  22.     return
  23.   fi
  24.  
  25.   mv "$1" "${1}_temp"
  26.   iconv -f "$ENCODING_FROM" -t "$ENCODING_TO" "${1}_temp" > "$1" && rm "${1}_temp"
  27. }
  28.  
  29. find_subs(){
  30.   export -f error_printer
  31.   export -f convert_sub_encoding
  32.   find "$1" -name "*${SUB_EXTENSION}" -exec bash -c 'convert_sub_encoding "$0"' {} \;  
  33. }
  34.  
  35. # - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
  36. # Main Body
  37.  
  38. if [ $# -eq 0 ]; then
  39.   echo "Error: No Aruments specified -> Nothing to do."  
  40. fi    
  41.  
  42. # Postupné zpracování všech dodaných parametrů
  43. while [ $# -gt 0 ]
  44. do
  45.   if [ -d "$1" ]; then
  46.     find_subs "$1"
  47.   elif [ -f "$1" ]; then
  48.     convert_sub_encoding "$1"
  49.   else
  50.     error_printer "Error: $1 is not valid file or directory"  
  51.   fi
  52.        
  53.   shift
  54. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement