def add_module_repository(options): # does not work yet really... config = VikiConfig() repositories.clone_module_repository('core', config) # install direct dependencies install_packages({}) # install using rosdep, for build dependencies dependencies.install_second_level_dependencies()
def check_installed_packages(): """ Checks for every module that is available, if the ROS packages needed for it are installed on the system :return: Boolean """ viki_config = VikiConfig() missing_packages = get_missing_packages(viki_config) if len(missing_packages) > 0: print "[WARNING] - There are missing packages for full VIKI support:" print "\n".join(map((lambda x: x['name']), missing_packages)) return False else: print "[OK] - All ROS package dependencies are met!" print "Note: only second level dependencies of already installed packages have been checked" return True
def install_packages(options): """ Installs packages that the 'check_packages' function determines as missing This can either be with apt-get, or git, something else is not yet supported :return: """ config = VikiConfig() missing_ros_packages = dependencies.get_missing_packages(config) if len(missing_ros_packages) == 0: print "[OK] - All ROS package dependencies are met, noting to install!" missing_aptget_packages = map((lambda x: x['name']), filter((lambda x: x['type'] == 'apt-get'), missing_ros_packages)) missing_vcs_packages = filter((lambda x: x['type'] == 'git'), missing_ros_packages) installation_candidates = dependencies.get_aptget_packages( missing_aptget_packages) dependencies.start_aptget_installation(installation_candidates) dependencies.start_vcs_installation(missing_vcs_packages)