package vars

import (
	"bytes"
	"fmt"
	"io/ioutil"
)

var (
	bootVarPrefix = []byte("direktil.var.")
)

func BootArgs() [][]byte {
	ba, err := ioutil.ReadFile("/proc/cmdline")
	if err != nil {
		// should not happen
		panic(fmt.Errorf("failed to read /proc/cmdline: %v", err))
	}

	return bytes.Split(ba, []byte{' '})
}

func BootArgValue(prefix, defaultValue string) string {
	prefixB := []byte("direktil." + prefix + "=")
	for _, ba := range BootArgs() {
		if bytes.HasPrefix(ba, prefixB) {
			return string(ba[len(prefixB):])
		}
	}

	return defaultValue
}
