chore(nix): killall-uni2work

This commit is contained in:
Gregor Kleen 2021-05-11 10:40:46 +02:00
parent 07cc413686
commit 8c4228dcba

View File

@ -192,8 +192,42 @@ let
echo "In develop"
fi
'';
killallUni2work = pkgs.writeScriptBin "killall-uni2work" ''
#!${pkgs.zsh}/bin/zsh
set -o pipefail
lockFile=
if [[ ''${#@} -gt 0 ]]; then
lockFile=''${1}
shift
if [[ -d ''${lockFile} && -f ''${lockFile}/.stack-work.lock ]]; then
lockFile=''${lockFile}/.stack-work.lock
fi
else
if [[ -f .stack-work.lock ]]; then
lockFile=.stack-work.lock
elif [[ -f ~/projects/uni2work/.stack-work.lock ]]; then
lockFile=~/projects/uni2work/.stack-work.lock
fi
fi
if [[ -z "''${lockFile}" && !(-f ''${lockFile}) ]]; then
echo "Could not find lockfile" >&2
exit 1
fi
printf "Killing users of %s...\n" ''${lockFile}
while ${pkgs.psmisc}/bin/fuser ''${lockFile} 2>/dev/null | ${pkgs.coreutils}/bin/cut -d ':' -f 2- | ${pkgs.findutils}/bin/xargs -tr -- ${pkgs.util-linux}/bin/kill; do
sleep 1
done
'';
in pkgs.mkShell {
name = "uni2work";
nativeBuildInputs = [develop inDevelop] ++ (with pkgs; [ nodejs-14_x postgresql_12 openldap google-chrome exiftool memcached minio minio-client gup ]) ++ (with pkgs.haskellPackages; [ stack yesod-bin hlint cabal-install weeder profiteur ]);
nativeBuildInputs = [develop inDevelop killallUni2work] ++ (with pkgs; [ nodejs-14_x postgresql_12 openldap google-chrome exiftool memcached minio minio-client gup ]) ++ (with pkgs.haskellPackages; [ stack yesod-bin hlint cabal-install weeder profiteur ]);
}