• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

Golang yaml.Marshal函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Golang中github.com/go-yaml/yaml.Marshal函数的典型用法代码示例。如果您正苦于以下问题:Golang Marshal函数的具体用法?Golang Marshal怎么用?Golang Marshal使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了Marshal函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。

示例1: toYaml

// Return the given interface as a YAML byte slice.
func toYaml(i interface{}) []byte {
	data, err := yaml.Marshal(i)
	if err != nil {
		panic(err)
	}
	return data
}
开发者ID:ricallinson,项目名称:cobbles,代码行数:8,代码来源:utils.go


示例2: yamlFn

func yamlFn(v interface{}) (string, error) {
	data, err := yaml.Marshal(v)
	if err != nil {
		return "", err
	}
	return string(data), nil
}
开发者ID:tyrken,项目名称:rocker,代码行数:7,代码来源:template.go


示例3: WriteTo

func (metadata *RightScriptMetadata) WriteTo(script io.Writer) (n int64, err error) {
	if metadata.Comment == "" {
		metadata.Comment = "#"
	}

	if metadata.Inputs == nil {
		metadata.Inputs = InputMap{}
	}

	c, err := fmt.Fprintf(script, "%s ---\n", metadata.Comment)
	if n += int64(c); err != nil {
		return
	}

	yml, err := yaml.Marshal(metadata)
	scanner := bufio.NewScanner(bytes.NewBuffer(yml))

	for scanner.Scan() {
		c, err = fmt.Fprintf(script, "%s %s\n", metadata.Comment, scanner.Text())
		if n += int64(c); err != nil {
			return
		}
	}
	if err = scanner.Err(); err != nil {
		return
	}

	c, err = fmt.Fprintf(script, "%s ...\n", metadata.Comment)
	if n += int64(c); err != nil {
		return
	}

	return
}
开发者ID:rightscale,项目名称:right_st,代码行数:34,代码来源:metadata.go


示例4: Execute

// Execute runs the command
func (c *CommandPush) Execute(b *Build) (State, error) {
	if len(c.cfg.args) != 1 {
		return b.state, fmt.Errorf("PUSH requires exactly one argument")
	}

	if b.state.ImageID == "" {
		return b.state, fmt.Errorf("Cannot PUSH empty image")
	}

	if err := b.client.TagImage(b.state.ImageID, c.cfg.args[0]); err != nil {
		return b.state, err
	}

	image := imagename.NewFromString(c.cfg.args[0])
	artifact := imagename.Artifact{
		Name:      image,
		Pushed:    b.cfg.Push,
		Tag:       image.GetTag(),
		ImageID:   b.state.ImageID,
		BuildTime: time.Now(),
	}

	// push image and add some lines to artifacts
	if b.cfg.Push {
		digest, err := b.client.PushImage(image.String())
		if err != nil {
			return b.state, err
		}
		artifact.Digest = digest
		artifact.Addressable = fmt.Sprintf("%[email protected]%s", image.NameWithRegistry(), digest)
	} else {
		log.Infof("| Don't push. Pass --push flag to actually push to the registry")
	}

	// Publish artifact files
	if b.cfg.ArtifactsPath != "" {
		if err := os.MkdirAll(b.cfg.ArtifactsPath, 0755); err != nil {
			return b.state, fmt.Errorf("Failed to create directory %s for the artifacts, error: %s", b.cfg.ArtifactsPath, err)
		}

		filePath := filepath.Join(b.cfg.ArtifactsPath, artifact.GetFileName())

		artifacts := imagename.Artifacts{
			[]imagename.Artifact{artifact},
		}
		content, err := yaml.Marshal(artifacts)
		if err != nil {
			return b.state, err
		}

		if err := ioutil.WriteFile(filePath, content, 0644); err != nil {
			return b.state, fmt.Errorf("Failed to write artifact file %s, error: %s", filePath, err)
		}

		log.Infof("| Saved artifact file %s", filePath)
		log.Debugf("Artifact properties: %# v", pretty.Formatter(artifact))
	}

	return b.state, nil
}
开发者ID:romank87,项目名称:rocker,代码行数:61,代码来源:commands.go


示例5: yamlFn

func yamlFn(args ...interface{}) (result string, err error) {
	var (
		i     = 0
		input interface{}
	)

	if len(args) == 1 {
		input = args[0]
	} else if len(args) == 2 {
		if i, err = interfaceToInt(args[0]); err != nil {
			return "", err
		}
		input = args[1]
	} else {
		return "", fmt.Errorf("yaml helper expects from 1 to 2 arguments, %d given", len(args))
	}

	data, err := yaml.Marshal(input)
	if err != nil {
		return "", err
	}
	result = string(data)

	if i > 0 {
		result = indent(strings.Repeat("  ", i), result)
	}

	return result, nil
}
开发者ID:romank87,项目名称:rocker,代码行数:29,代码来源:template.go


