nix/desktop/dev.nix
2025-07-20 23:50:00 +10:00

77 lines
1.7 KiB
Nix

{
pkgs,
...
}:
let
getPkgs = builtins.attrValues;
in
{
hm.home.packages =
getPkgs {
inherit (pkgs)
direnv
;
}
++ [
# from https://gist.github.com/mikeboiko/58ab730afd65bca0a125bc12b6f4670d
(pkgs.writeTextFile {
name = "rbw-helper";
text = ''
declare -A params
if [ "x$1" == "xget" ]; then
read line
while [ -n "$line" ]; do
key=$\{line%%=*}
value=$\{line#*=}
params[$key]=$value
read line
done
if [ "x$\{params['protocol']}" != "xhttps" ]; then
exit
fi
if [ -z "$\{params["host"]}" ]; then
exit
fi
rbw ls > /dev/null 2>&1
if [ $? -ne 0 ]; then
echo "Please login to rbw to use git credential helper" > /dev/stderr
exit
fi
user=`rbw get --full $\{params["host"]} | grep "Username:" | cut -d' ' -f2-`
pass=`rbw get $\{params["host"]}`
if [ "x$user" == "x" ] || [ "x$pass" == "x" ]; then
echo "Couldn't find host in rbw DB." > /dev/stderr
exit
fi
echo username=$user
echo password=$pass
fi
'';
executable = true;
destination = "/bin/git-credential-rw";
})
];
hm.programs.direnv = {
enable = true;
nix-direnv = {
enable = true;
};
enableFishIntegration = true;
};
hm.programs.git = {
enable = true;
userName = "atagen";
userEmail = "boss@atagen.co";
};
}