Skip to content
Snippets Groups Projects
Commit 685fa86a authored by Ophestra's avatar Ophestra
Browse files

configurable use of different backend implementations

parent d73390da
No related branches found
No related tags found
No related merge requests found
Image Board
-----------
Taggable image board in 1272 lines of code.
Taggable image board with multiple backend implementations.
Get it:
```shell
go get random.chars.jp/git/image-board
go get random.chars.jp/git/image-board/v2
```
Client example:
......@@ -13,7 +13,7 @@ package main
import (
"fmt"
"random.chars.jp/git/image-board/client"
"random.chars.jp/git/image-board-client"
)
func main() {
......
......@@ -22,6 +22,7 @@ type serverConf struct {
type systemConf struct {
Verbose bool `toml:"verbose"`
Backend string `toml:"backend"`
Store string `toml:"store"`
SingleUser bool `toml:"single-user"`
Private bool `toml:"private"`
......@@ -67,6 +68,7 @@ func confLoad() {
var defConf = conf{
System: systemConf{
Verbose: false,
Backend: "filesystem",
Store: "db",
SingleUser: true,
Private: false,
......
......@@ -23,14 +23,23 @@ func main() {
confLoad()
// TODO: support more backends
instance = filesystem.New(config.System.Store, config.System.Verbose)
var doSuccess func()
switch config.System.Backend {
case "filesystem":
instance = filesystem.New(config.System.Store, config.System.Verbose)
doSuccess = func() {
log.Printf("store path %s revision %v compat %v",
config.System.Store, instance.(*filesystem.Store).Revision, instance.(*filesystem.Store).Compat)
}
default:
log.Fatalf("store backend %s does not exist", config.System.Backend)
}
if err := instance.Open(); err != nil {
log.Printf("error opening store: %s", err)
return
} else {
log.Printf("store path %s revision %v compat %v",
config.System.Store, instance.(*filesystem.Store).Revision, instance.(*filesystem.Store).Compat)
doSuccess()
}
if info, err := instance.User(instance.UserInitial()); err == nil {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment