00001
00002
00003
00004
00005 import os
00006 import subprocess
00007
00008 otsdaqVersion = "s64-e15 prof";
00009
00010 try:
00011 os.path.isdir(os.environ['PRODUCTS']);
00012 except KeyError:
00013 print "PRODUCTS variable not set.";
00014 print "Example:";
00015 print "export PRODUCTS=`pwd`";
00016 exit(1);
00017
00018
00019
00020
00021 cmd=os.environ['PRODUCTS'];
00022 print cmd
00023 os.chdir(cmd);
00024
00025 if(os.path.isfile('pullProducts')):
00026 os.remove('pullProducts');
00027
00028
00029 cmd='curl -O http://scisoft.fnal.gov/scisoft/bundles/tools/pullProducts';
00030 print cmd
00031 os.system(cmd);
00032
00033
00034 cmd='chmod +x pullProducts';
00035 print cmd
00036 os.system(cmd);
00037
00038
00039
00040
00041 cmd = 'curl -s http://scisoft.fnal.gov/scisoft/bundles/otsdaq/ | grep id=\\"v | grep -oP \'(?<=id=\\")[^\\">]*\'';
00042 print cmd;
00043 process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE);
00044 otsdaq_version,err = process.communicate();
00045 if(err != '' and not err.find('Total')):
00046 print "There was an error executing \"" + cmd + "\"";
00047 print "Error:\n" + err;
00048
00049 otsdaq_versions = otsdaq_version.rstrip().split();
00050
00051
00052
00053
00054
00055
00056 cmd = "uname -r";
00057 print cmd
00058 process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE);
00059 operatingSystem,err = process.communicate();
00060 if(err != ''):
00061 print "There was an error executing \"" + cmd + "\"";
00062 print "Error:\n" + err;
00063
00064 if "el6" in operatingSystem:
00065 host_os = "slf6"
00066 xerces_os = "slf6"
00067 elif "el7" in operatingSystem:
00068 host_os = "slf7"
00069 xerces_os = "sl7"
00070
00071
00072 cmd='cd $Products';
00073 print cmd
00074 os.system(cmd)
00075
00076 for otsdaq_version in reversed(otsdaq_versions):
00077 print "Fetching products for otsdaq_version: " + otsdaq_version;
00078 print "This step might take longer than you wish so be patient..."
00079 cmd = "./pullProducts . " + host_os + " otsdaq-" + otsdaq_version + " " + otsdaqVersion;
00080 print cmd;
00081 process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE);
00082 operatingSystem,err = process.communicate();
00083 if(err != ''):
00084 print "There was an error executing \"" + cmd + "\"";
00085 print "Error:\n" + err;
00086 if( err.find('MANIFEST') == -1):
00087 break;
00088 print "Trying to fetch an older otsdaq_version..."
00089 else:
00090 break;
00091
00092
00093
00094
00095 cmd="rm -f *.bz2 *.txt";
00096 print cmd
00097 os.system(cmd)
00098
00099
00100
00101
00102
00103