13c827367444ee418f129b2c238299f49d3264554Jarkko Poyry# -*- coding: utf-8 -*-
23c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
33c827367444ee418f129b2c238299f49d3264554Jarkko Poyryimport sys
43c827367444ee418f129b2c238299f49d3264554Jarkko Poyryimport os
53c827367444ee418f129b2c238299f49d3264554Jarkko Poyryimport time
63c827367444ee418f129b2c238299f49d3264554Jarkko Poyryimport string
73c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
83c827367444ee418f129b2c238299f49d3264554Jarkko Poyryimport common
93c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
107e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulosdef install (extraArgs = []):
113c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	curDir = os.getcwd()
123c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	try:
133c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		os.chdir(common.ANDROID_DIR)
143c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
153c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		print "Removing old dEQP Package..."
167e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos		common.execArgs([common.ADB_BIN] + extraArgs + [
177e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos				'uninstall',
187e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos				'com.drawelements.deqp'
197e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos			])
203c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		print ""
213c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
223c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		print "Installing dEQP Package..."
237e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos		common.execArgs([common.ADB_BIN] + extraArgs + [
247e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos				'install',
257e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos				'-r',
267e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos				'package/bin/dEQP-debug.apk'
277e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos			])
283c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		print ""
293c827367444ee418f129b2c238299f49d3264554Jarkko Poyry
303c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	finally:
313c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		# Restore working dir
323c827367444ee418f129b2c238299f49d3264554Jarkko Poyry		os.chdir(curDir)
337e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos
347e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulosdef installToDevice (device):
357e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos	print "Installing to %s (%s)..." % (device.serial, device.model)
367e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos	install(['-s', device.serial])
377e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos
387e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulosdef installToAllDevices ():
397e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos	devices = common.getDevices(common.ADB_BIN)
407e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos	for device in devices:
417e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos		installToDevice(device)
427e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos
433c827367444ee418f129b2c238299f49d3264554Jarkko Poyryif __name__ == "__main__":
443c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	if len(sys.argv) > 1:
457e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos		if sys.argv[1] == '-a':
467e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos			installToAllDevices()
477e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos		else:
487e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos			install(sys.argv[1:])
493c827367444ee418f129b2c238299f49d3264554Jarkko Poyry	else:
507e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos		devices = common.getDevices(common.ADB_BIN)
517e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos		if len(devices) == 0:
527e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos			common.die('No devices connected')
537e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos		elif len(devices) == 1:
547e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos			installToDevice(devices[0])
557e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos		else:
567e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos			print "More than one device connected:"
577e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos			for i in range(0, len(devices)):
587e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos				print "%3d: %16s %s" % ((i+1), devices[i].serial, devices[i].model)
597e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos
607e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos			deviceNdx = int(raw_input("Choose device (1-%d): " % len(devices)))
617e01a414adc237914552ab970ab3c8c81a8ff799Pyry Haulos			installToDevice(devices[deviceNdx-1])
62