From c13a40a1062a135d496c63dab77d6e07c5688dbe Mon Sep 17 00:00:00 2001 From: JakobDev Date: Wed, 27 Dec 2023 17:14:49 +0100 Subject: [PATCH 1/4] Show in Web UI if file is vendored and generated --- options/locale/locale_en-US.ini | 2 ++ routers/web/repo/view.go | 19 +++++++++++++++++++ templates/repo/file_info.tmpl | 10 ++++++++++ 3 files changed, 31 insertions(+) diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini index 53f0402e2dfa..85bd7d64f52f 100644 --- a/options/locale/locale_en-US.ini +++ b/options/locale/locale_en-US.ini @@ -1184,6 +1184,8 @@ audio_not_supported_in_browser = Your browser does not support the HTML5 'audio' stored_lfs = Stored with Git LFS symbolic_link = Symbolic link executable_file = Executable File +vendored = Vendored +generated = Generated commit_graph = Commit Graph commit_graph.select = Select branches commit_graph.hide_pr_refs = Hide Pull Requests diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index 9cf0dff5d8e2..0c5773b22e29 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -596,6 +596,25 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st } } + if ctx.Repo.GitRepo != nil { + checker, deferable := ctx.Repo.GitRepo.CheckAttributeReader(ctx.Repo.CommitID) + defer deferable() + attrs, err := checker.CheckPath(ctx.Repo.TreePath) + if err == nil { + if vendored, has := attrs["linguist-vendored"]; has { + if vendored == "set" || vendored == "true" { + ctx.Data["IsVendored"] = true + } + } + + if generated, has := attrs["linguist-generated"]; has { + if generated == "set" || generated == "true" { + ctx.Data["IsGenerated"] = true + } + } + } + } + if fInfo.st.IsImage() && !fInfo.st.IsSvgImage() { img, _, err := image.DecodeConfig(bytes.NewReader(buf)) if err == nil { diff --git a/templates/repo/file_info.tmpl b/templates/repo/file_info.tmpl index 3003fbbdb6df..33f0f87d6163 100644 --- a/templates/repo/file_info.tmpl +++ b/templates/repo/file_info.tmpl @@ -30,6 +30,16 @@ {{ctx.Locale.Tr "repo.executable_file"}} {{end}} + {{if .IsVendored}} +
+ {{ctx.Locale.Tr "repo.vendored"}} +
+ {{end}} + {{if .IsGenerated}} +
+ {{ctx.Locale.Tr "repo.generated"}} +
+ {{end}} {{if .ImageSize}}
{{.ImageSize}} From 089de2b9cee8ce7107bd53cdbdb27426c329375f Mon Sep 17 00:00:00 2001 From: JakobDev Date: Sat, 30 Dec 2023 18:28:38 +0100 Subject: [PATCH 2/4] Add nil check --- routers/web/repo/view.go | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index 0c5773b22e29..3f891f4ccfcc 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -598,18 +598,20 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st if ctx.Repo.GitRepo != nil { checker, deferable := ctx.Repo.GitRepo.CheckAttributeReader(ctx.Repo.CommitID) - defer deferable() - attrs, err := checker.CheckPath(ctx.Repo.TreePath) - if err == nil { - if vendored, has := attrs["linguist-vendored"]; has { - if vendored == "set" || vendored == "true" { - ctx.Data["IsVendored"] = true + if checker != nil { + defer deferable() + attrs, err := checker.CheckPath(ctx.Repo.TreePath) + if err == nil { + if vendored, has := attrs["linguist-vendored"]; has { + if vendored == "set" || vendored == "true" { + ctx.Data["IsVendored"] = true + } } - } - if generated, has := attrs["linguist-generated"]; has { - if generated == "set" || generated == "true" { - ctx.Data["IsGenerated"] = true + if generated, has := attrs["linguist-generated"]; has { + if generated == "set" || generated == "true" { + ctx.Data["IsGenerated"] = true + } } } } From d78ccda954e70679f11bdfd176ed71578478fa2a Mon Sep 17 00:00:00 2001 From: JakobDev Date: Tue, 23 Jan 2024 09:37:01 +0100 Subject: [PATCH 3/4] Update routers/web/repo/view.go Co-authored-by: delvh --- routers/web/repo/view.go | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index 3f891f4ccfcc..364be173fa86 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -602,17 +602,11 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry, treeLink, rawLink st defer deferable() attrs, err := checker.CheckPath(ctx.Repo.TreePath) if err == nil { - if vendored, has := attrs["linguist-vendored"]; has { - if vendored == "set" || vendored == "true" { - ctx.Data["IsVendored"] = true - } - } - - if generated, has := attrs["linguist-generated"]; has { - if generated == "set" || generated == "true" { - ctx.Data["IsGenerated"] = true - } - } + vendored, has := attrs["linguist-vendored"] + ctx.Data["IsVendored"] = has && (vendored == "set" || vendored == "true") + + generated, has := attrs["linguist-generated"] + ctx.Data["IsGenerated"] = has && (generated == "set" || generated == "true") } } } From 3890449802e50ed82183f378b374701b24a1b39d Mon Sep 17 00:00:00 2001 From: Lunny Xiao Date: Wed, 24 Jan 2024 11:13:22 +0800 Subject: [PATCH 4/4] fix checks --- routers/web/repo/view.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/routers/web/repo/view.go b/routers/web/repo/view.go index 7e7732dee85a..00fd47b6506d 100644 --- a/routers/web/repo/view.go +++ b/routers/web/repo/view.go @@ -655,7 +655,7 @@ func renderFile(ctx *context.Context, entry *git.TreeEntry) { if err == nil { vendored, has := attrs["linguist-vendored"] ctx.Data["IsVendored"] = has && (vendored == "set" || vendored == "true") - + generated, has := attrs["linguist-generated"] ctx.Data["IsGenerated"] = has && (generated == "set" || generated == "true") }