strval

package module
v1.2.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2024 License: MIT Imports: 4 Imported by: 0

README

strval

Go Reference MIT builds.sr.ht status

Simple strval marshaller. It sorts the output, too. Arrays are unmarshalled in such a way that they are multiple keys with the same name, so the output is not valid YAML.

Examples

As a library
$ go get git.sr.ht/~jcmuller/strval/cmd/strval
package main

import (
	"fmt"
	"io"
	"log"
	"os"

	"git.sr.ht/~jcmuller/strval"
	"gopkg.in/yaml.v3"
)

func main() {
	d, err := io.ReadAll(os.Stdin)
	if err != nil {
		log.Fatal(err)
	}

	var data map[string]any
	if e := yaml.Unmarshal(d, &data); e != nil {
		log.Fatal(e)
	}

	out, e := strval.Marshal(data)
	if e != nil {
		log.Fatal(e)
	}

	fmt.Printf("%s\n", out)
}
$ go run .
bam.bar.bar: baz
bam.foo: oi
bam: baz
bar: 123
barbaz.bar: barr
barbaz.oi: vey
baz: bar
baz: baz
baz: foo
foo.bar.bar: bar!
foo.bar.baz: 123
As binary
$ go install git.sr.ht/~jcmuller/strval/cmd/strval@latest
$ strval <testdata/given_simple.yaml
bam.bar.bar: baz
bam.foo: oi
bam: baz
bar: 123
barbaz.bar: barr
barbaz.oi: vey
baz: bar
baz: baz
baz: foo
foo.bar.bar: bar!
foo.bar.baz: 123
Test data
---
# testdata/given_simple.yaml
foo:
  bar:
    baz: 123
    bar: bar!

bar: 123

baz:
  - foo
  - bar
  - baz

barbaz:
  oi: vey
  bar: barr

bam:
  - foo: oi
  - bar:
      bar: baz
  - baz

Documentation

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func Marshal

func Marshal(in any) ([]byte, error)

Marshal marshals input data into strval

Example
given, err := testdata.ReadFile("testdata/given_simple.yaml")
if err != nil {
	log.Fatal(err)
}

values := make(map[string]any)
err = yaml.Unmarshal(given, &values)
if err != nil {
	log.Fatal(err)
}

actual, err := strval.Marshal(values)
if err != nil {
	log.Fatal(err)
}

fmt.Println(string(actual))
Output:

bam.bar.bar: baz
bam.foo: oi
bam: baz
bar: 123.45
barbaz.bar: barr
barbaz.oi: vey
baz: bar
baz: baz
baz: false
baz: foo
baz: true
foo.bar.bar: bar!
foo.bar.baz: 123

Types

This section is empty.

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL