concat: RIP

This commit is contained in:
tv 2017-06-20 19:30:14 +02:00
parent 57c6b890f9
commit a9f4ad7586
10 changed files with 164 additions and 159 deletions

View File

@ -1,32 +1,6 @@
pkgs: oldpkgs: pkgs: oldpkgs:
with import <stockholm/lib>; with import <stockholm/lib>;
{ {
# 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 execve = name: { filename, argv ? null, envp ? {}, destination ? "" }: let
in pkgs.writeC name { inherit destination; } /* c */ '' in pkgs.writeC name { inherit destination; } /* c */ ''
#include <unistd.h> #include <unistd.h>

View File

@ -17,19 +17,24 @@ with import <stockholm/lib>;
# my life sucks # my life sucks
nixpkgs.config.packageOverrides = super: { nixpkgs.config.packageOverrides = super: {
irc-announce = super.callPackage <stockholm/krebs/5pkgs/simple/irc-announce> { irc-announce = super.callPackage <stockholm/krebs/5pkgs/simple/irc-announce> {
pkgs = pkgs // { coreutils = pkgs.concat "coreutils-hack" [ pkgs = pkgs // {
pkgs.coreutils coreutils = pkgs.symlinkJoin {
(pkgs.writeDashBin "tee" '' name = "coreutils-hack";
if test "$1" = /dev/stderr; then paths = [
while read -r line; do pkgs.coreutils
echo "$line" (pkgs.writeDashBin "tee" ''
echo "$line" >&2 if test "$1" = /dev/stderr; then
done while read -r line; do
else echo "$line"
${super.coreutils}/bin/tee "$@" echo "$line" >&2
fi done
'') else
];}; ${super.coreutils}/bin/tee "$@"
fi
'')
];
};
};
}; };
}; };
boot.kernelParams = [ "copytoram" ]; boot.kernelParams = [ "copytoram" ];

View File

@ -5,37 +5,40 @@ with import <stockholm/lib>;
{ {
security.hideProcessInformation = true; security.hideProcessInformation = true;
nixpkgs.config.packageOverrides = super: { nixpkgs.config.packageOverrides = super: {
htop = pkgs.concat "htop" [ htop = pkgs.symlinkJoin {
super.htop name = "htop";
(pkgs.writeDashBin "htop" '' paths = [
export HTOPRC=${pkgs.writeText "htoprc" '' super.htop
fields=0 48 17 18 38 39 40 2 46 47 49 1 (pkgs.writeDashBin "htop" ''
sort_key=46 export HTOPRC=${pkgs.writeText "htoprc" ''
sort_direction=1 fields=0 48 17 18 38 39 40 2 46 47 49 1
hide_threads=0 sort_key=46
hide_kernel_threads=1 sort_direction=1
hide_userland_threads=0 hide_threads=0
shadow_other_users=1 hide_kernel_threads=1
show_thread_names=1 hide_userland_threads=0
show_program_path=1 shadow_other_users=1
highlight_base_name=1 show_thread_names=1
highlight_megabytes=1 show_program_path=1
highlight_threads=1 highlight_base_name=1
tree_view=1 highlight_megabytes=1
header_margin=1 highlight_threads=1
detailed_cpu_time=0 tree_view=1
cpu_count_from_zero=0 header_margin=1
update_process_names=0 detailed_cpu_time=0
account_guest_in_cpu_meter=1 cpu_count_from_zero=0
color_scheme=6 update_process_names=0
delay=15 account_guest_in_cpu_meter=1
left_meters=LeftCPUs2 RightCPUs2 Memory Swap color_scheme=6
left_meter_modes=1 1 1 1 delay=15
right_meters=Uptime Tasks LoadAverage Battery left_meters=LeftCPUs2 RightCPUs2 Memory Swap
right_meter_modes=2 2 2 2 left_meter_modes=1 1 1 1
''} right_meters=Uptime Tasks LoadAverage Battery
exec ${super.htop}/bin/htop "$@" right_meter_modes=2 2 2 2
'') ''}
]; exec ${super.htop}/bin/htop "$@"
'')
];
};
}; };
} }

