docs: def is_shutit_installed(self,
  	                        module_id,
  	                        note=None,
  	                        loglevel=logging.DEBUG):
  		"""Helper proc to determine whether shutit has installed already here by placing a file in the db.
  
  		@param module_id: Identifying string of shutit module
  		@param note:      See send()
  		"""
  		# If it's already in cache, then return True.
  		# By default the cache is invalidated.
  		shutit = self.shutit
  		shutit.handle_note(note)
  		if not self.current_environment.modules_recorded_cache_valid:
  			if self.file_exists(shutit_global.shutit_global_object.shutit_state_dir_build_db_dir + '/module_record',directory=True):
  				# Bit of a hack here to get round the long command showing up as the first line of the output.
  				tmpid = shutit_util.random_id()
  				cmd = 'find ' + shutit_global.shutit_global_object.shutit_state_dir_build_db_dir + r"""/module_record/ -name built | sed 's@^.""" + shutit_global.shutit_global_object.shutit_state_dir_build_db_dir + r"""/module_record.\([^/]*\).built@\1@' > """ + shutit_global.shutit_global_object.shutit_state_dir_build_db_dir + '/' + tmpid
  				self.send(ShutItSendSpec(self,
  				                         send=' ' + cmd,
  				                         echo=False,
  				                         loglevel=loglevel,
  				                         ignore_background=True))
  				built = self.send_and_get_output(' command cat ' + shutit_global.shutit_global_object.shutit_state_dir_build_db_dir + '/' + tmpid,
  				                                 echo=False,
  				                                 loglevel=loglevel).strip()
  				self.send(ShutItSendSpec(self,
  				                         send=' command rm -rf ' + shutit_global.shutit_global_object.shutit_state_dir_build_db_dir + '/' + tmpid,
  				                         echo=False,
  				                         loglevel=loglevel,
  				                         ignore_background=True))
  				built_list = built.split('\r\n')
  				self.current_environment.modules_recorded = built_list
  			# Either there was no directory (so the cache is valid), or we've built the cache, so mark as good.
  			self.current_environment.modules_recorded_cache_valid = True
  		# Modules recorded cache will be valid at this point, so check the pre-recorded modules and the in-this-run installed cache.
  		shutit.handle_note_after(note=note)
  		return module_id in self.current_environment.modules_recorded or module_id in self.current_environment.modules_installed