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>
|
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
|
Source2: README.suse-maint.md
|
||||||
#
|
#
|
||||||
Patch1: fix-for-go-117.patch
|
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: golang-packaging
|
||||||
BuildRequires: zstd
|
BuildRequires: zstd
|
||||||
BuildRequires: golang(API) >= 1.17
|
BuildRequires: golang(API) >= 1.17
|
||||||
|
Loading…
Reference in New Issue
Block a user