View File

@ -113,12 +113,15 @@ let
macro index ~ ,@( 'Toggle sidebar' # toggle the sidebar macro index ~ ,@( 'Toggle sidebar' # toggle the sidebar
''; '';
mutt = pkgs.concat "mutt" [ mutt = pkgs.symlinkJoin {
pkgs.neomutt name = "mutt";
(pkgs.writeDashBin "mutt" '' paths = [
exec ${pkgs.neomutt}/bin/mutt -F ${muttrc} $@ pkgs.neomutt
'') (pkgs.writeDashBin "mutt" ''
]; exec ${pkgs.neomutt}/bin/mutt -F ${muttrc} $@
'')
];
};
in { in {
environment.systemPackages = [ environment.systemPackages = [

View File

@ -322,17 +322,20 @@ let
in { in {
environment.systemPackages = [ environment.systemPackages = [
(pkgs.concat "mc" [ (pkgs.symlinkJoin {
pkgs.mc name = "mc";
(pkgs.writeDashBin "mc" '' paths = [
export MC_DATADIR=${pkgs.writeOut "mc-ext" { pkgs.mc
"/mc.ext".link = mcExt; (pkgs.writeDashBin "mc" ''
"/sfs.ini".text = ""; export MC_DATADIR=${pkgs.writeOut "mc-ext" {
}}; "/mc.ext".link = mcExt;
export TERM=xterm-256color "/sfs.ini".text = "";
exec ${pkgs.mc}/bin/mc -S xoria256 "$@" }};
'') export TERM=xterm-256color
]) exec ${pkgs.mc}/bin/mc -S xoria256 "$@"
'')
];
})
]; ];
} }

View File

@ -7,12 +7,15 @@ let
delete delete
]; ];
mpv = pkgs.concat "mpv" [ mpv = pkgs.symlinkJoin {
pkgs.mpv name = "mpv";
(pkgs.writeDashBin "mpv" '' paths = [
exec ${pkgs.mpv}/bin/mpv --no-config --script=${scripts} "$@" pkgs.mpv
'') (pkgs.writeDashBin "mpv" ''
]; exec ${pkgs.mpv}/bin/mpv --no-config --script=${scripts} "$@"
'')
];
};
moveToDir = key: dir: pkgs.writeText "move-with-${key}.lua" '' moveToDir = key: dir: pkgs.writeText "move-with-${key}.lua" ''
tmp_dir = "${dir}" tmp_dir = "${dir}"

View File

@ -207,14 +207,17 @@ let
alldirs = attrValues dirs ++ map dirOf (attrValues files); alldirs = attrValues dirs ++ map dirOf (attrValues files);
in unique (sort lessThan alldirs); in unique (sort lessThan alldirs);
vim = pkgs.concat "vim" [ vim = pkgs.symlinkJoin {
pkgs.vim name = "vim";
(pkgs.writeDashBin "vim" '' paths = [
set -efu pkgs.vim
(umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs}) (pkgs.writeDashBin "vim" ''
exec ${pkgs.vim}/bin/vim "$@" set -efu
'') (umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs})
]; exec ${pkgs.vim}/bin/vim "$@"
'')
];
};
hs.vim = pkgs.writeText "hs.vim" '' hs.vim = pkgs.writeText "hs.vim" ''
syn region String start=+\[[[:alnum:]]*|+ end=+|]+ syn region String start=+\[[[:alnum:]]*|+ end=+|]+

View File

@ -32,19 +32,24 @@ with import <stockholm/lib>;
# hack `tee` behavior # hack `tee` behavior
nixpkgs.config.packageOverrides = super: { nixpkgs.config.packageOverrides = super: {
irc-announce = super.callPackage <stockholm/krebs/5pkgs/simple/irc-announce> { irc-announce = super.callPackage <stockholm/krebs/5pkgs/simple/irc-announce> {
pkgs = pkgs // { coreutils = pkgs.concat "coreutils-hack" [ pkgs = pkgs // {
pkgs.coreutils coreutils = pkgs.symlinkJoin {
(pkgs.writeDashBin "tee" '' name = "coreutils-hack";
if test "$1" = /dev/stderr; then paths = [
while read -r line; do pkgs.coreutils
echo "$line" (pkgs.writeDashBin "tee" ''
echo "$line" >&2 if test "$1" = /dev/stderr; then
done while read -r line; do
else echo "$line"
${super.coreutils}/bin/tee "$@" echo "$line" >&2
fi done
'') else
];}; ${super.coreutils}/bin/tee "$@"
fi
'')
];
};
};
}; };
}; };
} }

