Repository: incubator-mynewt-newt Updated Branches: refs/heads/develop f936c989e -> c49488c77
newtmgr - Sort list in "conn show" output. Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/commit/c49488c7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/tree/c49488c7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/diff/c49488c7 Branch: refs/heads/develop Commit: c49488c770c101ed6fe283fa4040909aea914135 Parents: f936c98 Author: Christopher Collins <ccoll...@apache.org> Authored: Thu Oct 13 10:00:49 2016 -0700 Committer: Christopher Collins <ccoll...@apache.org> Committed: Thu Oct 13 11:27:33 2016 -0700 ---------------------------------------------------------------------- newtmgr/config/connprofile.go | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/c49488c7/newtmgr/config/connprofile.go ---------------------------------------------------------------------- diff --git a/newtmgr/config/connprofile.go b/newtmgr/config/connprofile.go index d03c536..50564b2 100644 --- a/newtmgr/config/connprofile.go +++ b/newtmgr/config/connprofile.go @@ -25,6 +25,7 @@ import ( "encoding/json" "io/ioutil" + "sort" "mynewt.apache.org/newt/util" ) @@ -42,10 +43,10 @@ type NewtmgrConnProfile interface { } type ConnProfile struct { - MyName string - MyType string - MyConnString string - MyDeviceAddress []byte + MyName string + MyType string + MyConnString string + MyDeviceAddress []byte MyDeviceAddressType uint8 } @@ -98,6 +99,33 @@ func (cpm *ConnProfileMgr) Init() error { return nil } +type connProfSorter struct { + cps []*ConnProfile +} + +func (s connProfSorter) Len() int { + return len(s.cps) +} +func (s connProfSorter) Swap(i, j int) { + s.cps[i], s.cps[j] = s.cps[j], s.cps[i] +} +func (s connProfSorter) Less(i, j int) bool { + return s.cps[i].Name() < s.cps[j].Name() +} + +func SortConnProfs(cps []*ConnProfile) []*ConnProfile { + sorter := connProfSorter{ + cps: make([]*ConnProfile, 0, len(cps)), + } + + for _, p := range cps { + sorter.cps = append(sorter.cps, p) + } + + sort.Sort(sorter) + return sorter.cps +} + func (cpm *ConnProfileMgr) GetConnProfileList() ([]*ConnProfile, error) { log.Debugf("Getting list of connection profiles") @@ -106,7 +134,7 @@ func (cpm *ConnProfileMgr) GetConnProfileList() ([]*ConnProfile, error) { cpList = append(cpList, p) } - return cpList, nil + return SortConnProfs(cpList), nil } func (cpm *ConnProfileMgr) save() error {