stockholm/modules/tv/tools.nix
2015-05-19 23:16:56 +02:00

102 lines
2.0 KiB
Nix
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ config, pkgs, ... }:
let
inherit (pkgs) lib stdenv;
inherit (lib.strings) concatStringsSep stringAsChars;
inherit (lib.attrsets) attrValues mapAttrs;
inherit (lib) makeSearchPath;
inherit (import ../../lib { inherit pkgs; }) shell-escape;
# TODO make these scripts available in an maintenance shell
scripts = {
# just so we don't reboot accidentally
reboot =
''
echo no reboot >&2
exit 23
'';
rebuild =
''
nixpkgs=''${nixpkgs-/home/tv/src/nixpkgs}
nixos-rebuild \
--show-trace \
-I nixpkgs="$nixpkgs" \
switch \
2>&1 \
| sed ${shell-escape ''
s|"\(/home/tv/src/config/[^":]*\)"|\1|
s|^trace:\s*\(.*\)|\1|
''}
'';
};
wrap = script:
''
#! /bin/sh
set -euf
${script}
'';
#lib=$lib
#export PATH=$bin:${makeSearchPath "bin" buildInputs}
buildScript = name: script:
builtins.trace "building ${name}"
''
echo ${shell-escape script} > $bin/${shell-escape name}
chmod +x $bin/${shell-escape name}
'';
tools = pkgs.stdenv.mkDerivation rec {
name = "tools";
src = /var/empty;
buildInputs = [];
buildPhase =
''
mkdir $out
bin=$out/bin
mkdir $bin
${concatStringsSep "\n" (attrValues (mapAttrs buildScript scripts))}
'';
#''
#mkdir $out
#lib=$out/lib
#cp -r lib $lib
#bin=$out/bin
#mkdir $bin
#${concatStringsSep "\n" (attrValues (mapAttrs (name: script:
# ''
# {
# echo '#! /bin/sh'
# echo 'set -euf'
# echo "lib=$lib"
# echo "export PATH=$bin:${makeSearchPath "bin" buildInputs}"
# echo ${shell-escape script}
# } > $bin/${name}
# chmod +x $bin/${name}
# '') scripts))}
#'';
installPhase = ":";
};
in
{
environment.systemPackages = [ tools ];
}