[420] | 1 | #!/usr/bin/env python |
---|
| 2 | #--------------------------------# |
---|
| 3 | # Author: V.garonne # |
---|
| 4 | # Mail: garonne@lal.in2p3.fr # |
---|
| 5 | # Description: script to export # |
---|
| 6 | # a CMT release to the web site # |
---|
| 7 | #--------------------------------# |
---|
| 8 | |
---|
| 9 | import sys, os |
---|
| 10 | import string |
---|
| 11 | import commands |
---|
| 12 | import shutil |
---|
| 13 | import socket |
---|
| 14 | import tarfile, gzip |
---|
| 15 | import threading |
---|
| 16 | |
---|
| 17 | # my own stuffs |
---|
| 18 | from utils.ssh_session import * |
---|
| 19 | from p3 import decrypt |
---|
| 20 | |
---|
| 21 | #--------------------# MAIN #-------------------------# |
---|
| 22 | #if __name__ == '__main__': |
---|
| 23 | def cmt_export (svnroot, version, wwwroot): |
---|
| 24 | # variables |
---|
| 25 | proxy = '.cmtproxy' |
---|
| 26 | preambule = 'cmt_export > ' |
---|
| 27 | platforms = [ |
---|
| 28 | 'OSF1-alpha', |
---|
| 29 | 'Linux-i686', |
---|
| 30 | 'Linux-x86_64', |
---|
| 31 | 'Linux-ia64', |
---|
| 32 | 'SunOS-sun4u', |
---|
| 33 | 'AIX-002064874C00', |
---|
| 34 | 'Darwin-PowerMacintosh', |
---|
| 35 | 'VisualC', |
---|
| 36 | 'CYGWIN_NT-5.1-i686', |
---|
| 37 | '' |
---|
| 38 | ] |
---|
| 39 | |
---|
| 40 | if not os.path.exists (proxy): |
---|
| 41 | print preambule + 'First create the proxy' |
---|
| 42 | sys.exit(-1) |
---|
| 43 | pool = eval(decrypt('.cmtproxy')) |
---|
| 44 | machine = 'OSF1-alpha' |
---|
| 45 | host = pool[machine]['machine'] |
---|
| 46 | user = pool[machine]['user'] |
---|
| 47 | pwd = pool[machine] ['pwd'] |
---|
| 48 | session = ssh_session (user='garonne', host='lx.lal.in2p3.fr', password=pwd, verbose=1) |
---|
| 49 | |
---|
| 50 | file = 'CMT-'+version+'.pacman' |
---|
| 51 | print file |
---|
| 52 | content = '''#----------------------------------------------------------- |
---|
| 53 | # Copyright Christian Arnault LAL-Orsay CNRS |
---|
| 54 | # arnault@lal.in2p3.fr |
---|
| 55 | # See the complete license in cmt_license.txt "http://www.cecill.info". |
---|
| 56 | #----------------------------------------------------------- |
---|
| 57 | |
---|
| 58 | description ('CMT %s') |
---|
| 59 | packageName ('CMT') |
---|
| 60 | version ('%s') |
---|
| 61 | |
---|
| 62 | pacmanVersionGE('3.13') |
---|
| 63 | |
---|
| 64 | { |
---|
| 65 | platformGE ('Linux') ; downloadUntar ('http://www.cmtsite.org/%s/CMT%sLinux-i686.tar.gz', 'CMTBASE') |
---|
| 66 | OR |
---|
| 67 | platformGE ('Cygwin') ; downloadUntar ('http://www.cmtsite.org/%s/CMT%sCYGWIN_NT-5.1-i686.tar.gz', 'CMTBASE') |
---|
| 68 | OR |
---|
| 69 | downloadUntar ('http://www.cmtsite.org/%s/CMT%s.tar.gz', 'CMTBASE') |
---|
| 70 | } |
---|
| 71 | |
---|
| 72 | cd ('$CMTBASE/%s/mgr') |
---|
| 73 | shellOutputContains ('./INSTALL', 'CMT installation terminated') |
---|
| 74 | { |
---|
| 75 | shellOutputContains ('. setup.sh; cmt version', '%s') |
---|
| 76 | OR shell ('. setup.sh; gmake') |
---|
| 77 | } |
---|
| 78 | shellOutputContains ('. setup.sh; cmt version', '%s') |
---|
| 79 | cd ()'''%(version,version,version, version,version,version,version,version,version,version,version) |
---|
| 80 | |
---|
| 81 | f =open (file, 'w+') |
---|
| 82 | f.write (content) |
---|
| 83 | f.close() |
---|
| 84 | session.scp (file, wwwroot + '/pacman/cache/.') |
---|
| 85 | |
---|
| 86 | # Second pacman Cache |
---|
| 87 | path = '/afs/cern.ch/atlas/software/kits/CMT' |
---|
| 88 | url = 'http://cern.ch/atlas-computing/links/kitsDirectory/CMT' |
---|
| 89 | content = '''#----------------------------------------------------------- |
---|
| 90 | # Copyright Christian Arnault LAL-Orsay CNRS |
---|
| 91 | # arnault@lal.in2p3.fr |
---|
| 92 | # See the complete license in cmt_license.txt "http://www.cecill.info". |
---|
| 93 | #----------------------------------------------------------- |
---|
| 94 | |
---|
| 95 | description ('CMT %s') |
---|
| 96 | packageName ('CMT') |
---|
| 97 | version ('%s') |
---|
| 98 | |
---|
| 99 | pacmanVersionGE('3.13') |
---|
| 100 | |
---|
| 101 | { |
---|
| 102 | platformGE ('Linux') ; downloadUntar ('http://cern.ch/atlas-computing/links/kitsDirectory/CMT/%s/CMT%sLinux-i686.tar.gz', 'CMTBASE') |
---|
| 103 | OR |
---|
| 104 | platformGE ('Cygwin') ; downloadUntar ('http://cern.ch/atlas-computing/links/kitsDirectory/CMT/%s/CMT%sCYGWIN_NT-5.1-i686.tar.gz', 'CMTBASE') |
---|
| 105 | OR |
---|
| 106 | downloadUntar ('http://cern.ch/atlas-computing/links/kitsDirectory/CMT/%s/CMT%s.tar.gz', 'CMTBASE') |
---|
| 107 | } |
---|
| 108 | |
---|
| 109 | cd ('$CMTBASE/%s/mgr') |
---|
| 110 | shellOutputContains ('./INSTALL', 'CMT installation terminated') |
---|
| 111 | { |
---|
| 112 | shellOutputContains ('. setup.sh; cmt version', '%s') |
---|
| 113 | OR shell ('. setup.sh; gmake') |
---|
| 114 | } |
---|
| 115 | shellOutputContains ('. setup.sh; cmt version', '%s') |
---|
| 116 | cd ()'''%(version,version,version, version,version,version,version,version,version,version,version) |
---|
| 117 | |
---|
| 118 | |
---|
| 119 | f =open (file, 'w+') |
---|
| 120 | f.write (content) |
---|
| 121 | f.close() |
---|
| 122 | |
---|
| 123 | machine = 'Linux-i686' |
---|
| 124 | host = pool[machine]['machine'] |
---|
| 125 | user = pool[machine]['user'] |
---|
| 126 | pwd = pool[machine] ['pwd'] |
---|
| 127 | session2 = ssh_session (user=user, host=host, password=pwd, verbose=1) |
---|
| 128 | session2.scp (file, path + '/pacman/cache/.') |
---|
| 129 | |
---|
| 130 | |
---|
| 131 | files = [ |
---|
| 132 | 'doc/CMTDoc.html', |
---|
| 133 | 'doc/CMTDoc.ps', |
---|
| 134 | 'doc/CMTDoc.pdf', |
---|
| 135 | 'doc/CMTFAQ.html', |
---|
| 136 | 'doc/CMTDownload.html', |
---|
| 137 | 'doc/ReleaseNotes.html', |
---|
| 138 | 'doc/ChangeLog.html', |
---|
| 139 | 'mgr/ChangeLog.php', |
---|
| 140 | 'doc/CMTFAQ.ps', |
---|
| 141 | 'doc/CMTFAQ.pdf' |
---|
| 142 | ] |
---|
| 143 | |
---|
| 144 | cmd = 'svn export '+ svnroot + version |
---|
| 145 | print preambule + cmd |
---|
| 146 | status, output = commands.getstatusoutput (cmd) |
---|
| 147 | print output |
---|
| 148 | |
---|
| 149 | #print preambule + 'Build the documentations' |
---|
| 150 | #make doxygen, doxygen must be installed localy |
---|
| 151 | #cmd = 'cd '+version+'/doc; rm -Rf Doxygen; doxygen' |
---|
| 152 | #print preambule + cmd |
---|
| 153 | #status, output = commands.getstatusoutput (cmd) |
---|
| 154 | #print output |
---|
| 155 | #print session.scp (version+'/doc/Doxygen', wwwroot, 'r') |
---|
| 156 | |
---|
| 157 | session.ssh ('mkdir -p '+ wwwroot +'/'+version) |
---|
| 158 | session2.ssh ('mkdir -p '+ path +'/'+version) |
---|
| 159 | for file in files: |
---|
| 160 | print session.scp (version+'/'+file, wwwroot + '/.') |
---|
| 161 | print session.scp (version+'/'+file, wwwroot + '/'+version + '/.') |
---|
| 162 | |
---|
| 163 | for platform in platforms: |
---|
| 164 | file = 'CMT'+version+platform+'.tar.gz' |
---|
| 165 | if os.path.exists(file): |
---|
| 166 | print file |
---|
| 167 | print session.scp (file, wwwroot + '/'+version+'/.') |
---|
| 168 | print session2.scp (file, path + '/'+version+'/.') |
---|
| 169 | |
---|
| 170 | cmd = 'svn co https://svn.lal.in2p3.fr:/projects/CMT/cmtsite' |
---|
| 171 | print preambule + cmd |
---|
| 172 | status, output = commands.getstatusoutput (cmd) |
---|
| 173 | print output |
---|
| 174 | |
---|
| 175 | print '\t You should manually the old release number by '+ version +' in the cmtsite/download.html file ? (y/n)' |
---|
| 176 | choice ='y' |
---|
| 177 | choice = raw_input('--> ') |
---|
| 178 | if choice!='y' and choice!='Y': sys.exit(-1) |
---|
| 179 | os.chdir('cmtsite') |
---|
| 180 | cmd = "svn commit -m 'update the version number for download.html'" |
---|
| 181 | print preambule + cmd |
---|
| 182 | status, output = commands.getstatusoutput (cmd) |
---|
| 183 | print output |
---|
| 184 | os.chdir('..') |
---|
| 185 | session.scp ('cmtsite/download.html', wwwroot + '/.') |
---|
| 186 | |
---|
| 187 | # Do the Clean up |
---|
| 188 | shutil.rmtree ('cmtsite') |
---|
| 189 | shutil.rmtree (version) |
---|
| 190 | #----------------------- End Of File --------------------------# |
---|