You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by cc...@apache.org on 2018/11/01 18:40:07 UTC

[mynewt-newt] 06/09: logcfg: use ValSetting (generic setting value)

This is an automated email from the ASF dual-hosted git repository.

ccollins pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/mynewt-newt.git

commit 55944f752e33547b2f4eac65af47662084815095
Author: Christopher Collins <cc...@apache.org>
AuthorDate: Wed Oct 24 17:06:34 2018 -0700

    logcfg: use ValSetting (generic setting value)
---
 newt/logcfg/logcfg.go | 46 +++++-----------------------------------------
 1 file changed, 5 insertions(+), 41 deletions(-)

diff --git a/newt/logcfg/logcfg.go b/newt/logcfg/logcfg.go
index 1cd5b27..6b2d66b 100644
--- a/newt/logcfg/logcfg.go
+++ b/newt/logcfg/logcfg.go
@@ -35,23 +35,12 @@ import (
 	"mynewt.apache.org/newt/newt/newtutil"
 	"mynewt.apache.org/newt/newt/pkg"
 	"mynewt.apache.org/newt/newt/syscfg"
+	"mynewt.apache.org/newt/newt/val"
 	"mynewt.apache.org/newt/util"
 )
 
 const HEADER_PATH = "logcfg/logcfg.h"
 
-type LogSetting struct {
-	// The exact text specified as the YAML map key.
-	Text string
-
-	// If this setting refers to a syscfg setting via the `MYNEWT_VAL(...)`
-	// notation, this contains the name of the setting.  Otherwise, "".
-	RefName string
-
-	// The setting value, after setting references are resolved.
-	Value string
-}
-
 type Log struct {
 	// Log name; equal to the name of the YAML map that defines the log.
 	Name string
@@ -60,10 +49,10 @@ type Log struct {
 	Source *pkg.LocalPackage
 
 	// The log's numeric module ID.
-	Module LogSetting
+	Module val.ValSetting
 
 	// The level assigned to this log.
-	Level LogSetting
+	Level val.ValSetting
 }
 
 // Map of: [log-name] => log
@@ -107,31 +96,6 @@ func NewLCfg() LCfg {
 	}
 }
 
-// IntVal Extracts a log setting's integer value.
-func (ls *LogSetting) IntVal() (int, error) {
-	iv, err := util.AtoiNoOct(ls.Value)
-	if err != nil {
-		return 0, util.ChildNewtError(err)
-	}
-
-	return iv, nil
-}
-
-// Constructs a log setting from a YAML string.
-func resolveLogVal(s string, cfg *syscfg.Cfg) (LogSetting, error) {
-	refName, val, err := cfg.ExpandRef(s)
-	if err != nil {
-		return LogSetting{},
-			util.FmtNewtError("value \"%s\" references undefined setting", s)
-	}
-
-	return LogSetting{
-		Text:    s,
-		RefName: refName,
-		Value:   val,
-	}, nil
-}
-
 // Parses a single log definition from a YAML map.  The `logMapItf` parameter
 // should be a map with the following elements:
 //     "module": <module-string>
@@ -155,7 +119,7 @@ func parseOneLog(name string, lpkg *pkg.LocalPackage, logMapItf interface{},
 		return cl, util.FmtNewtError(
 			"\"%s\" missing required field \"module\"", name)
 	}
-	mod, err := resolveLogVal(modStr, cfg)
+	mod, err := val.ResolveValSetting(modStr, cfg)
 	if err != nil {
 		return cl, util.FmtNewtError(
 			"\"%s\" contains invalid \"module\": %s",
@@ -171,7 +135,7 @@ func parseOneLog(name string, lpkg *pkg.LocalPackage, logMapItf interface{},
 		return cl, util.FmtNewtError(
 			"\"%s\" missing required field \"level\"", name)
 	}
-	level, err := resolveLogVal(levelStr, cfg)
+	level, err := val.ResolveValSetting(levelStr, cfg)
 	if err != nil {
 		return cl, util.FmtNewtError(
 			"\"%s\" contains invalid \"level\": %s",