Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package arkade for openSUSE:Factory checked 
in at 2026-06-18 18:43:54
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/arkade (Old)
 and      /work/SRC/openSUSE:Factory/.arkade.new.1981 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "arkade"

Thu Jun 18 18:43:54 2026 rev:81 rq:1360213 version:0.11.100

Changes:
--------
--- /work/SRC/openSUSE:Factory/arkade/arkade.changes    2026-06-09 
14:32:55.203931797 +0200
+++ /work/SRC/openSUSE:Factory/.arkade.new.1981/arkade.changes  2026-06-18 
18:44:53.439723590 +0200
@@ -1,0 +2,7 @@
+Thu Jun 18 08:56:03 UTC 2026 - Johannes Kastl 
<[email protected]>
+
+- Update to version 0.11.100:
+  * Include commit and build date on version and bump vendor
+  * Use fstail directly instead of via go replace
+
+-------------------------------------------------------------------

Old:
----
  arkade-0.11.99.obscpio
  fstail.tar.gz

New:
----
  arkade-0.11.100.obscpio

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ arkade.spec ++++++
--- /var/tmp/diff_new_pack.y2k61b/_old  2026-06-18 18:44:55.835823710 +0200
+++ /var/tmp/diff_new_pack.y2k61b/_new  2026-06-18 18:44:55.839823878 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           arkade
-Version:        0.11.99
+Version:        0.11.100
 Release:        0
 Summary:        Open Source Kubernetes Marketplace
 License:        Apache-2.0
@@ -25,7 +25,6 @@
 Source:         arkade-%{version}.tar.gz
 Source1:        vendor.tar.gz
 Source2:        gha-bump.tar.gz
-Source3:        fstail.tar.gz
 #
 Source11:       Makefile
 Source12:       PACKAGING_README.md
@@ -64,7 +63,6 @@
 %prep
 %autosetup -p 1 -a 1
 tar xvf %{SOURCE2} --directory ../
-tar xvf %{SOURCE3} --directory ../
 
 %build
 # hash will be shortened by COMMIT_HASH:0:8 later

++++++ _service ++++++
--- /var/tmp/diff_new_pack.y2k61b/_old  2026-06-18 18:44:55.959828892 +0200
+++ /var/tmp/diff_new_pack.y2k61b/_new  2026-06-18 18:44:55.963829059 +0200
@@ -3,7 +3,7 @@
     <param name="url">https://github.com/alexellis/arkade</param>
     <param name="scm">git</param>
     <param name="exclude">.git</param>
-    <param name="revision">0.11.99</param>
+    <param name="revision">0.11.100</param>
     <param name="versionformat">@PARENT_TAG@</param>
     <param name="versionrewrite-pattern">v(.*)</param>
     <param name="changesgenerate">enable</param>
@@ -17,15 +17,6 @@
     <param name="filename">gha-bump</param>
     <param name="without-version">yes</param>
   </service>
-  <service name="tar_scm" mode="manual">
-    <param name="url">https://github.com/alexellis/fstail.git</param>
-    <param name="scm">git</param>
-    <param name="revision">master</param>
-    <param name="submodules">disable</param>
-    <param name="exclude">.git</param>
-    <param name="filename">fstail</param>
-    <param name="without-version">yes</param>
-  </service>
   <service name="set_version" mode="manual">
   </service>
   <service name="recompress" mode="manual">

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.y2k61b/_old  2026-06-18 18:44:56.003830730 +0200
+++ /var/tmp/diff_new_pack.y2k61b/_new  2026-06-18 18:44:56.027831733 +0200
@@ -1,6 +1,6 @@
 <servicedata>
 <service name="tar_scm">
                 <param name="url">https://github.com/alexellis/arkade</param>
-              <param 
name="changesrevision">294d1a4321b6304875b45e1fb78a3437833c722a</param></service></servicedata>
+              <param 
name="changesrevision">db87cbea02bb931f4277719629597a627c4d4b5e</param></service></servicedata>
 (No newline at EOF)
 

++++++ arkade-0.11.99.obscpio -> arkade-0.11.100.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/arkade-0.11.99/Makefile new/arkade-0.11.100/Makefile
--- old/arkade-0.11.99/Makefile 2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/Makefile        2026-06-16 19:06:19.000000000 +0200
@@ -1,6 +1,11 @@
-Version := $(shell git describe --tags --dirty)
+Version := $(shell git describe --tags --abbrev=0 2>/dev/null || echo "dev")
+IsDirty := $(if $(shell git status --porcelain),-dirty,)
 GitCommit := $(shell git rev-parse HEAD)
-LDFLAGS := "-s -w -X github.com/alexellis/arkade/pkg.Version=$(Version) -X 
github.com/alexellis/arkade/pkg.GitCommit=$(GitCommit)"
+BuildTimestamp := $(shell date +%s)
+LDFLAGS := "-s -w \
+       -X github.com/alexellis/arkade/pkg.Version=$(Version)$(IsDirty) \
+       -X github.com/alexellis/arkade/pkg.GitCommit=$(GitCommit) \
+       -X github.com/alexellis/arkade/pkg.BuildTimestamp=$(BuildTimestamp)"
 PLATFORM := $(shell ./hack/platform-tag.sh)
 SOURCE_DIRS = cmd pkg main.go
 export GO111MODULE=on
@@ -10,7 +15,7 @@
 
 .PHONY: build
 build:
-       go build
+       CGO_ENABLED=0 go build -ldflags $(LDFLAGS)
 
 .PHONY: gofmt
 gofmt:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/arkade-0.11.99/cmd/version.go 
