ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/ForwardAnalysis/Scripts/scripts/copyFilesFromCastor.py
Revision: 1.1
Committed: Fri Oct 1 15:39:51 2010 UTC (14 years, 7 months ago) by antoniov
Content type: text/x-python
Branch: MAIN
Log Message:
commiting a few useful scripts

File Contents

# User Rev Content
1 antoniov 1.1 #! /usr/bin/env python
2    
3     import sys
4     import optparse
5     from subprocess import Popen,PIPE
6    
7     def listFilesInCastor(castor_dir,type,prefix):
8     p1 = Popen(['nsls',castor_dir],stdout=PIPE)
9     p2 = Popen(['grep',type],stdin=p1.stdout,stdout=PIPE)
10     files = [prefix + castor_dir + "/" + item[:-1] for item in p2.stdout]
11     p2.stdout.close()
12     return files
13    
14     def copyFilesFromCastor(castor_dir,output_dir,type,prefix,suffix):
15     from subprocess import call
16     files = listFilesInCastor(castor_dir,type,prefix)
17     if suffix: files = [item + suffix for item in files]
18    
19     print "Copying from %s to %s" % (castor_dir,output_dir)
20     for item in files:
21     cmd = ['rfcp',item,output_dir]
22     print "..." + item
23     retcode = call(cmd)
24     if retcode != 0: raise RuntimeError,'Error in copying file %s to directory %s' % (item,output_dir)
25    
26     if __name__ == '__main__':
27     parser = optparse.OptionParser(usage="usage: %prog [options]")
28     parser.add_option("-o","--out", dest="out", metavar="OUT", help="output directory")
29     parser.add_option("-d","--dir", dest="dir", metavar="DIR", help="copy files from DIR")
30     parser.add_option("-t","--type", dest="type", default="root", metavar="TYPE", help="select only files with substring TYPE (Default: 'root')")
31     parser.add_option("-p","--prefix", dest="prefix", default="", metavar="PREFIX", help="prepend PREFIX to file path")
32     parser.add_option("-s","--suffix", dest="suffix", default="", metavar="SUFFIX", help="append SUFFIX to file path")
33    
34     (input, args) = parser.parse_args()
35    
36     if not input.dir: parser.error('must set input directory')
37     if not input.out: parser.error('must set output directory')
38    
39     copyFilesFromCastor(castor_dir = input.dir,
40     output_dir = input.out,
41     type = input.type,
42     prefix = input.prefix,
43     suffix = input.suffix)
44    
45     sys.exit(0)