code: func New(dataDir string) (*Migrator, error) {
  	// Check that the directory exists
  	if _, err := os.Stat(dataDir); err != nil {
  		return nil, err
  	}
  
  	// Create the struct
  	m := &Migrator{
  		ProgressCh: make(chan *ProgressUpdate, 128),
  		dataDir:    dataDir,
  
  		raftPath:      filepath.Join(dataDir, raftDir),
  		mdbPath:       filepath.Join(dataDir, raftDir, mdbDir),
  		mdbBackupPath: filepath.Join(dataDir, raftDir, mdbBackupDir),
  		boltPath:      filepath.Join(dataDir, raftDir, boltFile),
  		boltTempPath:  filepath.Join(dataDir, raftDir, boltTempFile),
  	}
  
  	return m, nil
  }
docs: // New creates a new Migrator given the path to a Consul
  // data-dir. Returns the new Migrator and any error.