// Save the target's configuration elements func (t *Target) Save() error { if err := t.basePkg.Save(); err != nil { return err } dirpath := t.basePkg.BasePath() filepath := dirpath + "/" + TARGET_FILENAME file, err := os.Create(filepath) if err != nil { return util.NewNewtError(err.Error()) } defer file.Close() file.WriteString("### Target: " + t.Name() + "\n") keys := []string{} for k, _ := range t.Vars { keys = append(keys, k) } sort.Strings(keys) for _, k := range keys { file.WriteString(k + ": " + yaml.EscapeString(t.Vars[k]) + "\n") } if err := t.basePkg.SaveSyscfgVals(); err != nil { return err } return nil }
// Saves the package's pkg.yml file. // NOTE: This does not save every field in the package. Only the fields // necessary for creating a new target get saved. func (pkg *LocalPackage) Save() error { dirpath := pkg.BasePath() if err := os.MkdirAll(dirpath, 0755); err != nil { return util.NewNewtError(err.Error()) } filepath := dirpath + "/" + PACKAGE_FILE_NAME file, err := os.Create(filepath) if err != nil { return util.NewNewtError(err.Error()) } defer file.Close() file.WriteString("### Package: " + pkg.Name() + "\n") // XXX: Just iterate viper object's settings rather than calling out // cached settings individually. file.WriteString("pkg.name: " + yaml.EscapeString(pkg.Name()) + "\n") file.WriteString("pkg.type: " + yaml.EscapeString(PackageTypeNames[pkg.Type()]) + "\n") file.WriteString("pkg.description: " + yaml.EscapeString(pkg.Desc().Description) + "\n") file.WriteString("pkg.author: " + yaml.EscapeString(pkg.Desc().Author) + "\n") file.WriteString("pkg.homepage: " + yaml.EscapeString(pkg.Desc().Homepage) + "\n") file.WriteString("\n") file.WriteString(pkg.sequenceString("pkg.aflags")) file.WriteString(pkg.sequenceString("pkg.cflags")) file.WriteString(pkg.sequenceString("pkg.features")) file.WriteString(pkg.sequenceString("pkg.lflags")) return nil }
func (pkg *LocalPackage) sequenceString(key string) string { var buffer bytes.Buffer if pkg.PkgV != nil { for _, f := range pkg.PkgV.GetStringSlice(key) { buffer.WriteString(" - " + yaml.EscapeString(f) + "\n") } } if buffer.Len() == 0 { return "" } else { return key + ":\n" + buffer.String() } }