Try to use bsd-mailx where possible for cddb-tool
authorSteve McIntyre <steve@einval.com>
Sun, 26 Oct 2014 18:35:10 +0000 (18:35 +0000)
committerSteve McIntyre <steve@einval.com>
Sun, 26 Oct 2014 18:35:10 +0000 (18:35 +0000)
Try to use bsd-mailx where possible to force UTF-8 for cddb-tool mail
submissions. If not possible, attempt to force UTF-8 via the
environment and fall back to mail instead. Closes: #756289 in Debian,
issue 111.

cddb-tool
changelog
debian/control

index 1833986..ac572c0 100755 (executable)
--- a/cddb-tool
+++ b/cddb-tool
@@ -113,6 +113,20 @@ f_seq ()
        done
 }
 
+new_checkexec ()
+{
+       if [ ! "$@" = "" ]; then
+               # Cut off any command-line option we added in
+               X=$(echo $@ | cut -d' ' -f2)
+               if [ "$(which $X)" = "" ]; then
+                       return 1
+               elif [ ! -x $(which $X) ]; then
+                       return 2
+               fi
+       fi
+       return 0
+}
+
 COMMAND=$1
 shift
 case $COMMAND in
@@ -196,7 +210,18 @@ send) # cddb-tool send filename email@address
        ADDRESS="$2"
        DISCID=$(grep ^DISCID= "$FILE" | cut -f2 -d= | tr -d \[:cntrl:\])
        CDDBGENRE=$(grep '^#CATEGORY=' "$FILE" | cut -f2- -d= | tr -d \[:cntrl:\])
-       grep -v "^#CATEGORY=" "$FILE" | iconv -t utf-8 | mail -a "Content-Type: text/plain; charset=utf-8" -s "cddb $CDDBGENRE $DISCID" "$ADDRESS"
+       # Use bsd-mailx by preference if we can, as it allows addition
+       # of extra headers. Otherwise, try to force UTF-8 via environment
+       if new_checkexec bsd-mailx; then
+               grep -v "^#CATEGORY=" "$FILE" | iconv -t utf-8 | bsd-mailx -a "Content-Type: text/plain; charset=utf-8" -s "cddb $CDDBGENRE $DISCID" "$ADDRESS"
+       else
+               # Find the first UTF-8 locale on the system, if any
+               UTF_LOCALE=$(locale -a | awk '/UTF-8/ { print $1; exit}')
+               if [ "$UTF_LOCALE"x != ""x ] ; then
+                       export LC_ALL=$UTF_LOCALE
+               fi
+               grep -v "^#CATEGORY=" "$FILE" | iconv -t utf-8 | mail -s "cddb $CDDBGENRE $DISCID" "$ADDRESS"
+       fi
        ;;
 
 query) # cddb-tool query serverurl proto user host discid...
index ad67a87..3ff7264 100644 (file)
--- a/changelog
+++ b/changelog
@@ -31,6 +31,10 @@ abcde 2.5.5 UNRELEASED
     Closes: #256941 in Debian.
   * Concatenate option steps on -t/-T option. Thanks to Charles
     Steinkuehler for the patch. Closes: #391294 in Debian
+  * Try to use bsd-mailx where possible to force UTF-8 for cddb-tool mail
+    submissions. If not possible, attempt to force UTF-8 via the
+    environment and fall back to mail instead. Closes: #756289 in Debian,
+    issue 111.
 
  -- Steve McIntyre <93sam@debian.org>  Sat, 25 Oct 2014 12:11:16 -0700
 
index 21d713f..29fac11 100644 (file)
@@ -11,7 +11,7 @@ Vcs-Svn: http://abcde.googlecode.com/svn/trunk/
 Package: abcde
 Architecture: all
 Depends: ${misc:Depends}, cd-discid, wget, cdparanoia | icedax, vorbis-tools (>= 1.0beta4-1) | lame | flac | bladeenc | speex | musepack-tools | opus-tools
-Recommends: vorbis-tools, libmusicbrainz-discid-perl, libwebservice-musicbrainz-perl, libdigest-sha-perl, mailx
+Recommends: vorbis-tools, libmusicbrainz-discid-perl, libwebservice-musicbrainz-perl, libdigest-sha-perl, bsd-mailx
 Suggests: eject, distmp3, id3 (>= 0.12), id3v2, eyed3, normalize-audio, vorbisgain, mkcue, mp3gain, atomicparsley
 Description: A Better CD Encoder
  frontend program to cdparanoia, wget, cd-discid, id3, and your favorite