示例6: CreateContainerOptions

// CreateContainerOptions returns create configuration eatable by go-dockerclient
func (a *Container) CreateContainerOptions() (*docker.CreateContainerOptions, error) {
	apiConfig := a.Config.GetAPIConfig()

	yamlData, err := yaml.Marshal(a.Config)
	if err != nil {
		return nil, err
	}

	// Copy labels because we want to assign some extra stuff
	labels := map[string]string{}
	for k, v := range apiConfig.Labels {
		labels[k] = v
	}
	labels["rocker-compose-id"] = util.GenerateRandomID()
	labels["rocker-compose-config"] = string(yamlData)

	apiConfig.Labels = labels
	apiConfig.Image = a.Image.String()

	return &docker.CreateContainerOptions{
		Name:       a.Name.String(),
		Config:     apiConfig,
		HostConfig: a.Config.GetAPIHostConfig(),
	}, nil
}
开发者ID:grammarly,项目名称:rocker-compose,代码行数:26,代码来源:container.go


示例7: Dump

func (c *Config) Dump() (yamlDoc string, err error) {
	defer errs.PassE(&err)
	buf, err := yaml.Marshal(c.ast)
	errs.CheckE(err)
	yamlDoc = string(buf)
	return
}
开发者ID:ikravets,项目名称:ev,代码行数:7,代码来源:inspect.go


示例8: TestYamlLink

func TestYamlLink(t *testing.T) {
	assertions := map[string]string{
		"platform.statsd":          "platform.statsd:statsd",
		"platform.statsd:metrics":  "platform.statsd:metrics",
		"/platform.statsd":         "platform.statsd:statsd",
		"/platform.statsd:metrics": "platform.statsd:metrics",
		"statsd":                   "statsd:statsd",
		"statsd:metrics":           "statsd:metrics",
		".statsd":                  "statsd:statsd",
		".statsd:metrics":          "statsd:metrics",
		"":                         "\"\"",
	}

	for inYaml, outYaml := range assertions {
		v := Link{}
		if err := yaml.Unmarshal([]byte(inYaml), &v); err != nil {
			t.Fatal(err)
		}
		data, err := yaml.Marshal(v)
		if err != nil {
			t.Fatal(err)
		}
		assert.Equal(t, outYaml, strings.TrimSpace(string(data)))
	}
}
开发者ID:pra85,项目名称:rocker-compose,代码行数:25,代码来源:yaml_test.go


示例9: saveDB

func (s *Supervisor) saveDB() error {
	s.mu.Lock()
	defer s.mu.Unlock()
	data, err := yaml.Marshal(s.programs())
	if err != nil {
		return err
	}
	return ioutil.WriteFile(s.programPath(), data, 0644)
}
开发者ID:codeskyblue,项目名称:gosuv,代码行数:9,代码来源:web.go


示例10: TestImagename_ToYaml

func TestImagename_ToYaml(t *testing.T) {
	value := struct {
		Name *ImageName
	}{
		NewFromString("hub/ns/name:1"),
	}

	data, err := yaml.Marshal(value)
	if err != nil {
		t.Fatal(err)
	}

	assert.Equal(t, "name: hub/ns/name:1\n", string(data))
}
开发者ID:grammarly,项目名称:rocker-compose,代码行数:14,代码来源:imagename_test.go


示例11: ShowConfiguration

func (config *ConfigViper) ShowConfiguration(output io.Writer) error {
	// Check if config file exists
	if _, err := os.Stat(config.ConfigFileUsed()); err != nil {
		return err
	}

	yml, err := yaml.Marshal(config.AllSettings())
	if err != nil {
		return err
	}
	output.Write(yml)

	return nil
}
开发者ID:rightscale,项目名称:right_st,代码行数:14,代码来源:config.go


示例12: run

func (a *yamlTestCases) run(t *testing.T) error {
	for inYaml, outYaml := range a.assertions {
		v := &Container{}
		if err := yaml.Unmarshal([]byte(inYaml), v); err != nil {
			return fmt.Errorf("Failed unmarshal for test %q, error: %s", inYaml, err)
		}
		data, err := yaml.Marshal(v)
		if err != nil {
			return fmt.Errorf("Failed marshal for test %q, error: %s", inYaml, err)
		}
		assert.Equal(t, outYaml, strings.TrimSpace(string(data)))
	}
	return nil
}
开发者ID:pra85,项目名称:rocker-compose,代码行数:14,代码来源:yaml_test.go


