Add nix-shell tools, fix circleci, resolves #322

This commit is contained in:
Wolfgang Walther
2020-11-29 23:54:48 +01:00
committed by Wolfgang Walther
parent ea2e166aa1
commit b83ee94fae
7 changed files with 176 additions and 94 deletions
+58 -15
View File
@@ -1,17 +1,60 @@
with import (builtins.fetchGit {
url = https://github.com/NixOS/nixpkgs-channels;
ref = "nixos-18.09-small";
rev = "95fed28ac372c61eb83c87ad97c24b0f957827bf";
}) {};
let
# Commit of the Nixpkgs repository that we want to use.
nixpkgsVersion = {
date = "2020-10-27";
rev = "cd63096d6d887d689543a0b97743d28995bc9bc3";
tarballHash = "1wg61h4gndm3vcprdcg7rc4s1v3jkm5xd7lw8r2f67w502y94gcy";
};
stdenv.mkDerivation {
name = "postgrest-docs";
buildInputs = [
python36Full
python36Packages.sphinx
python36Packages.sphinx_rtd_theme
python36Packages.livereload ];
shellHook = ''
python livereload_docs.py && exit
'';
# Nix files that describe the Nixpkgs repository. We evaluate the expression
# using `import` below.
pkgs = import
(fetchTarball {
url = "https://github.com/nixos/nixpkgs/archive/${nixpkgsVersion.rev}.tar.gz";
sha256 = nixpkgsVersion.tarballHash;
})
{ };
python = pkgs.python3.withPackages (ps: [ ps.sphinx ps.sphinx_rtd_theme ps.livereload ]);
in
{
inherit pkgs;
build =
pkgs.writeShellScriptBin "postgrest-docs-build"
''
set -euo pipefail
# clean previous build, otherwise some errors might be supressed
rm -rf _build
${python}/bin/sphinx-build -W -b html -a -n . _build
'';
serve =
pkgs.writeShellScriptBin "postgrest-docs-serve"
''
set -euo pipefail
# livereload_docs.py needs to find "sphinx-build"
PATH=${python}/bin:$PATH
${python}/bin/python livereload_docs.py
'';
spellcheck =
pkgs.writeShellScriptBin "postgrest-docs-spellcheck"
''
set -euo pipefail
FILES=$(find . -type f -iname '*.rst' | tr '\n' ' ')
cat $FILES \
| grep -v '^\(\.\.\| \)' \
| sed 's/`.*`//g' \
| ${pkgs.aspell}/bin/aspell -d ${pkgs.aspellDicts.en}/lib/aspell/en_US -p ./postgrest.dict list \
| sort -f \
| tee misspellings
test ! -s misspellings
'';
}