#!/usr/bin/env python

import os,sys,tarfile

def cross(root):
    print "Analyzing "+root+"\n"
    os.listdir(root)
    lista=[]
    lista2=[]
    for root,directory,files in os.walk(root):
        print "Scanning dir: "+root+"\n"
        for f in files:
            if str(f).find("DS_Store")> 0:
                lista.append(os.path.join(str(root),str(f)))
            else:
                 lista2.append(os.path.join(str(root),str(f)))

    return (lista,lista2)

def cleanDS(lista):
    for ele in lista:
        os.remove(ele)

def compress(name, lista, format='tar'):
    print 'Compressing ...\n'
    if name == '': name='tarOut'
    elif name[len(name)-1] == os.sep:
        name = name[:-1]
    if format=='tar': tar = tarfile.open(name+'.tar', 'w')
    elif format=='bzip': tar = tarfile.open(name+'.tar.bz2', 'w|bz2')
    elif format=='gzip': tar = tarfile.open(name+'.tgz', 'w|gz')
    else:
        print 'Compressing error\n'
        sys.exit(-1)
    for ele in lista:
        tar.add(ele)
    tar.close()

if __name__=="__main__":
    if len(sys.argv) < 2:
        print """Usage: ./cleanMac <rootDirectory> [optional: tgz  (tar gzip) , bzip  (tar bzip2), tar  (tar)]"""
        sys.exit(0)
    else:
        result=()
        tocancel=tocompress=[]
        (tocancel,tocompress)=cross(sys.argv[1])
        cleanDS(tocancel)
        if len(sys.argv) == 3:
            compress(sys.argv[1],tocompress,sys.argv[2])  
