update to serve newest debug as well as release builds, and to know about variants

This commit is contained in:
Eric House 2015-07-25 21:56:48 -07:00
parent aeae648afc
commit fe91c9e04e

View file

@ -1,7 +1,7 @@
#!/usr/bin/python #!/usr/bin/python
# Script meant to be installed on eehouse.org. # Script meant to be installed on eehouse.org.
import logging, shelve, hashlib, sys, json, subprocess, glob, os, struct, random import logging, shelve, hashlib, sys, json, subprocess, glob, os, struct, random, string
import mk_for_download, mygit import mk_for_download, mygit
import xwconfig import xwconfig
@ -161,10 +161,13 @@ def getDictSums():
openShelf() openShelf()
return s_shelf[k_SUMS] return s_shelf[k_SUMS]
def getOrderedApks( path ): def getOrderedApks( path, debug ):
# logging.debug( "getOrderedApks(" + path + ")" )
apks = [] apks = []
pattern = path + "/XWords4-release_*android_beta_*.apk" pattern = path
if debug: pattern += "/XWords4-debug-android_*.apk"
else: pattern += "/XWords4-release_*android_beta_*.apk"
files = ((os.stat(apk).st_mtime, apk) for apk in glob.glob(pattern)) files = ((os.stat(apk).st_mtime, apk) for apk in glob.glob(pattern))
for mtime, file in sorted(files, reverse=True): for mtime, file in sorted(files, reverse=True):
@ -173,6 +176,14 @@ def getOrderedApks( path ):
return apks return apks
def getVariantDir( name ):
result = ''
splits = string.split( name, '.' )
last = splits[-1]
if not last == 'xw4': result = last + '/'
# logging.debug( 'getVariantDir(' + name + ") => " + result )
return result
# public, but deprecated # public, but deprecated
def curVersion( req, name, avers = 41, gvers = None, installer = None ): def curVersion( req, name, avers = 41, gvers = None, installer = None ):
global k_versions global k_versions
@ -218,11 +229,16 @@ def getApp( params, name ):
if k_NAME in params: if k_NAME in params:
name = params[k_NAME] name = params[k_NAME]
if name: if name:
variantDir = getVariantDir( name )
# If we're a dev device, always push the latest # If we're a dev device, always push the latest
if k_DEBUG in params and params[k_DEBUG]: if k_DEBUG in params and params[k_DEBUG]:
pass # we don't upgrade DEBUG builds dir = k_filebase + k_apkDir + variantDir
apks = getOrderedApks( dir, True )
if 0 < len(apks):
url = k_urlbase + '/' + k_apkDir + variantDir + apks[0][len(dir):]
result = {k_URL: url}
elif k_DEVOK in params and params[k_DEVOK]: elif k_DEVOK in params and params[k_DEVOK]:
apks = getOrderedApks( k_filebase + k_apkDir ) apks = getOrderedApks( k_filebase + k_apkDir, False )
if 0 < len(apks): if 0 < len(apks):
apk = apks[0] apk = apks[0]
# Does path NOT contain name of installed file # Does path NOT contain name of installed file
@ -438,7 +454,6 @@ def getUpdates( req, params ):
else: else:
logging.debug( "NOT FOUND xlate info" ) logging.debug( "NOT FOUND xlate info" )
logging.debug( 'getUpdates done:', )
result = json.dumps( result ) result = json.dumps( result )
# logging.debug( result ) # logging.debug( result )
return result return result
@ -493,7 +508,7 @@ def main():
if argc >= 4: usage() if argc >= 4: usage()
path = "" path = ""
if argc >= 3: path = sys.argv[2] if argc >= 3: path = sys.argv[2]
apks = getOrderedApks( path ) apks = getOrderedApks( path, False )
if 0 == len(apks): print "No apks in", path if 0 == len(apks): print "No apks in", path
for apk in apks: for apk in apks:
print apk print apk