new/arkade-0.11.100/cmd/version.go
--- old/arkade-0.11.99/cmd/version.go   2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/cmd/version.go  2026-06-16 19:06:19.000000000 +0200
@@ -4,6 +4,7 @@
 package cmd
 
 import (
+       "encoding/json"
        "fmt"
 
        "github.com/alexellis/arkade/pkg"
@@ -17,6 +18,8 @@
 }
 
 func MakeVersion() *cobra.Command {
+       var jsonOut bool
+
        var command = &cobra.Command{
                Use:          "version",
                Short:        "Print the version",
@@ -25,15 +28,39 @@
                SilenceUsage: false,
        }
 
+       command.Flags().BoolVarP(&jsonOut, "json", "j", false, "Output version 
as JSON")
+
        command.Run = func(cmd *cobra.Command, args []string) {
+               if jsonOut {
+                       out := map[string]string{
+                               "version":    pkg.BuildString(),
+                               "commit":     "n/a",
+                               "build_date": "n/a",
+                       }
+                       if len(pkg.GitCommit) > 0 {
+                               out["commit"] = pkg.GitCommit
+                       }
+                       if bd := pkg.BuildDateString(); bd != "" {
+                               out["build_date"] = bd
+                       }
+
+                       b, _ := json.MarshalIndent(out, "", "  ")
+                       fmt.Println(string(b))
+                       return
+               }
 
                PrintArkadeASCIIArt()
-               if len(pkg.Version) == 0 {
-                       fmt.Println("Version: dev")
-               } else {
-                       fmt.Println("Version:", pkg.Version)
+               commit := "n/a"
+               if len(pkg.GitCommit) > 0 {
+                       commit = pkg.GitCommit
+               }
+               bd := "n/a"
+               if buildDate := pkg.BuildDateString(); buildDate != "" {
+                       bd = buildDate
                }
-               fmt.Println("Git Commit:", pkg.GitCommit)
+               fmt.Printf("  commit:  %s\n", commit)
+               fmt.Printf("  version: %s\n", pkg.BuildString())
+               fmt.Printf("  build date: %s\n", bd)
 
                fmt.Println("\n", aec.Bold.Apply(pkg.SupportMessageShort))
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/arkade-0.11.99/go.mod new/arkade-0.11.100/go.mod
--- old/arkade-0.11.99/go.mod   2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/go.mod  2026-06-16 19:06:19.000000000 +0200
@@ -14,8 +14,8 @@
        github.com/pkg/errors v0.9.1
        github.com/sethvargo/go-password v0.3.1
        github.com/spf13/cobra v1.10.2
-       golang.org/x/crypto v0.52.0
-       golang.org/x/mod v0.36.0
+       golang.org/x/crypto v0.53.0
+       golang.org/x/mod v0.37.0
        gopkg.in/yaml.v3 v3.0.1
 )
 
@@ -31,18 +31,16 @@
 )
 
 require (
-       github.com/alexellis/fstail v0.0.0-20250917111842-2ab578ec2afb
+       github.com/alexellis/fstail v0.0.0-20260301203901-2641eb3ce330
        github.com/clipperhouse/displaywidth v0.11.0 // indirect
        github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
-       github.com/containerd/stargz-snapshotter/estargz v0.18.2 // indirect
-       github.com/docker/cli v29.5.2+incompatible // indirect
-       github.com/docker/docker-credential-helpers v0.9.7 // indirect
+       github.com/docker/cli v29.5.3+incompatible // indirect
+       github.com/docker/docker-credential-helpers v0.9.8 // indirect
        github.com/fatih/color v1.19.0 // indirect
        github.com/inconshreveable/mousetrap v1.1.0 // indirect
        github.com/klauspost/compress v1.18.6 // indirect
-       github.com/mattn/go-colorable v0.1.14 // indirect
-       github.com/mattn/go-runewidth v0.0.23 // indirect
-       github.com/mitchellh/go-homedir v1.1.0 // indirect
+       github.com/mattn/go-colorable v0.1.15 // indirect
+       github.com/mattn/go-runewidth v0.0.24 // indirect
        github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
        github.com/olekukonko/errors v1.3.0 // indirect
        github.com/olekukonko/ll v0.1.8 // indirect
@@ -51,10 +49,7 @@
        github.com/otiai10/mint v1.6.3 // indirect
        github.com/sirupsen/logrus v1.9.4 // indirect
        github.com/spf13/pflag v1.0.10 // indirect
-       github.com/vbatts/tar-split v0.12.3 // indirect
-       golang.org/x/sync v0.20.0 // indirect
-       golang.org/x/sys v0.45.0 // indirect
+       golang.org/x/sync v0.21.0 // indirect
+       golang.org/x/sys v0.46.0 // indirect
        gopkg.in/fsnotify.v1 v1.4.7 // indirect
 )
-
-replace github.com/alexellis/fstail => ../fstail
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/arkade-0.11.99/go.sum new/arkade-0.11.100/go.sum
--- old/arkade-0.11.99/go.sum   2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/go.sum  2026-06-16 19:06:19.000000000 +0200
@@ -2,6 +2,8 @@
 github.com/Masterminds/semver v1.5.0/go.mod 
h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
 github.com/Masterminds/semver/v3 v3.5.0 
h1:kQceYJfbupGfZOKZQg0kou0DgAKhzDg2NZPAwZ/2OOE=
 github.com/Masterminds/semver/v3 v3.5.0/go.mod 
h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
+github.com/alexellis/fstail v0.0.0-20260301203901-2641eb3ce330 
h1:M7Yh2fMnNuNWFTeQ0clLP7jdIJNLwVTgEDvWPtN8mL0=
+github.com/alexellis/fstail v0.0.0-20260301203901-2641eb3ce330/go.mod 
h1:EeXLSmvkiUDzy3ut257lc0f+uoehgAU9NXsC+/i1ySg=
 github.com/alexellis/gha-bump v0.0.6 
h1:s4isGq/UwLdvd6wDLJBcYrynY5KgQme4nH8spxQ/82o=
 github.com/alexellis/gha-bump v0.0.6/go.mod 
h1:DoVZXvmzy/SjVJcIkdPQEgUFGJc/aZEXM4Rmi//HpBM=
 github.com/alexellis/go-execute/v2 v2.2.1 
h1:4Ye3jiCKQarstODOEmqDSRCqxMHLkC92Bhse743RdOI=
@@ -12,17 +14,17 @@
 github.com/clipperhouse/displaywidth v0.11.0/go.mod 
h1:bkrFNkf81G8HyVqmKGxsPufD3JhNl3dSqnGhOoSD/o0=
 github.com/clipperhouse/uax29/v2 v2.7.0 
h1:+gs4oBZ2gPfVrKPthwbMzWZDaAFPGYK72F0NJv2v7Vk=
 github.com/clipperhouse/uax29/v2 v2.7.0/go.mod 
h1:EFJ2TJMRUaplDxHKj1qAEhCtQPW2tJSwu5BF98AuoVM=
-github.com/containerd/stargz-snapshotter/estargz v0.18.2 
h1:yXkZFYIzz3eoLwlTUZKz2iQ4MrckBxJjkmD16ynUTrw=
-github.com/containerd/stargz-snapshotter/estargz v0.18.2/go.mod 
h1:XyVU5tcJ3PRpkA9XS2T5us6Eg35yM0214Y+wvrZTBrY=
 github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod 
h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
 github.com/davecgh/go-spew v1.1.1 
h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/docker/cli v29.4.3+incompatible 
h1:u+UliYm2J/rYrIh2FqHQg32neRG8GjbvNuwQRTzGspU=
-github.com/docker/cli v29.4.3+incompatible/go.mod 
h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
 github.com/docker/cli v29.5.2+incompatible 
h1:ubykJ1Y8LmNRGJ2BuMQ0kHOt/RO1YzGNswqWMJgivuQ=
 github.com/docker/cli v29.5.2+incompatible/go.mod 
h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/cli v29.5.3+incompatible 
h1:nbEFfz774vBwQ5KRYv7c/AghjReqnGISvrRhzjV0evs=
+github.com/docker/cli v29.5.3+incompatible/go.mod 
h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
 github.com/docker/docker-credential-helpers v0.9.7 
h1:jaPIxEIDz5bQeghNAdzz0ETwMMnM4vzjZlxz3pWP4JA=
 github.com/docker/docker-credential-helpers v0.9.7/go.mod 
h1:v1S+hepowrQXITkEfw6o4+BMbGot02wiKpzWhGUZK6c=
+github.com/docker/docker-credential-helpers v0.9.8 
h1:bIREROb7So6PRlq6KTtdS9MPEjC29OQRkFNlvK2OX8Q=
+github.com/docker/docker-credential-helpers v0.9.8/go.mod 
h1:v1S+hepowrQXITkEfw6o4+BMbGot02wiKpzWhGUZK6c=
 github.com/docker/go-units v0.5.0 
h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
 github.com/docker/go-units v0.5.0/go.mod 
h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
 github.com/fatih/color v1.19.0 h1:Zp3PiM21/9Ld6FzSKyL5c/BULoe/ONr9KlbYVOfG8+w=
@@ -33,8 +35,6 @@
 github.com/goccy/go-json v0.10.6/go.mod 
h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
 github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
 github.com/google/go-cmp v0.7.0/go.mod 
h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
-github.com/google/go-containerregistry v0.21.5 
h1:KTJG9Pn/jC0VdZR6ctV3/jcN+q6/Iqlx0sTVz3ywZlM=
-github.com/google/go-containerregistry v0.21.5/go.mod 
h1:ySvMuiWg+dOsRW0Hw8GYwfMwBlNRTmpYBFJPlkco5zU=
 github.com/google/go-containerregistry v0.21.6 
h1:T+yqQIlJXKrM98Om4DlW3GoWQAmhZuLMwoDOvVrtiUM=
 github.com/google/go-containerregistry v0.21.6/go.mod 
h1:U7MMSBIJynke2MVQrQk19NP9k/uQsGz/h0amIFSHMbo=
 github.com/inconshreveable/mousetrap v1.1.0 
h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
@@ -43,12 +43,14 @@
 github.com/klauspost/compress v1.18.6/go.mod 
h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ=
 github.com/mattn/go-colorable v0.1.14 
h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
 github.com/mattn/go-colorable v0.1.14/go.mod 
h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
+github.com/mattn/go-colorable v0.1.15 
h1:+u9SLTRGnXv73cEsnsmoZBom+dMU88B2M0aDcWy0/jY=
+github.com/mattn/go-colorable v0.1.15/go.mod 
h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
 github.com/mattn/go-isatty v0.0.22 
h1:j8l17JJ9i6VGPUFUYoTUKPSgKe/83EYU2zBC7YNKMw4=
 github.com/mattn/go-isatty v0.0.22/go.mod 
h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4=
 github.com/mattn/go-runewidth v0.0.23 
h1:7ykA0T0jkPpzSvMS5i9uoNn2Xy3R383f9HDx3RybWcw=
 github.com/mattn/go-runewidth v0.0.23/go.mod 
h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
-github.com/mitchellh/go-homedir v1.1.0 
h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
-github.com/mitchellh/go-homedir v1.1.0/go.mod 
h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
+github.com/mattn/go-runewidth v0.0.24 
h1:cpokDiIn0MGnhdHwuWnJBITySJ20QyNGnY2kR/ay2DU=
+github.com/mattn/go-runewidth v0.0.24/go.mod 
h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
 github.com/morikuni/aec v1.1.0 h1:vBBl0pUnvi/Je71dsRrhMBtreIqNMYErSAbEeb8jrXQ=
 github.com/morikuni/aec v1.1.0/go.mod 
h1:xDRgiq/iw5l+zkao76YTKzKttOp2cwPEne25HDkJnBw=
 github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 
h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc=
@@ -83,21 +85,23 @@
 github.com/spf13/pflag v1.0.10/go.mod 
h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
 github.com/stretchr/testify v1.10.0 
h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
 github.com/stretchr/testify v1.10.0/go.mod 
h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
-github.com/vbatts/tar-split v0.12.3 
h1:Cd46rkGXI3Td4yrVNwU8ripbxFaQbmesqhjBUUYAJSw=
-github.com/vbatts/tar-split v0.12.3/go.mod 
h1:sQOc6OlqGCr7HkGx/IDBeKiTIvqhmj8KffNhEXG4Nq0=
 go.yaml.in/yaml/v3 v3.0.4/go.mod 
h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
-golang.org/x/crypto v0.51.0 h1:IBPXwPfKxY7cWQZ38ZCIRPI50YLeevDLlLnyC5wRGTI=
-golang.org/x/crypto v0.51.0/go.mod 
h1:8AdwkbraGNABw2kOX6YFPs3WM22XqI4EXEd8g+x7Oc8=
 golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988=
 golang.org/x/crypto v0.52.0/go.mod 
h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc=
+golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto=
+golang.org/x/crypto v0.53.0/go.mod 
h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio=
 golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4=
 golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ=
+golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ=
+golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0=
 golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
 golang.org/x/sync v0.20.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
-golang.org/x/sys v0.44.0 h1:ildZl3J4uzeKP07r2F++Op7E9B29JRUy+a27EibtBTQ=
-golang.org/x/sys v0.44.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM=
+golang.org/x/sync v0.21.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
 golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY=
 golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw=
+golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 
h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/arkade-0.11.99/main.go new/arkade-0.11.100/main.go
--- old/arkade-0.11.99/main.go  2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/main.go 2026-06-16 19:06:19.000000000 +0200
@@ -4,6 +4,7 @@
 package main
 
 import (
+       "fmt"
        "os"
 
        "github.com/alexellis/arkade/cmd"
@@ -13,6 +14,7 @@
        "github.com/alexellis/arkade/cmd/gha"
        "github.com/alexellis/arkade/cmd/oci"
        "github.com/alexellis/arkade/cmd/system"
+       "github.com/alexellis/arkade/pkg"
        "github.com/spf13/cobra"
 )
 
@@ -23,6 +25,13 @@
                Use: "arkade",
                Run: func(cmd *cobra.Command, args []string) {
                        printarkadeASCIIArt()
+                       short := "n/a"
+                       if len(pkg.GitCommit) > 12 {
+                               short = pkg.GitCommit[:12]
+                       } else if len(pkg.GitCommit) > 0 {
+                               short = pkg.GitCommit
+                       }
+                       fmt.Printf("Version: %s (%s)\n\n\n", pkg.BuildString(), 
short)
                        cmd.Help()
                },
        }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/arkade-0.11.99/pkg/version.go 
new/arkade-0.11.100/pkg/version.go
--- old/arkade-0.11.99/pkg/version.go   2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/pkg/version.go  2026-06-16 19:06:19.000000000 +0200
@@ -1,12 +1,41 @@
 package pkg
 
-import "fmt"
+import (
+       "fmt"
+       "strconv"
+       "time"
+)
 
 var (
-       Version,
-       GitCommit string
+       Version        string
+       GitCommit      string
+       BuildTimestamp string
 )
 
+func GetVersionInfo() string {
+       if len(Version) == 0 {
+               return "dev"
+       }
+       return Version
+}
+
+// BuildString returns the version string.
+func BuildString() string {
+       return GetVersionInfo()
+}
+
+// BuildDateString returns a human-readable build date, or empty if not set.
+func BuildDateString() string {
+       if len(BuildTimestamp) == 0 {
+               return ""
+       }
+       ts64, err := strconv.ParseInt(BuildTimestamp, 10, 64)
+       if err != nil {
+               return ""
+       }
+       return time.Unix(ts64, 0).UTC().Format(time.RFC3339)
+}
+
 func UserAgent() string {
        return fmt.Sprintf("arkade/%s", Version)
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/github.com/mattn/go-colorable/colorable_windows.go 
new/arkade-0.11.100/vendor/github.com/mattn/go-colorable/colorable_windows.go
--- 
old/arkade-0.11.99/vendor/github.com/mattn/go-colorable/colorable_windows.go    
    2026-05-22 14:43:23.000000000 +0200
+++ 
new/arkade-0.11.100/vendor/github.com/mattn/go-colorable/colorable_windows.go   
    2026-06-16 19:06:19.000000000 +0200
@@ -5,13 +5,13 @@
 
 import (
        "bytes"
+       syscall "golang.org/x/sys/windows"
        "io"
        "math"
        "os"
        "strconv"
        "strings"
        "sync"
-       syscall "golang.org/x/sys/windows"
        "unsafe"
 
        "github.com/mattn/go-isatty"
@@ -93,6 +93,7 @@
        handle    syscall.Handle
        althandle syscall.Handle
        oldattr   word
+       curattr   word
        oldpos    coord
        rest      bytes.Buffer
        mutex     sync.Mutex
@@ -112,7 +113,7 @@
                var csbi consoleScreenBufferInfo
                handle := syscall.Handle(file.Fd())
                procGetConsoleScreenBufferInfo.Call(uintptr(handle), 
uintptr(unsafe.Pointer(&csbi)))
-               return &writer{out: file, handle: handle, oldattr: 
csbi.attributes, oldpos: coord{0, 0}}
+               return &writer{out: file, handle: handle, oldattr: 
csbi.attributes, curattr: csbi.attributes, oldpos: coord{0, 0}}
        }
        return file
 }
@@ -438,7 +439,11 @@
        w.mutex.Lock()
        defer w.mutex.Unlock()
        var csbi consoleScreenBufferInfo
-       procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), 
uintptr(unsafe.Pointer(&csbi)))
+
+       if w.rest.Len() == 0 && bytes.IndexByte(data, 0x1b) == -1 {
+               w.out.Write(data)
+               return len(data), nil
+       }
 
        handle := w.handle
 
