about summary refs log tree commit diff
diff options
context:
space:
mode:
authorJörg Thalheim <Mic92@users.noreply.github.com>2019-04-04 20:23:58 +0100
committerGitHub <noreply@github.com>2019-04-04 20:23:58 +0100
commit6dd7483ce1b5100248668f4eee1c40724ba9d69d (patch)
treeabbb1a0a0dff4bd59871ff49d32da84169c67944
parentfab50f0e915d6ab458ece3e7ecfa2bb4fd3212d4 (diff)
parent59fac1a6d7e1983a1e7bd518129ff9ef39a013dd (diff)
downloadnixlib-6dd7483ce1b5100248668f4eee1c40724ba9d69d.tar
nixlib-6dd7483ce1b5100248668f4eee1c40724ba9d69d.tar.gz
nixlib-6dd7483ce1b5100248668f4eee1c40724ba9d69d.tar.bz2
nixlib-6dd7483ce1b5100248668f4eee1c40724ba9d69d.tar.lz
nixlib-6dd7483ce1b5100248668f4eee1c40724ba9d69d.tar.xz
nixlib-6dd7483ce1b5100248668f4eee1c40724ba9d69d.tar.zst
nixlib-6dd7483ce1b5100248668f4eee1c40724ba9d69d.zip
Merge pull request #57979 from 4z3/writeNginxConfig
nixos/nginx: use nginxfmt and gixy
-rw-r--r--nixos/modules/services/web-servers/nginx/default.nix14
-rw-r--r--pkgs/build-support/writers/default.nix10
-rw-r--r--pkgs/tools/misc/nginx-config-formatter/default.nix6
3 files changed, 14 insertions, 16 deletions
diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix
index bf9f0c21aedf..3a154ab75ba9 100644
--- a/nixos/modules/services/web-servers/nginx/default.nix
+++ b/nixos/modules/services/web-servers/nginx/default.nix
@@ -44,19 +44,7 @@ let
     }
   ''));
 
-  awkFormat = builtins.toFile "awkFormat-nginx.awk" ''
-    awk -f
-    {sub(/^[ \t]+/,"");idx=0}
-    /\{/{ctx++;idx=1}
-    /\}/{ctx--}
-    {id="";for(i=idx;i<ctx;i++)id=sprintf("%s%s", id, "\t");printf "%s%s\n", id, $0}
-  '';
-
-  configFile = pkgs.runCommand "nginx.conf" {} (''
-    awk -f ${awkFormat} ${pre-configFile} | sed '/^\s*$/d' > $out
-  '');
-
-  pre-configFile = pkgs.writeText "pre-nginx.conf" ''
+  configFile = pkgs.writers.writeNginxConfig "nginx.conf" ''
     user ${cfg.user} ${cfg.group};
     error_log ${cfg.logError};
     daemon off;
diff --git a/pkgs/build-support/writers/default.nix b/pkgs/build-support/writers/default.nix
index 6e932ce860f6..3454450c1f3a 100644
--- a/pkgs/build-support/writers/default.nix
+++ b/pkgs/build-support/writers/default.nix
@@ -178,6 +178,16 @@ rec {
   writeJSBin = name:
     writeJS "/bin/${name}";
 
+  writeNginxConfig = name: text: pkgs.runCommand name {
+    inherit text;
+    passAsFile = [ "text" ];
+  } /* sh */ ''
+    cp "$textPath" $out
+    ${pkgs.nginx-config-formatter}/bin/nginxfmt $out
+    ${pkgs.gnused}/bin/sed -i '/^$/d' $out
+    ${pkgs.gixy}/bin/gixy $out
+  '';
+
   # writePerl takes a name an attributeset with libraries and some perl sourcecode and
   # returns an executable
   #
diff --git a/pkgs/tools/misc/nginx-config-formatter/default.nix b/pkgs/tools/misc/nginx-config-formatter/default.nix
index 37218f848684..e19eac1c51e5 100644
--- a/pkgs/tools/misc/nginx-config-formatter/default.nix
+++ b/pkgs/tools/misc/nginx-config-formatter/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchFromGitHub, python3 }:
 
 stdenv.mkDerivation rec {
-  version = "2016-06-16";
+  version = "2019-02-13";
   name = "nginx-config-formatter-${version}";
 
   src = fetchFromGitHub {
     owner = "1connect";
     repo = "nginx-config-formatter";
-    rev = "fe5c77d2a503644bebee2caaa8b222c201c0603d";
-    sha256 = "0akpkbq5136k1i1z1ls6yksis35hbr70k8vd10laqwvr1jj41bga";
+    rev = "4ea6bbc1bdeb1d28419548aeca90f323e64e0e05";
+    sha256 = "0h6pj9i0wim9pzkafi92l1nhlnl2a530vnm7qqi3n2ra8iwfyw4f";
   };
 
   buildInputs = [ python3 ];