code: def update(custom_sources=False):
      
      if not shutil.which('git'):
          print('Git executable not found in $PATH.')
          sys.exit(1)
  
      if not custom_sources:
          print('Creating sources.yaml…')
          write_sources_file()
          print('Cloning sources…')
          sources_file = rel_to_cwd('sources.yaml')
          jobs = yaml_to_job_list(sources_file, rel_to_cwd('sources'))
          git_clone_job_list(jobs)
  
      print('Cloning templates…')
      jobs = yaml_to_job_list(rel_to_cwd('sources', 'templates', 'list.yaml'),
                              rel_to_cwd('templates'))
      print('Cloning schemes…')
      jobs.extend(yaml_to_job_list(rel_to_cwd('sources', 'schemes', 'list.yaml'),
                                   rel_to_cwd('schemes')))
      git_clone_job_list(jobs)
      print('Completed updating repositories.')
docs: Update function to be called from cli.py