Compare commits
6 Commits
Author | SHA1 | Date |
---|---|---|
|
42af9eccc7 | |
|
b7ee78bde5 | |
|
0910565e20 | |
|
3ca2fe861f | |
|
89c0a87118 | |
|
072c7d04d7 |
|
@ -64,7 +64,9 @@ func main() {
|
||||||
|
|
||||||
mux := http.NewServeMux()
|
mux := http.NewServeMux()
|
||||||
k := kconfig.New()
|
k := kconfig.New()
|
||||||
|
k.AppName = flagAppName
|
||||||
if flagFile != "" {
|
if flagFile != "" {
|
||||||
|
k.Load = func() []byte { return nil }
|
||||||
go func() {
|
go func() {
|
||||||
fi, err := os.Stat(flagFile)
|
fi, err := os.Stat(flagFile)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -98,6 +100,7 @@ func main() {
|
||||||
mux.Handle("/", k)
|
mux.Handle("/", k)
|
||||||
|
|
||||||
g := guard.New()
|
g := guard.New()
|
||||||
|
g.Skip = guard.SkipStatic
|
||||||
|
|
||||||
server := &http.Server{
|
server := &http.Server{
|
||||||
Addr: flagAddr,
|
Addr: flagAddr,
|
||||||
|
|
|
@ -18,9 +18,11 @@
|
||||||
<div class='columns'>
|
<div class='columns'>
|
||||||
<div class='column col-md-12'>
|
<div class='column col-md-12'>
|
||||||
<button id='submit' class='tiny'>Submit</button>
|
<button id='submit' class='tiny'>Submit</button>
|
||||||
<button id='load' class='secondary tiny'>Load</button>
|
<button id='load' class='secondary tiny'>Restore</button>
|
||||||
<button id='download' class='secondary tiny'>Download</button>
|
<button id='upload-btn' class='secondary tiny' onclick="upload.click()">Upload</button>
|
||||||
|
<input id="upload" style="display: none" type="file">
|
||||||
<a id="downloadAnchorElem" style="display:none"></a>
|
<a id="downloadAnchorElem" style="display:none"></a>
|
||||||
|
<button id='download' class='secondary tiny'>Download</button>
|
||||||
<span id='valid_indicator' class='label'></span>
|
<span id='valid_indicator' class='label'></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -20,6 +20,7 @@ var index string
|
||||||
var servePublic = http.FileServer(http.FS(public.FS))
|
var servePublic = http.FileServer(http.FS(public.FS))
|
||||||
|
|
||||||
var tmpl *engine.Engine
|
var tmpl *engine.Engine
|
||||||
|
var l = log.With().Str("mod", "kconfig").Logger()
|
||||||
|
|
||||||
func init() {
|
func init() {
|
||||||
tmpl = engine.Must(engine.New("").Parse(index))
|
tmpl = engine.Must(engine.New("").Parse(index))
|
||||||
|
@ -44,7 +45,7 @@ func New() *Kconfig {
|
||||||
AppName: "kconfig",
|
AppName: "kconfig",
|
||||||
Schema: defaultSchema,
|
Schema: defaultSchema,
|
||||||
Apply: func(b []byte) error {
|
Apply: func(b []byte) error {
|
||||||
log.Debug().Msgf("%s", b)
|
l.Debug().Msgf("%s", b)
|
||||||
return nil
|
return nil
|
||||||
},
|
},
|
||||||
Load: func() []byte {
|
Load: func() []byte {
|
||||||
|
|
11
main.js
11
main.js
|
@ -13,7 +13,7 @@ import 'spectre.css/dist/spectre-icons.min.css'
|
||||||
// The schema for the editor
|
// The schema for the editor
|
||||||
schema: {
|
schema: {
|
||||||
$ref: "api/schema",
|
$ref: "api/schema",
|
||||||
format: "grid"
|
// format: "grid"
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -77,4 +77,13 @@ import 'spectre.css/dist/spectre-icons.min.css'
|
||||||
dlAnchorElem.setAttribute('download', AppName+'.json');
|
dlAnchorElem.setAttribute('download', AppName+'.json');
|
||||||
dlAnchorElem.click();
|
dlAnchorElem.click();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
document.getElementById('upload').addEventListener('change',function(e) {
|
||||||
|
var reader = new FileReader();
|
||||||
|
reader.onload = function(event) {
|
||||||
|
var jsonObj = JSON.parse(event.target.result);
|
||||||
|
editor.setValue(jsonObj);
|
||||||
|
};
|
||||||
|
reader.readAsText(e.target.files[0]);
|
||||||
|
});
|
||||||
})();
|
})();
|
2
make.sh
2
make.sh
|
@ -19,7 +19,7 @@ for PLATFORM in $PLATFORMS; do
|
||||||
GOARCH=${PLATFORM#*/}
|
GOARCH=${PLATFORM#*/}
|
||||||
BIN_FILENAME="${PROJ}"
|
BIN_FILENAME="${PROJ}"
|
||||||
if [[ "${GOOS}" == "windows" ]]; then BIN_FILENAME="${BIN_FILENAME}.exe"; fi
|
if [[ "${GOOS}" == "windows" ]]; then BIN_FILENAME="${BIN_FILENAME}.exe"; fi
|
||||||
CMD="GOOS=${GOOS} GOARCH=${GOARCH} go build ${LDFLAGS} -o ${DIST}/${BIN_FILENAME} $@"
|
CMD="CGO_ENABLED=0 GOOS=${GOOS} GOARCH=${GOARCH} go build ${LDFLAGS} -o ${DIST}/${BIN_FILENAME} $@"
|
||||||
echo "${CMD}"
|
echo "${CMD}"
|
||||||
eval $CMD || FAILURES="${FAILURES} ${PLATFORM}"
|
eval $CMD || FAILURES="${FAILURES} ${PLATFORM}"
|
||||||
sh -c "cd ${DIST} && tar -czf ${PROJ}-${VERSION}-${GOOS}-${GOARCH}.tar.gz ${BIN_FILENAME} && rm ${BIN_FILENAME}"
|
sh -c "cd ${DIST} && tar -czf ${PROJ}-${VERSION}-${GOOS}-${GOARCH}.tar.gz ${BIN_FILENAME} && rm ${BIN_FILENAME}"
|
||||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
||||||
<!DOCTYPE html><html><head><link rel="stylesheet" href="index.e0891ed3.css"><title>{{.AppName}}</title><style>.ace_selection{background:#7f7f00!important}</style></head><body> <div class="container" style="max-width:960px;"> <div class="columns"> <h1 class="col-md-12">{{.AppName}} Config</h1> </div> <div class="columns"> <div class="col-md-12 column"> <button id="submit" class="tiny">Submit</button> <button id="load" class="secondary tiny">Load</button> <button id="download" class="secondary tiny">Download</button> <a id="downloadAnchorElem" style="display:none"></a> <span id="valid_indicator" class="label"></span> </div> </div> <br> <div class="columns"> <div class="col-md-12 column" id="editor_holder"></div> </div> </div> <script type="module" src="index.6ef506fc.js"></script> {{.ACE_JS}} <script>let AppName="{{.AppName}}";</script> </body></html>
|
<!DOCTYPE html><html><head><link rel="stylesheet" href="index.e0891ed3.css"><title>{{.AppName}}</title><style>.ace_selection{background:#7f7f00!important}</style></head><body> <div class="container" style="max-width:960px;"> <div class="columns"> <h1 class="col-md-12">{{.AppName}} Config</h1> </div> <div class="columns"> <div class="col-md-12 column"> <button id="submit" class="tiny">Submit</button> <button id="load" class="secondary tiny">Restore</button> <button id="upload-btn" class="secondary tiny" onclick="upload.click()">Upload</button> <input id="upload" style="display:none" type="file"> <a id="downloadAnchorElem" style="display:none"></a> <button id="download" class="secondary tiny">Download</button> <span id="valid_indicator" class="label"></span> </div> </div> <br> <div class="columns"> <div class="col-md-12 column" id="editor_holder"></div> </div> </div> <script type="module" src="index.f85d8cc8.js"></script> {{.ACE_JS}} <script>let AppName="{{.AppName}}";</script> </body></html>
|
Loading…
Reference in New Issue