summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/.s0
-rw-r--r--app/Makefile39
-rw-r--r--app/config.go33
-rwxr-xr-xapp/env.sh14
-rw-r--r--app/main.go1
5 files changed, 80 insertions, 7 deletions
diff --git a/app/.s b/app/.s
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/app/.s
diff --git a/app/Makefile b/app/Makefile
index 49e8b5d..06aed05 100644
--- a/app/Makefile
+++ b/app/Makefile
@@ -1,3 +1,5 @@
+include env.sh
+
ifndef STATUS_DB_DRIVER
export STATUS_DB_DRIVER:=sqlite3
endif
@@ -20,7 +22,8 @@ ifndef STATUS_HTTP_PORT
export STATUS_HTTP_PORT:=8080
endif
-IMPORT_FILE:=import.go
+IMPORT_FILE:=./import.go
+APP:=statuspage
all: kill build run
@@ -30,17 +33,39 @@ clean: kill
@echo "Removing sqlite3 database..."
@rm $(STATUS_DB_CREDENTIALS) || true
@echo "Removing binary..."
- @rm statuspage
+ @rm $(APP)
@echo "Done."
-build:
- @echo "package main" > $(IMPORT_FILE)
- @echo "import (_ \"$(STATUS_DB_IMPORT_DRIVER)\")" >> $(IMPORT_FILE)
+build: import
go build -o statuspage
run:
- ./statuspage &
+ ./$(APP) &
kill:
@echo "Killing running instances..."
- @pkill statuspage || true
+ @pkill $(APP) || true
+
+create_import:
+ @if [ ! -f $(IMPORT_FILE) ] ; \
+ then \
+ echo "package main" > $(IMPORT_FILE) ; \
+ fi
+
+import:
+ @if [ ! -f $(IMPORT_FILE) ] ; \
+ then \
+ echo "package main" > $(IMPORT_FILE) ; \
+ echo "import _ \"$(STATUS_DB_IMPORT_DRIVER)\"" >> $(IMPORT_FILE) ; \
+ fi
+
+sqlite3: create_import
+ @echo "import _ \"github.com/mattn/go-sqlite3\"" >> $(IMPORT_FILE)
+
+mysql: create_import
+ @echo "import _ \"github.com/go-sql-driver/mysql\"" >> $(IMPORT_FILE)
+
+postgresql: create_import
+ @echo "import _ \"github.com/lib/pq\"" >> $(IMPORT_FILE)
+
+database_all: create_import sqlite3 mysql postgresql
diff --git a/app/config.go b/app/config.go
new file mode 100644
index 0000000..2c1ea5e
--- /dev/null
+++ b/app/config.go
@@ -0,0 +1,33 @@
+package main
+
+import (
+ "log"
+ "os"
+)
+
+func check() {
+ check := os.Getenv("STATUS_DB_DRIVER")
+ if check == "" {
+ log.Fatal("Env STATUS_DB_DRIVER not found. No database connection can be established.")
+ }
+ check = os.Getenv("STATUS_DB_CREDENTIALS")
+ if check == "" {
+ log.Fatal("Env STATUS_DB_CREDENTIALS not found. No database connection can be established.")
+ }
+ check = os.Getenv("STATUS_REDIS_SERVER")
+ if check == "" {
+ log.Fatal("Env STATUS_REDIS_SERVER not found. Provide the ip to the Redis server.")
+ }
+ check = os.Getenv("STATUS_REDIS_PORT")
+ if check == "" {
+ log.Fatal("Env STATUS_REDIS_PORT not found.")
+ }
+ check = os.Getenv("STATUS_HTTP_IP")
+ if check == "" {
+ log.Fatal("Env STATUS_HTTP_IP not found.")
+ }
+ check = os.Getenv("STATUS_HTTP_PORT")
+ if check == "" {
+ log.Fatal("Env STATUS_HTTP_PORT not found.")
+ }
+}
diff --git a/app/env.sh b/app/env.sh
new file mode 100755
index 0000000..81b344f
--- /dev/null
+++ b/app/env.sh
@@ -0,0 +1,14 @@
+#!/bin/sh
+
+# Database
+export STATUS_DB_DRIVER=sqlite3
+export STATUS_DB_CREDENTIALS=../db/status.db
+export STATUS_DB_IMPORT_DRIVER=github.com/mattn/go-sqlite3
+
+# Redis
+export STATUS_REDIS_SERVER=127.0.0.1
+export STATUS_REDIS_PORT=6379
+
+# Http
+export STATUS_HTTP_IP=127.0.0.1
+export STATUS_HTTP_PORT=8080
diff --git a/app/main.go b/app/main.go
index 72be13c..3850a4d 100644
--- a/app/main.go
+++ b/app/main.go
@@ -16,6 +16,7 @@ var mainTempl = template.Must(template.New("global").ParseGlob("../views/*.html"
var c = cron.New()
func main() {
+ check()
run()
InitDB()
insertHost()