示例13: compareYaml

func compareYaml(name string, a, b *Container) (bool, error) {
	av := reflect.Indirect(reflect.ValueOf(a)).FieldByName(name)
	bv := reflect.Indirect(reflect.ValueOf(b)).FieldByName(name)

	isSlice := av.Type().Kind() == reflect.Slice
	isMap := av.Type().Kind() == reflect.Map

	// empty values and nil pointer should be considered equal
	if av.IsNil() && !isSlice && !isMap {
		av = reflect.New(av.Type().Elem())
	}
	if bv.IsNil() && !isSlice && !isMap {
		bv = reflect.New(bv.Type().Elem())
	}

	// sort lists which should not consider different order to be a change
	if isSlice && name != "Entrypoint" && name != "Cmd" {
		aSorted := newYamlSortable(av)
		sort.Sort(aSorted)
		av = reflect.ValueOf(aSorted)

		bSorted := newYamlSortable(bv)
		sort.Sort(bSorted)
		bv = reflect.ValueOf(bSorted)
	}

	yml1, err := yaml.Marshal(av.Interface())
	if err != nil {
		return false, err
	}
	yml2, err := yaml.Marshal(bv.Interface())
	if err != nil {
		return false, err
	}

	return string(yml1) == string(yml2), nil
}
开发者ID:pra85,项目名称:rocker-compose,代码行数:37,代码来源:compare.go


示例14: UpdateAuth

func (self *Api) UpdateAuth(token *oauth2.Token) error {
	// Save auth data

	log.WithFields(log.Fields{"Target": self.AuthFile}).Debug("Saving authentication data")

	yml, err := yaml.Marshal(&token)
	if err != nil {
		return err
	}

	err = ioutil.WriteFile(self.AuthFile, yml, 0600)
	if err != nil {
		return err
	}

	return nil
}
开发者ID:YoSmudge,项目名称:graphatmo,代码行数:17,代码来源:api.go


示例15: WriteConfig

// WriteConfig writes config from file to structure
func WriteConfig(config Config, fname string) error {
	yamlConfig := &yamlConfig{}
	yamlConfig.Services = make([]yamlServiceConfig, len(config.Services))
	i := 0
	for k, v := range config.Services {
		ysc := &yamlServiceConfig{}
		ysc.Service = k
		ysc.Api = v.Common.Api
		ysc.Config = v.ServiceSpecific
		yamlConfig.Services[i] = *ysc
		i++
	}

	b, err := yaml.Marshal(yamlConfig)
	if err != nil {
		return err
	}
	return ioutil.WriteFile(fname, b, 0777)
}
开发者ID:romana,项目名称:core,代码行数:20,代码来源:config.go


示例16: readConf

func readConf(filename string) (c Configuration, err error) {
	// initial default value
	c.Server.Addr = ":11313" // in memory of 08-31 13:13
	c.Client.ServerURL = "http://localhost:11313"

	data, err := ioutil.ReadFile(filename)
	if err != nil {
		data = []byte("")
	}
	err = yaml.Unmarshal(data, &c)
	if err != nil {
		return
	}
	cfgDir := filepath.Dir(filename)
	if !IsDir(cfgDir) {
		os.MkdirAll(cfgDir, 0755)
	}
	data, _ = yaml.Marshal(c)
	err = ioutil.WriteFile(filename, data, 0644)
	return
}
开发者ID:codeskyblue,项目名称:gosuv,代码行数:21,代码来源:config.go


示例17: TestYamlPortBinding

func TestYamlPortBinding(t *testing.T) {
	assertions := map[string]string{
		"":                      "\"\"",
		"8000":                  "8000/tcp",
		"8125/udp":              "8125/udp",
		"8081:8000":             "8081:8000/tcp",
		"8126:8125/udp":         "8126:8125/udp",
		"0.0.0.0::5959":         "0.0.0.0::5959/tcp",
		"0.0.0.0:8081:80":       "0.0.0.0:8081:80/tcp",
		"0.0.0.0:8126:8125/udp": "0.0.0.0:8126:8125/udp",
	}

	for inYaml, outYaml := range assertions {
		v := PortBinding{}
		if err := yaml.Unmarshal([]byte(inYaml), &v); err != nil {
			t.Fatal(err)
		}
		data, err := yaml.Marshal(v)
		if err != nil {
			t.Fatal(err)
		}
		assert.Equal(t, outYaml, strings.TrimSpace(string(data)))
	}
}
开发者ID:pra85,项目名称:rocker-compose,代码行数:24,代码来源:yaml_test.go


示例18: Process

