2023-09-08 09:30:43 +03:00
|
|
|
{ pkgs, static ? false }: rec {
|
|
|
|
CABAL_PROJECT_LOCAL_TEMPLATE = with pkgs; ''
|
|
|
|
package digest
|
|
|
|
${if static then "extra-lib-dirs: ${zlib}/lib ${pcre}/lib" else ""}
|
|
|
|
constraints:
|
|
|
|
HsOpenSSL +use-pkg-config,
|
|
|
|
zlib +pkg-config,
|
|
|
|
pcre-lite +pkg-config
|
|
|
|
'';
|
|
|
|
template = pkgs.writeTextFile {
|
|
|
|
name = "cabal.project.local";
|
|
|
|
text = CABAL_PROJECT_LOCAL_TEMPLATE;
|
|
|
|
};
|
|
|
|
shellHook = ''
|
|
|
|
echo "Quirks:"
|
|
|
|
echo -e "\tif you have the zlib, HsOpenSSL, or digest package in your dependency tree, please make sure to"
|
|
|
|
echo -e "\tcat ${template} >> cabal.project.local"
|
|
|
|
function patchProjectLocal() {
|
|
|
|
cat ${template} >> "$1"
|
|
|
|
}
|
2024-04-04 13:46:24 +03:00
|
|
|
echo ""
|
|
|
|
'';
|
|
|
|
hint = flavor: ''
|
|
|
|
if [ "$GITHUB_ACTIONS" = "true" ]; then
|
2024-04-11 15:04:16 +03:00
|
|
|
PREFIX="::notice::Hint:"
|
|
|
|
else
|
|
|
|
PREFIX="Hint:"
|
|
|
|
fi
|
2024-05-13 15:47:07 +03:00
|
|
|
if [ "$GITHUB_ACTIONS" = "true" ] || [ "$'' + ''{CODESPACE_TOKEN+x}" = "x" ]; then
|
2024-04-11 15:04:16 +03:00
|
|
|
echo "$PREFIX to reproduce this environment locally, use either:" \
|
|
|
|
"\`nix develop github:input-output-hk/devx#${flavor}\`, or" \
|
|
|
|
"\`docker run -it -v \$(pwd):/workspaces ghcr.io/input-output-hk/devx-devcontainer:x86_64-linux.${flavor}\`"
|
|
|
|
fi
|
2024-05-13 15:47:07 +03:00
|
|
|
if [ "$'' + ''{CODESPACE_TOKEN+x}" = "x" ]; then
|
2024-04-11 15:04:16 +03:00
|
|
|
echo "Quirks:"
|
|
|
|
echo -e "\tThe Haskell VSCode extension might ask you \"How do you want the extension to manage/discover HLS and the relevant toolchain?\""
|
|
|
|
echo -e "\tChoose \"Manually via PATH\", not \"Automatically via GHCup\""
|
2024-04-04 13:46:24 +03:00
|
|
|
fi
|
2023-09-08 09:30:43 +03:00
|
|
|
'';
|
2024-04-11 15:04:16 +03:00
|
|
|
}
|