chore(nix): killall-uni2work
This commit is contained in:
parent
07cc413686
commit
8c4228dcba
36
shell.nix
36
shell.nix
@ -192,8 +192,42 @@ let
|
|||||||
echo "In develop"
|
echo "In develop"
|
||||||
fi
|
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 {
|
in pkgs.mkShell {
|
||||||
name = "uni2work";
|
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 ]);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user