diff options
Diffstat (limited to 'buildscripts/s3md5.py')
-rw-r--r-- | buildscripts/s3md5.py | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/buildscripts/s3md5.py b/buildscripts/s3md5.py new file mode 100644 index 0000000..89800cd --- /dev/null +++ b/buildscripts/s3md5.py @@ -0,0 +1,48 @@ + +import os +import sys + +sys.path.append( "." ) +sys.path.append( ".." ) +sys.path.append( "../../" ) +sys.path.append( "../../../" ) + +import simples3 +import settings +import subprocess + +# check s3 for md5 hashes + +def check_dir( bucket , prefix ): + + zips = {} + md5s = {} + for ( key , modify , etag , size ) in bucket.listdir( prefix=prefix ): + if key.endswith( ".tgz" ) or key.endswith( ".zip" ): + zips[key] = etag.replace( '"' , '' ) + elif key.endswith( ".md5" ): + md5s[key] = True + elif key.find( "$folder$" ) > 0: + pass + else: + print( "unknown file type: " + key ) + + for x in zips: + m = x + ".md5" + if m in md5s: + continue + + print( "need to do: " + x + " " + zips[x] + " to " + m ) + bucket.put( m , zips[x] , acl="public-read" ) + + +def run(): + + bucket = simples3.S3Bucket( settings.bucket , settings.id , settings.key ) + + for x in [ "osx" , "linux" , "win32" , "sunos5" ]: + check_dir( bucket , x ) + + +if __name__ == "__main__": + run() |