mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-07-13 21:50:33 +03:00
Add some primops to lib
This commit is contained in:
parent
39e9fabae0
commit
785eaf2cea
17 changed files with 70 additions and 58 deletions
|
@ -31,9 +31,9 @@ in
|
|||
res = (head defs').value;
|
||||
in
|
||||
if isList res then concatLists (getValues defs')
|
||||
else if builtins.lessThan 1 (length defs') then
|
||||
else if lessThan 1 (length defs') then
|
||||
throw "The option `${showOption loc}' is defined multiple times, in ${showFiles (getFiles defs)}."
|
||||
else if !builtins.isString res then
|
||||
else if !isString res then
|
||||
throw "The option `${showOption loc}' does not have a string value, in ${showFiles (getFiles defs)}."
|
||||
else res;
|
||||
});
|
||||
|
|
|
@ -6,7 +6,7 @@ let
|
|||
|
||||
sysctlOption = mkOptionType {
|
||||
name = "sysctl option value";
|
||||
check = x: builtins.isBool x || builtins.isString x || builtins.isInt x;
|
||||
check = x: isBool x || isString x || isInt x;
|
||||
merge = args: defs: (last defs).value; # FIXME: hacky way to allow overriding in configuration.nix.
|
||||
};
|
||||
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
{pkgs, config, ...}:
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
with pkgs.lib;
|
||||
|
||||
let kernelVersion = config.boot.kernelPackages.kernel.version; in
|
||||
|
||||
|
@ -8,9 +10,9 @@ let kernelVersion = config.boot.kernelPackages.kernel.version; in
|
|||
|
||||
options = {
|
||||
|
||||
networking.enableB43Firmware = pkgs.lib.mkOption {
|
||||
networking.enableB43Firmware = mkOption {
|
||||
default = false;
|
||||
type = pkgs.lib.types.bool;
|
||||
type = types.bool;
|
||||
description = ''
|
||||
Turn on this option if you want firmware for the NICs supported by the b43 module.
|
||||
'';
|
||||
|
@ -21,11 +23,11 @@ let kernelVersion = config.boot.kernelPackages.kernel.version; in
|
|||
|
||||
###### implementation
|
||||
|
||||
config = pkgs.lib.mkIf config.networking.enableB43Firmware {
|
||||
assertions = [ {
|
||||
assertion = builtins.lessThan 0 (builtins.compareVersions kernelVersion "3.2");
|
||||
message = "b43 firmware for kernels older than 3.2 not packaged yet!";
|
||||
} ];
|
||||
config = mkIf config.networking.enableB43Firmware {
|
||||
assertions = singleton
|
||||
{ assertion = lessThan 0 (builtins.compareVersions kernelVersion "3.2");
|
||||
message = "b43 firmware for kernels older than 3.2 not packaged yet!";
|
||||
};
|
||||
hardware.firmware = [ pkgs.b43Firmware_5_1_138 ];
|
||||
};
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ let
|
|||
# CD. These are installed into the "nixos" channel of the root
|
||||
# user, as expected by nixos-rebuild/nixos-install.
|
||||
channelSources = pkgs.runCommand "nixos-${config.system.nixosVersion}"
|
||||
{ expr = builtins.readFile ../../../lib/channel-expr.nix; }
|
||||
{ expr = readFile ../../../lib/channel-expr.nix; }
|
||||
''
|
||||
mkdir -p $out/nixos
|
||||
cp -prd ${pkgs.path} $out/nixos/nixpkgs
|
||||
|
|
|
@ -111,7 +111,7 @@ in
|
|||
// optionalAttrs (config.services.tomcat.enable) { tomcatPort = 8080; }
|
||||
// optionalAttrs (config.services.svnserve.enable) { svnBaseDir = config.services.svnserve.svnBaseDir; }
|
||||
// optionalAttrs (cfg.publishInfrastructure.enableAuthentication) (
|
||||
optionalAttrs (config.services.mysql.enable) { mysqlUsername = "root"; mysqlPassword = builtins.readFile config.services.mysql.rootPassword; })
|
||||
optionalAttrs (config.services.mysql.enable) { mysqlUsername = "root"; mysqlPassword = readFile config.services.mysql.rootPassword; })
|
||||
)
|
||||
;
|
||||
|
||||
|
@ -152,7 +152,7 @@ in
|
|||
${concatMapStrings (infrastructureAttrName:
|
||||
let infrastructureAttrValue = getAttr infrastructureAttrName (cfg.infrastructure);
|
||||
in
|
||||
if builtins.isInt infrastructureAttrValue then
|
||||
if isInt infrastructureAttrValue then
|
||||
''${infrastructureAttrName}=${toString infrastructureAttrValue} \
|
||||
''
|
||||
else
|
||||
|
|
|
@ -19,7 +19,7 @@ let
|
|||
|
||||
knownHostsFile = pkgs.writeText "ssh_known_hosts" (
|
||||
flip concatMapStrings knownHosts (h:
|
||||
"${concatStringsSep "," h.hostNames} ${builtins.readFile h.publicKeyFile}"
|
||||
"${concatStringsSep "," h.hostNames} ${readFile h.publicKeyFile}"
|
||||
)
|
||||
);
|
||||
|
||||
|
@ -59,7 +59,7 @@ let
|
|||
mode = "0444";
|
||||
source = pkgs.writeText "${u.name}-authorized_keys" ''
|
||||
${concatStringsSep "\n" u.openssh.authorizedKeys.keys}
|
||||
${concatMapStrings (f: builtins.readFile f + "\n") u.openssh.authorizedKeys.keyFiles}
|
||||
${concatMapStrings (f: readFile f + "\n") u.openssh.authorizedKeys.keyFiles}
|
||||
'';
|
||||
};
|
||||
usersWithKeys = attrValues (flip filterAttrs config.users.extraUsers (n: u:
|
||||
|
|
|
@ -15,7 +15,7 @@ let
|
|||
toOption = x:
|
||||
if x == true then "true"
|
||||
else if x == false then "false"
|
||||
else if builtins.isInt x then toString x
|
||||
else if isInt x then toString x
|
||||
else toString ''\"${x}\"'';
|
||||
|
||||
# All lines in settings.json end with a ',' (comma), except for the last
|
||||
|
|
|
@ -17,8 +17,8 @@ let
|
|||
getPort = cfg: if cfg.port != 0 then cfg.port else if cfg.enableSSL then 443 else 80;
|
||||
|
||||
extraModules = attrByPath ["extraModules"] [] mainCfg;
|
||||
extraForeignModules = filter builtins.isAttrs extraModules;
|
||||
extraApacheModules = filter (x: !(builtins.isAttrs x)) extraModules; # I'd prefer using builtins.isString here, but doesn't exist yet
|
||||
extraForeignModules = filter isAttrs extraModules;
|
||||
extraApacheModules = filter isString extraModules;
|
||||
|
||||
|
||||
makeServerInfo = cfg: {
|
||||
|
|
|
@ -71,7 +71,7 @@ in
|
|||
|
||||
${
|
||||
let
|
||||
set' = mapAttrs (n: v: if builtins.isString v then noDepEntry v else v) set;
|
||||
set' = mapAttrs (n: v: if isString v then noDepEntry v else v) set;
|
||||
withHeadlines = addAttributeName set';
|
||||
in textClosureMap id (withHeadlines) (attrNames withHeadlines)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue