Commit 4be78f0d authored by Nikolay Amiantov's avatar Nikolay Amiantov
Browse files

uwsgi service: redefine PATH envvar

Previously if user had `PATH` variable set we would define several
`PATH` variables and trigger a conflict.
parent 78cd22c1
Loading
Loading
Loading
Loading
+4 −7
Original line number Diff line number Diff line
@@ -48,13 +48,10 @@ let
                pyhome = "${pythonEnv}";
                env =
                  # Argh, uwsgi expects list of key-values there instead of a dictionary.
                  let env' = c.env or [];
                      getPath =
                        x: if hasPrefix "PATH=" x
                           then substring (stringLength "PATH=") (stringLength x) x
                           else null;
                      oldPaths = filter (x: x != null) (map getPath env');
                  in env' ++ [ "PATH=${optionalString (oldPaths != []) "${last oldPaths}:"}${pythonEnv}/bin" ];
                  let envs = partition (hasPrefix "PATH=") (c.env or []);
                      oldPaths = map (x: substring (stringLength "PATH=") (stringLength x) x) envs.right;
                      paths = oldPaths ++ [ "${pythonEnv}/bin" ];
                  in [ "PATH=${concatStringsSep ":" paths}" ] ++ envs.wrong;
              }
          else if isEmperor
            then {