#coding=utf-8
#使用python做升级文件打包

import hashlib
import sys
import zipfile
from os import path
import subprocess

hashFileName = 'hash256.sign'

	
def sha256_checknum(apk):
	hash256 = hashlib.sha256()
	srcFile = open(apk,'rb')
	with srcFile as f:
		for block in iter(lambda:f.read(4096),b''):
			hash256.update(block);
	srcFile.close()
	hash256.update(b'nzoqPYMIu91VViA/mEIG5FtJXi8=')
	
	hashFile = path.dirname(apk)+'/'+hashFileName
	print('hashFile = '+hashFile)
	destFile = open(hashFile,'w+')
	destFile.write(hash256.hexdigest())
	destFile.close()
	
def zip_file(apk):
	fileDir = path.dirname(apk)
	version = subprocess.check_output(['git', 'describe', '--abbrev=4','--dirty','--always','--tags']).strip().decode('utf-8')
	zipFile = fileDir+'/posa711'+'-'+version+'.zip'
	print('zipFile = '+zipFile)
	
	zf = zipfile.ZipFile(zipFile,'w',zipfile.ZIP_DEFLATED)
	zf.write(fileDir+'/'+hashFileName,hashFileName)
	zf.write(apk,'posa711.apk')
	zf.close()

if __name__ == '__main__':
	appFile = './app/release/app-release.apk'
	print('appFile = ' + appFile)
	
	if not path.exists(appFile):
		print(appFile +' is not exist')
		exit()
	sha256_checknum(appFile)
	zip_file(appFile)
	print('build upgrade zip success!')