View File

@ -4,37 +4,40 @@ with import <stockholm/lib>;
{ {
nixpkgs.config.packageOverrides = super: { nixpkgs.config.packageOverrides = super: {
htop = pkgs.concat "htop" [ htop = pkgs.symlinkJoin {
super.htop name = "htop";
(pkgs.writeDashBin "htop" '' paths = [
export HTOPRC=${pkgs.writeText "htoprc" '' super.htop
fields=0 48 17 18 38 39 40 2 46 47 49 1 (pkgs.writeDashBin "htop" ''
sort_key=46 export HTOPRC=${pkgs.writeText "htoprc" ''
sort_direction=1 fields=0 48 17 18 38 39 40 2 46 47 49 1
hide_threads=0 sort_key=46
hide_kernel_threads=1 sort_direction=1
hide_userland_threads=0 hide_threads=0
shadow_other_users=1 hide_kernel_threads=1
show_thread_names=1 hide_userland_threads=0
show_program_path=1 shadow_other_users=1
highlight_base_name=1 show_thread_names=1
highlight_megabytes=1 show_program_path=1
highlight_threads=1 highlight_base_name=1
tree_view=1 highlight_megabytes=1
header_margin=1 highlight_threads=1
detailed_cpu_time=0 tree_view=1
cpu_count_from_zero=0 header_margin=1
update_process_names=0 detailed_cpu_time=0
account_guest_in_cpu_meter=1 cpu_count_from_zero=0
color_scheme=0 update_process_names=0
delay=15 account_guest_in_cpu_meter=1
left_meters=LeftCPUs2 RightCPUs2 Memory Swap color_scheme=0
left_meter_modes=1 1 1 1 delay=15
right_meters=Uptime Tasks LoadAverage Battery left_meters=LeftCPUs2 RightCPUs2 Memory Swap
right_meter_modes=2 2 2 2 left_meter_modes=1 1 1 1
''} right_meters=Uptime Tasks LoadAverage Battery
exec ${super.htop}/bin/htop "$@" right_meter_modes=2 2 2 2
'') ''}
]; exec ${super.htop}/bin/htop "$@"
'')
];
};
}; };
} }

View File

@ -297,18 +297,21 @@ let {
alldirs = attrValues dirs ++ map dirOf (attrValues files); alldirs = attrValues dirs ++ map dirOf (attrValues files);
in unique (sort lessThan alldirs); in unique (sort lessThan alldirs);
vim-wrapper = pkgs.concat "vim" [ vim-wrapper = pkgs.symlinkJoin {
pkgs.vim_configurable name = "vim";
(pkgs.writeDashBin "vim" '' paths = [
set -efu pkgs.vim_configurable
(umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs}) (pkgs.writeDashBin "vim" ''
if test $# = 0 && test -e "$PWD/.ctrlpignore"; then set -efu
set -- +CtrlP (umask 0077; exec ${pkgs.coreutils}/bin/mkdir -p ${toString mkdirs})
fi if test $# = 0 && test -e "$PWD/.ctrlpignore"; then
# vim-orgmode needs Python, thus vim_configurable instead of just vim set -- +CtrlP
exec ${pkgs.vim_configurable}/bin/vim "$@" fi
'') # vim-orgmode needs Python, thus vim_configurable instead of just vim
]; exec ${pkgs.vim_configurable}/bin/vim "$@"
'')
];
};
vimrc = pkgs.writeText "vimrc" '' vimrc = pkgs.writeText "vimrc" ''
set nocompatible set nocompatible