Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
dms3
go-dms3
Commits
6c092eb8
Commit
6c092eb8
authored
Jul 06, 2015
by
Juan Batiz-Benet
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #1440 from rht/fix-cli
Assert and convert config value into predefined struct
parents
1694b791
541836c4
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
43 additions
and
8 deletions
+43
-8
core/commands/config.go
core/commands/config.go
+1
-1
docs/fuse.md
docs/fuse.md
+1
-1
repo/fsrepo/fsrepo.go
repo/fsrepo/fsrepo.go
+41
-6
No files found.
core/commands/config.go
View file @
6c092eb8
...
...
@@ -181,7 +181,7 @@ variable set to your preferred text editor.
var
configReplaceCmd
=
&
cmds
.
Command
{
Helptext
:
cmds
.
HelpText
{
Tagline
:
"Replaces the config with
`
file>"
,
Tagline
:
"Replaces the config with
<
file>"
,
ShortDescription
:
`
Make sure to back up the config file first if neccessary, this operation
can't be undone.
...
...
docs/fuse.md
View file @
6c092eb8
...
...
@@ -65,7 +65,7 @@ ipfs daemon --mount
If you wish to allow other users to use the mount points, use the following:
```
sh
ipfs config Mounts.FuseAllowOther
--bool
true
ipfs config Mounts.FuseAllowOther
true
ipfs daemon
--mount
```
...
...
repo/fsrepo/fsrepo.go
View file @
6c092eb8
...
...
@@ -495,19 +495,54 @@ func (r *FSRepo) SetConfigKey(key string, value interface{}) error {
if
err
!=
nil
{
return
err
}
switch
v
:=
value
.
(
type
)
{
case
string
:
if
i
,
err
:=
strconv
.
Atoi
(
v
);
err
==
nil
{
value
=
i
}
}
var
mapconf
map
[
string
]
interface
{}
if
err
:=
serialize
.
ReadConfigFile
(
filename
,
&
mapconf
);
err
!=
nil
{
return
err
}
// Get the type of the value associated with the key
oldValue
,
err
:=
common
.
MapGetKV
(
mapconf
,
key
)
ok
:=
true
if
err
!=
nil
{
// key-value does not exist yet
switch
v
:=
value
.
(
type
)
{
case
string
:
value
,
err
=
strconv
.
ParseBool
(
v
)
if
err
!=
nil
{
value
,
err
=
strconv
.
Atoi
(
v
)
if
err
!=
nil
{
value
,
err
=
strconv
.
ParseFloat
(
v
,
32
)
if
err
!=
nil
{
value
=
v
}
}
}
default
:
}
}
else
{
switch
oldValue
.
(
type
)
{
case
bool
:
value
,
ok
=
value
.
(
bool
)
case
int
:
value
,
ok
=
value
.
(
int
)
case
float32
:
value
,
ok
=
value
.
(
float32
)
case
string
:
value
,
ok
=
value
.
(
string
)
default
:
value
=
value
}
if
!
ok
{
return
fmt
.
Errorf
(
"Wrong config type, expected %T"
,
oldValue
)
}
}
if
err
:=
common
.
MapSetKV
(
mapconf
,
key
,
value
);
err
!=
nil
{
return
err
}
// This step doubles as to validate the map against the struct
// before serialization
conf
,
err
:=
config
.
FromMap
(
mapconf
)
if
err
!=
nil
{
return
err
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment