#!/usr/bin/env python
'''
Created on 7 Jun 2010

@author: kreczko

Email: kreczko@cern.ch
'''
import sys
try:
    import subprocess
except:
    print "You have to use Python 2.4 or higher"
    sys.exit(0)
from optparse import OptionParser
files = []
directories = []

srmBase = 'srm://lcgse02.phy.bris.ac.uk:8444/srm/managerv2?SFN='

def getFiles(gridFolder, input):
    if gridFolder.endswith('/'):
        gridFolder = gridFolder.rstrip('/')
    input = input.rstrip(' ')
    fileLinesOnly = input[input.find(gridFolder)+len(gridFolder):]
    fileLines = fileLinesOnly.split('\n')[1:]
    fileLines = [fileLine.lstrip(' ') for fileLine in fileLines]
    files = [line.split(' ')[1] for line in fileLines if len(line.split(' ')) == 2]
    files.sort()
    return files
    
def listFiles(gridFolder):
    output = subprocess.Popen(['srmls', srmBase + gridFolder], stdout = subprocess.PIPE).communicate()[0]
    return output
    
def delete(file):
    output = subprocess.Popen(['srmrm', srmBase + file], stdout = subprocess.PIPE).communicate()[0]
    return output

def deleteFolder(folder):
    output = subprocess.Popen(['srmrmdir', srmBase + folder], stdout = subprocess.PIPE).communicate()[0]
    return output

def deleteGridFolder(path):
    filelist = listFiles(path)
    for file in getFiles(path, filelist):
        print delete(file)
    print deleteFolder(path)
        
if __name__ == '__main__':
    
    parser = OptionParser()
    parser.add_option("-r", "--recursive",
                  action="store_true", dest="recursive", default=False,
                  help="delete grid folder recursively")
    
    (options, args) = parser.parse_args()
    if len(args) >0 and not options['recursive']:
        path = args[0]
        deleteGridFolder(path)
    elif len(args) >0 and options['recursive']:
        pass
    
    else:
        print 'Delete path was not specified. Use script "./deleteGridFolder path"'
