1
1
mirror of https://github.com/NixOS/mobile-nixos.git synced 2024-12-13 12:35:48 +03:00
mobile-nixos/doc/default.nix

102 lines
2.4 KiB
Nix
Raw Normal View History

{ pkgs ? import ../pkgs.nix { } }:
if pkgs == null then (builtins.throw "The `pkgs` argument needs to be provided to doc/default.nix") else
let pkgs' = pkgs; in # Break the cycle
let
pkgs = pkgs'.appendOverlays [
(final: super: {
mobile-nixos-process-doc = final.callPackage ./_support/converter {};
})
];
in
let
2019-11-09 03:36:05 +03:00
inherit (pkgs) stdenv mobile-nixos-process-doc rsync;
# Styles, built from a preprocessor.
styles = pkgs.callPackage ./_support/styles { };
# Asciidoc source for the devices section.
devices = pkgs.callPackage ./_support/devices { };
2020-04-07 00:57:58 +03:00
# Asciidoc source for the options section.
options = pkgs.callPackage ./_support/options { };
in
stdenv.mkDerivation {
name = "mobile-nixos-docs";
src = ./.;
buildInputs = [
mobile-nixos-process-doc
2019-11-09 03:36:05 +03:00
rsync
];
buildPhase = ''
export LANG=C.UTF-8
# Removes the internal notes.
rm -f README.md
# Replace it in-place with the repo README.
2019-11-12 00:46:05 +03:00
cat >> README.adoc <<EOF
2019-11-12 23:32:12 +03:00
= README.adoc
include::_support/common.inc[]
EOF
2020-05-05 02:44:02 +03:00
tail -n +4 ${../README.adoc} >> README.adoc
2020-04-30 00:10:35 +03:00
# The title needs to be first
head -n1 ${../CONTRIBUTING.adoc} > contributing.adoc
# Then we're adding our common stuff
cat >> contributing.adoc <<EOF
include::_support/common.inc[]
EOF
# Then continuing with the file.
tail -n +2 ${../CONTRIBUTING.adoc} >> contributing.adoc
2019-11-12 23:32:12 +03:00
if [ ! -e index.adoc ]; then
cat >> index.adoc <<EOF
= Main Page
include::_support/common.inc[]
This is a local build of the Mobile NixOS documentation.
The full site is at https://mobile.nixos.org/.
EOF
fi
# Copies the generated asciidoc source for the devices.
cp -prf ${devices}/devices devices
2020-04-07 00:57:58 +03:00
# Copies the generated asciidoc source for the options.
cp -prf ${options}/options options
# Use our pipeline to process the docs.
process-doc "**/*.adoc" "**/*.md" \
--styles-dir="${styles}" \
--output-dir="$out"
'';
2019-11-09 03:36:05 +03:00
installPhase = ''
2020-03-04 01:19:25 +03:00
rsync --prune-empty-dirs --verbose --archive \
--exclude="*.src.svg" \
--include="*.svg" \
2020-03-04 01:19:25 +03:00
--include="*.jpeg" \
--include="*.png" \
--include="*/" --exclude="*" . $out/
(
cd $out
if grep -RIi "$NIX_BUILD_TOP"; then
echo "error: References to $NIX_BUILD_TOP found in output:"
grep -RIi "$NIX_BUILD_TOP"
exit 1
fi
)
'';
}