mirror of
https://github.com/hercules-ci/arion.git
synced 2024-11-26 21:27:28 +03:00
ed42a5c708
Will fix bash completion in the shell and is a good practice for non-shell derivations.
60 lines
1.6 KiB
Nix
60 lines
1.6 KiB
Nix
self: super:
|
|
let
|
|
inherit (self.arion-project) haskellPkgs;
|
|
inherit (super) lib;
|
|
|
|
sources = import ./sources.nix;
|
|
|
|
fakeRepo = src: super.runCommand "source" { inherit src; nativeBuildInputs = [super.git]; } ''
|
|
cp -r --no-preserve=mode $src $out
|
|
git init
|
|
cp -r .git $out
|
|
'';
|
|
|
|
in
|
|
{
|
|
|
|
inherit (import ./.. { pkgs = self; }) arion;
|
|
tests = super.callPackage ../tests {};
|
|
|
|
doc-options = import ../docs/options.nix {};
|
|
doc-options-check = self.runCommand "doc-options-check" {} ''
|
|
if diff --color -u ${../docs/modules/ROOT/partials/NixOSOptions.adoc} ${self.doc-options}; then
|
|
touch $out
|
|
else
|
|
echo 1>&2 "The doc options have changed and need to be added."
|
|
echo 1>&2 "Please run ./update-options in the root of your arion clone."
|
|
exit 1
|
|
fi
|
|
'';
|
|
doc = self.stdenv.mkDerivation {
|
|
name = "arion-documentation";
|
|
nativeBuildInputs = [super.antora];
|
|
src = fakeRepo ../.;
|
|
HOME = ".";
|
|
buildPhase = "antora antora-playbook";
|
|
installPhase = ''
|
|
mkdir $out
|
|
mv public/* $out/
|
|
'';
|
|
};
|
|
|
|
arion-project = super.recurseIntoAttrs {
|
|
haskellPkgs = super.haskellPackages.extend (import ./haskell-overlay.nix self super);
|
|
shell = haskellPkgs.shellFor {
|
|
packages = p: [p.arion-compose];
|
|
nativeBuildInputs = [
|
|
haskellPkgs.cabal-install
|
|
haskellPkgs.ghcid
|
|
haskellPkgs.haskell-language-server
|
|
super.docker-compose
|
|
self.niv
|
|
# self.releaser
|
|
];
|
|
};
|
|
};
|
|
|
|
inherit (import (sources.niv) {}) niv;
|
|
releaser = self.haskellPackages.callCabal2nix "releaser" sources.releaser {};
|
|
}
|