tagger.py: make sure that we have the id3v2 prog
authorColin McCabe <colinmcc@lab126.com>
Wed, 27 Jan 2010 21:52:14 +0000 (13:52 -0800)
committerColin McCabe <colinmcc@lab126.com>
Wed, 27 Jan 2010 21:52:14 +0000 (13:52 -0800)
tagger.py

index bda52af..88d2b0e 100755 (executable)
--- a/tagger.py
+++ b/tagger.py
@@ -65,6 +65,16 @@ def find_companion_script(target):
         print "ERROR: can't find id3v2_wrapper.sh: " + str(e)
         sys.exit(1)
 
+# Verifies that a given program is installed.
+def verify_program_installed(prog):
+    try:
+        proc = subprocess.Popen(prog, stdout=subprocess.PIPE)
+        line = proc.stdout.readline()
+        return True
+    except Exception, e:
+        print "failed to execute " + str(prog)
+        return False
+
 # Regular expressions for parsing file names--
 # which is, after all, what this program is all about
 music_file_re = re.compile(".*\.mp3$")
@@ -252,6 +262,11 @@ class MusicFile(object):
                 break
 # CODE
 
+## Make sure that id3v2 is installed
+if not verify_program_installed(["id3v2", "--version"]):
+    print "You must install the id3v2 program to run this script."
+    sys.exit(1)
+
 ## Find id3v2_wrapper.sh
 id3v2_wrapper = find_companion_script('id3v2_wrapper.sh')