nix-on-droid/modules/environment/links.nix
2020-01-04 00:54:01 +01:00

60 lines
1.2 KiB
Nix

# Licensed under GNU Lesser General Public License v3 or later, see COPYING.
# Copyright (c) 2019 Alexander Sosedkin and other contributors, see AUTHORS.
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.environment;
in
{
###### interface
options = {
environment = {
binSh = mkOption {
type = types.str;
readOnly = true;
description = "Path to /bin/sh executable.";
};
usrBinEnv = mkOption {
type = types.str;
readOnly = true;
description = "Path to /usr/bin/env executable.";
};
};
};
###### implementation
config = {
build.activationBefore = {
linkBinSh = ''
$DRY_RUN_CMD mkdir $VERBOSE_ARG --parents /bin
$DRY_RUN_CMD ln $VERBOSE_ARG --symbolic --force ${cfg.binSh} /bin/.sh.tmp
$DRY_RUN_CMD mv $VERBOSE_ARG /bin/.sh.tmp /bin/sh
'';
linkUsrBinEnv = ''
$DRY_RUN_CMD mkdir $VERBOSE_ARG --parents /usr/bin
$DRY_RUN_CMD ln $VERBOSE_ARG --symbolic --force ${cfg.usrBinEnv} /usr/bin/.env.tmp
$DRY_RUN_CMD mv $VERBOSE_ARG /usr/bin/.env.tmp /usr/bin/env
'';
};
environment = {
binSh = "${pkgs.bashInteractive}/bin/sh";
usrBinEnv = "${pkgs.coreutils}/bin/env";
};
};
}