# Path: confduino/liblist.py
# def libraries_dir():
#     """return library root path.
# 
#     $ARDUINO/libraries
# 
#     """
#     x = arduino_path() / 'libraries'
#     assert x.exists(), x
#     return x
# 
# Path: confduino/util.py
# def tmpdir(directory=None, suffix=''):
#     x = tempfile.mkdtemp(suffix=suffix, prefix='confduino_', dir=directory)
#     return path(x)
# 
# def download(url):
#     log.debug('downloading %s', url)
#     f, _ = urllib.urlretrieve(url)
#     log.debug('downloaded file: %s', f)
#     return f
# 
# def clean_dir(root):
#     '''remove .* and _* files and directories under root'''
#     for x in root.walkdirs('.*', errors='ignore'):
#         x.rmtree()
#     for x in root.walkdirs('_*', errors='ignore'):
#         x.rmtree()
# 
#     for x in root.walkfiles('.*', errors='ignore'):
#         x.remove()
#     for x in root.walkfiles('_*', errors='ignore'):
#         x.remove()
# 
# class ConfduinoError(Exception):
#     pass


from confduino.liblist import libraries_dir
from confduino.util import tmpdir, download, clean_dir, ConfduinoError
from entrypoint2 import entrypoint
from path import Path as path
from pyunpack import Archive
import logging

log = logging.getLogger(__name__)


def noexample(x):
    while 1:
        f = x.next()
        if 'example' not in f.lower():
            yield f


def create_name(root):
    header_only = len(list(noexample(root.walkfiles('*.cpp')))) == 0
#    libname = None

# Path: confduino/liblist.py
# def libraries_dir():
#     """return library root path.
# 
#     $ARDUINO/libraries
# 
#     """
#     x = arduino_path() / 'libraries'
#     assert x.exists(), x
#     return x
# 
# Path: confduino/util.py
# def tmpdir(directory=None, suffix=''):
#     x = tempfile.mkdtemp(suffix=suffix, prefix='confduino_', dir=directory)
#     return path(x)
# 
# def download(url):
#     log.debug('downloading %s', url)
#     f, _ = urllib.urlretrieve(url)
#     log.debug('downloaded file: %s', f)
#     return f
# 
# def clean_dir(root):
#     '''remove .* and _* files and directories under root'''
#     for x in root.walkdirs('.*', errors='ignore'):
#         x.rmtree()
#     for x in root.walkdirs('_*', errors='ignore'):
#         x.rmtree()
# 
#     for x in root.walkfiles('.*', errors='ignore'):
#         x.remove()
#     for x in root.walkfiles('_*', errors='ignore'):
#         x.remove()
# 
# class ConfduinoError(Exception):
#     pass


# Path: confduino/libinstall.py
from confduino.liblist import libraries_dir
from confduino.util import tmpdir, download, clean_dir, ConfduinoError
from entrypoint2 import entrypoint
from path import Path as path
from pyunpack import Archive
import logging


log = logging.getLogger(__name__)


def noexample(x):
    while 1:
        f = x.next()
        if 'example' not in f.lower():
            yield f


def create_name(root):
    header_only = len(list(noexample(root.walkfiles('*.cpp')))) == 0
#    libname = None

    goodh = []