mirror of
https://github.com/hrfee/jfa-go.git
synced 2024-12-29 12:30:11 +00:00
Compare commits
4 Commits
7caa5c5d57
...
f1b7ef303d
Author | SHA1 | Date | |
---|---|---|---|
f1b7ef303d | |||
e7d4b5051b | |||
b7b3aa1eb7 | |||
f083d6b53f |
@ -18,6 +18,8 @@ steps:
|
||||
from_secret: BUILDRONE_KEY
|
||||
GITHUB_TOKEN:
|
||||
from_secret: github_token
|
||||
JFA_GO_BUILT_BY:
|
||||
from_secret: BUILT_BY
|
||||
commands:
|
||||
- curl -sL https://git.io/goreleaser > ../goreleaser
|
||||
- chmod +x ../goreleaser
|
||||
@ -26,6 +28,7 @@ steps:
|
||||
- pip3 install requests
|
||||
- bash -c 'sftp -P 2022 -i /id_rsa -o StrictHostKeyChecking=no root@161.97.102.153:/repo/incoming <<< $"put dist/*.deb"'
|
||||
- bash -c 'ssh -i /id_rsa root@161.97.102.153 -p 2022 "repo-process-deb trusty"'
|
||||
bash -c 'ssh -i /id_rsa root@161.97.102.153 -p 2022 "rm /repo/incoming/*.deb"'
|
||||
- bash -c 'python3 ../upload.py https://builds.hrfee.pw hrfee jfa-go --tag internal=true'
|
||||
volumes:
|
||||
- name: ssh_key
|
||||
@ -93,10 +96,13 @@ steps:
|
||||
# - bash -c 'ssh -i /id_rsa root@161.97.102.153 -p 2022 "reprepro -Vb /repo remove trusty-unstable jfa-go"'
|
||||
# - bash -c 'ssh -i /id_rsa root@161.97.102.153 -p 2022 "reprepro -Vb /repo remove trusty-unstable jfa-go-tray"'
|
||||
- bash -c 'ssh -i /id_rsa root@161.97.102.153 -p 2022 "repo-process-deb trusty"'
|
||||
bash -c 'ssh -i /id_rsa root@161.97.102.153 -p 2022 "rm /repo/incoming/*.deb"'
|
||||
- bash -c 'python3 upload.py https://builds.hrfee.pw hrfee jfa-go --upload ./dist/*.zip ./dist/*.rpm ./dist/*.apk --tag internal-git=true'
|
||||
environment:
|
||||
BUILDRONE_KEY:
|
||||
from_secret: BUILDRONE_KEY
|
||||
JFA_GO_BUILT_BY:
|
||||
from_secret: BUILT_BY
|
||||
|
||||
volumes:
|
||||
- name: ssh_key
|
||||
|
@ -33,7 +33,7 @@ before:
|
||||
- npx esbuild --target=es6 --bundle tempts/setup.ts --outfile=./data/web/js/setup.js --minify
|
||||
- npx esbuild --target=es6 --bundle tempts/crash.ts --outfile=./data/crash.js --minify
|
||||
- rm -r tempts
|
||||
- npx esbuild --bundle css/base.css --outfile=./data/web/css/bundle.css --external:remixicon.css --minify
|
||||
- npx esbuild --bundle css/base.css --outfile=./data/web/css/bundle.css --external:remixicon.css --external:../fonts/hanken* --minify
|
||||
- cp html/crash.html data/
|
||||
- npx tailwindcss -i data/web/css/bundle.css -o data/bundle.css --content "html/crash.html"
|
||||
- node scripts/inline.js root data data/crash.html data/crash.html
|
||||
@ -49,7 +49,7 @@ builds:
|
||||
env:
|
||||
- CGO_ENABLED=0
|
||||
ldflags:
|
||||
- -s -w -X main.version={{.Env.JFA_GO_VERSION}} -X main.commit={{.ShortCommit}} -X main.updater=binary -X main.cssVersion={{.Env.JFA_GO_CSS_VERSION}}
|
||||
- -s -w -X main.version={{.Env.JFA_GO_VERSION}} -X main.commit={{.ShortCommit}} -X main.updater=binary -X main.cssVersion={{.Env.JFA_GO_CSS_VERSION}} -X main.buildTimeUnix={{.Env.JFA_GO_BUILD_TIME}} -X main.builtBy="{{.Env.JFA_GO_BUILT_BY}}"
|
||||
goos:
|
||||
- linux
|
||||
- darwin
|
||||
@ -66,7 +66,7 @@ builds:
|
||||
flags:
|
||||
- -tags=tray
|
||||
ldflags:
|
||||
- -s -w -X main.version={{.Env.JFA_GO_VERSION}} -X main.commit={{.ShortCommit}} -X main.updater=binary -X main.cssVersion={{.Env.JFA_GO_CSS_VERSION}} -H=windowsgui
|
||||
- -s -w -X main.version={{.Env.JFA_GO_VERSION}} -X main.commit={{.ShortCommit}} -X main.updater=binary -X main.cssVersion={{.Env.JFA_GO_CSS_VERSION}} -X main.buildTimeUnix={{.Env.JFA_GO_BUILD_TIME}} -X main.builtBy="{{.Env.JFA_GO_BUILT_BY}}" -H=windowsgui
|
||||
goos:
|
||||
- windows
|
||||
goarch:
|
||||
@ -78,7 +78,7 @@ builds:
|
||||
flags:
|
||||
- -tags=tray
|
||||
ldflags:
|
||||
- -s -w -X main.version={{.Env.JFA_GO_VERSION}} -X main.commit={{.ShortCommit}} -X main.updater=binary -X main.cssVersion={{.Env.JFA_GO_CSS_VERSION}}
|
||||
- -s -w -X main.version={{.Env.JFA_GO_VERSION}} -X main.commit={{.ShortCommit}} -X main.updater=binary -X main.cssVersion={{.Env.JFA_GO_CSS_VERSION}} -X main.buildTimeUnix={{.Env.JFA_GO_BUILD_TIME}} -X main.builtBy="{{.Env.JFA_GO_BUILT_BY}}"
|
||||
goos:
|
||||
- linux
|
||||
goarch:
|
||||
|
24
Makefile
24
Makefile
@ -11,9 +11,10 @@ CSSVERSION ?= v3
|
||||
VERSION ?= $(shell git describe --exact-match HEAD 2> /dev/null || echo vgit)
|
||||
VERSION := $(shell echo $(VERSION) | sed 's/v//g')
|
||||
COMMIT ?= $(shell git rev-parse --short HEAD || echo unknown)
|
||||
BUILDTIME ?= $(shell date +%s)
|
||||
|
||||
UPDATER ?= off
|
||||
LDFLAGS := -X main.version=$(VERSION) -X main.commit=$(COMMIT) -X main.cssVersion=$(CSSVERSION)
|
||||
LDFLAGS := -X main.version=$(VERSION) -X main.commit=$(COMMIT) -X main.cssVersion=$(CSSVERSION) -X main.buildTimeUnix=$(BUILDTIME) $(if $(BUILTBY),-X 'main.builtBy=$(BUILTBY)',)
|
||||
ifeq ($(UPDATER), on)
|
||||
LDFLAGS := $(LDFLAGS) -X main.updater=binary
|
||||
else ifneq ($(UPDATER), off)
|
||||
@ -74,14 +75,23 @@ else
|
||||
RACEDETECTOR :=
|
||||
endif
|
||||
|
||||
ifeq (, $(shell which esbuild))
|
||||
ESBUILDINSTALL := go install github.com/evanw/esbuild/cmd/esbuild@latest
|
||||
else
|
||||
ESBUILDINSTALL :=
|
||||
endif
|
||||
|
||||
ifeq ($(GOESBUILD), on)
|
||||
NPMIGNOREOPTIONAL := --no-optional
|
||||
NPMOPTS := $(NPMIGNOREOPTIONAL); $(ESBUILDINSTALL)
|
||||
else
|
||||
NPMOPTS :=
|
||||
endif
|
||||
|
||||
|
||||
npm:
|
||||
$(info installing npm dependencies)
|
||||
npm install
|
||||
@if [ "$(GOESBUILD)" = "off" ]; then\
|
||||
npm install esbuild;\
|
||||
else\
|
||||
go install github.com/evanw/esbuild/cmd/esbuild@latest;\
|
||||
fi
|
||||
npm install $(NPMOPTS)
|
||||
|
||||
configuration:
|
||||
$(info Fixing config-base)
|
||||
|
@ -41,6 +41,8 @@
|
||||
<span class="heading"><span class="modal-close">×</span></span>
|
||||
<p>{{ .strings.version }} <span class="text-black dark:text-white font-mono bg-inherit">{{ .version }}</span></p>
|
||||
<p>{{ .strings.commitNoun }} <span class="text-black dark:text-white font-mono bg-inherit">{{ .commit }}</span></p>
|
||||
<p>{{ .strings.buildTime }} <span class="text-black dark:text-white font-mono bg-inherit">{{ .buildTime }}</span></p>
|
||||
<p>{{ .strings.builtBy }} <span class="text-black dark:text-white font-mono bg-inherit">{{ .builtBy }}</span></p>
|
||||
<div class="row col flex">
|
||||
<a class="button ~neutral mr-2 mt-4 mb-4 lang-link" href="https://github.com/hrfee/jfa-go"><i class="ri-github-line mr-2"></i>github</a>
|
||||
<a class="button ~urge mt-4 mb-4 mr-2 lang-link" href="https://wiki.jfa-go.com">wiki/docs</a>
|
||||
|
@ -115,7 +115,9 @@
|
||||
"matchText": "Match Text",
|
||||
"jellyfinID": "Jellyfin ID",
|
||||
"userPageLogin": "User Page: Login",
|
||||
"userPagePage": "User Page: Page"
|
||||
"userPagePage": "User Page: Page",
|
||||
"buildTime": "Build Time",
|
||||
"builtBy": "Built By"
|
||||
},
|
||||
"notifications": {
|
||||
"changedEmailAddress": "Changed email address of {n}.",
|
||||
|
2
main.go
2
main.go
@ -53,6 +53,8 @@ var (
|
||||
white = color.New(color.FgWhite).SprintfFunc()
|
||||
version string
|
||||
commit string
|
||||
buildTimeUnix string
|
||||
builtBy string
|
||||
)
|
||||
|
||||
var temp = func() string {
|
||||
|
6
package-lock.json
generated
6
package-lock.json
generated
@ -15,7 +15,6 @@
|
||||
"any-date-parser": "^1.5.4",
|
||||
"browserslist": "^4.21.7",
|
||||
"cheerio": "^1.0.0-rc.12",
|
||||
"esbuild": "^0.18.6",
|
||||
"fs-cheerio": "^3.0.0",
|
||||
"inline-source": "^8.0.2",
|
||||
"jsdom": "^22.1.0",
|
||||
@ -32,6 +31,9 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"live-server": "^1.2.2"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"esbuild": "^0.18.6"
|
||||
}
|
||||
},
|
||||
"node_modules/@alloc/quick-lru": {
|
||||
@ -1651,6 +1653,7 @@
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.6.tgz",
|
||||
"integrity": "sha512-5QgxWaAhU/tPBpvkxUmnFv2YINHuZzjbk0LeUUnC2i3aJHjfi5yR49lgKgF7cb98bclOp/kans8M5TGbGFfJlQ==",
|
||||
"hasInstallScript": true,
|
||||
"optional": true,
|
||||
"bin": {
|
||||
"esbuild": "bin/esbuild"
|
||||
},
|
||||
@ -7899,6 +7902,7 @@
|
||||
"version": "0.18.6",
|
||||
"resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.18.6.tgz",
|
||||
"integrity": "sha512-5QgxWaAhU/tPBpvkxUmnFv2YINHuZzjbk0LeUUnC2i3aJHjfi5yR49lgKgF7cb98bclOp/kans8M5TGbGFfJlQ==",
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"@esbuild/android-arm": "0.18.6",
|
||||
"@esbuild/android-arm64": "0.18.6",
|
||||
|
@ -23,7 +23,6 @@
|
||||
"any-date-parser": "^1.5.4",
|
||||
"browserslist": "^4.21.7",
|
||||
"cheerio": "^1.0.0-rc.12",
|
||||
"esbuild": "^0.18.6",
|
||||
"fs-cheerio": "^3.0.0",
|
||||
"inline-source": "^8.0.2",
|
||||
"jsdom": "^22.1.0",
|
||||
@ -40,5 +39,8 @@
|
||||
},
|
||||
"devDependencies": {
|
||||
"live-server": "^1.2.2"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"esbuild": "^0.18.6"
|
||||
}
|
||||
}
|
||||
|
@ -13,8 +13,8 @@ args = parser.parse_args()
|
||||
def runcmd(cmd):
|
||||
if os.name == "nt":
|
||||
return subprocess.check_output(cmd, shell=True)
|
||||
proc = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
|
||||
return proc.communicate()
|
||||
with subprocess.Popen(cmd.split(), stdout=subprocess.PIPE) as proc:
|
||||
return proc.communicate()
|
||||
|
||||
def compile(mjml: Path):
|
||||
fname = mjml.with_suffix(".html")
|
||||
|
@ -1,5 +1,7 @@
|
||||
#!/bin/bash
|
||||
# sets version environment variable for goreleaser to use
|
||||
# scripts/version.sh goreleaser ...
|
||||
|
||||
|
||||
JFA_GO_VERSION=$(git describe --exact-match HEAD 2> /dev/null || echo 'vgit')
|
||||
JFA_GO_CSS_VERSION="v3" JFA_GO_NFPM_EPOCH=$(git rev-list --all --count) JFA_GO_VERSION="$(echo $JFA_GO_VERSION | sed 's/v//g')" $@
|
||||
JFA_GO_CSS_VERSION="v3" JFA_GO_NFPM_EPOCH=$(git rev-list --all --count) JFA_GO_BUILD_TIME=$(date +%s) JFA_GO_BUILT_BY=${JFA_GO_BUILT_BY:-"???"} JFA_GO_VERSION="$(echo $JFA_GO_VERSION | sed 's/v//g')" $@
|
||||
|
50
updater.go
50
updater.go
@ -25,6 +25,11 @@ const (
|
||||
repo = "jfa-go"
|
||||
)
|
||||
|
||||
var buildTime time.Time = func() time.Time {
|
||||
i, _ := strconv.ParseInt(buildTimeUnix, 10, 64)
|
||||
return time.Unix(i, 0)
|
||||
}()
|
||||
|
||||
type GHRelease struct {
|
||||
HTMLURL string `json:"html_url"`
|
||||
ID int `json:"id"`
|
||||
@ -106,14 +111,14 @@ var goarch = map[string]string{
|
||||
"arm": "armv6",
|
||||
}
|
||||
|
||||
// func newDockerBuild() Update {
|
||||
// var tag string
|
||||
// if version == "git" {
|
||||
// tag = "docker-unstable"
|
||||
// } else {
|
||||
// tag = "docker-latest"
|
||||
// }
|
||||
// }
|
||||
// func newDockerBuild() Update {
|
||||
// var tag string
|
||||
// if version == "git" {
|
||||
// tag = "docker-unstable"
|
||||
// } else {
|
||||
// tag = "docker-latest"
|
||||
// }
|
||||
// }
|
||||
type Updater struct {
|
||||
version, commit, tag, url, namespace, name string
|
||||
stable bool
|
||||
@ -124,6 +129,7 @@ type Updater struct {
|
||||
}
|
||||
|
||||
func newUpdater(buildroneURL, namespace, repo, version, commit, buildType string) *Updater {
|
||||
// fmt.Printf(`Updater intializing with "%s", "%s", "%s", "%s", "%s", "%s"\n`, buildroneURL, namespace, repo, version, commit, buildType)
|
||||
bType := off
|
||||
tag := ""
|
||||
switch buildType {
|
||||
@ -184,6 +190,7 @@ func (ud *Updater) GetTag() (Tag, int, error) {
|
||||
return Tag{}, -1, nil
|
||||
}
|
||||
url := fmt.Sprintf("%s/repo/%s/%s/tag/latest/%s", ud.url, ud.namespace, ud.name, ud.tag)
|
||||
// fmt.Printf("Pinging URL \"%s\" for updates\n", url)
|
||||
req, _ := http.NewRequest("GET", url, nil)
|
||||
resp, err := ud.httpClient.Do(req)
|
||||
defer ud.timeoutHandler()
|
||||
@ -205,7 +212,8 @@ func (ud *Updater) GetTag() (Tag, int, error) {
|
||||
}
|
||||
|
||||
func (t *Tag) IsNew() bool {
|
||||
return t.Version[:7] != commit && t.Ready
|
||||
// fmt.Printf("Build Time: %+v, Release Date: %+v", buildTime, t.ReleaseDate)
|
||||
return t.Version[:7] != commit && t.Ready && t.ReleaseDate.After(buildTime)
|
||||
}
|
||||
|
||||
func (ud *Updater) getRelease() (release GHRelease, status int, err error) {
|
||||
@ -526,18 +534,18 @@ func (ud *Updater) pullInternal(url string) (applyUpdate ApplyUpdate, status int
|
||||
// func newInternalBuild() Update {
|
||||
// tag := "internal"
|
||||
|
||||
// func update(path string) err {
|
||||
// if
|
||||
// fp, err := os.Executable()
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// fullPath, err := filepath.EvalSymlinks(fp)
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// newBinary,
|
||||
// }
|
||||
// func update(path string) err {
|
||||
// if
|
||||
// fp, err := os.Executable()
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// fullPath, err := filepath.EvalSymlinks(fp)
|
||||
// if err != nil {
|
||||
// return err
|
||||
// }
|
||||
// newBinary,
|
||||
// }
|
||||
func (app *appContext) checkForUpdates() {
|
||||
for {
|
||||
go func() {
|
||||
|
6
views.go
6
views.go
@ -143,6 +143,10 @@ func (app *appContext) AdminPage(gc *gin.Context) {
|
||||
license += "---Hanken Grotesk---\n\n"
|
||||
license += string(fontLicense)
|
||||
|
||||
if builtBy == "" {
|
||||
builtBy = "???"
|
||||
}
|
||||
|
||||
gcHTML(gc, http.StatusOK, "admin.html", gin.H{
|
||||
"urlBase": app.getURLBase(gc),
|
||||
"cssClass": app.cssClass,
|
||||
@ -157,6 +161,8 @@ func (app *appContext) AdminPage(gc *gin.Context) {
|
||||
"notifications": notificationsEnabled,
|
||||
"version": version,
|
||||
"commit": commit,
|
||||
"buildTime": buildTime,
|
||||
"builtBy": builtBy,
|
||||
"username": !app.config.Section("email").Key("no_username").MustBool(false),
|
||||
"strings": app.storage.lang.Admin[lang].Strings,
|
||||
"quantityStrings": app.storage.lang.Admin[lang].QuantityStrings,
|
||||
|
Loading…
Reference in New Issue
Block a user