#!/usr/bin/python import sys, os, getopt def usage(): print '' print 'make_dcache_local_stage_script' print '' print 'takes file with dcache url\'s (base_file) and generates script (output_file)' print 'to stage them to a local destination (local_destination).' print '' print 'required parameters:' print '--tier (-t) : hit, digi, dst to use the default file names' print '--local_destination (-c) : local destination' print '' print 'optional parameters:' print '--help (-h) : help' print '--debug (-d) : debug statements' print '' print '--base_file_name (-b) : base_file with dcache url\'s, default: _to_be_staged.cpy' print '--output_file_name (-o) : output_file with dcache url\'s not in both files, default: _to_be_staged_to_local.cpy' print '' def main(argv) : # default tier = '' base_file_name = '' local_destination = '' output_file_name = '' try: opts, args = getopt.getopt(argv, "hdt:b:c:o:", ["help", "debug", "tier=", "base_file_name=", "local_destination=", "output_file_name="]) except getopt.GetoptError: usage() sys.exit(2) # check command line parameter for opt, arg in opts : if opt in ("-h","--help") : usage() sys.exit() elif opt in ("-d","--debug") : global _debug _debug = 1 elif opt in ("-t","--tier") : tier = arg elif opt in ("-b","--base_file_name") : base_file_name = arg elif opt in ("-c","--local_destination") : local_destination = arg elif opt in ("-o","--output_file_name") : output_file_name = arg if base_file_name == '': if tier == '' : usage() sys.exit() else : base_file_name = tier+'_to_be_staged.cpy' if local_destination == '' : print '' print 'Please provide local destination' usage() sys.exit(1) if output_file_name == '': if tier == '' : usage() sys.exit() else : output_file_name = tier+'_to_be_staged_to_local.cpy' try: base = open(base_file_name) except IOError: print 'Could not open file: ',base_file_name sys.exit() output = open(output_file_name,'w') counter = 0 base_line = base.readline() while base_line : base_line = base_line.strip() filename = os.path.split(base_line)[1] stage = 'dccp '+base_line+' '+local_destination+'/'+filename+'\n' output.write(stage) counter += 1 base_line = base.readline() print 'Number of dcache copies to local prepared: ',counter if __name__ == '__main__' : main(sys.argv[1:])