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:
commit
9d7f758dec
143
fix-gitignore-bypass.patch
Normal file
143
fix-gitignore-bypass.patch
Normal 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)
|
@ -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>
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user