#!/usr/bin/env python
'''
Created on Aug 25, 2011

@author: Stephen Reichling <sreichling@chegg.com>
'''
import sys
import os
import shutil


EXEC_DIR = sys.path[0];

def main():    
    #Set directory to be processed
    try:
        sourceDir = sys.argv[1]
    except IndexError:
        sourceDir = os.getcwd()
    try:
        destDir = sys.argv[2]
    except IndexError:
        destDir = os.getcwd()

    
    #Check for access to directories
    if not os.access(destDir, os.W_OK):
        print >> sys.stderr, 'fontConvert: No write access to directory ' + destDir
        return 1
    if not os.access(sourceDir, os.R_OK):
        print >> sys.stderr, 'fontConvert: No read access to directory ' + sourceDir
        return 1
       
    fontFiles = os.listdir(sourceDir)
    
    fontFiles.sort()
    
    fontCount = 0;

    for fontFilename in fontFiles:
        fontName, fontExten = os.path.splitext(fontFilename)
        
        if not (fontExten == '.pfa' or fontExten == '.ttf' or fontExten == '.cid'
                or fontExten == '.otf' or fontExten == '.cff' or fontExten == '.fnt'):
            continue
        
        fontCount += 1
        
        sys.stderr.write("\r                                                                  ")
        sys.stderr.write("\rConverting font " + fontName + "...")
                
        #It is stupid and slow to do this part as a separate script, but fontforge has a memory leak that requires this
        if os.system(EXEC_DIR+ "/singleFont.py " + destDir + " " + sourceDir + " " + fontName + " " + fontExten):
            print >> sys.stderr, "fontConvert: Error while converting fonts!"
            return 1
    
    print >> sys.stderr, "\r" + str(fontCount) + " fonts converted                                                             "
    
if __name__ == "__main__":
    sys.exit(main())