// Process processes the code yielding a []byte of the YAML
// representation of the Swagger defintion. The processing rules are
// as follows:
// 1. For each common.Service found, go over its Routes (whatever Routes() method yields)
//    and based on that create the paths and operations.
// 2. For structs, field-level comments are taken from the description value of
//    "romana" structure tag. For example:
//      type Policy struct {
//          Direction string `json:"direction,omitempty" romana:"desc:Direction is one of 'ingress' or egress'."`
//          ...
//      }
func (rd *Swaggerer) Process() ([]byte, error) {
	rd.init()
	rd.swagger.Paths = rd.getPaths()
	json, err := yaml.Marshal(rd.swagger)
	return json, err
}
开发者ID:romana,项目名称:core,代码行数:17,代码来源:code.go


示例19: Less

func (items yamlSortable) Less(i, j int) bool {
	yml1, _ := yaml.Marshal(items[i])
	yml2, _ := yaml.Marshal(items[j])
	return string(yml1) < string(yml2)
}
开发者ID:pra85,项目名称:rocker-compose,代码行数:5,代码来源:compare.go


示例20: SetAccount

// Obtain input via STDIN then print out to config file
// Example of config file
// login:
//   default_account: acct1
//   accounts:
//     acct1:
//       id: 67972
//       host: us-3.rightscale.com
//       refresh_token: abc123abc123abc123abc123abc123abc123abc1
//     acct2:
//       id: 60073
//       host: us-4.rightscale.com
//       refresh_token: zxy987zxy987zxy987zxy987xzy987zxy987xzy9
func (config *ConfigViper) SetAccount(name string, setDefault bool, input io.Reader, output io.Writer) error {
	// if the default account isn't set we should set it to the account we are setting
	if !config.IsSet("login.default_account") {
		setDefault = true
	}

	// get the settings and specifically the login settings into a map we can manipulate and marshal to YAML unhindered
	// by the meddling of the Viper
	settings := config.AllSettings()
	loginSettings := settings["login"].(map[interface{}]interface{})

	// set the default account if we want or need to
	if setDefault {
		loginSettings["default_account"] = name
	}

	// get the previous value for the named account if it exists and construct a new account to populate
	oldAccount, ok := config.Accounts[name]
	newAccount := &Account{}

	// prompt for the account ID and use the old value if nothing is entered
	fmt.Fprint(output, "Account ID")
	if ok {
		fmt.Fprintf(output, " (%d)", oldAccount.Id)
	}
	fmt.Fprint(output, ": ")
	fmt.Fscanln(input, &newAccount.Id)
	if ok && newAccount.Id == 0 {
		newAccount.Id = oldAccount.Id
	}

	// prompt for the API endpoint host and use the old value if nothing is entered
	fmt.Fprint(output, "API endpoint host")
	if ok {
		fmt.Fprintf(output, " (%s)", oldAccount.Host)
	}
	fmt.Fprint(output, ": ")
	fmt.Fscanln(input, &newAccount.Host)
	if ok && newAccount.Host == "" {
		newAccount.Host = oldAccount.Host
	}

	// prompt for the refresh token and use the old value if nothing is entered
	fmt.Fprint(output, "Refresh token")
	if ok {
		fmt.Fprintf(output, " (%s)", oldAccount.RefreshToken)
	}
	fmt.Fprint(output, ": ")
	fmt.Fscanln(input, &newAccount.RefreshToken)
	if ok && newAccount.RefreshToken == "" {
		newAccount.RefreshToken = oldAccount.RefreshToken
	}

	// add the new account to the map of accounts overwriting any old value
	accounts := loginSettings["accounts"].(map[interface{}]interface{})
	accounts[name] = newAccount

	// render the settings map as YAML
	yml, err := yaml.Marshal(settings)
	if err != nil {
		return err
	}

	configPath := config.ConfigFileUsed()
	// back up the current config file before writing a new one or if one does not exist, make sure the directory exists
	if err := os.Rename(configPath, configPath+".bak"); err != nil {
		if os.IsNotExist(err) {
			if err := os.MkdirAll(filepath.Dir(configPath), 0700); err != nil {
				return err
			}
		} else {
			return err
		}
	}

	// create a new config file which only the current user can read or write
	configFile, err := os.OpenFile(configPath, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0600)
	if err != nil {
		return err
	}
	defer configFile.Close()

	// write the YAML into the config file
	if _, err := configFile.Write(yml); err != nil {
		return err
	}

//.........这里部分代码省略.........
开发者ID:rightscale,项目名称:right_st,代码行数:101,代码来源:config.go



注:本文中的github.com/go-yaml/yaml.Marshal函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Golang yaml.Unmarshal函数代码示例发布时间:2022-05-23
下一篇:
Golang xorm.Session类代码示例发布时间:2022-05-23
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap