feat(build): Build Nixery book and embed it into Nixery image
Executes the previously added mdBook on the previously added book source to yield a directory that can be served by Nixery on its index page. This is one of those 'I <3 Nix' things due to how easy it is to do.
This commit is contained in:
parent
85e8d760fc
commit
2bef0ba240
2 changed files with 46 additions and 8 deletions
|
@ -48,13 +48,6 @@ rec {
|
|||
cat ${./build-registry-image.nix} > $out
|
||||
'';
|
||||
|
||||
# Static files to serve on the Nixery index. This is used primarily
|
||||
# for the demo instance running at nixery.dev and provides some
|
||||
# background information for what Nixery is.
|
||||
nixery-static = runCommand "nixery-static" {} ''
|
||||
mkdir $out
|
||||
cp ${./static}/* $out
|
||||
'';
|
||||
# nixpkgs currently has an old version of mdBook. A new version is
|
||||
# built here, but eventually the update will be upstreamed
|
||||
# (nixpkgs#65890)
|
||||
|
@ -73,6 +66,10 @@ rec {
|
|||
cargoSha256 = "0qwhc42a86jpvjcaysmfcw8kmwa150lmz01flmlg74g6qnimff5m";
|
||||
};
|
||||
|
||||
# Use mdBook to build a static asset page which Nixery can then
|
||||
# serve. This is primarily used for the public instance at
|
||||
# nixery.dev.
|
||||
nixery-book = callPackage ./docs { inherit mdbook; };
|
||||
|
||||
# Wrapper script running the Nixery server with the above two data
|
||||
# dependencies configured.
|
||||
|
@ -81,7 +78,7 @@ rec {
|
|||
# are installing Nixery directly.
|
||||
nixery-bin = writeShellScriptBin "nixery" ''
|
||||
export NIX_BUILDER="${nixery-builder}"
|
||||
export WEB_DIR="${nixery-static}"
|
||||
export WEB_DIR="${nixery-book}"
|
||||
exec ${nixery-server}/bin/nixery
|
||||
'';
|
||||
|
||||
|
@ -107,6 +104,11 @@ rec {
|
|||
mkdir -p /etc/nix
|
||||
echo 'sandbox = false' >> /etc/nix/nix.conf
|
||||
|
||||
# In some cases users building their own image might want to
|
||||
# customise something on the inside (e.g. set up an environment
|
||||
# for keys or whatever).
|
||||
#
|
||||
# This can be achieved by setting a 'preLaunch' script.
|
||||
${preLaunch}
|
||||
|
||||
exec ${nixery-bin}/bin/nixery
|
||||
|
|
36
tools/nixery/docs/default.nix
Normal file
36
tools/nixery/docs/default.nix
Normal file
|
@ -0,0 +1,36 @@
|
|||
# Copyright 2019 Google LLC
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# Builds the documentation page using the Rust project's 'mdBook'
|
||||
# tool.
|
||||
#
|
||||
# Some of the documentation is pulled in and included from other
|
||||
# sources.
|
||||
|
||||
{ fetchFromGitHub, mdbook, runCommand }:
|
||||
|
||||
let
|
||||
nix-1p = fetchFromGitHub {
|
||||
owner = "tazjin";
|
||||
repo = "nix-1p";
|
||||
rev = "aab846cd3d79fcd092b1bfea1346c587b2a56095";
|
||||
sha256 = "12dl0xrwgg2d4wyv9zxgdn0hzqnanczjg23vqn3356rywxlzzwak";
|
||||
};
|
||||
in runCommand "nixery-book" {} ''
|
||||
mkdir -p $out
|
||||
cp -r ${./.}/* .
|
||||
chmod -R a+w src
|
||||
cp ${nix-1p}/README.md src/nix-1p.md
|
||||
${mdbook}/bin/mdbook build -d $out
|
||||
''
|
Loading…
Reference in a new issue