@ -8,7 +8,15 @@ Features
* [x] Realtime log view
* [x] Web control page
* [x] Add program support
* [ ] Edit support
* [ ] Delete support
* [ ] Path auto complete <https://github.com/twitter/typeahead.js>
* [x] HTTP Basic auth
* [ ] Github webhook
* [ ] Single log page, include search support
* [ ] 中文文档
## Requirements
@ -29,3 +29,7 @@ body {
padding-right: 0.5em;
color: white;
}
small.user {
color: #cccccc;
@ -22,7 +22,7 @@
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="/">Go Supervisor</a>
<a class="navbar-brand" href="/">Go Supervisor <small class="user">[[.User]]</small></a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-2">
<ul class="nav navbar-nav">
@ -106,6 +106,11 @@
</tbody>
</table>
<div class="col-md-12">
<div id="footer" class="pull-right" style="margin: 2em 1em">
<a href="https://github.com/codeskyblue/gosuv">gosuv ([[.Version]])</a>, written by <a href="https://github.com/codeskyblue">codeskyblue</a>. 2016. go1.7
<!-- panels -->
<!-- modals -->
<div class="modal" id="newProgram">
@ -8,6 +8,7 @@ import (
"net/http"
"os"
"os/signal"
"os/user"
"path/filepath"
"reflect"
"strconv"
@ -177,8 +178,22 @@ func (s *Supervisor) saveDB() error {
return ioutil.WriteFile(s.programPath(), data, 0644)
type WebConfig struct {
User string
Version string
func (s *Supervisor) renderHTML(w http.ResponseWriter, name string, data interface{}) {
w.Header().Set("Content-Type", "text/html")
wc := WebConfig{}
wc.Version = Version
user, err := user.Current()
if err == nil {
wc.User = user.Username
if data == nil {
data = wc
executeTemplate(w, name, data)