@@ -517,7 +522,7 @@
                                w.rest.Reset()
                                break
                        }
-                       buf.Write([]byte(string(c)))
+                       buf.WriteByte(c)
                }
                if m == 0 {
                        break loop
@@ -678,11 +683,11 @@
                        procFillConsoleOutputCharacter.Call(uintptr(handle), 
uintptr(' '), uintptr(n), *(*uintptr)(unsafe.Pointer(&cursor)), 
uintptr(unsafe.Pointer(&written)))
                        procFillConsoleOutputAttribute.Call(uintptr(handle), 
uintptr(csbi.attributes), uintptr(n), *(*uintptr)(unsafe.Pointer(&cursor)), 
uintptr(unsafe.Pointer(&written)))
                case 'm':
-                       procGetConsoleScreenBufferInfo.Call(uintptr(handle), 
uintptr(unsafe.Pointer(&csbi)))
-                       attr := csbi.attributes
+                       attr := w.curattr
                        cs := buf.String()
                        if cs == "" {
                                
procSetConsoleTextAttribute.Call(uintptr(handle), uintptr(w.oldattr))
+                               w.curattr = w.oldattr
                                continue
                        }
                        token := strings.Split(cs, ";")
@@ -814,9 +819,12 @@
                                                        attr |= backgroundBlue
                                                }
                                        }
-                                       
procSetConsoleTextAttribute.Call(uintptr(handle), uintptr(attr))
                                }
                        }
+                       if attr != w.curattr {
+                               
procSetConsoleTextAttribute.Call(uintptr(handle), uintptr(attr))
+                               w.curattr = attr
+                       }
                case 'h':
                        var ci consoleCursorInfo
                        cs := buf.String()
@@ -834,6 +842,8 @@
                                        w.althandle = syscall.Handle(h)
                                        if w.althandle != 0 {
                                                handle = w.althandle
+                                               
procGetConsoleScreenBufferInfo.Call(uintptr(handle), 
uintptr(unsafe.Pointer(&csbi)))
+                                               w.curattr = csbi.attributes
                                        }
                                }
                        }
@@ -853,6 +863,8 @@
                                        syscall.CloseHandle(w.althandle)
                                        w.althandle = 0
                                        handle = w.handle
+                                       
procGetConsoleScreenBufferInfo.Call(uintptr(handle), 
uintptr(unsafe.Pointer(&csbi)))
+                                       w.curattr = csbi.attributes
                                }
                        }
                case 's':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/github.com/mattn/go-runewidth/SECURITY.md 
