From 4b93f21ced4f648de11a92e2d8c5d9bdfc39d086 Mon Sep 17 00:00:00 2001 From: Patrick Hilhorst Date: Mon, 7 May 2018 19:44:56 +0200 Subject: unixtools: refactor for less redundancy --- pkgs/top-level/unix-tools.nix | 216 ++++++++++++++++++++---------------------- 1 file changed, 105 insertions(+), 111 deletions(-) (limited to 'pkgs/top-level/unix-tools.nix') diff --git a/pkgs/top-level/unix-tools.nix b/pkgs/top-level/unix-tools.nix index 26adcda8ee1..6d6e2b2f251 100644 --- a/pkgs/top-level/unix-tools.nix +++ b/pkgs/top-level/unix-tools.nix @@ -11,7 +11,6 @@ # input, not "procps" which requires Linux. let - singleBinary = cmd: providers: let provider = "${lib.getBin providers.${hostPlatform.parsed.kernel.name}}/bin/${cmd}"; in runCommand cmd { @@ -27,8 +26,6 @@ let ln -s "${provider}" "$out/bin/${cmd}" ''; -in rec { - # more is unavailable in darwin # just use less more_compat = runCommand "more" {} '' @@ -36,117 +33,114 @@ in rec { ln -s ${pkgs.less}/bin/less $out/bin/more ''; - # singular binaries - arp = singleBinary "arp" { - linux = pkgs.nettools; - darwin = pkgs.darwin.network_cmds; - }; - col = singleBinary "col" { - linux = pkgs.utillinux; - darwin = pkgs.darwin.text_cmds; - }; - eject = singleBinary "eject" { - linux = pkgs.utillinux; - }; - getopt = singleBinary "getopt" { - linux = pkgs.utillinux; - darwin = pkgs.getopt; - }; - fdisk = singleBinary "fdisk" { - linux = pkgs.utillinux; - darwin = pkgs.darwin.diskdev_cmds; - }; - fsck = singleBinary "fsck" { - linux = pkgs.utillinux; - darwin = pkgs.darwin.diskdev_cmds; - }; - hexdump = singleBinary "hexdump" { - linux = pkgs.utillinux; - darwin = pkgs.darwin.shell_cmds; - }; - hostname = singleBinary "hostname" { - linux = pkgs.nettools; - darwin = pkgs.darwin.shell_cmds; - }; - ifconfig = singleBinary "ifconfig" { - linux = pkgs.nettools; - darwin = pkgs.darwin.network_cmds; - }; - logger = singleBinary "logger" { - linux = pkgs.utillinux; - }; - more = singleBinary "more" { - linux = pkgs.utillinux; - darwin = more_compat; - }; - mount = singleBinary "mount" { - linux = pkgs.utillinux; - darwin = pkgs.darwin.diskdev_cmds; - }; - netstat = singleBinary "netstat" { - linux = pkgs.nettools; - darwin = pkgs.darwin.network_cmds; - }; - ping = singleBinary "ping" { - linux = pkgs.iputils; - darwin = pkgs.darwin.network_cmds; + bins = lib.mapAttrs singleBinary { + # singular binaries + arp = { + linux = pkgs.nettools; + darwin = pkgs.darwin.network_cmds; + }; + col = { + linux = pkgs.utillinux; + darwin = pkgs.darwin.text_cmds; + }; + eject = { + linux = pkgs.utillinux; + }; + getopt = { + linux = pkgs.utillinux; + darwin = pkgs.getopt; + }; + fdisk = { + linux = pkgs.utillinux; + darwin = pkgs.darwin.diskdev_cmds; + }; + fsck = { + linux = pkgs.utillinux; + darwin = pkgs.darwin.diskdev_cmds; + }; + hexdump = { + linux = pkgs.utillinux; + darwin = pkgs.darwin.shell_cmds; + }; + hostname = { + linux = pkgs.nettools; + darwin = pkgs.darwin.shell_cmds; + }; + ifconfig = { + linux = pkgs.nettools; + darwin = pkgs.darwin.network_cmds; + }; + logger = { + linux = pkgs.utillinux; + }; + more = { + linux = pkgs.utillinux; + darwin = more_compat; + }; + mount = { + linux = pkgs.utillinux; + darwin = pkgs.darwin.diskdev_cmds; + }; + netstat = { + linux = pkgs.nettools; + darwin = pkgs.darwin.network_cmds; + }; + ping = { + linux = pkgs.iputils; + darwin = pkgs.darwin.network_cmds; + }; + ps = { + linux = pkgs.procps; + darwin = pkgs.darwin.ps; + }; + quota = { + linux = pkgs.linuxquota; + darwin = pkgs.darwin.diskdev_cmds; + }; + route = { + linux = pkgs.nettools; + darwin = pkgs.darwin.network_cmds; + }; + script = { + linux = pkgs.utillinux; + darwin = pkgs.darwin.shell_cmds; + }; + sysctl = { + linux = pkgs.procps; + darwin = pkgs.darwin.system_cmds; + }; + top = { + linux = pkgs.procps; + darwin = pkgs.darwin.top; + }; + umount = { + linux = pkgs.utillinux; + darwin = pkgs.darwin.diskdev_cmds; + }; + whereis = { + linux = pkgs.utillinux; + darwin = pkgs.darwin.shell_cmds; + }; + wall = { + linux = pkgs.utillinux; + }; + write = { + linux = pkgs.utillinux; + darwin = pkgs.darwin.basic_cmds; + }; }; - ps = singleBinary "ps" { - linux = pkgs.procps; - darwin = pkgs.darwin.ps; - }; - quota = singleBinary "quota" { - linux = pkgs.linuxquota; - darwin = pkgs.darwin.diskdev_cmds; - }; - route = singleBinary "route" { - linux = pkgs.nettools; - darwin = pkgs.darwin.network_cmds; - }; - script = singleBinary "script" { - linux = pkgs.utillinux; - darwin = pkgs.darwin.shell_cmds; - }; - sysctl = singleBinary "sysctl" { - linux = pkgs.procps; - darwin = pkgs.darwin.system_cmds; - }; - top = singleBinary "top" { - linux = pkgs.procps; - darwin = pkgs.darwin.top; - }; - umount = singleBinary "umount" { - linux = pkgs.utillinux; - darwin = pkgs.darwin.diskdev_cmds; - }; - whereis = singleBinary "whereis" { - linux = pkgs.utillinux; - darwin = pkgs.darwin.shell_cmds; - }; - wall = singleBinary "wall" { - linux = pkgs.utillinux; - }; - write = singleBinary "write" { - linux = pkgs.utillinux; - darwin = pkgs.darwin.basic_cmds; + + makeCompat = name': value: buildEnv { + name = name' + "-compat"; + paths = value; }; # Compatibility derivations # Provided for old usage of these commands. - - procps = buildEnv { - name = "procps-compat"; - paths = [ ps sysctl top ]; - }; - - utillinux = buildEnv { - name = "utillinux-compat"; - paths = [ fsck fdisk getopt hexdump mount - script umount whereis write col ]; - }; - - nettools = buildEnv { - name = "nettools-compat"; - paths = [ arp hostname ifconfig netstat route ]; + compat = with bins; lib.mapAttrs makeCompat { + procps = [ ps sysctl top ]; + utillinux = [ fsck fdisk getopt hexdump mount + script umount whereis write col ]; + nettools = [ arp hostname ifconfig netstat route ]; }; -} +in bins // compat -- cgit 1.4.1 From ab0d4f26ff6a35df04968dd97e2a79a5fd901cfb Mon Sep 17 00:00:00 2001 From: Patrick Hilhorst Date: Mon, 7 May 2018 20:16:58 +0200 Subject: unixtools: use 2-space indent --- pkgs/top-level/unix-tools.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'pkgs/top-level/unix-tools.nix') diff --git a/pkgs/top-level/unix-tools.nix b/pkgs/top-level/unix-tools.nix index 6d6e2b2f251..36fba3fbd47 100644 --- a/pkgs/top-level/unix-tools.nix +++ b/pkgs/top-level/unix-tools.nix @@ -131,8 +131,8 @@ let }; makeCompat = name': value: buildEnv { - name = name' + "-compat"; - paths = value; + name = name' + "-compat"; + paths = value; }; # Compatibility derivations -- cgit 1.4.1