+

+ Fossil is a snapshot-based software configuration management, bug tracking system, & wiki software server all rolled into one self-hostable unit. +At the time of writing, Nix flakes does not & cannot support Fossil input pinning requiring an input pinner like Nixtamal to automate it. +

+
+

+ How to pin a Fossil repository with Nix + Nixtamal +

+

+ What better way to test our Fossil support than download Fossil itself? +

+

+ Latest check-in on trunk +

+
// manifest.kdl
+inputs {
+	fossil-src {
+		fossil {
+			repository "https://fossil-scm.org/home"
+			branch trunk
+		}
+		// Since this is just a canary, we can kinda use cURL… it seems
+		// Fossil is trying to really put up guards/honeypots, but we are
+		// actually trying to save them unnecessary fetches. :( In this case
+		// we use htmlq to echo an entire table row as the fresh value since
+		// without putting in a fake user agent & looking for + trimming
+		// data-href we can’t get the real, full check-in ID. The JSON API
+		// seems to be disabled as well.
+		fresh-cmd {
+			$ curl -sL "https://fossil-scm.org/home/info/trunk"
+			| htmlq -t -w "table.timelineTable tr.timelineDateRow:first-of-type + tr"
+		}
+	}
+}
+
+