From a9f4ad7586bfb543cdcdeacf93b71bdce506621a Mon Sep 17 00:00:00 2001 From: tv Date: Tue, 20 Jun 2017 19:30:14 +0200 Subject: concat: RIP --- krebs/5pkgs/writers.nix | 26 ------------------- lass/1systems/iso.nix | 31 +++++++++++++---------- lass/2configs/htop.nix | 67 ++++++++++++++++++++++++++----------------------- lass/2configs/mail.nix | 15 ++++++----- lass/2configs/mc.nix | 25 ++++++++++-------- lass/2configs/mpv.nix | 15 ++++++----- lass/2configs/vim.nix | 19 ++++++++------ makefu/1systems/iso.nix | 31 +++++++++++++---------- tv/2configs/htop.nix | 67 ++++++++++++++++++++++++++----------------------- tv/2configs/vim.nix | 27 +++++++++++--------- 10 files changed, 164 insertions(+), 159 deletions(-) diff --git a/krebs/5pkgs/writers.nix b/krebs/5pkgs/writers.nix index 8ea9c37d5..c4fb8cd83 100644 --- a/krebs/5pkgs/writers.nix +++ b/krebs/5pkgs/writers.nix @@ -1,32 +1,6 @@ pkgs: oldpkgs: with import ; { - - # Combine a list of derivations using symlinks. Paths in later derivations - # take precedence over earlier ones. - # - # Example: create wrapper but retain all other files (man pages etc.) - # - # { - # nixpkgs.config.packageOverrides = super: { - # hello = pkgs.concat "hello" [ - # super.hello - # (pkgs.writeDashBin "hello" '' - # echo OMG - # echo exec ${super.hello}/bin/hello "$@" - # '') - # ]; - # }; - # } - # - concat = name: xs: pkgs.runCommand name {} '' - mkdir $out - ${flip concatMapStrings xs (x: '' - cp --remove-destination -vrs ${x}/* $out - find $out -type d -exec chmod -v u+rwx {} + - '')} - ''; - execve = name: { filename, argv ? null, envp ? {}, destination ? "" }: let in pkgs.writeC name { inherit destination; } /* c */ '' #include diff --git a/lass/1systems/iso.nix b/lass/1systems/iso.nix index eaeb1991f..8b2e82d31 100644 --- a/lass/1systems/iso.nix +++ b/lass/1systems/iso.nix @@ -17,19 +17,24 @@ with import ; # my life sucks nixpkgs.config.packageOverrides = super: { irc-announce = super.callPackage { - pkgs = pkgs // { coreutils = pkgs.concat "coreutils-hack" [ - pkgs.coreutils - (pkgs.writeDashBin "tee" '' - if test "$1" = /dev/stderr; then - while read -r line; do - echo "$line" - echo "$line" >&2 - done - else - ${super.coreutils}/bin/tee "$@" - fi - '') - ];}; + pkgs = pkgs // { + coreutils = pkgs.symlinkJoin { + name = "coreutils-hack"; + paths = [ + pkgs.coreutils + (pkgs.writeDashBin "tee" '' + if test "$1" = /dev/stderr; then + while read -r line; do + echo "$line" + echo "$line" >&2 + done + else + ${super.coreutils}/bin/tee "$@" + fi + '') + ]; + }; + }; }; }; boot.kernelParams = [ "copytoram" ]; diff --git a/lass/2configs/htop.nix b/lass/2configs/htop.nix index 69e04a05b..ec86d4120 100644 --- a/lass/2configs/htop.nix +++ b/lass/2configs/htop.nix @@ -5,37 +5,40 @@ with import ; { security.hideProcessInformation = true; nixpkgs.config.packageOverrides = super: { - htop = pkgs.concat "htop" [ - super.htop - (pkgs.writeDashBin "htop" '' - export HTOPRC=${pkgs.writeText "htoprc" '' - fields=0 48 17 18 38 39 40 2 46 47 49 1 - sort_key=46 - sort_direction=1 - hide_threads=0 - hide_kernel_threads=1 - hide_userland_threads=0 - shadow_other_users=1 - show_thread_names=1 - show_program_path=1 - highlight_base_name=1 - highlight_megabytes=1 - highlight_threads=1 - tree_view=1 - header_margin=1 - detailed_cpu_time=0 - cpu_count_from_zero=0 - update_process_names=0 - account_guest_in_cpu_meter=1 - color_scheme=6 - delay=15 - left_meters=LeftCPUs2 RightCPUs2 Memory Swap - left_meter_modes=1 1 1 1 - right_meters=Uptime Tasks LoadAverage Battery - right_meter_modes=2 2 2 2 - ''} - exec ${super.htop}/bin/htop "$@" - '') - ]; + htop = pkgs.symlinkJoin { + name = "htop"; + paths = [ + super.htop + (pkgs.writeDashBin "htop" '' + export HTOPRC=${pkgs.writeText "htoprc" '' + fields=0 48 17 18 38 39 40 2 46 47 49 1 + sort_key=46 + sort_direction=1 + hide_threads=0 + hide_kernel_threads=1 + hide_userland_threads=0 + shadow_other_users=1 + show_thread_names=1 + show_program_path=1 + highlight_base_name=1 + highlight_megabytes=1 + highlight_threads=1 + tree_view=1 + header_margin=1 + detailed_cpu_time=0 + cpu_count_from_zero=0 + update_process_names=0 + account_guest_in_cpu_meter=1 + color_scheme=6 + delay=15 + left_meters=LeftCPUs2 RightCPUs2 Memory Swap + left_meter_modes=1 1 1 1 + right_meters=Uptime Tasks LoadAverage Battery + right_meter_modes=2 2 2 2 + ''} + exec ${super.htop}/bin/htop "$@" + '') + ]; + }; }; } diff --git a/lass/2configs/mail.nix b/lass/2configs/mail.nix index 41c7bceb2..5748b6eaf 100644 --- a/lass/2configs/mail.nix +++ b/lass/2configs/mail.nix @@ -113,12 +113,15 @@ let macro index ~ ,@( 'Toggle sidebar' # toggle the sidebar ''; - mutt = pkgs.concat "mutt" [ - pkgs.neomutt - (pkgs.writeDashBin "mutt" '' - exec ${pkgs.neomutt}/bin/mutt -F ${muttrc} $@ - '') - ]; + mutt = pkgs.symlinkJoin { + name = "mutt"; + paths = [ + pkgs.neomutt + (pkgs.writeDashBin "mutt" '' + exec ${pkgs.neomutt}/bin/mutt -F ${muttrc} $@ + '') + ]; + }; in { environment.systemPackages = [ diff --git a/lass/2configs/mc.nix b/lass/2configs/mc.nix index 513ee1bd0..62fd52f3f 100644 --- a/lass/2configs/mc.nix +++ b/lass/2configs/mc.nix @@ -322,17 +322,20 @@ let in { environment.systemPackages = [ - (pkgs.concat "mc" [ - pkgs.mc - (pkgs.writeDashBin "mc" '' - export MC_DATADIR=${pkgs.writeOut "mc-ext" { - "/mc.ext".link = mcExt; - "/sfs.ini".text = ""; - }}; - export TERM=xterm-256color - exec ${pkgs.mc}/bin/mc -S xoria256 "$@" - '') - ]) + (pkgs.symlinkJoin { + name = "mc"; + paths = [ + pkgs.mc + (pkgs.writeDashBin "mc" '' + export MC_DATADIR=${pkgs.writeOut "mc-ext" { + "/mc.ext".link = mcExt; + "/sfs.ini".text = ""; + }}; + export TERM=xterm-256color + exec ${pkgs.mc}/bin/mc -S xoria256 "$@" + '') + ]; + }) ]; } diff --git a/lass/2configs/mpv.nix b/lass/2configs/mpv.nix index bb068e7a1..c8b590857 100644 --- a/lass/2configs/mpv.nix +++ b/lass/2configs/mpv.nix @@ -7,12 +7,15 @@ let delete ]; - mpv = pkgs.concat "mpv" [ - pkgs.mpv - (pkgs.writeDashBin "mpv" '' - exec ${pkgs.mpv}/bin/mpv --no-config --script=${scripts} "$@" - '') - ]; + mpv = pkgs.symlinkJoin { + name = "mpv"; + paths = [ + pkgs.mpv + (pkgs.writeDashBin "mpv" '' + exec ${pkgs.mpv}/bin/mpv --no-config --script=${scripts} "$@" + '') + ]; + }; moveToDir = key: dir: pkgs.writeText "move-with-${key}.lua" '' tmp_dir = "${dir}" diff --git a/lass/2configs/vim.nix b/lass/2configs/vim.nix index 40f7eedde..b2b0c309a 100644 --- a/lass/2configs/vim.nix +++ b/lass/2configs/vim.nix @@ -207,14 +207,17 @@ let alldirs = attrValues dirs ++ map dirOf (attrValues files); in unique (sort lessThan alldirs); - vim = pkgs.concat "vim" [ - pkgs.vim - (pkgs.writeDashBin "vim" '' - set -efu - (umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs}) - exec ${pkgs.vim}/bin/vim "$@" - '') - ]; + vim = pkgs.symlinkJoin { + name = "vim"; + paths = [ + pkgs.vim + (pkgs.writeDashBin "vim" '' + set -efu + (umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs}) + exec ${pkgs.vim}/bin/vim "$@" + '') + ]; + }; hs.vim = pkgs.writeText "hs.vim" '' syn region String start=+\[[[:alnum:]]*|+ end=+|]+ diff --git a/makefu/1systems/iso.nix b/makefu/1systems/iso.nix index 1e4f9c55f..c679241e5 100644 --- a/makefu/1systems/iso.nix +++ b/makefu/1systems/iso.nix @@ -32,19 +32,24 @@ with import ; # hack `tee` behavior nixpkgs.config.packageOverrides = super: { irc-announce = super.callPackage { - pkgs = pkgs // { coreutils = pkgs.concat "coreutils-hack" [ - pkgs.coreutils - (pkgs.writeDashBin "tee" '' - if test "$1" = /dev/stderr; then - while read -r line; do - echo "$line" - echo "$line" >&2 - done - else - ${super.coreutils}/bin/tee "$@" - fi - '') - ];}; + pkgs = pkgs // { + coreutils = pkgs.symlinkJoin { + name = "coreutils-hack"; + paths = [ + pkgs.coreutils + (pkgs.writeDashBin "tee" '' + if test "$1" = /dev/stderr; then + while read -r line; do + echo "$line" + echo "$line" >&2 + done + else + ${super.coreutils}/bin/tee "$@" + fi + '') + ]; + }; + }; }; }; } diff --git a/tv/2configs/htop.nix b/tv/2configs/htop.nix index 409df2516..5d7e0272b 100644 --- a/tv/2configs/htop.nix +++ b/tv/2configs/htop.nix @@ -4,37 +4,40 @@ with import ; { nixpkgs.config.packageOverrides = super: { - htop = pkgs.concat "htop" [ - super.htop - (pkgs.writeDashBin "htop" '' - export HTOPRC=${pkgs.writeText "htoprc" '' - fields=0 48 17 18 38 39 40 2 46 47 49 1 - sort_key=46 - sort_direction=1 - hide_threads=0 - hide_kernel_threads=1 - hide_userland_threads=0 - shadow_other_users=1 - show_thread_names=1 - show_program_path=1 - highlight_base_name=1 - highlight_megabytes=1 - highlight_threads=1 - tree_view=1 - header_margin=1 - detailed_cpu_time=0 - cpu_count_from_zero=0 - update_process_names=0 - account_guest_in_cpu_meter=1 - color_scheme=0 - delay=15 - left_meters=LeftCPUs2 RightCPUs2 Memory Swap - left_meter_modes=1 1 1 1 - right_meters=Uptime Tasks LoadAverage Battery - right_meter_modes=2 2 2 2 - ''} - exec ${super.htop}/bin/htop "$@" - '') - ]; + htop = pkgs.symlinkJoin { + name = "htop"; + paths = [ + super.htop + (pkgs.writeDashBin "htop" '' + export HTOPRC=${pkgs.writeText "htoprc" '' + fields=0 48 17 18 38 39 40 2 46 47 49 1 + sort_key=46 + sort_direction=1 + hide_threads=0 + hide_kernel_threads=1 + hide_userland_threads=0 + shadow_other_users=1 + show_thread_names=1 + show_program_path=1 + highlight_base_name=1 + highlight_megabytes=1 + highlight_threads=1 + tree_view=1 + header_margin=1 + detailed_cpu_time=0 + cpu_count_from_zero=0 + update_process_names=0 + account_guest_in_cpu_meter=1 + color_scheme=0 + delay=15 + left_meters=LeftCPUs2 RightCPUs2 Memory Swap + left_meter_modes=1 1 1 1 + right_meters=Uptime Tasks LoadAverage Battery + right_meter_modes=2 2 2 2 + ''} + exec ${super.htop}/bin/htop "$@" + '') + ]; + }; }; } diff --git a/tv/2configs/vim.nix b/tv/2configs/vim.nix index b534c3f42..93ed46dc8 100644 --- a/tv/2configs/vim.nix +++ b/tv/2configs/vim.nix @@ -297,18 +297,21 @@ let { alldirs = attrValues dirs ++ map dirOf (attrValues files); in unique (sort lessThan alldirs); - vim-wrapper = pkgs.concat "vim" [ - pkgs.vim_configurable - (pkgs.writeDashBin "vim" '' - set -efu - (umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs}) - if test $# = 0 && test -e "$PWD/.ctrlpignore"; then - set -- +CtrlP - fi - # vim-orgmode needs Python, thus vim_configurable instead of just vim - exec ${pkgs.vim_configurable}/bin/vim "$@" - '') - ]; + vim-wrapper = pkgs.symlinkJoin { + name = "vim"; + paths = [ + pkgs.vim_configurable + (pkgs.writeDashBin "vim" '' + set -efu + (umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs}) + if test $# = 0 && test -e "$PWD/.ctrlpignore"; then + set -- +CtrlP + fi + # vim-orgmode needs Python, thus vim_configurable instead of just vim + exec ${pkgs.vim_configurable}/bin/vim "$@" + '') + ]; + }; vimrc = pkgs.writeText "vimrc" '' set nocompatible -- cgit v1.2.3