def inspect_objects(packages, prefix=sys.prefix, groupby='package'): installed = _installed(prefix) output_string = "" for pkg in packages: if pkg == untracked_package: dist = untracked_package elif pkg not in installed: raise ValueError("Package %s is not installed in %s" % (pkg, prefix)) else: dist = installed[pkg] output_string += _underlined_text(pkg) if not sys.platform.startswith('darwin'): sys.exit("Error: conda inspect objects is only implemented in OS X") if dist == untracked_package: obj_files = get_untracked_obj_files(prefix) else: obj_files = get_package_obj_files(dist, prefix) info = [] for f in obj_files: f_info = {} path = join(prefix, f) f_info['filetype'] = human_filetype(path) f_info['rpath'] = ':'.join(get_rpaths(path)) f_info['filename'] = f info.append(f_info) output_string += print_object_info(info, groupby) if hasattr(output_string, 'decode'): output_string = output_string.decode('utf-8') return output_string
def replace_path(binary, path, prefix): if sys.platform.startswith('linux'): return abspath(path) elif sys.platform.startswith('darwin'): if path == basename(binary): return abspath(join(prefix, binary)) if '@rpath' in path: rpaths = get_rpaths(join(prefix, binary)) if not rpaths: return "NO LC_RPATH FOUND" else: for rpath in rpaths: path1 = path.replace("@rpath", rpath) path1 = path1.replace('@loader_path', join(prefix, dirname(binary))) if exists(abspath(join(prefix, path1))): path = path1 break else: return 'not found' path = path.replace('@loader_path', join(prefix, dirname(binary))) if path.startswith('/'): return abspath(path) return 'not found'