Make application/controller/static.go the source code generate trigger instead of application/controller/static_pages.go
This commit is contained in:
@@ -15,6 +15,9 @@
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
//go:generate go run ./static_page_generater ../../.tmp/dist ./static_pages.go
|
||||
//go:generate go fmt ./static_pages.go
|
||||
|
||||
package controller
|
||||
|
||||
import (
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"compress/gzip"
|
||||
"crypto/sha256"
|
||||
@@ -40,6 +39,27 @@ const (
|
||||
)
|
||||
|
||||
const (
|
||||
staticListHeader = `// Sshwifty - A Web SSH client
|
||||
//
|
||||
// Copyright (C) 2019-2020 Rui NI <nirui@gmx.com>
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
package controller
|
||||
|
||||
`
|
||||
|
||||
staticListTemplate = `import "time"
|
||||
|
||||
var (
|
||||
@@ -413,7 +433,7 @@ func main() {
|
||||
destFolderPath, destFolderPathErr))
|
||||
}
|
||||
|
||||
listFile, listFileErr := os.OpenFile(listFilePath, os.O_RDWR, 0666)
|
||||
listFile, listFileErr := os.Create(listFilePath)
|
||||
|
||||
if listFileErr != nil {
|
||||
panic(fmt.Sprintf("Unable to open destination list file %s: %s",
|
||||
@@ -428,29 +448,7 @@ func main() {
|
||||
panic(fmt.Sprintf("Unable to open dir: %s", dirOpenErr))
|
||||
}
|
||||
|
||||
scanner := bufio.NewScanner(listFile)
|
||||
destBytesByPass := int64(0)
|
||||
foundLastLine := false
|
||||
|
||||
for scanner.Scan() {
|
||||
text := scanner.Text()
|
||||
|
||||
if strings.Index(text, templateStarts) < 0 {
|
||||
if foundLastLine {
|
||||
break
|
||||
}
|
||||
|
||||
destBytesByPass += int64(len(text) + 1)
|
||||
|
||||
continue
|
||||
}
|
||||
|
||||
destBytesByPass += int64(len(text) + 1)
|
||||
foundLastLine = true
|
||||
}
|
||||
|
||||
listFile.Seek(destBytesByPass, 0)
|
||||
listFile.Truncate(destBytesByPass)
|
||||
listFile.WriteString(staticListHeader)
|
||||
|
||||
listFile.WriteString("\n// This file is generated by `go generate` at " +
|
||||
time.Now().Format(time.RFC1123) + "\n// DO NOT EDIT!\n\n")
|
||||
@@ -516,7 +514,7 @@ func main() {
|
||||
}
|
||||
|
||||
listFile.WriteString(
|
||||
"\nimport \"" + parentPackage + "/" + destFolderPackage + "\"\n\n")
|
||||
"\nimport \"" + parentPackage + "/" + destFolderPackage + "\"\n")
|
||||
|
||||
tempBuildErr := buildListFile(listFile, parsedFiles)
|
||||
|
||||
|
||||
@@ -1,157 +0,0 @@
|
||||
// Sshwifty - A Web SSH client
|
||||
//
|
||||
// Copyright (C) 2019-2020 Rui NI <nirui@gmx.com>
|
||||
//
|
||||
// This program is free software: you can redistribute it and/or modify
|
||||
// it under the terms of the GNU Affero General Public License as
|
||||
// published by the Free Software Foundation, either version 3 of the
|
||||
// License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU Affero General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Affero General Public License
|
||||
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
|
||||
package controller
|
||||
|
||||
//go:generate go run ./static_page_generater ../../.tmp/dist ./static_pages.go
|
||||
//go:generate go fmt ./static_pages.go
|
||||
|
||||
// This file is generated by `go generate` at Thu, 12 Mar 2020 20:25:38 CST
|
||||
// DO NOT EDIT!
|
||||
|
||||
import "github.com/niruix/sshwifty/application/controller/static_pages"
|
||||
|
||||
import "time"
|
||||
|
||||
var (
|
||||
staticPages = map[string]staticData{
|
||||
"0.2591207cde2357871355.js": parseStaticData(static_pages.Static0()),
|
||||
"010c539b67fe9bacabc4ec5dbff1546b.svg": parseStaticData(static_pages.Static1()),
|
||||
"0b3811d040152efecd499f74a840805b.woff2": parseStaticData(static_pages.Static2()),
|
||||
"132527c8a67bf941ca84add5608a81a3.woff": parseStaticData(static_pages.Static3()),
|
||||
"13ec0eb5bdb821ff4930237d7c9f943f.woff2": parseStaticData(static_pages.Static4()),
|
||||
"13efe6cbc10b97144a28310ebdeda594.woff": parseStaticData(static_pages.Static5()),
|
||||
"1d6594826615607f6dc860bb49258acb.woff": parseStaticData(static_pages.Static6()),
|
||||
"2.2591207cde2357871355.js": parseStaticData(static_pages.Static7()),
|
||||
"23d1ed95cedfe6dc88667aa59d91a620.woff2": parseStaticData(static_pages.Static8()),
|
||||
"2591207cde2357871355.css": parseStaticData(static_pages.Static9()),
|
||||
"2591207cde2357871355.css.map": parseStaticData(static_pages.Static10()),
|
||||
"2591207cde2357871355.js": parseStaticData(static_pages.Static11()),
|
||||
"3.2591207cde2357871355.js": parseStaticData(static_pages.Static12()),
|
||||
"313a65630d341645c13e4f2a0364381d.woff": parseStaticData(static_pages.Static13()),
|
||||
"35b07eb2f8711ae08d1f58c043880930.woff": parseStaticData(static_pages.Static14()),
|
||||
"3aa797141ef00f0aa9fc.css": parseStaticData(static_pages.Static15()),
|
||||
"3aa797141ef00f0aa9fc.css.map": parseStaticData(static_pages.Static16()),
|
||||
"4.2591207cde2357871355.js": parseStaticData(static_pages.Static17()),
|
||||
"4357beb823a5f8d65c260f045d9e019a.woff2": parseStaticData(static_pages.Static18()),
|
||||
"4fe0f73cc919ba2b7a3c36e4540d725c.woff": parseStaticData(static_pages.Static19()),
|
||||
"5.2591207cde2357871355.js": parseStaticData(static_pages.Static20()),
|
||||
"50d75e48e0a3ddab1dd15d6bfb9d3700.woff": parseStaticData(static_pages.Static21()),
|
||||
"59eb3601394dd87f30f82433fb39dd94.woff2": parseStaticData(static_pages.Static22()),
|
||||
"5b4a33e176ff736a74f0ca2dd9e6b396.woff2": parseStaticData(static_pages.Static23()),
|
||||
"6.2591207cde2357871355.js": parseStaticData(static_pages.Static24()),
|
||||
"73f0a88bbca1bec19fb1303c689d04c6.woff2": parseStaticData(static_pages.Static25()),
|
||||
"83e114c316fcc3f23f524ec3e1c65984.woff": parseStaticData(static_pages.Static26()),
|
||||
"8a96edbbcd9a6991d79371aed0b0288e.woff": parseStaticData(static_pages.Static27()),
|
||||
"8ec888af4672fe48c5560b5e7c0ecb78.woff": parseStaticData(static_pages.Static28()),
|
||||
"90d1676003d9c28c04994c18bfd8b558.woff2": parseStaticData(static_pages.Static29()),
|
||||
"94008e69aaf05da75c0bbf8f8bb0db41.woff2": parseStaticData(static_pages.Static30()),
|
||||
"DEPENDENCIES.md": parseStaticData(static_pages.Static31()),
|
||||
"LICENSE.md": parseStaticData(static_pages.Static32()),
|
||||
"README.md": parseStaticData(static_pages.Static33()),
|
||||
"ad538a69b0e8615ed0419c4529344ffc.woff2": parseStaticData(static_pages.Static34()),
|
||||
"android-chrome-144x144.png": parseStaticData(static_pages.Static35()),
|
||||
"android-chrome-192x192.png": parseStaticData(static_pages.Static36()),
|
||||
"android-chrome-256x256.png": parseStaticData(static_pages.Static37()),
|
||||
"android-chrome-36x36.png": parseStaticData(static_pages.Static38()),
|
||||
"android-chrome-384x384.png": parseStaticData(static_pages.Static39()),
|
||||
"android-chrome-48x48.png": parseStaticData(static_pages.Static40()),
|
||||
"android-chrome-512x512.png": parseStaticData(static_pages.Static41()),
|
||||
"android-chrome-72x72.png": parseStaticData(static_pages.Static42()),
|
||||
"android-chrome-96x96.png": parseStaticData(static_pages.Static43()),
|
||||
"apple-touch-icon-1024x1024.png": parseStaticData(static_pages.Static44()),
|
||||
"apple-touch-icon-114x114.png": parseStaticData(static_pages.Static45()),
|
||||
"apple-touch-icon-120x120.png": parseStaticData(static_pages.Static46()),
|
||||
"apple-touch-icon-144x144.png": parseStaticData(static_pages.Static47()),
|
||||
"apple-touch-icon-152x152.png": parseStaticData(static_pages.Static48()),
|
||||
"apple-touch-icon-167x167.png": parseStaticData(static_pages.Static49()),
|
||||
"apple-touch-icon-180x180.png": parseStaticData(static_pages.Static50()),
|
||||
"apple-touch-icon-57x57.png": parseStaticData(static_pages.Static51()),
|
||||
"apple-touch-icon-60x60.png": parseStaticData(static_pages.Static52()),
|
||||
"apple-touch-icon-72x72.png": parseStaticData(static_pages.Static53()),
|
||||
"apple-touch-icon-76x76.png": parseStaticData(static_pages.Static54()),
|
||||
"apple-touch-icon-precomposed.png": parseStaticData(static_pages.Static55()),
|
||||
"apple-touch-icon.png": parseStaticData(static_pages.Static56()),
|
||||
"apple-touch-startup-image-1182x2208.png": parseStaticData(static_pages.Static57()),
|
||||
"apple-touch-startup-image-1242x2148.png": parseStaticData(static_pages.Static58()),
|
||||
"apple-touch-startup-image-1496x2048.png": parseStaticData(static_pages.Static59()),
|
||||
"apple-touch-startup-image-1536x2008.png": parseStaticData(static_pages.Static60()),
|
||||
"apple-touch-startup-image-320x460.png": parseStaticData(static_pages.Static61()),
|
||||
"apple-touch-startup-image-640x1096.png": parseStaticData(static_pages.Static62()),
|
||||
"apple-touch-startup-image-640x920.png": parseStaticData(static_pages.Static63()),
|
||||
"apple-touch-startup-image-748x1024.png": parseStaticData(static_pages.Static64()),
|
||||
"apple-touch-startup-image-750x1294.png": parseStaticData(static_pages.Static65()),
|
||||
"apple-touch-startup-image-768x1004.png": parseStaticData(static_pages.Static66()),
|
||||
"b52fac2bb93c5858f3f2675e4b52e1de.woff2": parseStaticData(static_pages.Static67()),
|
||||
"browserconfig.xml": parseStaticData(static_pages.Static68()),
|
||||
"c023bfb8571ccdf77bdd94a308ea3162.svg": parseStaticData(static_pages.Static69()),
|
||||
"c6af87fef241bf953aa3.css": parseStaticData(static_pages.Static70()),
|
||||
"c6af87fef241bf953aa3.css.map": parseStaticData(static_pages.Static71()),
|
||||
"c73eb1ceba3321a80a0aff13ad373cb4.woff": parseStaticData(static_pages.Static72()),
|
||||
"cc2fadc3928f2f223418887111947b40.woff": parseStaticData(static_pages.Static73()),
|
||||
"d26871e8149b5759f814fd3c7a4f784b.woff2": parseStaticData(static_pages.Static74()),
|
||||
"d3b47375afd904983d9be8d6e239a949.woff": parseStaticData(static_pages.Static75()),
|
||||
"d4a48f0f981279da0e207e47516f4354.woff": parseStaticData(static_pages.Static76()),
|
||||
"d569415005f26953bb9c3c52895355eb.woff2": parseStaticData(static_pages.Static77()),
|
||||
"e72f2a56d5e5f8c8decc.css": parseStaticData(static_pages.Static78()),
|
||||
"e72f2a56d5e5f8c8decc.css.map": parseStaticData(static_pages.Static79()),
|
||||
"e8eaae902c3a4dacb9a5062667e10576.woff2": parseStaticData(static_pages.Static80()),
|
||||
"error.html": parseStaticData(static_pages.Static81()),
|
||||
"f5902d5ef961717ed263902fc429e6ae.woff": parseStaticData(static_pages.Static82()),
|
||||
"f75569f8a5fab0893fa712d8c0d9c3fe.woff2": parseStaticData(static_pages.Static83()),
|
||||
"f93c333e41413ed8548b714ad10a14fe.woff2": parseStaticData(static_pages.Static84()),
|
||||
"favicon-16x16.png": parseStaticData(static_pages.Static85()),
|
||||
"favicon-32x32.png": parseStaticData(static_pages.Static86()),
|
||||
"favicon.ico": parseStaticData(static_pages.Static87()),
|
||||
"fdea8596c4f9e3699f0cd51255a9e0f1.woff": parseStaticData(static_pages.Static88()),
|
||||
"firefox_app_128x128.png": parseStaticData(static_pages.Static89()),
|
||||
"firefox_app_512x512.png": parseStaticData(static_pages.Static90()),
|
||||
"firefox_app_60x60.png": parseStaticData(static_pages.Static91()),
|
||||
"index.html": parseStaticData(static_pages.Static92()),
|
||||
"manifest.json": parseStaticData(static_pages.Static93()),
|
||||
"manifest.webapp": parseStaticData(static_pages.Static94()),
|
||||
"mstile-144x144.png": parseStaticData(static_pages.Static95()),
|
||||
"mstile-150x150.png": parseStaticData(static_pages.Static96()),
|
||||
"mstile-310x150.png": parseStaticData(static_pages.Static97()),
|
||||
"mstile-310x310.png": parseStaticData(static_pages.Static98()),
|
||||
"mstile-70x70.png": parseStaticData(static_pages.Static99()),
|
||||
"robots.txt": parseStaticData(static_pages.Static100()),
|
||||
}
|
||||
)
|
||||
|
||||
// parseStaticData parses result from a static file returner and generate
|
||||
// a new `staticData` item
|
||||
func parseStaticData(
|
||||
fileStart int,
|
||||
fileEnd int,
|
||||
compressedStart int,
|
||||
compressedEnd int,
|
||||
contentHash string,
|
||||
compressedHash string,
|
||||
creation time.Time,
|
||||
data []byte,
|
||||
contentType string,
|
||||
) staticData {
|
||||
return staticData{
|
||||
data: data[fileStart:fileEnd],
|
||||
dataHash: contentHash,
|
||||
compressd: data[compressedStart:compressedEnd],
|
||||
compressdHash: compressedHash,
|
||||
created: creation,
|
||||
contentType: contentType,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user