about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/tools/admin/gixy/default.nix41
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 43 insertions, 0 deletions
diff --git a/pkgs/tools/admin/gixy/default.nix b/pkgs/tools/admin/gixy/default.nix
new file mode 100644
index 0000000000000..77451a6bc9e36
--- /dev/null
+++ b/pkgs/tools/admin/gixy/default.nix
@@ -0,0 +1,41 @@
+{ lib, fetchFromGitHub, python }:
+
+python.pkgs.buildPythonApplication rec {
+  name = "gixy-${version}";
+  version = "0.1.8";
+
+  # package is only compatible with python 2.7 and 3.5+
+  disabled = with python.pkgs; !(pythonAtLeast "3.5" || isPy27);
+
+  src = fetchFromGitHub {
+    owner = "yandex";
+    repo = "gixy";
+    rev = "v${version}";
+    sha256 = "0dg8j8pqlzdvmyfkphrizfqzggr64npb9mnm1dcwm6c3z6k2b0ii";
+  };
+
+  postPatch = ''
+    sed -ie '/argparse/d' setup.py
+  '';
+
+  propagatedBuildInputs = with python.pkgs; [
+    cached-property
+    ConfigArgParse
+    pyparsing
+    jinja2
+    nose
+    six
+  ];
+
+  meta = with lib; {
+    description = "Nginx configuration static analyzer";
+    longDescription = ''
+      Gixy is a tool to analyze Nginx configuration.
+      The main goal of Gixy is to prevent security misconfiguration and automate flaw detection.
+    '';
+    homepage = https://github.com/yandex/gixy;
+    license = licenses.mpl20;
+    maintainers = [ maintainers.willibutz ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 314d7c287ef98..82f3ff13d17b8 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1096,6 +1096,8 @@ with pkgs;
 
   gist = callPackage ../tools/text/gist { };
 
+  gixy = callPackage ../tools/admin/gixy { };
+
   glide = callPackage ../development/tools/glide { };
 
   glock = callPackage ../development/tools/glock { };