in cli/mfg_cmds.go [356:408]
func runRehashCmd(cmd *cobra.Command, args []string) {
if len(args) < 1 {
ImgmodUsage(cmd, nil)
}
mfgDir := args[0]
outDir, err := CalcOutFilename(mfgDir)
if err != nil {
ImgmodUsage(cmd, err)
}
m, man, err := readMfgDir(mfgDir)
if err != nil {
ImgmodUsage(cmd, err)
}
if err := m.RefillHash(man.EraseVal); err != nil {
ImgmodUsage(nil, err)
}
hash, err := m.Hash(man.EraseVal)
if err != nil {
ImgmodUsage(nil, err)
}
// Update manifest.
man.MfgHash = hex.EncodeToString(hash)
// Write new artifacts.
if err := EnsureOutDir(mfgDir, outDir); err != nil {
ImgmodUsage(nil, err)
}
binPath := fmt.Sprintf("%s/%s", outDir, man.BinPath)
newBin, err := m.Bytes(man.EraseVal)
if err != nil {
ImgmodUsage(nil, err)
}
if err := WriteFile(newBin, binPath); err != nil {
ImgmodUsage(nil, err)
}
json, err := man.MarshalJson()
if err != nil {
ImgmodUsage(nil, err)
}
manPath := fmt.Sprintf("%s/%s", outDir, mfg.MANIFEST_FILENAME)
if err := WriteFile(json, manPath); err != nil {
ImgmodUsage(nil, err)
}
}