Add jq as a dotslash script
Managed via dotslash instead of Homebrew so it can be version-pinned
and updated alongside pinch in `rake update_dotslash`.
Assisted-by: Claude Opus 4.6 via pi
diff --git a/Rakefile b/Rakefile
index 88183f35..91401d3c 100644
--- a/Rakefile
+++ b/Rakefile
@@ -47,6 +47,37 @@ end
desc "Update dotslash files from their GitHub releases"
task :update_dotslash do
sh "gh release download --repo kejadlen/pinch --pattern pinch --output bin/pinch --clobber"
+
+ require "json"
+ require "open3"
+
+ # Update jq dotslash file with latest release
+ release_json, = Open3.capture2("gh", "release", "view", "--repo", "jqlang/jq", "--json", "tagName,assets")
+ release = JSON.parse(release_json)
+ tag = release["tagName"]
+ asset = release["assets"].find { |a| a["name"] == "jq-macos-arm64" }
+
+ url = "https://github.com/jqlang/jq/releases/download/#{tag}/jq-macos-arm64"
+ digest, = Open3.capture2("dotslash", "--", "create-url-entry", url)
+ entry = JSON.parse(digest)
+
+ dotslash = {
+ name: "jq",
+ platforms: {
+ "macos-aarch64" => {
+ size: entry["size"],
+ hash: "blake3",
+ digest: entry["digest"],
+ path: "jq",
+ providers: [
+ { url: url },
+ { type: "github-release", repo: "https://github.com/jqlang/jq", tag: tag, name: "jq-macos-arm64" },
+ ],
+ },
+ },
+ }
+
+ File.write("bin/jq", "#!/usr/bin/env dotslash\n\n#{JSON.pretty_generate(dotslash)}\n")
end
desc "Upgrade neovim"
diff --git a/bin/jq b/bin/jq
new file mode 100755
index 00000000..29deeb39
--- /dev/null
+++ b/bin/jq
@@ -0,0 +1,24 @@
+#!/usr/bin/env dotslash
+
+{
+ "name": "jq",
+ "platforms": {
+ "macos-aarch64": {
+ "size": 841408,
+ "hash": "blake3",
+ "digest": "d7f94364d8375d9004ac8169fdbb665f61360c2bcc7cceed1d7306dc6f8958b7",
+ "path": "jq",
+ "providers": [
+ {
+ "url": "https://github.com/jqlang/jq/releases/download/jq-1.8.1/jq-macos-arm64"
+ },
+ {
+ "type": "github-release",
+ "repo": "https://github.com/jqlang/jq",
+ "tag": "jq-1.8.1",
+ "name": "jq-macos-arm64"
+ }
+ ]
+ }
+ }
+}