Accepting request 1093089 from utilities

OBS-URL: https://build.opensuse.org/request/show/1093089
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/glow?expand=0&rev=3
This commit is contained in:
Dominique Leuenberger 2023-06-14 14:31:25 +00:00 committed by Git OBS Bridge
commit 9d7f758dec
3 changed files with 151 additions and 0 deletions

143
fix-gitignore-bypass.patch Normal file
View File

@ -0,0 +1,143 @@
From f2fc75e04cb80239cb499be19b74484f039f4e2f Mon Sep 17 00:00:00 2001
From: aitva <aitva@pm.me>
Date: Fri, 26 May 2023 15:00:57 +0200
Subject: [PATCH] fix: --all bypass .gitignore rules (#285)
---
ui/filesearch.go | 86 ++++++++++++++++++++++++++++++++++++++++++++++++
ui/ui.go | 13 ++++----
2 files changed, 93 insertions(+), 6 deletions(-)
create mode 100644 ui/filesearch.go
diff --git a/ui/filesearch.go b/ui/filesearch.go
new file mode 100644
index 00000000..4dd86c0e
--- /dev/null
+++ b/ui/filesearch.go
@@ -0,0 +1,86 @@
+package ui
+
+import (
+ "os"
+ "path/filepath"
+ "strings"
+
+ "github.com/muesli/gitcha"
+)
+
+type searchResult struct {
+ Path string
+ Info os.FileInfo
+}
+
+// findFilesExcept search a folder returns the files matching the pattern in
+// list. It excludes files matching the rules from .gitignore or pattern in
+// ignorePatterns.
+func findFilesExcept(path string, list []string, ignorePatterns []string) (chan searchResult, error) {
+ tmpCh, err := gitcha.FindFilesExcept(path, list, ignorePatterns)
+ if err != nil {
+ return nil, err
+ }
+
+ ch := make(chan searchResult)
+ go func() {
+ for tmp := range tmpCh {
+ ch <- searchResult{
+ Path: tmp.Path,
+ Info: tmp.Info,
+ }
+ }
+ }()
+
+ return ch, nil
+}
+
+// findFiles search a folder recursively and returns files matching the pattern
+// in list.
+func findFiles(path string, list []string) (chan searchResult, error) {
+ path, err := filepath.Abs(path)
+ if err != nil {
+ return nil, err
+ }
+ path, err = filepath.EvalSymlinks(path)
+ if err != nil {
+ return nil, err
+ }
+ st, err := os.Stat(path)
+ if err != nil {
+ return nil, err
+ }
+ if !st.IsDir() {
+ return nil, err
+ }
+
+ ch := make(chan searchResult)
+ go func() {
+ defer close(ch)
+
+ _ = filepath.Walk(path, func(path string, info os.FileInfo, err error) error {
+ for _, v := range list {
+ matched := strings.EqualFold(filepath.Base(path), v)
+ if !matched {
+ matched, _ = filepath.Match(strings.ToLower(v), strings.ToLower(filepath.Base(path)))
+ }
+
+ if matched {
+ res, err := filepath.Abs(path)
+ if err == nil {
+ ch <- searchResult{
+ Path: res,
+ Info: info,
+ }
+ }
+
+ // only match each path once
+ return nil
+ }
+ }
+ return nil
+ })
+ }()
+
+ return ch, nil
+}
diff --git a/ui/ui.go b/ui/ui.go
index df7e37f8..67387c4e 100644
--- a/ui/ui.go
+++ b/ui/ui.go
@@ -72,7 +72,7 @@ type (
keygenSuccessMsg struct{}
initLocalFileSearchMsg struct {
cwd string
- ch chan gitcha.SearchResult
+ ch chan searchResult
}
)
@@ -176,7 +176,7 @@ type model struct {
// Channel that receives paths to local markdown files
// (via the github.com/muesli/gitcha package)
- localFileFinder chan gitcha.SearchResult
+ localFileFinder chan searchResult
}
// unloadDocument unloads a document from the pager. Note that while this
@@ -505,12 +505,13 @@ func findLocalFiles(m model) tea.Cmd {
log.Println("local directory is:", cwd)
}
- var ignore []string
- if !m.common.cfg.ShowAllFiles {
- ignore = ignorePatterns(m)
+ var ch chan searchResult
+ if m.common.cfg.ShowAllFiles {
+ ch, err = findFiles(cwd, markdownExtensions)
+ } else {
+ ch, err = findFilesExcept(cwd, markdownExtensions, ignorePatterns(m))
}
- ch, err := gitcha.FindFilesExcept(cwd, markdownExtensions, ignore)
if err != nil {
if debug {
log.Println("error finding local files:", err)

View File

@ -1,3 +1,10 @@
-------------------------------------------------------------------
Tue Jun 13 13:54:56 UTC 2023 - Soc Virnyl Estela <socvirnyl.estela@gmail.com>
- Add fix-gitignore-bypass.patch.
* This patch will fix where setting `--all` to see hidden files
does not work for gitignore-ed files.
-------------------------------------------------------------------
Wed May 31 02:04:53 UTC 2023 - Joshua Smith <jsmithfpv@gmail.com>

View File

@ -36,6 +36,7 @@ Source1: vendor.tar.zst
Source2: README.suse-maint.md
#
Patch1: fix-for-go-117.patch
Patch2: https://patch-diff.githubusercontent.com/raw/charmbracelet/glow/pull/504.patch#/fix-gitignore-bypass.patch
BuildRequires: golang-packaging
BuildRequires: zstd
BuildRequires: golang(API) >= 1.17