mirror of https://github.com/ARMmbed/mbed-os.git
Merge pull request #108 from ScreamerBG/master
Refactored exporter featurespull/109/head mbed_lib_rev69
commit
a3cae89a98
|
@ -1,6 +1,8 @@
|
||||||
"""Just a template for subclassing"""
|
"""Just a template for subclassing"""
|
||||||
import uuid, shutil, os, logging, fnmatch
|
import uuid, shutil, os, logging, fnmatch
|
||||||
|
from os import walk, remove
|
||||||
from os.path import join, dirname, isdir, split
|
from os.path import join, dirname, isdir, split
|
||||||
|
from copy import copy
|
||||||
from jinja2 import Template
|
from jinja2 import Template
|
||||||
from contextlib import closing
|
from contextlib import closing
|
||||||
from zipfile import ZipFile, ZIP_DEFLATED
|
from zipfile import ZipFile, ZIP_DEFLATED
|
||||||
|
@ -35,15 +37,32 @@ class Exporter():
|
||||||
if r:
|
if r:
|
||||||
self.toolchain.copy_files(r, trg_path, rel_path=src_path)
|
self.toolchain.copy_files(r, trg_path, rel_path=src_path)
|
||||||
return resources
|
return resources
|
||||||
|
|
||||||
|
def __scan_all(self, path):
|
||||||
|
resources = []
|
||||||
|
|
||||||
|
for root, dirs, files in walk(path):
|
||||||
|
for d in copy(dirs):
|
||||||
|
if d == '.' or d == '..':
|
||||||
|
dirs.remove(d)
|
||||||
|
|
||||||
|
for file in files:
|
||||||
|
file_path = join(root, file)
|
||||||
|
resources.append(file_path)
|
||||||
|
|
||||||
|
return resources
|
||||||
|
|
||||||
def scan_and_copy_resources(self, prj_path, trg_path):
|
def scan_and_copy_resources(self, prj_path, trg_path):
|
||||||
# Copy only the file for the required target and toolchain
|
# Copy only the file for the required target and toolchain
|
||||||
lib_builds = []
|
lib_builds = []
|
||||||
repo_dirs = []
|
|
||||||
for src in ['lib', 'src']:
|
for src in ['lib', 'src']:
|
||||||
resources = self.__scan_and_copy(join(prj_path, src), trg_path)
|
resources = self.__scan_and_copy(join(prj_path, src), trg_path)
|
||||||
lib_builds.extend(resources.lib_builds)
|
lib_builds.extend(resources.lib_builds)
|
||||||
repo_dirs.extend(resources.repo_dirs)
|
|
||||||
|
# The repository files
|
||||||
|
for repo_dir in resources.repo_dirs:
|
||||||
|
repo_files = self.__scan_all(repo_dir)
|
||||||
|
self.toolchain.copy_files(repo_files, trg_path, rel_path=join(prj_path, src))
|
||||||
|
|
||||||
# The libraries builds
|
# The libraries builds
|
||||||
for bld in lib_builds:
|
for bld in lib_builds:
|
||||||
|
@ -51,7 +70,8 @@ class Exporter():
|
||||||
lib_data = self.build_url_resolver(build_url)
|
lib_data = self.build_url_resolver(build_url)
|
||||||
lib_path = lib_data['path'].rstrip('\\/')
|
lib_path = lib_data['path'].rstrip('\\/')
|
||||||
self.__scan_and_copy(lib_path, join(trg_path, lib_data['name']))
|
self.__scan_and_copy(lib_path, join(trg_path, lib_data['name']))
|
||||||
# create .hg dir in build dir so it's ignored when versioning
|
|
||||||
|
# Create .hg dir in mbed build dir so it's ignored when versioning
|
||||||
hgdir = join(trg_path, lib_data['name'], '.hg')
|
hgdir = join(trg_path, lib_data['name'], '.hg')
|
||||||
mkdir(hgdir)
|
mkdir(hgdir)
|
||||||
fhandle = file(join(hgdir, 'keep.me'), 'a')
|
fhandle = file(join(hgdir, 'keep.me'), 'a')
|
||||||
|
@ -64,7 +84,7 @@ class Exporter():
|
||||||
# This prevents exporting the mbed libraries from source
|
# This prevents exporting the mbed libraries from source
|
||||||
# if not self.toolchain.mbed_libs:
|
# if not self.toolchain.mbed_libs:
|
||||||
# raise OldLibrariesException()
|
# raise OldLibrariesException()
|
||||||
|
|
||||||
def gen_file(self, template_file, data, target_file):
|
def gen_file(self, template_file, data, target_file):
|
||||||
template_path = join(Exporter.TEMPLATE_DIR, template_file)
|
template_path = join(Exporter.TEMPLATE_DIR, template_file)
|
||||||
template_text = open(template_path).read()
|
template_text = open(template_path).read()
|
||||||
|
|
Loading…
Reference in New Issue