new/arkade-0.11.100/vendor/github.com/mattn/go-runewidth/SECURITY.md
--- old/arkade-0.11.99/vendor/github.com/mattn/go-runewidth/SECURITY.md 
1970-01-01 01:00:00.000000000 +0100
+++ new/arkade-0.11.100/vendor/github.com/mattn/go-runewidth/SECURITY.md        
2026-06-16 19:06:19.000000000 +0200
@@ -0,0 +1,25 @@
+# Security Policy
+
+## Supported Versions
+
+The following versions of go-runewidth are currently supported with
+security updates.
+
+| Version  | Supported          |
+| -------- | ------------------ |
+| 0.0.23   | :white_check_mark: |
+| < 0.0.23 | :x:                |
+
+## Reporting a Vulnerability
+
+If you discover a security vulnerability in go-runewidth, please report it
+privately via GitHub's "Report a vulnerability" feature on the Security tab
+of the repository (https://github.com/mattn/go-runewidth/security), or by
+emailing the maintainer at [email protected].
+
+Please include a description of the issue, reproduction steps, and the
+affected version. You can expect an initial response within one week. If
+the vulnerability is accepted, a fix will be prepared and a new release
+will be published; you will be credited in the release notes unless you
+request otherwise. If the report is declined, you will receive an
+explanation of the reasoning.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/github.com/mattn/go-runewidth/runewidth.go 
new/arkade-0.11.100/vendor/github.com/mattn/go-runewidth/runewidth.go
--- old/arkade-0.11.99/vendor/github.com/mattn/go-runewidth/runewidth.go        
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/github.com/mattn/go-runewidth/runewidth.go       
2026-06-16 19:06:19.000000000 +0200
@@ -2,6 +2,7 @@
 
 import (
        "os"
+       "sort"
        "strings"
        "unicode/utf8"
 
@@ -25,13 +26,19 @@
 )
 
 var (
-       zerowidth table // combining + nonprint merged for faster zero-width 
lookup
-       widewidth table // ambiguous + doublewidth merged for EA path
+       zerowidth       table // combining + nonprint merged for faster 
zero-width lookup
+       widewidth       table // ambiguous + doublewidth merged for EA path
+       eastAsianWidth  widthTable
+       eastAsianWidth0 [0x300]byte
 )
 
 func init() {
        zerowidth = mergeIntervals(combining, nonprint)
        widewidth = mergeIntervals(ambiguous, doublewidth)
+       eastAsianWidth = makeWidthTable(zerowidth, widewidth)
+       for r := range eastAsianWidth0 {
+               eastAsianWidth0[r] = byte(runeWidthEastAsian(rune(r)))
+       }
        handleEnv()
 }
 
@@ -90,6 +97,14 @@
 
 type table []interval
 
+type widthInterval struct {
+       first rune
+       last  rune
+       width byte
+}
+
+type widthTable []widthInterval
+
 func inTable(r rune, t table) bool {
        if r < t[0].first {
                return false
@@ -116,6 +131,71 @@
        return false
 }
 
+func makeWidthTable(zero, two table) widthTable {
+       wt := make(widthTable, 0, len(zero)+len(two))
+       zi := 0
+       for _, iv := range two {
+               start := iv.first
+               for zi < len(zero) && zero[zi].last < start {
+                       zi++
+               }
+               for i := zi; i < len(zero) && zero[i].first <= iv.last; i++ {
+                       if start < zero[i].first {
+                               wt = append(wt, widthInterval{start, 
zero[i].first - 1, 2})
+                       }
+                       if start <= zero[i].last {
+                               start = zero[i].last + 1
+                       }
+                       if start > iv.last {
+                               break
+                       }
+               }
+               if start <= iv.last {
+                       wt = append(wt, widthInterval{start, iv.last, 2})
+               }
+       }
+       for _, iv := range zero {
+               wt = append(wt, widthInterval{iv.first, iv.last, 0})
+       }
+       sort.Slice(wt, func(i, j int) bool {
+               return wt[i].first < wt[j].first
+       })
+       return wt
+}
+
+func inWidthTable(r rune, t widthTable) (int, bool) {
+       if r < t[0].first {
+               return 0, false
+       }
+       if r > t[len(t)-1].last {
+               return 0, false
+       }
+
+       bot := 0
+       top := len(t) - 1
+       for top >= bot {
+               mid := (bot + top) >> 1
+
+               switch {
+               case t[mid].last < r:
+                       bot = mid + 1
+               case t[mid].first > r:
+                       top = mid - 1
+               default:
+                       return int(t[mid].width), true
+               }
+       }
+
+       return 0, false
+}
+
+func runeWidthEastAsian(r rune) int {
+       if w, ok := inWidthTable(r, eastAsianWidth); ok {
+               return w
+       }
+       return 1
+}
+
 var private = table{
        {0x00E000, 0x00F8FF}, {0x0F0000, 0x0FFFFD}, {0x100000, 0x10FFFD},
 }
@@ -153,34 +233,35 @@
        }
        // optimized version, verified by TestRuneWidthChecksums()
        if !c.EastAsianWidth {
-               switch {
-               case r < 0x20:
-                       return 0
-               case (r >= 0x7F && r <= 0x9F) || r == 0xAD: // nonprint
+               if r < 0x20 {
                        return 0
-               case r < 0x300:
-                       return 1
-               case inTable(r, zerowidth):
+               }
+               if (r >= 0x7F && r <= 0x9F) || r == 0xAD { // nonprint
                        return 0
-               case inTable(r, doublewidth):
-                       return 2
-               default:
+               }
+               if r < 0x300 {
                        return 1
                }
-       } else {
                switch {
                case inTable(r, zerowidth):
                        return 0
-               case inTable(r, narrow):
-                       return 1
-               case inTable(r, widewidth):
-                       return 2
-               case !c.StrictEmojiNeutral && inTable(r, emoji):
+               case inTable(r, doublewidth):
                        return 2
                default:
                        return 1
                }
        }
+
+       if r < 0x300 {
+               return int(eastAsianWidth0[r])
+       }
+       if w, ok := inWidthTable(r, eastAsianWidth); ok {
+               return w
+       }
+       if !c.StrictEmojiNeutral && inTable(r, emoji) {
+               return 2
+       }
+       return 1
 }
 
 // CreateLUT will create an in-memory lookup table of 557056 bytes for faster 
operation.
@@ -206,6 +287,13 @@
 
 // StringWidth return width as you can see
 func (c *Condition) StringWidth(s string) (width int) {
+       if len(s) == 1 {
+               b := s[0]
+               if b < 0x20 || b == 0x7F {
+                       return 0
+               }
+               return 1
+       }
        if len(s) > 0 && len(s) <= utf8.UTFMax {
                r, size := utf8.DecodeRuneInString(s)
                if size == len(s) {
@@ -213,15 +301,19 @@
                }
        }
        // ASCII fast path: no grapheme clustering needed for pure ASCII
-       if isAllASCII(s) {
-               for i := 0; i < len(s); i++ {
-                       b := s[i]
-                       if b >= 0x20 && b != 0x7F {
-                               width++
-                       }
+       for i := 0; i < len(s); i++ {
+               b := s[i]
+               if b >= 0x80 {
+                       goto graphemes
+               }
+               if b >= 0x20 && b != 0x7F {
+                       width++
                }
-               return
        }
+       return
+
+graphemes:
+       width = 0
        g := graphemes.FromString(s)
        for g.Next() {
                var chWidth int
@@ -236,15 +328,6 @@
        return
 }
 
-func isAllASCII(s string) bool {
-       for i := 0; i < len(s); i++ {
-               if s[i] >= 0x80 {
-                       return false
-               }
-       }
-       return true
-}
-
 // Truncate return string truncated with w cells
 func (c *Condition) Truncate(s string, w int, tail string) string {
        if c.StringWidth(s) <= w {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sync/errgroup/errgroup.go 
new/arkade-0.11.100/vendor/golang.org/x/sync/errgroup/errgroup.go
--- old/arkade-0.11.99/vendor/golang.org/x/sync/errgroup/errgroup.go    
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sync/errgroup/errgroup.go   
2026-06-16 19:06:19.000000000 +0200
@@ -109,7 +109,7 @@
        if g.sem != nil {
                select {
                case g.sem <- token{}:
-                       // Note: this allows barging iff channels in general 
allow barging.
+                       // Note: this allows barging if and only if channels in 
general allow barging.
                default:
                        return false
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sync/semaphore/semaphore.go 
new/arkade-0.11.100/vendor/golang.org/x/sync/semaphore/semaphore.go
--- old/arkade-0.11.99/vendor/golang.org/x/sync/semaphore/semaphore.go  
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sync/semaphore/semaphore.go 
2026-06-16 19:06:19.000000000 +0200
@@ -83,7 +83,7 @@
                default:
                        isFront := s.waiters.Front() == elem
                        s.waiters.Remove(elem)
-                       // If we're at the front and there're extra tokens 
left, notify other waiters.
+                       // If we're at the front and there are extra tokens 
left, notify other waiters.
                        if isFront && s.size > s.cur {
                                s.notifyWaiters()
                        }
@@ -139,15 +139,15 @@
 
                w := next.Value.(waiter)
                if s.size-s.cur < w.n {
-                       // Not enough tokens for the next waiter.  We could 
keep going (to try to
+                       // Not enough tokens for the next waiter. We could keep 
going (to try to
                        // find a waiter with a smaller request), but under 
load that could cause
                        // starvation for large requests; instead, we leave all 
remaining waiters
                        // blocked.
                        //
                        // Consider a semaphore used as a read-write lock, with 
N tokens, N
-                       // readers, and one writer.  Each reader can Acquire(1) 
to obtain a read
-                       // lock.  The writer can Acquire(N) to obtain a write 
lock, excluding all
-                       // of the readers.  If we allow the readers to jump 
ahead in the queue,
+                       // readers, and one writer. Each reader can Acquire(1) 
to obtain a read
+                       // lock. The writer can Acquire(N) to obtain a write 
lock, excluding all
+                       // of the readers. If we allow the readers to jump 
ahead in the queue,
                        // the writer will starve — there is always one token 
available for every
                        // reader.
                        break
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux.go     
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux.go    
2026-06-16 19:06:19.000000000 +0200
@@ -6397,3 +6397,79 @@
        MPOL_PREFERRED_MANY      = 0x5
        MPOL_WEIGHTED_INTERLEAVE = 0x6
 )
+
+const (
+       GPIO_V2_GET_LINEINFO_IOCTL       = 0xc100b405
+       GPIO_V2_GET_LINE_IOCTL           = 0xc250b407
+       GPIO_V2_LINE_GET_VALUES_IOCTL    = 0xc010b40e
+       GPIO_V2_LINE_SET_VALUES_IOCTL    = 0xc010b40f
+       GPIO_V2_GET_LINEINFO_WATCH_IOCTL = 0xc100b406
+       GPIO_GET_LINEINFO_UNWATCH_IOCTL  = 0xc004b40c
+)
+const (
+       GPIO_V2_LINE_ATTR_ID_FLAGS         = 0x1
+       GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = 0x2
+       GPIO_V2_LINE_ATTR_ID_DEBOUNCE      = 0x3
+       GPIO_V2_LINE_CHANGED_REQUESTED     = 0x1
+       GPIO_V2_LINE_CHANGED_RELEASED      = 0x2
+       GPIO_V2_LINE_CHANGED_CONFIG        = 0x3
+       GPIO_V2_LINE_EVENT_RISING_EDGE     = 0x1
+       GPIO_V2_LINE_EVENT_FALLING_EDGE    = 0x2
+)
+
+type GPIOChipInfo struct {
+       Name  [32]byte
+       Label [32]byte
+       Lines uint32
+}
+type GPIOV2LineValues struct {
+       Bits uint64
+       Mask uint64
+}
+type GPIOV2LineAttribute struct {
+       Id    uint32
+       _     uint32
+       Flags uint64
+}
+type GPIOV2LineConfigAttribute struct {
+       Attr GPIOV2LineAttribute
+       Mask uint64
+}
+type GPIOV2LineConfig struct {
+       Flags     uint64
+       Num_attrs uint32
+       _         [5]uint32
+       Attrs     [10]GPIOV2LineConfigAttribute
+}
+type GPIOV2LineRequest struct {
+       Offsets           [64]uint32
+       Consumer          [32]byte
+       Config            GPIOV2LineConfig
+       Num_lines         uint32
+       Event_buffer_size uint32
+       _                 [5]uint32
+       Fd                int32
+}
+type GPIOV2LineInfo struct {
+       Name      [32]byte
+       Consumer  [32]byte
+       Offset    uint32
+       Num_attrs uint32
+       Flags     uint64
+       Attrs     [10]GPIOV2LineAttribute
+       _         [4]uint32
+}
+type GPIOV2LineInfoChanged struct {
+       Info         GPIOV2LineInfo
+       Timestamp_ns uint64
+       Event_type   uint32
+       _            [5]uint32
+}
+type GPIOV2LineEvent struct {
+       Timestamp_ns uint64
+       Id           uint32
+       Offset       uint32
+       Seqno        uint32
+       Line_seqno   uint32
+       _            [6]uint32
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_386.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_386.go 
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_386.go        
2026-06-16 19:06:19.000000000 +0200
@@ -711,3 +711,7 @@
        _          uint32
        _          uint32
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go       
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go      
2026-06-16 19:06:19.000000000 +0200
@@ -725,3 +725,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go 
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go        
2026-06-16 19:06:19.000000000 +0200
@@ -705,3 +705,7 @@
        _          uint32
        _          uint32
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go       
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go      
2026-06-16 19:06:19.000000000 +0200
@@ -704,3 +704,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go     
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go    
2026-06-16 19:06:19.000000000 +0200
@@ -705,3 +705,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go        
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go       
2026-06-16 19:06:19.000000000 +0200
@@ -710,3 +710,7 @@
        Ctime_high uint16
        _          uint16
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go      
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go     
2026-06-16 19:06:19.000000000 +0200
@@ -707,3 +707,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go    
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go   
2026-06-16 19:06:19.000000000 +0200
@@ -707,3 +707,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go      
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go     
2026-06-16 19:06:19.000000000 +0200
@@ -710,3 +710,7 @@
        Ctime_high uint16
        _          uint16
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go 
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go        
2026-06-16 19:06:19.000000000 +0200
@@ -718,3 +718,7 @@
        _          uint32
        _          [4]byte
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go       
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go      
2026-06-16 19:06:19.000000000 +0200
@@ -713,3 +713,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go     
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go    
2026-06-16 19:06:19.000000000 +0200
@@ -713,3 +713,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go     
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go    
2026-06-16 19:06:19.000000000 +0200
@@ -792,3 +792,7 @@
        RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE  = 0x6
        RISCV_HWPROBE_WHICH_CPUS             = 0x1
 )
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go       
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go      
2026-06-16 19:06:19.000000000 +0200
@@ -727,3 +727,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go 
new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
--- old/arkade-0.11.99/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go     
2026-05-22 14:43:23.000000000 +0200
+++ new/arkade-0.11.100/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go    
2026-06-16 19:06:19.000000000 +0200
@@ -708,3 +708,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/arkade-0.11.99/vendor/modules.txt 
new/arkade-0.11.100/vendor/modules.txt
--- old/arkade-0.11.99/vendor/modules.txt       2026-05-22 14:43:23.000000000 
+0200
+++ new/arkade-0.11.100/vendor/modules.txt      2026-06-16 19:06:19.000000000 
+0200
@@ -4,7 +4,7 @@
 # github.com/Masterminds/semver/v3 v3.5.0
 ## explicit; go 1.21
 github.com/Masterminds/semver/v3
-# github.com/alexellis/fstail v0.0.0-20250917111842-2ab578ec2afb => ../fstail
+# github.com/alexellis/fstail v0.0.0-20260301203901-2641eb3ce330
 ## explicit; go 1.24.0
 github.com/alexellis/fstail/pkg/fstail
 # github.com/alexellis/gha-bump v0.0.6
@@ -22,16 +22,14 @@
 # github.com/clipperhouse/uax29/v2 v2.7.0
 ## explicit; go 1.18
 github.com/clipperhouse/uax29/v2/graphemes
-# github.com/containerd/stargz-snapshotter/estargz v0.18.2
-## explicit; go 1.24.0
-# github.com/docker/cli v29.5.2+incompatible
+# github.com/docker/cli v29.5.3+incompatible
 ## explicit
 github.com/docker/cli/cli/config
 github.com/docker/cli/cli/config/configfile
 github.com/docker/cli/cli/config/credentials
 github.com/docker/cli/cli/config/memorystore
 github.com/docker/cli/cli/config/types
-# github.com/docker/docker-credential-helpers v0.9.7
+# github.com/docker/docker-credential-helpers v0.9.8
 ## explicit; go 1.21
 github.com/docker/docker-credential-helpers/client
 github.com/docker/docker-credential-helpers/credentials
@@ -95,17 +93,15 @@
 github.com/klauspost/compress/internal/snapref
 github.com/klauspost/compress/zstd
 github.com/klauspost/compress/zstd/internal/xxhash
-# github.com/mattn/go-colorable v0.1.14
+# github.com/mattn/go-colorable v0.1.15
 ## explicit; go 1.18
 github.com/mattn/go-colorable
 # github.com/mattn/go-isatty v0.0.22
 ## explicit; go 1.21
 github.com/mattn/go-isatty
-# github.com/mattn/go-runewidth v0.0.23
+# github.com/mattn/go-runewidth v0.0.24
 ## explicit; go 1.20
 github.com/mattn/go-runewidth
-# github.com/mitchellh/go-homedir v1.1.0
-## explicit
 # github.com/morikuni/aec v1.1.0
 ## explicit; go 1.21
 github.com/morikuni/aec
@@ -157,20 +153,18 @@
 # github.com/spf13/pflag v1.0.10
 ## explicit; go 1.12
 github.com/spf13/pflag
-# github.com/vbatts/tar-split v0.12.3
-## explicit; go 1.22.0
-# golang.org/x/crypto v0.52.0
+# golang.org/x/crypto v0.53.0
 ## explicit; go 1.25.0
 golang.org/x/crypto/bcrypt
 golang.org/x/crypto/blowfish
-# golang.org/x/mod v0.36.0
+# golang.org/x/mod v0.37.0
 ## explicit; go 1.25.0
 golang.org/x/mod/semver
-# golang.org/x/sync v0.20.0
+# golang.org/x/sync v0.21.0
 ## explicit; go 1.25.0
 golang.org/x/sync/errgroup
 golang.org/x/sync/semaphore
-# golang.org/x/sys v0.45.0
+# golang.org/x/sys v0.46.0
 ## explicit; go 1.25.0
 golang.org/x/sys/unix
 golang.org/x/sys/windows
@@ -182,4 +176,3 @@
 gopkg.in/yaml.v3
 # gotest.tools/v3 v3.5.2
 ## explicit; go 1.17
-# github.com/alexellis/fstail => ../fstail

++++++ arkade.obsinfo ++++++
--- /var/tmp/diff_new_pack.y2k61b/_old  2026-06-18 18:44:57.891909622 +0200
+++ /var/tmp/diff_new_pack.y2k61b/_new  2026-06-18 18:44:57.891909622 +0200
@@ -1,5 +1,5 @@
 name: arkade
-version: 0.11.99
-mtime: 1779453803
-commit: 294d1a4321b6304875b45e1fb78a3437833c722a
+version: 0.11.100
+mtime: 1781629579
+commit: db87cbea02bb931f4277719629597a627c4d4b5e
 

++++++ vendor.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/go.mod new/go.mod
--- old/go.mod  2026-06-09 10:58:58.451929039 +0200
+++ new/go.mod  2026-06-18 11:08:56.831281883 +0200
@@ -14,8 +14,8 @@
        github.com/pkg/errors v0.9.1
        github.com/sethvargo/go-password v0.3.1
        github.com/spf13/cobra v1.10.2
-       golang.org/x/crypto v0.52.0
-       golang.org/x/mod v0.36.0
+       golang.org/x/crypto v0.53.0
+       golang.org/x/mod v0.37.0
        gopkg.in/yaml.v3 v3.0.1
 )
 
@@ -26,22 +26,21 @@
 
 require (
        github.com/cespare/xxhash/v2 v2.3.0 // indirect
-       github.com/fsnotify/fsnotify v1.10.1 // indirect
        github.com/goccy/go-json v0.10.6 // indirect
        gotest.tools/v3 v3.5.2 // indirect
 )
 
 require (
-       github.com/alexellis/fstail v0.0.0-20250917111842-2ab578ec2afb
+       github.com/alexellis/fstail v0.0.0-20260301203901-2641eb3ce330
        github.com/clipperhouse/displaywidth v0.11.0 // indirect
        github.com/clipperhouse/uax29/v2 v2.7.0 // indirect
-       github.com/docker/cli v29.5.2+incompatible // indirect
-       github.com/docker/docker-credential-helpers v0.9.7 // indirect
+       github.com/docker/cli v29.5.3+incompatible // indirect
+       github.com/docker/docker-credential-helpers v0.9.8 // indirect
        github.com/fatih/color v1.19.0 // indirect
        github.com/inconshreveable/mousetrap v1.1.0 // indirect
        github.com/klauspost/compress v1.18.6 // indirect
-       github.com/mattn/go-colorable v0.1.14 // indirect
-       github.com/mattn/go-runewidth v0.0.23 // indirect
+       github.com/mattn/go-colorable v0.1.15 // indirect
+       github.com/mattn/go-runewidth v0.0.24 // indirect
        github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect
        github.com/olekukonko/errors v1.3.0 // indirect
        github.com/olekukonko/ll v0.1.8 // indirect
@@ -50,9 +49,7 @@
        github.com/otiai10/mint v1.6.3 // indirect
        github.com/sirupsen/logrus v1.9.4 // indirect
        github.com/spf13/pflag v1.0.10 // indirect
-       golang.org/x/sync v0.20.0 // indirect
-       golang.org/x/sys v0.45.0 // indirect
+       golang.org/x/sync v0.21.0 // indirect
+       golang.org/x/sys v0.46.0 // indirect
        gopkg.in/fsnotify.v1 v1.4.7 // indirect
 )
-
-replace github.com/alexellis/fstail => ../fstail
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/go.sum new/go.sum
--- old/go.sum  2026-06-09 10:58:58.450929034 +0200
+++ new/go.sum  2026-06-18 11:09:24.734367986 +0200
@@ -2,6 +2,8 @@
 github.com/Masterminds/semver v1.5.0/go.mod 
h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y=
 github.com/Masterminds/semver/v3 v3.5.0 
h1:kQceYJfbupGfZOKZQg0kou0DgAKhzDg2NZPAwZ/2OOE=
 github.com/Masterminds/semver/v3 v3.5.0/go.mod 
h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
+github.com/alexellis/fstail v0.0.0-20260301203901-2641eb3ce330 
h1:M7Yh2fMnNuNWFTeQ0clLP7jdIJNLwVTgEDvWPtN8mL0=
+github.com/alexellis/fstail v0.0.0-20260301203901-2641eb3ce330/go.mod 
h1:EeXLSmvkiUDzy3ut257lc0f+uoehgAU9NXsC+/i1ySg=
 github.com/alexellis/gha-bump v0.0.6 
h1:s4isGq/UwLdvd6wDLJBcYrynY5KgQme4nH8spxQ/82o=
 github.com/alexellis/gha-bump v0.0.6/go.mod 
h1:DoVZXvmzy/SjVJcIkdPQEgUFGJc/aZEXM4Rmi//HpBM=
 github.com/alexellis/go-execute/v2 v2.2.1 
h1:4Ye3jiCKQarstODOEmqDSRCqxMHLkC92Bhse743RdOI=
@@ -15,16 +17,16 @@
 github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod 
h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g=
 github.com/davecgh/go-spew v1.1.1 
h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
 github.com/davecgh/go-spew v1.1.1/go.mod 
h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/docker/cli v29.5.2+incompatible 
h1:ubykJ1Y8LmNRGJ2BuMQ0kHOt/RO1YzGNswqWMJgivuQ=
-github.com/docker/cli v29.5.2+incompatible/go.mod 
h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
-github.com/docker/docker-credential-helpers v0.9.7 
h1:jaPIxEIDz5bQeghNAdzz0ETwMMnM4vzjZlxz3pWP4JA=
-github.com/docker/docker-credential-helpers v0.9.7/go.mod 
h1:v1S+hepowrQXITkEfw6o4+BMbGot02wiKpzWhGUZK6c=
+github.com/docker/cli v29.5.3+incompatible 
h1:nbEFfz774vBwQ5KRYv7c/AghjReqnGISvrRhzjV0evs=
+github.com/docker/cli v29.5.3+incompatible/go.mod 
h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8=
+github.com/docker/docker-credential-helpers v0.9.8 
h1:bIREROb7So6PRlq6KTtdS9MPEjC29OQRkFNlvK2OX8Q=
+github.com/docker/docker-credential-helpers v0.9.8/go.mod 
h1:v1S+hepowrQXITkEfw6o4+BMbGot02wiKpzWhGUZK6c=
 github.com/docker/go-units v0.5.0 
h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4=
 github.com/docker/go-units v0.5.0/go.mod 
h1:fgPhTUdO+D/Jk86RDLlptpiXQzgHJF7gydDDbaIK4Dk=
 github.com/fatih/color v1.19.0 h1:Zp3PiM21/9Ld6FzSKyL5c/BULoe/ONr9KlbYVOfG8+w=
 github.com/fatih/color v1.19.0/go.mod 
h1:zNk67I0ZUT1bEGsSGyCZYZNrHuTkJJB+r6Q9VuMi0LE=
-github.com/fsnotify/fsnotify v1.10.1 
h1:b0/UzAf9yR5rhf3RPm9gf3ehBPpf0oZKIjtpKrx59Ho=
-github.com/fsnotify/fsnotify v1.10.1/go.mod 
h1:TLheqan6HD6GBK6PrDWyDPBaEV8LspOxvPSjC+bVfgo=
+github.com/fsnotify/fsnotify v1.9.0 
h1:2Ml+OJNzbYCTzsxtv8vKSFD9PbJjmhYF14k/jKC7S9k=
+github.com/fsnotify/fsnotify v1.9.0/go.mod 
h1:8jBTzvmWwFyi3Pb8djgCCO5IBqzKJ/Jwo8TRcHyHii0=
 github.com/goccy/go-json v0.10.6 
h1:p8HrPJzOakx/mn/bQtjgNjdTcN+/S6FcG2CTtQOrHVU=
 github.com/goccy/go-json v0.10.6/go.mod 
h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
 github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
@@ -35,12 +37,12 @@
 github.com/inconshreveable/mousetrap v1.1.0/go.mod 
h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
 github.com/klauspost/compress v1.18.6 
h1:2jupLlAwFm95+YDR+NwD2MEfFO9d4z4Prjl1XXDjuao=
 github.com/klauspost/compress v1.18.6/go.mod 
h1:cwPg85FWrGar70rWktvGQj8/hthj3wpl0PGDogxkrSQ=
-github.com/mattn/go-colorable v0.1.14 
h1:9A9LHSqF/7dyVVX6g0U9cwm9pG3kP9gSzcuIPHPsaIE=
-github.com/mattn/go-colorable v0.1.14/go.mod 
h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
+github.com/mattn/go-colorable v0.1.15 
h1:+u9SLTRGnXv73cEsnsmoZBom+dMU88B2M0aDcWy0/jY=
+github.com/mattn/go-colorable v0.1.15/go.mod 
h1:6LmQG8QLFO4G5z1gPvYEzlUgJ2wF+stgPZH1UqBm1s8=
 github.com/mattn/go-isatty v0.0.22 
h1:j8l17JJ9i6VGPUFUYoTUKPSgKe/83EYU2zBC7YNKMw4=
 github.com/mattn/go-isatty v0.0.22/go.mod 
h1:ZXfXG4SQHsB/w3ZeOYbR0PrPwLy+n6xiMrJlRFqopa4=
-github.com/mattn/go-runewidth v0.0.23 
h1:7ykA0T0jkPpzSvMS5i9uoNn2Xy3R383f9HDx3RybWcw=
-github.com/mattn/go-runewidth v0.0.23/go.mod 
h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
+github.com/mattn/go-runewidth v0.0.24 
h1:cpokDiIn0MGnhdHwuWnJBITySJ20QyNGnY2kR/ay2DU=
+github.com/mattn/go-runewidth v0.0.24/go.mod 
h1:XBkDxAl56ILZc9knddidhrOlY5R/pDhgLpndooCuJAs=
 github.com/morikuni/aec v1.1.0 h1:vBBl0pUnvi/Je71dsRrhMBtreIqNMYErSAbEeb8jrXQ=
 github.com/morikuni/aec v1.1.0/go.mod 
h1:xDRgiq/iw5l+zkao76YTKzKttOp2cwPEne25HDkJnBw=
 github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 
h1:zrbMGy9YXpIeTnGj4EljqMiZsIcE09mmF8XsD5AYOJc=
@@ -76,14 +78,14 @@
 github.com/stretchr/testify v1.10.0 
h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
 github.com/stretchr/testify v1.10.0/go.mod 
h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
 go.yaml.in/yaml/v3 v3.0.4/go.mod 
h1:DhzuOOF2ATzADvBadXxruRBLzYTpT36CKvDb3+aBEFg=
-golang.org/x/crypto v0.52.0 h1:RMs7fP2rXdep0CftQlK8Uf+kibLm7qkCcradZWYz988=
-golang.org/x/crypto v0.52.0/go.mod 
h1:1QgfPxDqh0T2M/elOJtp9RvuR95kVjir0e6/BvEmGbc=
-golang.org/x/mod v0.36.0 h1:JJjpVx6myfUsUdAzZuOSTTmRE0PfZeNWzzvKrP7amb4=
-golang.org/x/mod v0.36.0/go.mod h1:moc6ELqsWcOw5Ef3xVprK5ul/MvtVvkIXLziUOICjUQ=
-golang.org/x/sync v0.20.0 h1:e0PTpb7pjO8GAtTs2dQ6jYa5BWYlMuX047Dco/pItO4=
-golang.org/x/sync v0.20.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
-golang.org/x/sys v0.45.0 h1:dO4czNzziLiiXplLQgBCEpCvXQ3dnkn0SdaZSYdQ+FY=
-golang.org/x/sys v0.45.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
+golang.org/x/crypto v0.53.0 h1:QZ4Muo8THX6CizN2vPPd5fBGHyogrdK9fG4wLPFUsto=
+golang.org/x/crypto v0.53.0/go.mod 
h1:DNLU434OwVakk9PzuwV8w62mAJpRJL3vsgcfp4Qnsio=
+golang.org/x/mod v0.37.0 h1:vF1DjpVEshcIqoEaauuHebaLk1O1forxjxBaVn884JQ=
+golang.org/x/mod v0.37.0/go.mod h1:m8S8VeM9r4dzDwjrKO0a1sZP3YjeMamRRlD+fmR2Q/0=
+golang.org/x/sync v0.21.0 h1:HLII4xRRTtCRkxYp4HNFF0Js/Og6q2i++KXbg0gHCwM=
+golang.org/x/sync v0.21.0/go.mod 
h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
+golang.org/x/sys v0.46.0 h1:noSf2Fq6F8DBgS+LysIkx7rIExoNHJsxOAtPp4rthXw=
+golang.org/x/sys v0.46.0/go.mod h1:4GL1E5IUh+htKOUEOaiffhrAeqysfVGipDYzABqnCmw=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 
h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod 
h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/fsnotify.v1 v1.4.7 h1:xOHLXZwVvI9hhs+cLKq5+I5onOuwQLhQwiu63xxlHs4=
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/github.com/mattn/go-colorable/colorable_windows.go 
new/vendor/github.com/mattn/go-colorable/colorable_windows.go
--- old/vendor/github.com/mattn/go-colorable/colorable_windows.go       
2026-06-09 10:58:59.956936736 +0200
+++ new/vendor/github.com/mattn/go-colorable/colorable_windows.go       
2026-06-18 11:09:28.181378623 +0200
@@ -5,13 +5,13 @@
 
 import (
        "bytes"
+       syscall "golang.org/x/sys/windows"
        "io"
        "math"
        "os"
        "strconv"
        "strings"
        "sync"
-       syscall "golang.org/x/sys/windows"
        "unsafe"
 
        "github.com/mattn/go-isatty"
@@ -93,6 +93,7 @@
        handle    syscall.Handle
        althandle syscall.Handle
        oldattr   word
+       curattr   word
        oldpos    coord
        rest      bytes.Buffer
        mutex     sync.Mutex
@@ -112,7 +113,7 @@
                var csbi consoleScreenBufferInfo
                handle := syscall.Handle(file.Fd())
                procGetConsoleScreenBufferInfo.Call(uintptr(handle), 
uintptr(unsafe.Pointer(&csbi)))
-               return &writer{out: file, handle: handle, oldattr: 
csbi.attributes, oldpos: coord{0, 0}}
+               return &writer{out: file, handle: handle, oldattr: 
csbi.attributes, curattr: csbi.attributes, oldpos: coord{0, 0}}
        }
        return file
 }
@@ -438,7 +439,11 @@
        w.mutex.Lock()
        defer w.mutex.Unlock()
        var csbi consoleScreenBufferInfo
-       procGetConsoleScreenBufferInfo.Call(uintptr(w.handle), 
uintptr(unsafe.Pointer(&csbi)))
+
+       if w.rest.Len() == 0 && bytes.IndexByte(data, 0x1b) == -1 {
+               w.out.Write(data)
+               return len(data), nil
+       }
 
        handle := w.handle
 
@@ -517,7 +522,7 @@
                                w.rest.Reset()
                                break
                        }
-                       buf.Write([]byte(string(c)))
+                       buf.WriteByte(c)
                }
                if m == 0 {
                        break loop
@@ -678,11 +683,11 @@
                        procFillConsoleOutputCharacter.Call(uintptr(handle), 
uintptr(' '), uintptr(n), *(*uintptr)(unsafe.Pointer(&cursor)), 
uintptr(unsafe.Pointer(&written)))
                        procFillConsoleOutputAttribute.Call(uintptr(handle), 
uintptr(csbi.attributes), uintptr(n), *(*uintptr)(unsafe.Pointer(&cursor)), 
uintptr(unsafe.Pointer(&written)))
                case 'm':
-                       procGetConsoleScreenBufferInfo.Call(uintptr(handle), 
uintptr(unsafe.Pointer(&csbi)))
-                       attr := csbi.attributes
+                       attr := w.curattr
                        cs := buf.String()
                        if cs == "" {
                                
procSetConsoleTextAttribute.Call(uintptr(handle), uintptr(w.oldattr))
+                               w.curattr = w.oldattr
                                continue
                        }
                        token := strings.Split(cs, ";")
@@ -814,9 +819,12 @@
                                                        attr |= backgroundBlue
                                                }
                                        }
-                                       
procSetConsoleTextAttribute.Call(uintptr(handle), uintptr(attr))
                                }
                        }
+                       if attr != w.curattr {
+                               
procSetConsoleTextAttribute.Call(uintptr(handle), uintptr(attr))
+                               w.curattr = attr
+                       }
                case 'h':
                        var ci consoleCursorInfo
                        cs := buf.String()
@@ -834,6 +842,8 @@
                                        w.althandle = syscall.Handle(h)
                                        if w.althandle != 0 {
                                                handle = w.althandle
+                                               
procGetConsoleScreenBufferInfo.Call(uintptr(handle), 
uintptr(unsafe.Pointer(&csbi)))
+                                               w.curattr = csbi.attributes
                                        }
                                }
                        }
@@ -853,6 +863,8 @@
                                        syscall.CloseHandle(w.althandle)
                                        w.althandle = 0
                                        handle = w.handle
+                                       
procGetConsoleScreenBufferInfo.Call(uintptr(handle), 
uintptr(unsafe.Pointer(&csbi)))
+                                       w.curattr = csbi.attributes
                                }
                        }
                case 's':
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/mattn/go-runewidth/SECURITY.md 
new/vendor/github.com/mattn/go-runewidth/SECURITY.md
--- old/vendor/github.com/mattn/go-runewidth/SECURITY.md        1970-01-01 
01:00:00.000000000 +0100
+++ new/vendor/github.com/mattn/go-runewidth/SECURITY.md        2026-06-18 
11:09:28.183479505 +0200
@@ -0,0 +1,25 @@
+# Security Policy
+
+## Supported Versions
+
+The following versions of go-runewidth are currently supported with
+security updates.
+
+| Version  | Supported          |
+| -------- | ------------------ |
+| 0.0.23   | :white_check_mark: |
+| < 0.0.23 | :x:                |
+
+## Reporting a Vulnerability
+
+If you discover a security vulnerability in go-runewidth, please report it
+privately via GitHub's "Report a vulnerability" feature on the Security tab
+of the repository (https://github.com/mattn/go-runewidth/security), or by
+emailing the maintainer at [email protected].
+
+Please include a description of the issue, reproduction steps, and the
+affected version. You can expect an initial response within one week. If
+the vulnerability is accepted, a fix will be prepared and a new release
+will be published; you will be credited in the release notes unless you
+request otherwise. If the report is declined, you will receive an
+explanation of the reasoning.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/github.com/mattn/go-runewidth/runewidth.go 
new/vendor/github.com/mattn/go-runewidth/runewidth.go
--- old/vendor/github.com/mattn/go-runewidth/runewidth.go       2026-06-09 
10:58:59.959727109 +0200
+++ new/vendor/github.com/mattn/go-runewidth/runewidth.go       2026-06-18 
11:09:28.183479505 +0200
@@ -2,6 +2,7 @@
 
 import (
        "os"
+       "sort"
        "strings"
        "unicode/utf8"
 
@@ -25,13 +26,19 @@
 )
 
 var (
-       zerowidth table // combining + nonprint merged for faster zero-width 
lookup
-       widewidth table // ambiguous + doublewidth merged for EA path
+       zerowidth       table // combining + nonprint merged for faster 
zero-width lookup
+       widewidth       table // ambiguous + doublewidth merged for EA path
+       eastAsianWidth  widthTable
+       eastAsianWidth0 [0x300]byte
 )
 
 func init() {
        zerowidth = mergeIntervals(combining, nonprint)
        widewidth = mergeIntervals(ambiguous, doublewidth)
+       eastAsianWidth = makeWidthTable(zerowidth, widewidth)
+       for r := range eastAsianWidth0 {
+               eastAsianWidth0[r] = byte(runeWidthEastAsian(rune(r)))
+       }
        handleEnv()
 }
 
@@ -90,6 +97,14 @@
 
 type table []interval
 
+type widthInterval struct {
+       first rune
+       last  rune
+       width byte
+}
+
+type widthTable []widthInterval
+
 func inTable(r rune, t table) bool {
        if r < t[0].first {
                return false
@@ -116,6 +131,71 @@
        return false
 }
 
+func makeWidthTable(zero, two table) widthTable {
+       wt := make(widthTable, 0, len(zero)+len(two))
+       zi := 0
+       for _, iv := range two {
+               start := iv.first
+               for zi < len(zero) && zero[zi].last < start {
+                       zi++
+               }
+               for i := zi; i < len(zero) && zero[i].first <= iv.last; i++ {
+                       if start < zero[i].first {
+                               wt = append(wt, widthInterval{start, 
zero[i].first - 1, 2})
+                       }
+                       if start <= zero[i].last {
+                               start = zero[i].last + 1
+                       }
+                       if start > iv.last {
+                               break
+                       }
+               }
+               if start <= iv.last {
+                       wt = append(wt, widthInterval{start, iv.last, 2})
+               }
+       }
+       for _, iv := range zero {
+               wt = append(wt, widthInterval{iv.first, iv.last, 0})
+       }
+       sort.Slice(wt, func(i, j int) bool {
+               return wt[i].first < wt[j].first
+       })
+       return wt
+}
+
+func inWidthTable(r rune, t widthTable) (int, bool) {
+       if r < t[0].first {
+               return 0, false
+       }
+       if r > t[len(t)-1].last {
+               return 0, false
+       }
+
+       bot := 0
+       top := len(t) - 1
+       for top >= bot {
+               mid := (bot + top) >> 1
+
+               switch {
+               case t[mid].last < r:
+                       bot = mid + 1
+               case t[mid].first > r:
+                       top = mid - 1
+               default:
+                       return int(t[mid].width), true
+               }
+       }
+
+       return 0, false
+}
+
+func runeWidthEastAsian(r rune) int {
+       if w, ok := inWidthTable(r, eastAsianWidth); ok {
+               return w
+       }
+       return 1
+}
+
 var private = table{
        {0x00E000, 0x00F8FF}, {0x0F0000, 0x0FFFFD}, {0x100000, 0x10FFFD},
 }
@@ -153,34 +233,35 @@
        }
        // optimized version, verified by TestRuneWidthChecksums()
        if !c.EastAsianWidth {
-               switch {
-               case r < 0x20:
-                       return 0
-               case (r >= 0x7F && r <= 0x9F) || r == 0xAD: // nonprint
+               if r < 0x20 {
                        return 0
-               case r < 0x300:
-                       return 1
-               case inTable(r, zerowidth):
+               }
+               if (r >= 0x7F && r <= 0x9F) || r == 0xAD { // nonprint
                        return 0
-               case inTable(r, doublewidth):
-                       return 2
-               default:
+               }
+               if r < 0x300 {
                        return 1
                }
-       } else {
                switch {
                case inTable(r, zerowidth):
                        return 0
-               case inTable(r, narrow):
-                       return 1
-               case inTable(r, widewidth):
-                       return 2
-               case !c.StrictEmojiNeutral && inTable(r, emoji):
+               case inTable(r, doublewidth):
                        return 2
                default:
                        return 1
                }
        }
+
+       if r < 0x300 {
+               return int(eastAsianWidth0[r])
+       }
+       if w, ok := inWidthTable(r, eastAsianWidth); ok {
+               return w
+       }
+       if !c.StrictEmojiNeutral && inTable(r, emoji) {
+               return 2
+       }
+       return 1
 }
 
 // CreateLUT will create an in-memory lookup table of 557056 bytes for faster 
operation.
@@ -206,6 +287,13 @@
 
 // StringWidth return width as you can see
 func (c *Condition) StringWidth(s string) (width int) {
+       if len(s) == 1 {
+               b := s[0]
+               if b < 0x20 || b == 0x7F {
+                       return 0
+               }
+               return 1
+       }
        if len(s) > 0 && len(s) <= utf8.UTFMax {
                r, size := utf8.DecodeRuneInString(s)
                if size == len(s) {
@@ -213,15 +301,19 @@
                }
        }
        // ASCII fast path: no grapheme clustering needed for pure ASCII
-       if isAllASCII(s) {
-               for i := 0; i < len(s); i++ {
-                       b := s[i]
-                       if b >= 0x20 && b != 0x7F {
-                               width++
-                       }
+       for i := 0; i < len(s); i++ {
+               b := s[i]
+               if b >= 0x80 {
+                       goto graphemes
+               }
+               if b >= 0x20 && b != 0x7F {
+                       width++
                }
-               return
        }
+       return
+
+graphemes:
+       width = 0
        g := graphemes.FromString(s)
        for g.Next() {
                var chWidth int
@@ -236,15 +328,6 @@
        return
 }
 
-func isAllASCII(s string) bool {
-       for i := 0; i < len(s); i++ {
-               if s[i] >= 0x80 {
-                       return false
-               }
-       }
-       return true
-}
-
 // Truncate return string truncated with w cells
 func (c *Condition) Truncate(s string, w int, tail string) string {
        if c.StringWidth(s) <= w {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sync/errgroup/errgroup.go 
new/vendor/golang.org/x/sync/errgroup/errgroup.go
--- old/vendor/golang.org/x/sync/errgroup/errgroup.go   2026-06-09 
10:58:59.984353035 +0200
+++ new/vendor/golang.org/x/sync/errgroup/errgroup.go   2026-06-18 
11:09:28.203378691 +0200
@@ -109,7 +109,7 @@
        if g.sem != nil {
                select {
                case g.sem <- token{}:
-                       // Note: this allows barging iff channels in general 
allow barging.
+                       // Note: this allows barging if and only if channels in 
general allow barging.
                default:
                        return false
                }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sync/semaphore/semaphore.go 
new/vendor/golang.org/x/sync/semaphore/semaphore.go
--- old/vendor/golang.org/x/sync/semaphore/semaphore.go 2026-06-09 
10:58:59.984987803 +0200
+++ new/vendor/golang.org/x/sync/semaphore/semaphore.go 2026-06-18 
11:09:28.204462729 +0200
@@ -83,7 +83,7 @@
                default:
                        isFront := s.waiters.Front() == elem
                        s.waiters.Remove(elem)
-                       // If we're at the front and there're extra tokens 
left, notify other waiters.
+                       // If we're at the front and there are extra tokens 
left, notify other waiters.
                        if isFront && s.size > s.cur {
                                s.notifyWaiters()
                        }
@@ -139,15 +139,15 @@
 
                w := next.Value.(waiter)
                if s.size-s.cur < w.n {
-                       // Not enough tokens for the next waiter.  We could 
keep going (to try to
+                       // Not enough tokens for the next waiter. We could keep 
going (to try to
                        // find a waiter with a smaller request), but under 
load that could cause
                        // starvation for large requests; instead, we leave all 
remaining waiters
                        // blocked.
                        //
                        // Consider a semaphore used as a read-write lock, with 
N tokens, N
-                       // readers, and one writer.  Each reader can Acquire(1) 
to obtain a read
-                       // lock.  The writer can Acquire(N) to obtain a write 
lock, excluding all
-                       // of the readers.  If we allow the readers to jump 
ahead in the queue,
+                       // readers, and one writer. Each reader can Acquire(1) 
to obtain a read
+                       // lock. The writer can Acquire(N) to obtain a write 
lock, excluding all
+                       // of the readers. If we allow the readers to jump 
ahead in the queue,
                        // the writer will starve — there is always one token 
available for every
                        // reader.
                        break
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux.go    2026-06-09 
10:58:59.997936945 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux.go    2026-06-18 
11:09:28.217378734 +0200
@@ -6397,3 +6397,79 @@
        MPOL_PREFERRED_MANY      = 0x5
        MPOL_WEIGHTED_INTERLEAVE = 0x6
 )
+
+const (
+       GPIO_V2_GET_LINEINFO_IOCTL       = 0xc100b405
+       GPIO_V2_GET_LINE_IOCTL           = 0xc250b407
+       GPIO_V2_LINE_GET_VALUES_IOCTL    = 0xc010b40e
+       GPIO_V2_LINE_SET_VALUES_IOCTL    = 0xc010b40f
+       GPIO_V2_GET_LINEINFO_WATCH_IOCTL = 0xc100b406
+       GPIO_GET_LINEINFO_UNWATCH_IOCTL  = 0xc004b40c
+)
+const (
+       GPIO_V2_LINE_ATTR_ID_FLAGS         = 0x1
+       GPIO_V2_LINE_ATTR_ID_OUTPUT_VALUES = 0x2
+       GPIO_V2_LINE_ATTR_ID_DEBOUNCE      = 0x3
+       GPIO_V2_LINE_CHANGED_REQUESTED     = 0x1
+       GPIO_V2_LINE_CHANGED_RELEASED      = 0x2
+       GPIO_V2_LINE_CHANGED_CONFIG        = 0x3
+       GPIO_V2_LINE_EVENT_RISING_EDGE     = 0x1
+       GPIO_V2_LINE_EVENT_FALLING_EDGE    = 0x2
+)
+
+type GPIOChipInfo struct {
+       Name  [32]byte
+       Label [32]byte
+       Lines uint32
+}
+type GPIOV2LineValues struct {
+       Bits uint64
+       Mask uint64
+}
+type GPIOV2LineAttribute struct {
+       Id    uint32
+       _     uint32
+       Flags uint64
+}
+type GPIOV2LineConfigAttribute struct {
+       Attr GPIOV2LineAttribute
+       Mask uint64
+}
+type GPIOV2LineConfig struct {
+       Flags     uint64
+       Num_attrs uint32
+       _         [5]uint32
+       Attrs     [10]GPIOV2LineConfigAttribute
+}
+type GPIOV2LineRequest struct {
+       Offsets           [64]uint32
+       Consumer          [32]byte
+       Config            GPIOV2LineConfig
+       Num_lines         uint32
+       Event_buffer_size uint32
+       _                 [5]uint32
+       Fd                int32
+}
+type GPIOV2LineInfo struct {
+       Name      [32]byte
+       Consumer  [32]byte
+       Offset    uint32
+       Num_attrs uint32
+       Flags     uint64
+       Attrs     [10]GPIOV2LineAttribute
+       _         [4]uint32
+}
+type GPIOV2LineInfoChanged struct {
+       Info         GPIOV2LineInfo
+       Timestamp_ns uint64
+       Event_type   uint32
+       _            [5]uint32
+}
+type GPIOV2LineEvent struct {
+       Timestamp_ns uint64
+       Id           uint32
+       Offset       uint32
+       Seqno        uint32
+       Line_seqno   uint32
+       _            [6]uint32
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux_386.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_386.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_386.go        2026-06-09 
10:58:59.997936945 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_386.go        2026-06-18 
11:09:28.217378734 +0200
@@ -711,3 +711,7 @@
        _          uint32
        _          uint32
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go      2026-06-09 
10:58:59.997936945 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_amd64.go      2026-06-18 
11:09:28.217378734 +0200
@@ -725,3 +725,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go        2026-06-09 
10:58:59.997936945 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_arm.go        2026-06-18 
11:09:28.218378737 +0200
@@ -705,3 +705,7 @@
        _          uint32
        _          uint32
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go      2026-06-09 
10:58:59.997936945 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_arm64.go      2026-06-18 
11:09:28.218378737 +0200
@@ -704,3 +704,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go    2026-06-09 
10:58:59.997936945 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_loong64.go    2026-06-18 
11:09:28.218378737 +0200
@@ -705,3 +705,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go       2026-06-09 
10:58:59.998936950 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_mips.go       2026-06-18 
11:09:28.218378737 +0200
@@ -710,3 +710,7 @@
        Ctime_high uint16
        _          uint16
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go     2026-06-09 
10:58:59.998936950 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_mips64.go     2026-06-18 
11:09:28.218378737 +0200
@@ -707,3 +707,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go   2026-06-09 
10:58:59.998936950 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_mips64le.go   2026-06-18 
11:09:28.218378737 +0200
@@ -707,3 +707,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go     2026-06-09 
10:58:59.998936950 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_mipsle.go     2026-06-18 
11:09:28.218378737 +0200
@@ -710,3 +710,7 @@
        Ctime_high uint16
        _          uint16
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go        2026-06-09 
10:58:59.998936950 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_ppc.go        2026-06-18 
11:09:28.218378737 +0200
@@ -718,3 +718,7 @@
        _          uint32
        _          [4]byte
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go      2026-06-09 
10:58:59.998936950 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64.go      2026-06-18 
11:09:28.218378737 +0200
@@ -713,3 +713,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go    2026-06-09 
10:58:59.998936950 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_ppc64le.go    2026-06-18 
11:09:28.218378737 +0200
@@ -713,3 +713,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go    2026-06-09 
10:58:59.998936950 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_riscv64.go    2026-06-18 
11:09:28.218378737 +0200
@@ -792,3 +792,7 @@
        RISCV_HWPROBE_KEY_ZICBOZ_BLOCK_SIZE  = 0x6
        RISCV_HWPROBE_WHICH_CPUS             = 0x1
 )
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go      2026-06-09 
10:58:59.998936950 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_s390x.go      2026-06-18 
11:09:28.218378737 +0200
@@ -727,3 +727,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x8044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go 
new/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go
--- old/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go    2026-06-09 
10:58:59.998936950 +0200
+++ new/vendor/golang.org/x/sys/unix/ztypes_linux_sparc64.go    2026-06-18 
11:09:28.218378737 +0200
@@ -708,3 +708,7 @@
        _      uint64
        _      uint64
 }
+
+const (
+       GPIO_GET_CHIPINFO_IOCTL = 0x4044b401
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vendor/modules.txt new/vendor/modules.txt
--- old/vendor/modules.txt      2026-06-09 10:59:00.015937037 +0200
+++ new/vendor/modules.txt      2026-06-18 11:09:28.232378780 +0200
@@ -4,7 +4,7 @@
 # github.com/Masterminds/semver/v3 v3.5.0
 ## explicit; go 1.21
 github.com/Masterminds/semver/v3
-# github.com/alexellis/fstail v0.0.0-20250917111842-2ab578ec2afb => ../fstail
+# github.com/alexellis/fstail v0.0.0-20260301203901-2641eb3ce330
 ## explicit; go 1.24.0
 github.com/alexellis/fstail/pkg/fstail
 # github.com/alexellis/gha-bump v0.0.6
@@ -22,14 +22,14 @@
 # github.com/clipperhouse/uax29/v2 v2.7.0
 ## explicit; go 1.18
 github.com/clipperhouse/uax29/v2/graphemes
-# github.com/docker/cli v29.5.2+incompatible
+# github.com/docker/cli v29.5.3+incompatible
 ## explicit
 github.com/docker/cli/cli/config
 github.com/docker/cli/cli/config/configfile
 github.com/docker/cli/cli/config/credentials
 github.com/docker/cli/cli/config/memorystore
 github.com/docker/cli/cli/config/types
-# github.com/docker/docker-credential-helpers v0.9.7
+# github.com/docker/docker-credential-helpers v0.9.8
 ## explicit; go 1.21
 github.com/docker/docker-credential-helpers/client
 github.com/docker/docker-credential-helpers/credentials
@@ -39,8 +39,6 @@
 # github.com/fatih/color v1.19.0
 ## explicit; go 1.25.0
 github.com/fatih/color
-# github.com/fsnotify/fsnotify v1.10.1
-## explicit; go 1.23
 # github.com/goccy/go-json v0.10.6
 ## explicit; go 1.19
 github.com/goccy/go-json
@@ -95,13 +93,13 @@
 github.com/klauspost/compress/internal/snapref
 github.com/klauspost/compress/zstd
 github.com/klauspost/compress/zstd/internal/xxhash
-# github.com/mattn/go-colorable v0.1.14
+# github.com/mattn/go-colorable v0.1.15
 ## explicit; go 1.18
 github.com/mattn/go-colorable
 # github.com/mattn/go-isatty v0.0.22
 ## explicit; go 1.21
 github.com/mattn/go-isatty
-# github.com/mattn/go-runewidth v0.0.23
+# github.com/mattn/go-runewidth v0.0.24
 ## explicit; go 1.20
 github.com/mattn/go-runewidth
 # github.com/morikuni/aec v1.1.0
@@ -155,18 +153,18 @@
 # github.com/spf13/pflag v1.0.10
 ## explicit; go 1.12
 github.com/spf13/pflag
-# golang.org/x/crypto v0.52.0
+# golang.org/x/crypto v0.53.0
 ## explicit; go 1.25.0
 golang.org/x/crypto/bcrypt
 golang.org/x/crypto/blowfish
-# golang.org/x/mod v0.36.0
+# golang.org/x/mod v0.37.0
 ## explicit; go 1.25.0
 golang.org/x/mod/semver
-# golang.org/x/sync v0.20.0
+# golang.org/x/sync v0.21.0
 ## explicit; go 1.25.0
 golang.org/x/sync/errgroup
 golang.org/x/sync/semaphore
-# golang.org/x/sys v0.45.0
+# golang.org/x/sys v0.46.0
 ## explicit; go 1.25.0
 golang.org/x/sys/unix
 golang.org/x/sys/windows
@@ -178,4 +176,3 @@
 gopkg.in/yaml.v3
 # gotest.tools/v3 v3.5.2
 ## explicit; go 1.17
-# github.com/alexellis/fstail => ../fstail

++++++ vendor_go_modules.sh ++++++
--- /var/tmp/diff_new_pack.y2k61b/_old  2026-06-18 18:44:59.071958930 +0200
+++ /var/tmp/diff_new_pack.y2k61b/_new  2026-06-18 18:44:59.079959265 +0200
@@ -39,15 +39,9 @@
 ls -lah
 
 echo "##########"
-echo "Cloning gha-bump and fstail"
-FSTAIL_COMMIT="$(awk -F '-' '/^\sgithub.com\/alexellis\/fstail/ {print $NF}' 
go.mod)"
+echo "Cloning gha-bump"
 GHABUMP_COMMIT="$(awk '/^require github.com\/alexellis\/gha-bump/ {print $NF}' 
go.mod)"
-
 git clone https://github.com/alexellis/gha-bump ../gha-bump || exit 25
-git clone https://github.com/alexellis/fstail ../fstail || exit 27
-cd ../fstail || exit 28
-git checkout "${FSTAIL_COMMIT:0:8}" . || exit 29
-cd "${tmpdir}/${BASENAME}" || exit 30
 
 echo "##########"
 echo "Vendoring the go modules"

Reply via email to