code: def copyFunc(dest, source, env):
      
  
      if os.path.isdir(source):
          if os.path.exists(dest):
              if not os.path.isdir(dest):
                  raise SCons.Errors.UserError("cannot overwrite non-directory `%s' with a directory `%s'" % (str(dest), str(source)))
          else:
              parent = os.path.split(dest)[0]
              if not os.path.exists(parent):
                  os.makedirs(parent)
          scons_copytree(source, dest)
      else:
          shutil.copy2(source, dest)
          st = os.stat(source)
          os.chmod(dest, stat.S_IMODE(st[stat.ST_MODE]) | stat.S_IWRITE)
  
      return 0
docs: Install a source file or directory into a destination by copying,
      (including copying permission/mode bits).