|
|
@@ -5,6 +5,7 @@ package main
|
|
|
import (
|
|
|
"bytes"
|
|
|
"crypto/md5"
|
|
|
+ "encoding/json"
|
|
|
"flag"
|
|
|
"fmt"
|
|
|
"io"
|
|
|
@@ -24,7 +25,7 @@ var (
|
|
|
versionRe = regexp.MustCompile(`-[0-9]{1,3}-g[0-9a-f]{5,10}`)
|
|
|
goarch string
|
|
|
goos string
|
|
|
- version string = "2.0.0-alpha"
|
|
|
+ version string = "v1"
|
|
|
race bool
|
|
|
workingDir string
|
|
|
|
|
|
@@ -40,6 +41,9 @@ func main() {
|
|
|
log.SetFlags(0)
|
|
|
|
|
|
ensureGoPath()
|
|
|
+ readVersionFromPackageJson()
|
|
|
+
|
|
|
+ log.Printf("Version: %s\n", version)
|
|
|
|
|
|
//os.Setenv("PATH", fmt.Sprintf("%s%cbin%c%s", os.Getenv("GOPATH"), os.PathSeparator, os.PathListSeparator, os.Getenv("PATH")))
|
|
|
|
|
|
@@ -69,10 +73,10 @@ func main() {
|
|
|
test("./pkg/...")
|
|
|
|
|
|
case "package":
|
|
|
- //checkCleanTree()
|
|
|
- //test("./pkg/...")
|
|
|
- //build(".", []string{})
|
|
|
- //buildFrontend()
|
|
|
+ checkCleanTree()
|
|
|
+ test("./pkg/...")
|
|
|
+ build(".", []string{})
|
|
|
+ buildFrontend()
|
|
|
createRpmAndDeb()
|
|
|
|
|
|
case "build-ui":
|
|
|
@@ -86,6 +90,24 @@ func main() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+func readVersionFromPackageJson() {
|
|
|
+ reader, err := os.Open("package.json")
|
|
|
+ if err != nil {
|
|
|
+ log.Fatal("Failed to open package.json")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer reader.Close()
|
|
|
+
|
|
|
+ jsonObj := map[string]interface{}{}
|
|
|
+ jsonParser := json.NewDecoder(reader)
|
|
|
+
|
|
|
+ if err := jsonParser.Decode(&jsonObj); err != nil {
|
|
|
+ log.Fatal("Failed to decode package.json")
|
|
|
+ }
|
|
|
+
|
|
|
+ version = jsonObj["version"].(string)
|
|
|
+}
|
|
|
+
|
|
|
func createRpmAndDeb() {
|
|
|
packageRoot, _ := ioutil.TempDir("", "grafana-linux-pack")
|
|
|
postInstallScriptPath, _ := ioutil.TempFile("", "postinstall")
|
|
|
@@ -122,22 +144,23 @@ func createRpmAndDeb() {
|
|
|
|
|
|
func GeneratePostInstallScript(path string) {
|
|
|
content := `
|
|
|
-rm -f $INSTALL_ROOT_DIR/grafana
|
|
|
-rm -f $INSTALL_ROOT_DIR/init.sh
|
|
|
-ln -s $INSTALL_ROOT_DIR/versions/$VERSION/grafana $INSTALL_ROOT_DIR/grafana
|
|
|
-ln -s $INSTALL_ROOT_DIR/versions/$VERSION/scripts/init.sh $INSTALL_ROOT_DIR/init.sh
|
|
|
+rm -f $INSTALL_ROOT_DIR/current
|
|
|
+ln -s $INSTALL_ROOT_DIR/versions/$VERSION/ $INSTALL_ROOT_DIR/current
|
|
|
+
|
|
|
if [ ! -L /etc/init.d/grafana ]; then
|
|
|
- ln -sfn $INSTALL_ROOT_DIR/init.sh /etc/init.d/grafana
|
|
|
- chmod +x /etc/init.d/grafana
|
|
|
- if which update-rc.d > /dev/null 2>&1 ; then
|
|
|
- update-rc.d -f grafana remove
|
|
|
- update-rc.d grafana defaults
|
|
|
- else
|
|
|
- chkconfig --add grafana
|
|
|
- fi
|
|
|
+ ln -sfn $INSTALL_ROOT_DIR/current/scripts/init.sh /etc/init.d/grafana
|
|
|
+fi
|
|
|
+
|
|
|
+chmod +x /etc/init.d/grafana
|
|
|
+if which update-rc.d > /dev/null 2>&1 ; then
|
|
|
+ update-rc.d -f grafana remove
|
|
|
+ update-rc.d grafana defaults
|
|
|
+else
|
|
|
+ chkconfig --add grafana
|
|
|
fi
|
|
|
+
|
|
|
if ! id grafana >/dev/null 2>&1; then
|
|
|
- useradd --system -U -M grafana
|
|
|
+ useradd --system -U -M grafana
|
|
|
fi
|
|
|
chown -R -L grafana:grafana $INSTALL_ROOT_DIR
|
|
|
chmod -R a+rX $INSTALL_ROOT_DIR
|