Advertisement
Guest User

Untitled

a guest
Jun 19th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.32 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # A Python function for overlaying a source directory on top of a destination dir
  3.  
  4. import os
  5. import re
  6.  
  7. from conda_build.utils import merge_tree, _copy_with_shell_fallback
  8.  
  9. def build_absolute_paths(src, dest, dest_prefix):
  10. abs_src = os.path.abspath(src)
  11. abs_dest = os.path.join(dest_prefix, re.sub(r'^/+', '', dest))
  12. return abs_src, abs_dest
  13.  
  14. def overlay(src, dest, dest_prefix):
  15. abs_src, abs_dest = build_absolute_paths(src, dest, dest_prefix)
  16. if os.path.isfile(abs_src):
  17. os.makedirs(os.path.dirname(abs_dest))
  18. _copy_with_shell_fallback(abs_src, abs_dest)
  19. elif os.path.isdir(abs_src):
  20. merge_tree(abs_src, abs_dest)
  21.  
  22. if __name__ == "__main__":
  23. # The conda-build dir is overlaid on PREFIX/
  24. overlay("/Users/sodre/git/conda/conda-build", "/", "/tmp/tmp0")
  25.  
  26. # The overlay-dir.py file is copied to PREFIX/overlay-dir.py
  27. overlay('overlay-dir.py', '/', '/tmp/tmp1')
  28. assert(os.path.isfile('/tmp/tmp1/overlay-dir.py'))
  29.  
  30. # The overlay-dir.py file is copied to PREFIX/bin/overlay-dir.py
  31. overlay('overlay-dir.py', '/bin/', "/tmp/tmp2")
  32. assert(os.path.isfile('/tmp/tmp2/bin/overlay-dir.py'))
  33.  
  34. # The overlay-dir.py file is copied to PREFIX/bin/overlay
  35. overlay('overlay-dir.py', '/bin/overlay', "/tmp/tmp3")
  36. assert(os.path.isfile('/tmp/tmp3/bin/overlay'))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement