docs: def send_host_dir(self,
  	                  path,
  	                  hostfilepath,
  	                  expect=None,
  	                  shutit_pexpect_child=None,
  	                  note=None,
  	                  user=None,
  	                  group=None,
  	                  loglevel=logging.DEBUG):
  		"""Send directory and all contents recursively from host machine to
  		given path.  It will automatically make directories on the target.
  
  		@param path:          Path to send directory to (places hostfilepath inside path as a subfolder)
  		@param hostfilepath:  Path to file from host to send to target
  		@param expect:        See send()
  		@param shutit_pexpect_child:         See send()
  		@param note:          See send()
  		@param user:          Set ownership to this user (defaults to whoami)
  		@param group:         Set group to this user (defaults to first group in groups)
  
  		@type path:          string
  		@type hostfilepath:  string
  		"""
  		shutit_global.shutit_global_object.yield_to_draw()
  		shutit_pexpect_child = shutit_pexpect_child or self.get_current_shutit_pexpect_session().pexpect_child
  		expect = expect or self.get_current_shutit_pexpect_session().default_expect
  		shutit_pexpect_session = self.get_shutit_pexpect_session_from_child(shutit_pexpect_child)
  		self.handle_note(note, 'Sending host directory: ' + hostfilepath + ' to target path: ' + path)
  		self.log('Sending host directory: ' + hostfilepath + ' to: ' + path, level=logging.INFO)
  		shutit_pexpect_session.send(ShutItSendSpec(shutit_pexpect_session,
  		                                           send=' command mkdir -p ' + path,
  		                                           echo=False,
  		                                           loglevel=loglevel))
  		if user is None:
  			user = shutit_pexpect_session.whoami()
  		if group is None:
  			group = self.whoarewe()
  		# Create gzip of folder
  		#import pdb
  		#pdb.set_trace()
  		if shutit_pexpect_session.command_available('tar'):
  			gzipfname = '/tmp/shutit_tar_tmp.tar.gz'
  			with tarfile.open(gzipfname, 'w:gz') as tar:
  				tar.add(hostfilepath, arcname=os.path.basename(hostfilepath))
  			shutit_pexpect_session.send_file(gzipfname,
  			                                 codecs.open(gzipfname,mode='rb',encoding='iso-8859-1').read(),
  			                                 user=user,
  			                                 group=group,
  			                                 loglevel=loglevel,
  			                                 encoding='iso-8859-1')
  			shutit_pexpect_session.send(ShutItSendSpec(shutit_pexpect_session,
  			                                           send=' command mkdir -p ' + path + ' && command tar -C ' + path + ' -zxf ' + gzipfname))
  		else:
  			# If no gunzip, fall back to old slow method.
  			for root, subfolders, files in os.walk(hostfilepath):
  				subfolders.sort()
  				files.sort()
  				for subfolder in subfolders:
  					shutit_pexpect_session.send(ShutItSendSpec(shutit_pexpect_session,
  					                                           send=' command mkdir -p ' + path + '/' + subfolder,
  					                                           echo=False,
  					                                           loglevel=loglevel))
  					self.log('send_host_dir recursing to: ' + hostfilepath + '/' + subfolder, level=logging.DEBUG)
  					self.send_host_dir(path + '/' + subfolder,
  					                   hostfilepath + '/' + subfolder,
  					                   expect=expect,
  					                   shutit_pexpect_child=shutit_pexpect_child,
  					                   loglevel=loglevel)
  				for fname in files:
  					hostfullfname = os.path.join(root, fname)
  					targetfname = os.path.join(path, fname)
  					self.log('send_host_dir sending file ' + hostfullfname + ' to ' + 'target file: ' + targetfname, level=logging.DEBUG)
  					shutit_pexpect_session.send_file(targetfname,
  					                                 codecs.open(hostfullfname,mode='rb',encoding='iso-8859-1').read(),
  					                                 user=user,
  					                                 group=group,
  					                                 loglevel=loglevel,
  					                                 encoding='iso-8859-1')
  		self.handle_note_after(note=note)
  		return True