grim/convey
Clone
Summary
Browse
Changes
Graph
Missed a bunch of updates on unit tests for the options update
2018-01-21, Gary Kramlich
2909e17deafe
Missed a bunch of updates on unit tests for the options update
// Convey
// Copyright 2016-2018 Gary Kramlich <grim@reaperworld.com>
//
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program. If not, see <http://www.gnu.org/licenses/>.
package
environment
import
(
"strings"
)
func
splitEqual
(
value
string
)
(
string
,
string
)
{
parts
:=
strings
.
SplitN
(
value
,
"="
,
2
)
if
len
(
parts
)
==
1
{
return
parts
[
0
],
""
}
return
parts
[
0
],
parts
[
1
]
}
// Merge combines two environments and returns the result.
func
Merge
(
orig
,
update
[]
string
)
[]
string
{
env
:=
map
[
string
]
string
{}
for
_
,
val
:=
range
orig
{
k
,
v
:=
splitEqual
(
val
)
env
[
k
]
=
v
}
for
_
,
val
:=
range
update
{
k
,
v
:=
splitEqual
(
val
)
env
[
k
]
=
v
}
ret
:=
[]
string
{}
for
k
,
v
:=
range
env
{
val
:=
k
if
v
!=
""
{
val
+=
"="
+
v
}
ret
=
append
(
ret
,
val
)
}
return
ret
}