Add version checking and show UI hint (#239)
This commit is contained in:
parent
6adb0e9951
commit
5242f5c066
7 changed files with 203 additions and 125 deletions
2
Makefile
2
Makefile
|
|
@ -1,6 +1,6 @@
|
|||
.PHONY: default clean install lint test assets build binaries publish-images test-release release
|
||||
|
||||
TAG_NAME := $(shell git tag -l --contains HEAD)
|
||||
TAG_NAME := $(shell git describe --abbrev=0 --tags)
|
||||
SHA := $(shell git rev-parse --short HEAD)
|
||||
VERSION := $(if $(TAG_NAME),$(TAG_NAME),$(SHA))
|
||||
|
||||
|
|
|
|||
|
|
@ -46,6 +46,8 @@
|
|||
<body>
|
||||
|
||||
<div id="app">
|
||||
<version installed="<<.Version>>" id="version-bar"></version>
|
||||
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-light">
|
||||
<a class="navbar-brand" href="https://github.com/andig/evcc"><i class="text-primary fas fa-leaf mr-2"></i>evcc</a>
|
||||
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup"
|
||||
|
|
@ -55,18 +57,34 @@
|
|||
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
|
||||
<div class="navbar-nav">
|
||||
<router-link class="nav-item nav-link pb-1" to="/">Laden</router-link>
|
||||
<!-- << range $idx, $link := .Links >> -->
|
||||
<router-link class="nav-item nav-link pb-1" to="/links/<< $idx >>"><< $link.Title >></router-link>
|
||||
<!-- << end >> -->
|
||||
<!-- <<range $idx, $link := .Links>> -->
|
||||
<router-link class="nav-item nav-link pb-1" to="/links/<<$idx>>"><<$link.Title>></router-link>
|
||||
<!-- <<end>> -->
|
||||
<router-link class="nav-item nav-link pb-1" to="/config">Konfiguration</router-link>
|
||||
<a class="nav-item nav-link pb-1" href="https://github.com/andig/evcc/issues">Support</a>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<message-toasts></message-toasts>
|
||||
<router-view></router-view>
|
||||
</div>
|
||||
|
||||
<script type="text/x-template" id="version-template">
|
||||
<div class="row p-3 bg-warning collapse" ref="bar">
|
||||
<div class="col-12">
|
||||
Neue Version verfügbar!
|
||||
Installiert: {{installed}}.
|
||||
Verfügbar: {{state.availableVersion}}.
|
||||
<b><a v-bind:href="'https://github.com/andig/evcc/releases/tag/'+state.availableVersion"
|
||||
class="text-body pr-2">Download...</a></b>
|
||||
<button type="button" class="close float-right" style="margin-top: -2px" aria-label="Close" data-toggle="collapse" data-target="#version-bar">
|
||||
<span aria-hidden="true">×</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</script>
|
||||
|
||||
<script type="text/x-template" id="embed-template">
|
||||
<div class="container mx-auto text-center">
|
||||
<h1 class="display-4 pt-3" v-if="title">{{title}}</h1>
|
||||
|
|
@ -351,7 +369,7 @@
|
|||
<small class="text-muted">© 2020</small>
|
||||
</div>
|
||||
<div class="col-6 text-right">
|
||||
<small class="text-muted"><< .Version>> << if ne .Version .Commit>>(<< .Commit>>)<< end>></small>
|
||||
<small class="text-muted"><<.Version>> <<if ne .Version .Commit>>(<<.Commit>>)<<end>></small>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -360,15 +378,15 @@
|
|||
<script>
|
||||
function routerLinks() {
|
||||
return [
|
||||
// << range $idx, $link := .Links >>
|
||||
// <<range $idx, $link := .Links>>
|
||||
{
|
||||
title: "<< $link.Title >>",
|
||||
subtitle: "<< $link.Subtitle >>",
|
||||
img: "<< $link.Img >>",
|
||||
iframe: "<< $link.Iframe >>",
|
||||
link: "<< $link.Link >>"
|
||||
title: "<<$link.Title>>",
|
||||
subtitle: "<<$link.Subtitle>>",
|
||||
img: "<<$link.Img>>",
|
||||
iframe: "<<$link.Iframe>>",
|
||||
link: "<<$link.Link>>"
|
||||
},
|
||||
// << end >>
|
||||
// <<end>>
|
||||
];
|
||||
}
|
||||
</script>
|
||||
|
|
|
|||
|
|
@ -81,6 +81,7 @@ let formatter = {
|
|||
|
||||
let store = {
|
||||
state: {
|
||||
availableVersion: null,
|
||||
loadpoints: [],
|
||||
},
|
||||
update: function(msg) {
|
||||
|
|
@ -163,8 +164,8 @@ const toasts = new Vue({
|
|||
});
|
||||
|
||||
Vue.component('message-toast', {
|
||||
props: ['item'],
|
||||
template: '#message-template',
|
||||
props: ['item'],
|
||||
mounted: function () {
|
||||
const id = "#message-id-" + this.item.id;
|
||||
$(id).toast('show');
|
||||
|
|
@ -174,6 +175,24 @@ Vue.component('message-toast', {
|
|||
},
|
||||
});
|
||||
|
||||
Vue.component('version', {
|
||||
template: '#version-template',
|
||||
props: ['installed'],
|
||||
data: function () {
|
||||
return {
|
||||
state: store.state,
|
||||
};
|
||||
},
|
||||
watch: {
|
||||
"state.availableVersion": function () {
|
||||
if (this.installed != "<<.Version>>" && // go template parsed?
|
||||
this.state.availableVersion != this.installed) {
|
||||
$(this.$refs.bar).collapse("show");
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
Vue.component('modeswitch', {
|
||||
template: '#mode-template',
|
||||
data: function() {
|
||||
|
|
|
|||
21
cmd/root.go
21
cmd/root.go
|
|
@ -7,11 +7,11 @@ import (
|
|||
|
||||
"github.com/andig/evcc/provider"
|
||||
"github.com/andig/evcc/server"
|
||||
"github.com/andig/evcc/server/updater"
|
||||
"github.com/andig/evcc/util"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
"github.com/spf13/viper"
|
||||
latest "github.com/tcnksm/go-latest"
|
||||
)
|
||||
|
||||
var (
|
||||
|
|
@ -114,20 +114,6 @@ func Execute() {
|
|||
}
|
||||
}
|
||||
|
||||
// checkVersion validates if updates are available
|
||||
func checkVersion() {
|
||||
githubTag := &latest.GithubTag{
|
||||
Owner: "andig",
|
||||
Repository: "evcc",
|
||||
}
|
||||
|
||||
if res, err := latest.Check(githubTag, server.Version); err == nil {
|
||||
if res.Outdated {
|
||||
log.INFO.Printf("updates available - please upgrade to %s", res.Current)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func run(cmd *cobra.Command, args []string) {
|
||||
util.LogLevel(viper.GetString("log"), viper.GetStringMapString("levels"))
|
||||
log.INFO.Printf("evcc %s (%s)", server.Version, server.Commit)
|
||||
|
|
@ -136,8 +122,6 @@ func run(cmd *cobra.Command, args []string) {
|
|||
conf := loadConfigFile(cfgFile)
|
||||
util.LogLevel(viper.GetString("log"), viper.GetStringMapString("levels"))
|
||||
|
||||
go checkVersion()
|
||||
|
||||
uri := viper.GetString("uri")
|
||||
log.INFO.Println("listening at", uri)
|
||||
|
||||
|
|
@ -172,6 +156,9 @@ func run(cmd *cobra.Command, args []string) {
|
|||
valueChan := make(chan util.Param)
|
||||
go tee.Run(valueChan)
|
||||
|
||||
// version check
|
||||
go updater.Run(log, valueChan)
|
||||
|
||||
// capture log messages for UI
|
||||
util.CaptureLogs(valueChan)
|
||||
|
||||
|
|
|
|||
193
server/assets.go
193
server/assets.go
|
|
@ -3561,110 +3561,115 @@ oJE6K0E084u3ea7ne0X73qsc2P2KOB+ngKecxITsMAgTVJfqMwAA//+21HeD5gEAAA==
|
|||
"/index.html": {
|
||||
name: "index.html",
|
||||
local: "../assets/index.html",
|
||||
size: 13624,
|
||||
size: 14298,
|
||||
modtime: 1566640112,
|
||||
compressed: `
|
||||
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
|
||||
`,
|
||||
},
|
||||
|
||||
"/js/app.js": {
|
||||
name: "app.js",
|
||||
local: "../assets/js/app.js",
|
||||
size: 6792,
|
||||
size: 7225,
|
||||
modtime: 1566640112,
|
||||
compressed: `
|
||||
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
|
||||
JiAeF0hccFuj/x0AAP//sWHskogaAAA=
|
||||
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
|
||||
fwUAAP//HalhmTkcAAA=
|
||||
`,
|
||||
},
|
||||
|
||||
|
|
|
|||
49
server/updater/updater.go
Normal file
49
server/updater/updater.go
Normal file
|
|
@ -0,0 +1,49 @@
|
|||
package updater
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/andig/evcc/server"
|
||||
"github.com/andig/evcc/util"
|
||||
latest "github.com/tcnksm/go-latest"
|
||||
)
|
||||
|
||||
var instance *updater
|
||||
|
||||
type updater struct {
|
||||
log *util.Logger
|
||||
cache chan<- util.Param
|
||||
}
|
||||
|
||||
// Run regularly checks version
|
||||
func Run(log *util.Logger, cache chan<- util.Param) {
|
||||
instance = &updater{
|
||||
log: log,
|
||||
cache: cache,
|
||||
}
|
||||
|
||||
instance.checkVersion()
|
||||
for range time.NewTicker(24 * time.Hour).C {
|
||||
instance.checkVersion()
|
||||
}
|
||||
}
|
||||
|
||||
// checkVersion validates if updates are available
|
||||
func (u *updater) checkVersion() {
|
||||
githubTag := &latest.GithubTag{
|
||||
Owner: "andig",
|
||||
Repository: "evcc",
|
||||
}
|
||||
|
||||
if res, err := latest.Check(githubTag, server.Version); err == nil {
|
||||
if res.Outdated {
|
||||
u.log.INFO.Printf("new version available - please upgrade to %s", res.Current)
|
||||
}
|
||||
u.cache <- util.Param{
|
||||
Key: "availableVersion",
|
||||
Val: res.Current,
|
||||
}
|
||||
} else {
|
||||
u.log.ERROR.Println("version check failed:", err)
|
||||
}
|
||||
}
|
||||
|
|
@ -2,7 +2,7 @@ package server
|
|||
|
||||
var (
|
||||
// Version of executable
|
||||
Version = "dev"
|
||||
Version = "0.0.1-alpha"
|
||||
// Commit of executable
|
||||
Commit = "HEAD"
|
||||
)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue