Files
platformio-core/scripts/mbed_to_package.py

68 lines
2.2 KiB
Python
Raw Normal View History

2015-03-09 12:27:54 +02:00
# Copyright (C) Ivan Kravets <me@ikravets.com>
# See LICENSE for details.
2015-03-13 20:27:46 +02:00
import argparse
import zipfile
from os import getcwd, listdir, makedirs, mkdir, rename
from os.path import isdir, isfile, join
from shutil import move, rmtree
2015-03-09 12:27:54 +02:00
from sys import exit as sys_exit
from sys import path
path.append("..")
2015-03-13 20:27:46 +02:00
2015-03-09 12:27:54 +02:00
from platformio.util import exec_command
2015-03-13 20:27:46 +02:00
def _unzip_generated_file(mbed_dir, output_dir, mcu):
2015-03-09 12:27:54 +02:00
filename = join(
2015-03-13 20:27:46 +02:00
mbed_dir, "build", "export", "MBED_A1_emblocks_%s.zip" % mcu)
variant_dir = join(output_dir, "variant", mcu)
2015-03-09 12:27:54 +02:00
if isfile(filename):
print "Processing board: %s" % mcu
with zipfile.ZipFile(filename) as zfile:
mkdir(variant_dir)
2015-03-13 20:27:46 +02:00
zfile.extractall(variant_dir)
for f in listdir(join(variant_dir, "MBED_A1")):
if not f.lower().startswith("mbed"):
continue
move(join(variant_dir, "MBED_A1", f), variant_dir)
rename(join(variant_dir, "MBED_A1.eix"),
join(variant_dir, "%s.eix" % mcu))
rmtree(join(variant_dir, "MBED_A1"))
2015-03-09 12:27:54 +02:00
else:
print "Warning! Skipped board: %s" % mcu
2015-03-13 20:27:46 +02:00
def main(mbed_dir, output_dir):
2015-03-09 12:27:54 +02:00
print "Starting..."
2015-03-13 20:27:46 +02:00
path.append(mbed_dir)
from workspace_tools.export import gccarm
if isdir(output_dir):
print "Deleting previous framework dir..."
rmtree(output_dir)
makedirs(join(output_dir, "variant"))
2015-03-09 12:27:54 +02:00
# make .eix files
for mcu in set(gccarm.GccArm.TARGETS):
exec_command(
2015-03-13 20:27:46 +02:00
["python", join(mbed_dir, "workspace_tools", "build.py"),
"--mcu", mcu, "-t", "GCC_ARM"], cwd=getcwd()
)
exec_command(
["python", join(mbed_dir, "workspace_tools", "project.py"),
"--mcu", mcu, "-i", "emblocks", "-p", "0", "-b"], cwd=getcwd()
2015-03-09 12:27:54 +02:00
)
2015-03-13 20:27:46 +02:00
_unzip_generated_file(mbed_dir, output_dir, mcu)
2015-03-09 12:27:54 +02:00
print "Complete!"
if __name__ == "__main__":
2015-03-13 20:27:46 +02:00
parser = argparse.ArgumentParser()
parser.add_argument('--mbed', help="The path to mbed framework")
parser.add_argument('--output', help="The path to output directory")
args = vars(parser.parse_args())
sys_exit(main(args["mbed"], args["output"]))