about summary refs log tree commit diff
path: root/tools
diff options
context:
space:
mode:
authorVincent Ambo <mail@tazj.in>2021-12-18T13·01+0300
committertazjin <mail@tazj.in>2021-12-18T20·26+0000
commitd01848437635184b685088db7e86d7df7eb1584a (patch)
treeee1c00f79e741bf7d17445bd97768efe26377d72 /tools
parent3090f61713c7360b12d5ae710686376b0c5e6f82 (diff)
feat(tools/depotfmt): add a treefmt wrapper with depot configuration r/3295
Right now the only included formatter is gofmt, but we will extend
this over time.

The version of treefmt is bumped to 0.3.0 (which supports custom
config files) until this lands in nixpkgs.

Change-Id: I1e1aafd05ec7427c616f90c90490c528ecb2615c
Reviewed-on: https://cl.tvl.fyi/c/depot/+/4399
Tested-by: BuildkiteCI
Reviewed-by: grfn <grfn@gws.fyi>
Diffstat (limited to 'tools')
-rw-r--r--tools/depotfmt.nix16
1 files changed, 16 insertions, 0 deletions
diff --git a/tools/depotfmt.nix b/tools/depotfmt.nix
new file mode 100644
index 0000000000..097bc29b45
--- /dev/null
+++ b/tools/depotfmt.nix
@@ -0,0 +1,16 @@
+# Builds treefmt for depot, with a hardcoded configuration that
+# includes the right paths to formatters.
+{ pkgs, ... }:
+
+let
+  config = pkgs.writeText "depot-treefmt-config" ''
+    [formatter.go]
+    command = "${pkgs.go}/bin/gofmt"
+    options = [ "-w" ]
+    includes = ["*.go"]
+  '';
+in pkgs.writeShellScriptBin "depotfmt" ''
+  exec ${pkgs.treefmt}/bin/treefmt ''${@} \
+    --config-file ${config} \
+    --tree-root $(${pkgs.git}/bin/git rev-parse --show-toplevel)
+''