from os.path import join, normpath import os import contextlib from command import command import attributes import package import project import paths import select import util exit_path = join(paths.state, 'exit.bat') executables = project.interface(lambda pkg: []) initializers = project.interface(lambda pkg: []) headers = project.interface(lambda pkg: []) libraries = project.interface(lambda pkg: []) pythonpath = project.interface(lambda pkg: []) interface_vars = [ (executables, 'PATH'), (headers, 'INCLUDE'), (libraries, 'LIB'), (pythonpath, 'PYTHONPATH') ] def define_paths(project, paths): """Helper function to define paths for a project."""
import repository import project import recipe scan = project.interface(lambda pkg: []) def get_packages(): return recipe.get_list(scan) def find_installed_packages(package_specifier): r = [] for package in get_packages(): if package_specifier.match(package): r.append(package) return r repository.register("system", "System", get_packages, find_installed_packages)
import catalogue import download import package import project import select import recipe import paths import util catalogue_path = join(paths.state, 'catalogue') no_factory = {} # Projects can implement these factory = project.interface(lambda prj, spec: no_factory) installer = project.interface() uninstaller = project.interface() # These attributes are now common a_location = attributes.a_location @package.command() def install(package_specifier): """Install a package.""" project_id = package_specifier.project # Look up project. project = recipe.get_project(project_id)