def app_install(fn, prefix=config.root_dir): """ Install the application `fn` into prefix (which defauts to the root environment). """ import plan index = get_index() actions = plan.install_actions(prefix, index, [fn2spec(fn)]) plan.execute_actions(actions, index)
def app_info_packages(fn): """ given the filename of a package, return which packages (and their sizes) still need to be downloaded, in order to install the package. That is, the package itself and it's dependencies. Returns a list of tuples (pkg_name, pkg_version, size, fetched? True or False). """ from resolve import Resolve index = get_index() r = Resolve(index) res = [] for fn2 in r.solve([fn2spec(fn)]): info = index[fn2] res.append((info['name'], info['version'], info['size'], install.is_fetched(config.pkgs_dir, fn2[:-8]))) return res