func readMfgDir()

in cli/mfg_cmds.go [58:81]


func readMfgDir(mfgDir string) (mfg.Mfg, manifest.MfgManifest, error) {
	man, err := readManifest(mfgDir)
	if err != nil {
		return mfg.Mfg{}, manifest.MfgManifest{}, err
	}

	binPath := fmt.Sprintf("%s/%s", mfgDir, man.BinPath)
	bin, err := readMfgBin(binPath)
	if err != nil {
		return mfg.Mfg{}, manifest.MfgManifest{}, errors.Wrapf(err,
			"failed to read \"%s\"", binPath)
	}

	metaOff := -1
	if man.Meta != nil {
		metaOff = man.Meta.EndOffset
	}
	m, err := mfg.Parse(bin, metaOff, man.EraseVal)
	if err != nil {
		return mfg.Mfg{}, manifest.MfgManifest{}, err
	}

	return m, man, nil
}