diff --git a/main.go b/main.go
index 045527a6811..9639d432bea 100644
--- a/main.go
+++ b/main.go
@@ -69,12 +69,16 @@ func main() {
}
func initRuntime() {
- setting.NewConfigContext(&setting.CommandLineArgs{
+ err := setting.NewConfigContext(&setting.CommandLineArgs{
Config: *configFile,
HomePath: *homePath,
Args: flag.Args(),
})
+ if err != nil {
+ log.Fatal(3, err.Error())
+ }
+
log.Info("Starting Grafana")
log.Info("Version: %v, Commit: %v, Build date: %v", setting.BuildVersion, setting.BuildCommit, time.Unix(setting.BuildStamp, 0))
setting.LogConfigurationInfo()
diff --git a/pkg/setting/setting.go b/pkg/setting/setting.go
index 6d702bf3732..b706d5a0957 100644
--- a/pkg/setting/setting.go
+++ b/pkg/setting/setting.go
@@ -6,6 +6,7 @@ package setting
import (
"bytes"
"encoding/json"
+ "errors"
"fmt"
"net/url"
"os"
@@ -355,24 +356,26 @@ func setHomePath(args *CommandLineArgs) {
}
}
-func getStaticRootPath(configValue string) string {
- if configValue != "public" {
- return configValue
+var skipStaticRootValidation bool = false
+
+func validateStaticRootPath() error {
+ if skipStaticRootValidation {
+ return nil
}
- if _, err := os.Stat(path.Join(HomePath, configValue, "css")); err == nil {
- return configValue
+ if _, err := os.Stat(path.Join(StaticRootPath, "css")); err == nil {
+ return nil
}
- if _, err := os.Stat(path.Join(HomePath, "public_gen", "css")); err == nil {
- return "public_gen"
+ if _, err := os.Stat(StaticRootPath + "_gen/css"); err == nil {
+ StaticRootPath = StaticRootPath + "_gen"
+ return nil
}
- log.Fatal(3, "Failed to detect generated css or javascript files in static root (%s), have you executed default grunt task?", configValue)
- return ""
+ return errors.New("Failed to detect generated css or javascript files in static root (%s), have you executed default grunt task?")
}
-func NewConfigContext(args *CommandLineArgs) {
+func NewConfigContext(args *CommandLineArgs) error {
setHomePath(args)
loadConfiguration(args)
@@ -391,10 +394,14 @@ func NewConfigContext(args *CommandLineArgs) {
Domain = server.Key("domain").MustString("localhost")
HttpAddr = server.Key("http_addr").MustString("0.0.0.0")
HttpPort = server.Key("http_port").MustString("3000")
- StaticRootPath = makeAbsolute(getStaticRootPath(server.Key("static_root_path").String()), HomePath)
RouterLogging = server.Key("router_logging").MustBool(false)
EnableGzip = server.Key("enable_gzip").MustBool(false)
EnforceDomain = server.Key("enforce_domain").MustBool(false)
+ StaticRootPath = makeAbsolute(server.Key("static_root_path").String(), HomePath)
+
+ if err := validateStaticRootPath(); err != nil {
+ return err
+ }
// read security settings
security := Cfg.Section("security")
@@ -455,6 +462,8 @@ func NewConfigContext(args *CommandLineArgs) {
if VerifyEmailEnabled && !Smtp.Enabled {
log.Warn("require_email_validation is enabled but smpt is disabled")
}
+
+ return nil
}
func readSessionConfig() {
diff --git a/pkg/setting/setting_test.go b/pkg/setting/setting_test.go
index 00da9b4f416..ef44f55551c 100644
--- a/pkg/setting/setting_test.go
+++ b/pkg/setting/setting_test.go
@@ -11,9 +11,11 @@ import (
func TestLoadingSettings(t *testing.T) {
Convey("Testing loading settings from ini file", t, func() {
+ skipStaticRootValidation = true
Convey("Given the default ini files", func() {
- NewConfigContext(&CommandLineArgs{HomePath: "../../"})
+ err := NewConfigContext(&CommandLineArgs{HomePath: "../../"})
+ So(err, ShouldBeNil)
So(AdminUser, ShouldEqual, "admin")
})
diff --git a/public/app/controllers/signupCtrl.ts b/public/app/controllers/signupCtrl.ts
index 20cd41c263e..27f0aeabac4 100644
--- a/public/app/controllers/signupCtrl.ts
+++ b/public/app/controllers/signupCtrl.ts
@@ -1,10 +1,8 @@
-///
-///
-///
-///
+///
+///
-var angular = require('angular');
-var config = require('config');
+import angular = require('angular');
+declare var config : any;
var module = angular.module('grafana.controllers');
diff --git a/public/app/core/filters/filters.ts b/public/app/core/filters/filters.ts
index be9c3742866..67a3fa655f8 100644
--- a/public/app/core/filters/filters.ts
+++ b/public/app/core/filters/filters.ts
@@ -1,5 +1,5 @@
///
-//
+
import angular = require('angular');
import jquery = require('jquery');
import moment = require('moment');