code: func mysqlPassFile(cfg abcconfig.DBConfig) (string, error) {
  	tmp, err := ioutil.TempFile("", "mysqlpass")
  	if err != nil {
  		return "", errors.Wrap(err, "failed to create mysql pass file")
  	}
  	defer tmp.Close()
  
  	fmt.Fprintln(tmp, "[client]")
  	fmt.Fprintf(tmp, "host=%s\n", cfg.Host)
  	fmt.Fprintf(tmp, "port=%d\n", cfg.Port)
  	fmt.Fprintf(tmp, "user=%s\n", cfg.User)
  	fmt.Fprintf(tmp, "password=%s\n", cfg.Pass)
  
  	var sslMode string
  	switch cfg.SSLMode {
  	case "true":
  		sslMode = "REQUIRED"
  	case "false":
  		sslMode = "DISABLED"
  	default:
  		sslMode = "PREFERRED"
  	}
  
  	fmt.Fprintf(tmp, "ssl-mode=%s\n", sslMode)
  
  	return tmp.Name(), nil
  }
docs: // mysqlPassFile creates a file in the temp directory containing the connection
  // details and password for the database to be passed into the mysql cmdline cmd