<pre style='margin:0'>
Zhenfu Shi (i0ntempest) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/be065a85b90881b39f388ecb6efcf896e6e9cc16">https://github.com/macports/macports-ports/commit/be065a85b90881b39f388ecb6efcf896e6e9cc16</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'> new be065a85b90 filebrowser: add patch fixing command runner
</span>be065a85b90 is described below
<span style='display:block; white-space:pre;color:#808000;'>commit be065a85b90881b39f388ecb6efcf896e6e9cc16
</span>Author: i0ntempest <i0ntempest@i0ntempest.com>
AuthorDate: Thu Jan 23 15:07:44 2025 +0800
<span style='display:block; white-space:pre;color:#404040;'> filebrowser: add patch fixing command runner
</span>---
net/filebrowser/Portfile | 7 +++-
net/filebrowser/files/patch-3676.diff | 76 +++++++++++++++++++++++++++++++++++
2 files changed, 82 insertions(+), 1 deletion(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/filebrowser/Portfile b/net/filebrowser/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 3815aafeb50..25085b44d9a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/filebrowser/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/filebrowser/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -6,7 +6,7 @@ PortGroup golang 1.0
</span> go.setup github.com/filebrowser/filebrowser 2.31.2 v
set git-commit 129a4fd
# This line is for displaying commit in CLI only
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 2
</span> categories net sysutils
maintainers {i0ntempest @i0ntempest} openmaintainer
license Apache-2
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,6 +24,11 @@ checksums ${distname}${extract.suffix} \
</span> sha256 affa66dfd9de8af359a6f242410d1327ca8acf498dead6b3066f6a766b97679a \
size 3828081
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Command runner fix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/filebrowser/filebrowser/pull/3676
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append patch-3676.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patch.args -p1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> go.vendors gopkg.in/yaml.v3 \
lock v3.0.1 \
rmd160 e85ac1368fb7f9ef945b7fd7bd608a1f0d261c12 \
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/filebrowser/files/patch-3676.diff b/net/filebrowser/files/patch-3676.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..02d835a419b
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/filebrowser/files/patch-3676.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,76 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/http/tus_handlers.go b/http/tus_handlers.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 7a3254ae72..773b3d0d88 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/http/tus_handlers.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/http/tus_handlers.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -131,6 +131,13 @@ func tusPatchHandler() handleFunc {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if uploadOffset == 0 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ err = d.RunBeforeHook("upload", r.URL.Path, "", d.user)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if err != nil {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return errToStatus(err), err
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ openFile, err := d.user.Fs.OpenFile(r.URL.Path, os.O_WRONLY|os.O_APPEND, files.PermFile)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if err != nil {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return http.StatusInternalServerError, fmt.Errorf("could not open file: %w", err)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -150,6 +157,13 @@ func tusPatchHandler() handleFunc {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ w.Header().Set("Upload-Offset", strconv.FormatInt(uploadOffset+bytesWritten, 10))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if bytesWritten < int64(d.Settings.Tus.ChunkSize) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ err = d.RunAfterHook("upload", r.URL.Path, "", d.user)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if err != nil {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return errToStatus(err), err
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ return http.StatusNoContent, nil
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ })
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/runner/runner.go b/runner/runner.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2dbafa5cd1..829e591020 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/runner/runner.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/runner/runner.go
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -17,6 +17,39 @@ type Runner struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ *settings.Settings
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// RunBeforeHook and RunAfterHook trigger the command runner at their respective times.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++func (r *Runner) RunBeforeHook(evt, path, dst string, user *users.User) error {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ path = user.FullPath(path)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ dst = user.FullPath(dst)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if r.Enabled {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if val, ok := r.Commands["before_"+evt]; ok {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for _, command := range val {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ err := r.exec(command, "before_"+evt, path, dst, user)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if err != nil {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return err
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return nil
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++func (r *Runner) RunAfterHook(evt, path, dst string, user *users.User) error {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ path = user.FullPath(path)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ dst = user.FullPath(dst)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if r.Enabled {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if val, ok := r.Commands["after_"+evt]; ok {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ for _, command := range val {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ err := r.exec(command, "after_"+evt, path, dst, user)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ if err != nil {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return err
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ return nil
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ // RunHook runs the hooks for the before and after event.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ func (r *Runner) RunHook(fn func() error, evt, path, dst string, user *users.User) error {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ path = user.FullPath(path)
</span></pre><pre style='margin:0'>
</pre>