Skip to content
Snippets Groups Projects
Select Git revision
  • 95463469c9798c46564627418981cabea6741a1f
  • master default protected
2 results

get_local_models.py

Blame
  • user avatar
    Alessandro Ambrosano authored
    Change-Id: I62a623b25b53f940aa9f2a8023517313df9f1f49
    cc568230
    History
    get_local_models.py 1.93 KiB
    #!/usr/bin/python
    from __future__ import print_function
    
    import sys
    import os
    import shutil
    import distutils.core
    
    def copy_models(src, dst):
    
        list_dir = [os.path.join(src,x) for x in os.listdir(src)]
        sub_dirs = [x for x in list_dir if os.path.isdir(x)]
        for model_path in sub_dirs:
            if 'model.config' in os.listdir(model_path):
                # sys.stdout.write(" copying %s" % model_path)
                print (".", end="")
                dest_dir = os.path.join(dst, os.path.split(model_path)[1] )
                if os.path.isdir(dest_dir):
                    shutil.rmtree(dest_dir)
                    print("overriding model %s" % model_path)
                shutil.copytree(model_path, dest_dir)
            else:
                print (" %s ignored" % model_path)
    
    
    dest_dir = sys.argv[1]
    
    
    print("copying local models to %s" % dest_dir)
    
    unique_paths = None
    try:
        gazebo_path =  os.environ['GAZEBO_MODEL_PATH'].split(':')
    
        model_paths = [x for x in gazebo_path if os.path.isdir(x)]
        unique_paths = list(set(model_paths))
    except:
        print ("No local models.")
    #    exit(0)
    
    if unique_paths is not None:
      for path in unique_paths:
          print("\nmodel path: [%s]" % path)
          copy_models(path, dest_dir)
    
      print("local models transfered")
    
    
    print("copying local resources to %s" % dest_dir)
    
    def copy_resources(src, dst):
        media_path = os.path.join(src, "media")
        if os.path.exists(media_path) and os.path.isdir(media_path):
          dest_dir = os.path.join(dst, "media")
          distutils.dir_util.copy_tree(media_path, dest_dir)
    
    unique_paths = None
    try:
        resource_path =  os.environ['GAZEBO_RESOURCE_PATH'].split(':')
    
        resource_paths = [x for x in resource_path if os.path.isdir(x)]
        unique_paths = list(set(resource_paths))
    except:
        print ("No local resources")
        exit(0)
    
    if unique_paths is not None:
      for path in unique_paths:
          print("\nresource path: [%s]" % path)
          copy_resources(path, dest_dir)
    
    print("local resources transfered")