grim/convey
Clone
Summary
Browse
Changes
Graph
Prep for release
v0.9.1
2017-09-21, Gary Kramlich
86643e4fda89
Prep for release
/*
* Convey
* Copyright 2016-2017 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
]
}
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
}