code: func LoadIsolateForConfig(isolateDir string, content []byte, configVariables map[string]string) (
  	[]string, []string, ReadOnlyValue, string, error) {
  	// Load the .isolate file, process its conditions, retrieve the command and dependencies.
  	isolate, err := LoadIsolateAsConfig(isolateDir, content)
  	if err != nil {
  		return nil, nil, NotSet, "", err
  	}
  	configName := configName{}
  	var missingVars []string
  	for _, variable := range isolate.ConfigVariables {
  		if value, ok := configVariables[variable]; ok {
  			configName = append(configName, makeVariableValue(value))
  		} else {
  			missingVars = append(missingVars, variable)
  		}
  	}
  	if len(missingVars) > 0 {
  		sort.Strings(missingVars)
  		err = fmt.Errorf("these configuration variables were missing from the command line: %v", missingVars)
  		return nil, nil, NotSet, "", err
  	}
  	// A configuration is to be created with all the combinations of free variables.
  	config, err := isolate.GetConfig(configName)
  	if err != nil {
  		return nil, nil, NotSet, "", err
  	}
  	dependencies := config.Files
  	relDir := config.IsolateDir
  	if os.PathSeparator != '/' {
  		dependencies = make([]string, len(config.Files))
  		for i, f := range config.Files {
  			dependencies[i] = strings.Replace(f, "/", osPathSeparator, -1)
  		}
  		relDir = strings.Replace(relDir, "/", osPathSeparator, -1)
  	}
  	return config.Command, dependencies, config.ReadOnly, relDir, nil
  }
docs: // LoadIsolateForConfig loads the .isolate file and returns
  // the information unprocessed but filtered for the specific OS.
  //
  // Returns:
  //   command, dependencies, readOnly flag, relDir, error.
  //
  // relDir and dependencies are fixed to use os.PathSeparator.