about summary refs log tree commit diff
path: root/third_party/dfmt
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/dfmt')
-rw-r--r--third_party/dfmt/default.nix36
1 files changed, 36 insertions, 0 deletions
diff --git a/third_party/dfmt/default.nix b/third_party/dfmt/default.nix
new file mode 100644
index 000000000000..5ce0d7541c25
--- /dev/null
+++ b/third_party/dfmt/default.nix
@@ -0,0 +1,36 @@
+# dfmt is a code formatter for D
+{ pkgs, lib, ... }:
+
+pkgs.stdenv.mkDerivation rec {
+  pname = "dfmt";
+  version = "0.13.4";
+
+  src = pkgs.fetchFromGitHub {
+    owner = "dlang-community";
+    repo = "dfmt";
+    rev = "v${version}";
+    sha256 = "02a8qvrmnl1c15y6irxlhqpr0hjj5s8qk0jc20ivj0fl6p4v9shj";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = with pkgs; [
+    dmd
+
+    # fake git that will be used to fetch the version string
+    (pkgs.writeShellScriptBin "git" "echo 'v${version}'")
+  ];
+
+  DFLAGS = "-release";
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp bin/dfmt $out/bin/
+    strip -s $out/bin/dfmt
+  '';
+
+  meta = {
+    description = "D code formatter";
+    homepage = "https://github.com/dlang-community/dfmt";
+    license = lib.licenses.boost;
+  };
+}