aboutsummaryrefslogtreecommitdiff
path: root/cmd
diff options
context:
space:
mode:
authorFelix Hanley <felix@userspace.com.au>2020-03-09 11:52:37 +0000
committerFelix Hanley <felix@userspace.com.au>2020-03-09 11:52:37 +0000
commitd333ad876ea06ae01ecf646424f9b0f02ad84419 (patch)
tree880391c2453c077a0635bc16784a63de0b3d30ab /cmd
parent88ead9d41072f3bec5b772b4d2fb0070995c09e8 (diff)
downloadsws-d333ad876ea06ae01ecf646424f9b0f02ad84419.tar.gz
sws-d333ad876ea06ae01ecf646424f9b0f02ad84419.tar.bz2
Fix overrides and start on styling
Diffstat (limited to 'cmd')
-rw-r--r--cmd/server/flags.go35
-rw-r--r--cmd/server/handlers.go4
-rw-r--r--cmd/server/main.go46
-rw-r--r--cmd/server/routes.go10
4 files changed, 30 insertions, 65 deletions
diff --git a/cmd/server/flags.go b/cmd/server/flags.go
deleted file mode 100644
index b64bed1..0000000
--- a/cmd/server/flags.go
+++ /dev/null
@@ -1,35 +0,0 @@
-package main
-
-import (
- "flag"
- "os"
-)
-
-func stringFlag(long, short, def, envvar, desc string) *string {
- if envvar != "" {
- if v := os.Getenv(envvar); v != "" {
- def = v
- }
- }
- out := flag.String(long, def, desc)
- if short != "" {
- flag.StringVar(out, short, def, desc)
- }
- if out != nil && *out == "" {
- return nil
- }
- return out
-}
-
-func boolFlag(long, short string, def bool, envvar, desc string) *bool {
- if envvar != "" {
- if v := os.Getenv(envvar); v != "" {
- def = true
- }
- }
- out := flag.Bool(long, def, desc)
- if short != "" {
- flag.BoolVar(out, short, def, desc)
- }
- return out
-}
diff --git a/cmd/server/handlers.go b/cmd/server/handlers.go
index d13109d..0264726 100644
--- a/cmd/server/handlers.go
+++ b/cmd/server/handlers.go
@@ -26,8 +26,8 @@ type templateData struct {
func newTemplateData(r *http.Request) *templateData {
out := &templateData{
- Payload: "//" + *domain + "/sws.js",
- Endpoint: "//" + *domain + "/sws.gif",
+ Payload: "//" + domain + "/sws.js",
+ Endpoint: "//" + domain + "/sws.gif",
}
if r != nil {
flashes := flashGet(r)
diff --git a/cmd/server/main.go b/cmd/server/main.go
index 309e11b..c831031 100644
--- a/cmd/server/main.go
+++ b/cmd/server/main.go
@@ -23,23 +23,23 @@ var (
// Flags
var (
- verbose *bool
- addr *string
- dsn *string
- domain *string
- logFile *string
- override *string
- noMigrate *bool
+ verbose bool
+ addr string
+ dsn string
+ domain string
+ logFile string
+ override string
+ noMigrate bool
)
func init() {
- verbose = boolFlag("verbose", "v", false, "VERBOSE", "enable verbose output")
- addr = stringFlag("listen", "l", "localhost:5000", "LISTEN", "listen address")
- dsn = stringFlag("dsn", "", "file:sws.db?cache=shared", "DSN", "database password")
- domain = stringFlag("domain", "", "stats.userspace.com.au", "DOMAIN", "stats domain")
- logFile = stringFlag("log", "", "", "LOGFILE", "log to file")
- override = stringFlag("override", "", "", "OVERRIDE", "override path")
- noMigrate = boolFlag("no-migrate", "m", false, "NOMIGRATE", "disable migrations")
+ flag.BoolVar(&verbose, "verbose", false, "enable verbose output")
+ flag.StringVar(&addr, "listen", "localhost:5000", "listen address")
+ flag.StringVar(&dsn, "dsn", "file:sws.db?cache=shared", "database password")
+ flag.StringVar(&domain, "domain", "stats.userspace.com.au", "stats domain")
+ flag.StringVar(&logFile, "l", "", "log to file")
+ flag.StringVar(&override, "override", "", "override path")
+ flag.BoolVar(&noMigrate, "no-migrate", false, "disable migrations")
// Default to no log
log = func(v ...interface{}) {}
@@ -56,14 +56,14 @@ func main() {
flag.Parse()
var output io.Writer = os.Stdout
- if logFile != nil && *logFile != "" {
- if output, err = os.Create(*logFile); err != nil {
+ if logFile != "" {
+ if output, err = os.Create(logFile); err != nil {
fmt.Fprintf(os.Stderr, "failed to open log file: %s", err)
os.Exit(1)
}
}
- if *verbose {
+ if verbose {
log = func(v ...interface{}) {
fmt.Fprintf(output, "[%s] ", time.Now().Format(time.RFC3339))
fmt.Fprintln(output, v...)
@@ -77,13 +77,13 @@ func main() {
}
log("version", Version)
- driver := strings.SplitN(*dsn, ":", 2)[0]
+ driver := strings.SplitN(dsn, ":", 2)[0]
if driver == "file" {
driver = "sqlite3"
}
- if noMigrate == nil || !*noMigrate {
- v, err := migrateDatabase(driver, *dsn)
+ if !noMigrate {
+ v, err := migrateDatabase(driver, dsn)
if err != nil {
log("failed to migrate:", err)
os.Exit(2)
@@ -91,7 +91,7 @@ func main() {
log("database at version", v)
}
- db, err := sqlx.Open(driver, *dsn)
+ db, err := sqlx.Open(driver, dsn)
if err != nil {
log("failed to open database:", err)
os.Exit(1)
@@ -114,6 +114,6 @@ func main() {
os.Exit(1)
}
- log("listening at", *addr)
- http.ListenAndServe(*addr, r)
+ log("listening at", addr)
+ http.ListenAndServe(addr, r)
}
diff --git a/cmd/server/routes.go b/cmd/server/routes.go
index 7c6f37e..1828664 100644
--- a/cmd/server/routes.go
+++ b/cmd/server/routes.go
@@ -27,9 +27,10 @@ func createRouter(db sws.Store) (chi.Router, error) {
tmplsAuthed := append(tmplsCommon, []string{"layouts/base.tmpl", "charts.tmpl", "timerange.tmpl"}...)
tmplsPublic := append(tmplsCommon, "layouts/public.tmpl")
- if override != nil {
+ if override != "" {
+ log("using overrider", override)
loadOverrider = func(s string) string {
- return filepath.Join(*override, s)
+ return filepath.Join(override, s)
}
}
@@ -55,13 +56,13 @@ func createRouter(db sws.Store) (chi.Router, error) {
r.Use(middleware.RequestID)
compressor := middleware.NewCompressor(5, "text/html", "text/css")
r.Use(compressor.Handler())
- if *verbose {
+ if verbose {
r.Use(middleware.Logger)
}
r.Use(middleware.Recoverer)
// For counter
- r.Get("/sws.js", handleCounter(*addr))
+ r.Get("/sws.js", handleCounter(addr))
r.Get("/sws.gif", handleHitCounter(db))
//r.Get("/hits", handleHits(db))
@@ -167,7 +168,6 @@ func getUserCtx(db sws.UserStore) func(http.Handler) http.Handler {
log("missing user")
return
}
- debug("found user, adding to context")
ctx := context.WithValue(r.Context(), "user", user)
r = r.WithContext(ctx)
})