109 lines
2.8 KiB
Nix
109 lines
2.8 KiB
Nix
{
|
|
inputs,
|
|
cell,
|
|
}: let
|
|
pkgs = inputs.nixpkgs;
|
|
in {
|
|
inherit (inputs.cells.dotfiles.packages) kpcli-py;
|
|
kpxc = let
|
|
inherit (pkgs) keepassxc;
|
|
in
|
|
if pkgs.stdenv.isDarwin
|
|
then
|
|
pkgs.stdenv.mkDerivation {
|
|
pname = "keepassxc-darwin";
|
|
version = keepassxc.version;
|
|
|
|
phases = ["installPhase"];
|
|
installPhase = ''
|
|
mkdir -p $out/bin
|
|
cp -r ${keepassxc}/* $out/
|
|
|
|
${
|
|
if pkgs.stdenv.hostPlatform.isDarwin
|
|
then ''
|
|
for exe in $(find $out/Applications/KeePassXC.app/Contents/MacOS/ -type f -executable); do
|
|
exe_name=$(basename $exe)
|
|
ln -s $exe $out/bin/$exe_name
|
|
done
|
|
''
|
|
else ""
|
|
}
|
|
'';
|
|
meta =
|
|
keepassxc.meta
|
|
// {
|
|
description = "Wrapper for keepassxc and keepassxc-cli with additional Darwin-specific fixes";
|
|
};
|
|
}
|
|
else keepassxc;
|
|
|
|
pixi-edit = inputs.cells.dev.packages.pixi-edit;
|
|
|
|
nil = inputs.nixpkgs.nil;
|
|
|
|
# These should probably go to dotfiles {{{
|
|
git-plus = pkgs.symlinkJoin {
|
|
name = "pegasust-git-plus";
|
|
paths = [
|
|
(pkgs.writeShellScriptBin "git-lola" ''
|
|
git log --graph --decorate --color=always --abbrev-commit --all\
|
|
--pretty=format:'%C(auto)%h %d %C(cyan)%s %C(green)(%cr)%C(reset)' |
|
|
while IFS= read -r line; do
|
|
# Format the relative time
|
|
line=$(echo "$line" | sed -e 's/ minute/ min/' \
|
|
-e 's/ week/ wk/' \
|
|
-e 's/ hour/ hr/' \
|
|
-e 's/ month/ mo/' \
|
|
-e 's/ year/ yr/' \
|
|
-e 's/ ago//')
|
|
|
|
# Print the formatted line
|
|
echo "$line"
|
|
done | less -R
|
|
'')
|
|
(pkgs.writeShellScriptBin "git-lol" ''
|
|
git log --graph --decorate --color=always --abbrev-commit \
|
|
--pretty=format:'%C(auto)%h %d %C(cyan)%s %C(green)(%cr)%C(reset)' |
|
|
while IFS= read -r line; do
|
|
# Format the relative time
|
|
line=$(echo "$line" | sed -e 's/ minute/ min/' \
|
|
-e 's/ week/ wk/' \
|
|
-e 's/ hour/ hr/' \
|
|
-e 's/ month/ mo/' \
|
|
-e 's/ year/ yr/' \
|
|
-e 's/ ago//')
|
|
|
|
# Print the formatted line
|
|
echo "$line"
|
|
done | less -R
|
|
'')
|
|
];
|
|
};
|
|
|
|
nixr = pkgs.writeShellScriptBin "nixr" ''
|
|
rc_path=""
|
|
|
|
p0="$(pwd)/.repl.nix"
|
|
p1=~/.config/.repl.nix
|
|
if [ -f $p0 ]; then
|
|
echo "[nixr]: trying $p0"
|
|
rc_path="$p0"
|
|
elif [ -f $p1 ]; then
|
|
echo "[nixr]: trying $p1"
|
|
rc_path="$p1"
|
|
fi
|
|
|
|
if [ -n "$rc_path" ]; then
|
|
echo "nix-repl: sourcing from $rc_path; content:"
|
|
echo '```'
|
|
cat $rc_path
|
|
echo '```'
|
|
nix repl --file "$rc_path"
|
|
else
|
|
nix repl
|
|
fi
|
|
'';
|
|
# }}}
|
|
}
|