docs: def copy_helper(app_or_project, name, directory, dist, template_dir, noadmin):
      """
      
      Replacement for django copy_helper
      Copies a Django project layout template into the specified distribution directory
  
      """
  
      import shutil
      if not re.search(r'^[_a-zA-Z]\w*$', name): # If it's not a valid directory name.
          # Provide a smart error message, depending on the error.
          if not re.search(r'^[_a-zA-Z]', name):
              message = 'make sure the name begins with a letter or underscore'
          else:
              message = 'use only numbers, letters and underscores'
          raise CommandError("%r is not a valid project name. Please %s." % (name, message))
      top_dir = os.path.join(directory, dist)
      try:
          os.mkdir(top_dir)
      except OSError, e:
          raise CommandError(e)
          
      for d, subdirs, files in os.walk(template_dir):
          relative_dir = d[len(template_dir)+1:].replace('project_name', name)
          if relative_dir:
              os.mkdir(os.path.join(top_dir, relative_dir))
          for subdir in subdirs[:]:
              if subdir.startswith('.'):
                  subdirs.remove(subdir)
          for f in files:
              if not f.endswith('.py'):
                  # Ignore .pyc, .pyo, .py.class etc, as they cause various
                  # breakages.
                  continue
              path_old = os.path.join(d, f)
              path_new = os.path.join(top_dir, relative_dir, f.replace('project_name', name))
              fp_old = open(path_old, 'r')
              fp_new = open(path_new, 'w')
              if noadmin:
                  fp_new.write(fp_old.read().replace('{{ project_name }}', name))
              else:
                  fp_new.write(fp_old.read().replace('{{ project_name }}', name).replace('## ',''))
              fp_old.close()
              fp_new.close()
              try:
                  shutil.copymode(path_old, path_new)
                  _make_writeable(path_new)
              except OSError:
                  sys.stderr.write(style.NOTICE("Notice: Couldn't set permission bits on %s. You're probably using an uncommon filesystem setup. No problem.\n" % path_new))