File: main.go

package info (click to toggle)
golang-github-mvo5-uboot-go 0.4%2Bgit256976a-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster
  • size: 84 kB
  • sloc: sh: 32; makefile: 6
file content (68 lines) | stat: -rw-r--r-- 1,478 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package main

import (
	"fmt"
	"log"
	"os"
	"strconv"

	"github.com/mvo5/uboot-go/uenv"
)

func main() {
	// FIXME: argsparse ftw!
	envFile := os.Args[1]
	cmd := os.Args[2]

	switch cmd {
	case "print":
		env, err := uenv.Open(envFile)
		if err != nil {
			log.Fatalf("uenv.Open failed for %s: %s", envFile, err)
		}
		fmt.Print(env)
	case "create":
		size, err := strconv.Atoi(os.Args[3])
		if err != nil {
			log.Fatalf("Atoi failed for %s: %s", envFile, err)
		}
		env, err := uenv.Create(envFile, size)
		if err != nil {
			log.Fatalf("uenv.Create failed for %s: %s", envFile, err)
		}
		if err := env.Save(); err != nil {
			log.Fatalf("env.Save failed: %s", err)
		}

	case "set":
		env, err := uenv.Open(envFile)
		if err != nil {
			log.Fatalf("uenv.Open failed for %s: %s", envFile, err)
		}
		name := os.Args[3]
		value := os.Args[4]
		env.Set(name, value)
		if err := env.Save(); err != nil {
			log.Fatalf("env.Save failed for %s: %s", envFile, err)
		}
	case "import":
		env, err := uenv.Open(envFile)
		if err != nil {
			log.Fatalf("uenv.Open failed for %s: %s", envFile, err)
		}
		fname := os.Args[3]
		r, err := os.Open(fname)
		if err != nil {
			log.Fatalf("Open failed for %s: %s", fname, err)
		}
		if err := env.Import(r); err != nil {
			log.Fatalf("env.Import failed for %s: %s", envFile, err)
		}
		if err := env.Save(); err != nil {
			log.Fatalf("env.Save failed for %s: %s", envFile, err)
		}
	default:
		log.Fatalf("unknown command %s", cmd)
	}

}