aboutsummaryrefslogtreecommitdiff
path: root/server/store/store.go
diff options
context:
space:
mode:
authorNiall Sheridan <nsheridan@gmail.com>2016-10-08 00:57:10 -0500
committerNiall Sheridan <nsheridan@gmail.com>2016-10-11 16:54:47 -0500
commitd6d54ed0bcf3b583fe681db790740cef137401d3 (patch)
tree2da8de7005c14706f83edc8a58360fa435425c92 /server/store/store.go
parentbaf7141d1dd0f99d561a2197a909c66dd389809d (diff)
Replace the 'datastore' option with a 'database' option
The 'datastore' string option is deprecated and will be removed in a future version. The new 'database' map option is preferred.
Diffstat (limited to 'server/store/store.go')
-rw-r--r--server/store/store.go14
1 files changed, 14 insertions, 0 deletions
diff --git a/server/store/store.go b/server/store/store.go
index c039d3c..a447e72 100644
--- a/server/store/store.go
+++ b/server/store/store.go
@@ -5,9 +5,23 @@ import (
"golang.org/x/crypto/ssh"
+ "github.com/nsheridan/cashier/server/config"
"github.com/nsheridan/cashier/server/util"
)
+// New returns a new configured database.
+func New(c config.Database) (CertStorer, error) {
+ switch c["type"] {
+ case "mongo":
+ return NewMongoStore(c)
+ case "mysql", "sqlite":
+ return NewSQLStore(c)
+ case "mem":
+ return NewMemoryStore(), nil
+ }
+ return NewMemoryStore(), nil
+}
+
// CertStorer records issued certs in a persistent store for audit and
// revocation purposes.
type CertStorer interface {