Use devShells instead of ./scripts

main
staticvoid 2022-06-29 21:29:48 +03:00
parent 1975fc3eda
commit 8b6ee9a76d
2 changed files with 68 additions and 12 deletions

View File

@ -61,6 +61,7 @@
unordered-containers
];
license = nixpkgs.lib.licenses.gpl3Plus;
passthru = { inherit pkgs; };
};
thisNative = this "ghc922";
in
@ -72,6 +73,72 @@
program = "${thisNative}/bin/4r";
};
devShells.default = thisNative.env;
devShells =
let unwords = nixpkgs'.lib.concatStringsSep " ";
options = [
"-Wall"
"-Wcompat"
"-Wincomplete-uni-patterns"
"-Wredundant-constraints"
"-Wmissing-export-lists"
"-Wincomplete-record-updates"
"-Wmissing-deriving-strategies"
];
extensions = [
"-XNoImplicitPrelude"
"-XNoFieldSelectors"
"-XOverloadedRecordDot"
"-XDuplicateRecordFields"
"-XBangPatterns"
"-XBinaryLiterals"
"-XBlockArguments"
"-XConstraintKinds"
"-XDataKinds"
"-XDeriveFunctor"
"-XDeriveGeneric"
"-XDerivingStrategies"
"-XFlexibleContexts"
"-XFlexibleInstances"
"-XGADTs"
"-XGeneralizedNewtypeDeriving"
"-XHexFloatLiterals"
"-XImportQualifiedPost"
"-XInstanceSigs"
"-XKindSignatures"
"-XLambdaCase"
"-XMultiParamTypeClasses"
"-XNumericUnderscores"
"-XOverloadedStrings"
"-XScopedTypeVariables"
"-XStandaloneDeriving"
"-XTupleSections"
"-XTypeApplications"
"-XTypeOperators"
"-XTypeSynonymInstances"
"-XUndecidableInstances"
];
findFiles = "$(find app -name '*.hs')";
in
rec {
default =
thisNative.env.overrideAttrs (a: {
nativeBuildInputs = a.nativeBuildInputs ++ [ thisNative.passthru.pkgs.fourmolu ];
});
ghci = default.overrideAttrs (_: {
shellHook = ''
ghci ${unwords (options ++ extensions)} ${findFiles}
exit $?
'';
});
fourmolu = default.overrideAttrs (_: {
shellHook = ''
fourmolu --mode inplace \
--indentation 2 --check-idempotence --import-export-comma-style leading \
${unwords (map (e: "-o ${e}") (options ++ extensions))} \
${findFiles}
exit $?
'';
});
};
});
}

View File

@ -1,11 +0,0 @@
#!/usr/bin/env bash
set -x
OPTS="-Wall -Wcompat -Wincomplete-uni-patterns -Wredundant-constraints -Wmissing-export-lists -Wincomplete-record-updates -Wmissing-deriving-strategies"
EXTS="-XNoImplicitPrelude -XNoFieldSelectors -XOverloadedRecordDot -XDuplicateRecordFields -XBangPatterns -XBinaryLiterals -XBlockArguments -XConstraintKinds -XDataKinds -XDeriveFunctor -XDeriveGeneric -XDerivingStrategies -XFlexibleContexts -XFlexibleInstances -XGADTs -XGeneralizedNewtypeDeriving -XHexFloatLiterals -XImportQualifiedPost -XInstanceSigs -XKindSignatures -XLambdaCase -XMultiParamTypeClasses -XNumericUnderscores -XOverloadedStrings -XScopedTypeVariables -XStandaloneDeriving -XTupleSections -XTypeApplications -XTypeOperators -XTypeSynonymInstances -XUndecidableInstances"
FILES=$(find app -name '*.hs')
nix develop -c ghci $OPTS $EXTS $FILES