From c92989a8fc738094b205094a1bdd458a40c23d9c Mon Sep 17 00:00:00 2001 From: Horus3 Date: Fri, 20 Feb 2015 23:43:36 +0100 Subject: Add more targets for make, env.sh and check for configuration. --- app/.s | 0 app/Makefile | 39 ++++++++++++++++++++++++++++++++------- app/config.go | 33 +++++++++++++++++++++++++++++++++ app/env.sh | 14 ++++++++++++++ app/main.go | 1 + 5 files changed, 80 insertions(+), 7 deletions(-) create mode 100644 app/.s create mode 100644 app/config.go create mode 100755 app/env.sh diff --git a/app/.s b/app/.s new file mode 100644 index 0000000..e69de29 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() -- cgit v1.2.3