Page Menu
Home
Musing Studio
Search
Configure Global Search
Log In
Files
F13831251
userconfig.go
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
1 KB
Subscribers
None
userconfig.go
View Options
package
main
import
(
"encoding/json"
"github.com/writeas/go-writeas"
"github.com/writeas/writeas-cli/fileutils"
"gopkg.in/ini.v1"
"io/ioutil"
"path/filepath"
)
const
(
userConfigFile
=
"config.ini"
userFile
=
"user.json"
)
type
(
APIConfig
struct
{
}
PostsConfig
struct
{
Directory
string
`ini:"directory"`
}
UserConfig
struct
{
API
APIConfig
`ini:"api"`
Posts
PostsConfig
`ini:"posts"`
}
)
func
loadConfig
()
(
*
UserConfig
,
error
)
{
// TODO: load config to var shared across app
cfg
,
err
:=
ini
.
LooseLoad
(
filepath
.
Join
(
userDataDir
(),
userConfigFile
))
if
err
!=
nil
{
return
nil
,
err
}
// Parse INI file
uc
:=
&
UserConfig
{}
err
=
cfg
.
MapTo
(
uc
)
if
err
!=
nil
{
return
nil
,
err
}
return
uc
,
nil
}
func
saveConfig
(
uc
*
UserConfig
)
error
{
cfg
:=
ini
.
Empty
()
err
:=
ini
.
ReflectFrom
(
cfg
,
uc
)
if
err
!=
nil
{
return
err
}
return
cfg
.
SaveTo
(
filepath
.
Join
(
userDataDir
(),
userConfigFile
))
}
func
loadUser
()
(
*
writeas
.
AuthUser
,
error
)
{
fname
:=
filepath
.
Join
(
userDataDir
(),
userFile
)
userJSON
,
err
:=
ioutil
.
ReadFile
(
fname
)
if
err
!=
nil
{
if
!
fileutils
.
Exists
(
fname
)
{
// Don't return a file-not-found error
return
nil
,
nil
}
return
nil
,
err
}
// Parse JSON file
u
:=
&
writeas
.
AuthUser
{}
err
=
json
.
Unmarshal
(
userJSON
,
u
)
if
err
!=
nil
{
return
nil
,
err
}
return
u
,
nil
}
func
saveUser
(
u
*
writeas
.
AuthUser
)
error
{
// Marshal struct into pretty-printed JSON
userJSON
,
err
:=
json
.
MarshalIndent
(
u
,
""
,
" "
)
if
err
!=
nil
{
return
err
}
// Save file
err
=
ioutil
.
WriteFile
(
filepath
.
Join
(
userDataDir
(),
userFile
),
userJSON
,
0600
)
if
err
!=
nil
{
return
err
}
return
nil
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Feb 20, 8:18 AM (1 d, 6 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3632484
Attached To
rWCLI writeas-cli
Event Timeline
Log In to Comment