From 8c19ba4ed5297e4115a89fb64a019c9b14a8ed22 Mon Sep 17 00:00:00 2001
From: ale <ale@incal.net>
Date: Sat, 9 Dec 2017 17:36:09 +0000
Subject: [PATCH] Move server-side code to the server package

---
 cmd/keystored/main.go             | 26 ++++++--------------------
 decrypt.go => server/decrypt.go   |  2 +-
 keystore.go => server/keystore.go |  6 +++---
 server/server.go                  |  5 +++--
 4 files changed, 13 insertions(+), 26 deletions(-)
 rename decrypt.go => server/decrypt.go (96%)
 rename keystore.go => server/keystore.go (96%)

diff --git a/cmd/keystored/main.go b/cmd/keystored/main.go
index bc430473..ad0bd1f9 100644
--- a/cmd/keystored/main.go
+++ b/cmd/keystored/main.go
@@ -4,14 +4,11 @@ import (
 	"flag"
 	"io/ioutil"
 	"log"
-	"os"
-	"strings"
 
 	"gopkg.in/yaml.v2"
 
 	"git.autistici.org/ai3/go-common/serverutil"
 
-	"git.autistici.org/id/keystore"
 	"git.autistici.org/id/keystore/server"
 )
 
@@ -26,10 +23,10 @@ var (
 	configFile = flag.String("config", "/etc/keystore/config.yml", "path of config file")
 )
 
-// Wrap the keystore.Config together with the server setup in a single
-// configuration object.
+// Config wraps the keystore.Config together with the server setup in
+// a single configuration object.
 type Config struct {
-	KeyStoreConfig *keystore.Config         `yaml:"keystore"`
+	KeyStoreConfig *server.Config           `yaml:"keystore"`
 	ServerConfig   *serverutil.ServerConfig `yaml:"http_server"`
 }
 
@@ -46,19 +43,8 @@ func loadConfig() (*Config, error) {
 	return &config, nil
 }
 
-// Set defaults for command-line flags using variables from the environment.
-func setFlagDefaultsFromEnv() {
-	flag.VisitAll(func(f *flag.Flag) {
-		envVar := "KEYSTORE_" + strings.ToUpper(strings.Replace(f.Name, "-", "_", -1))
-		if value := os.Getenv(envVar); value != "" {
-			f.DefValue = value
-			f.Value.Set(value)
-		}
-	})
-}
-
 func main() {
-	setFlagDefaultsFromEnv()
+	log.SetFlags(0)
 	flag.Parse()
 
 	config, err := loadConfig()
@@ -66,12 +52,12 @@ func main() {
 		log.Fatal(err)
 	}
 
-	ks, err := keystore.New(config.KeyStoreConfig)
+	ks, err := server.NewKeyStore(config.KeyStoreConfig)
 	if err != nil {
 		log.Fatal(err)
 	}
 
-	srv := server.New(ks)
+	srv := server.NewServer(ks)
 
 	if err := serverutil.Serve(srv, config.ServerConfig, *addr); err != nil {
 		log.Fatal(err)
diff --git a/decrypt.go b/server/decrypt.go
similarity index 96%
rename from decrypt.go
rename to server/decrypt.go
index 2252f644..3ff37e37 100644
--- a/decrypt.go
+++ b/server/decrypt.go
@@ -1,4 +1,4 @@
-package keystore
+package server
 
 import (
 	"github.com/miscreant/miscreant/go"
diff --git a/keystore.go b/server/keystore.go
similarity index 96%
rename from keystore.go
rename to server/keystore.go
index 9a5d5e7b..8daf0312 100644
--- a/keystore.go
+++ b/server/keystore.go
@@ -1,4 +1,4 @@
-package keystore
+package server
 
 import (
 	"context"
@@ -79,8 +79,8 @@ type KeyStore struct {
 	validator sso.Validator
 }
 
-// New creates a new KeyStore with the given config and returns it.
-func New(config *Config) (*KeyStore, error) {
+// NewKeyStore creates a new KeyStore with the given config and returns it.
+func NewKeyStore(config *Config) (*KeyStore, error) {
 	if err := config.check(); err != nil {
 		return nil, err
 	}
diff --git a/server/server.go b/server/server.go
index dd127507..fc97436f 100644
--- a/server/server.go
+++ b/server/server.go
@@ -12,7 +12,7 @@ import (
 var emptyResponse struct{}
 
 type keyStoreServer struct {
-	*keystore.KeyStore
+	*KeyStore
 }
 
 func (s *keyStoreServer) handleOpen(w http.ResponseWriter, r *http.Request) {
@@ -71,6 +71,7 @@ func (s *keyStoreServer) ServeHTTP(w http.ResponseWriter, r *http.Request) {
 	}
 }
 
-func New(ks *keystore.KeyStore) http.Handler {
+// NewServer wraps the HTTP API around a KeyStore.
+func NewServer(ks *KeyStore) http.Handler {
 	return &keyStoreServer{ks}
 }
-- 
GitLab