gifn: add a Nix expression for running the Perl test suite

Change-Id: Iea891bbbf383b7ea2ab4b185a84ebcded4521efe
diff --git a/tools/git-if-needed/.editorconfig b/tools/git-if-needed/.editorconfig
index e63f0ca..26fbee5 100644
--- a/tools/git-if-needed/.editorconfig
+++ b/tools/git-if-needed/.editorconfig
@@ -7,6 +7,10 @@
 insert_final_newline = true
 charset = utf-8
 
+[*.nix]
+indent_style = space
+indent_size = 2
+
 # Mainly for the multi-line "Description: ..." header.
 [*.patch]
 indent_style = space
diff --git a/tools/git-if-needed/nix/test.nix b/tools/git-if-needed/nix/test.nix
new file mode 100644
index 0000000..96af1d8
--- /dev/null
+++ b/tools/git-if-needed/nix/test.nix
@@ -0,0 +1,16 @@
+{ pkgs ? import <nixpkgs> {}, perl-ver ? 536 }:
+let
+  perl-tree-name = "perl${toString perl-ver}Packages";
+  perl-tree = builtins.getAttr perl-tree-name pkgs;
+  perl-pkgs = with perl-tree; [ perl PathTiny ];
+in pkgs.mkShell {
+  buildInputs = [
+    pkgs.git
+    perl-pkgs
+  ];
+  shellHook = ''
+    set -e
+    perl tests/gifn-test.pl sh/git-if-needed
+    exit
+  '';
+}