From 277e0c36a00e018a0090a984af934165be704aaa Mon Sep 17 00:00:00 2001 From: Alejandro Soto Date: Thu, 25 Jul 2024 22:04:33 -0600 Subject: home/pass: implement pass-bcr --- pkgs/pass-bcr/bcr.bash | 25 +++++++++++++++++++++++++ pkgs/pass-bcr/completions/bash | 8 ++++++++ pkgs/pass-bcr/completions/zsh | 8 ++++++++ pkgs/pass-bcr/default.nix | 19 +++++++++++++++++++ 4 files changed, 60 insertions(+) create mode 100755 pkgs/pass-bcr/bcr.bash create mode 100644 pkgs/pass-bcr/completions/bash create mode 100644 pkgs/pass-bcr/completions/zsh create mode 100644 pkgs/pass-bcr/default.nix (limited to 'pkgs/pass-bcr') diff --git a/pkgs/pass-bcr/bcr.bash b/pkgs/pass-bcr/bcr.bash new file mode 100755 index 0000000..5d02748 --- /dev/null +++ b/pkgs/pass-bcr/bcr.bash @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +if [ $# -eq 0 ]; then + echo "Usage: $0 ..." >&2 + exit 1 +fi + +function index_for_each() { + keys="$1" + shift + + for entry in "$@"; do + if echo "$entry" | grep -vq "^[a-jA-J][1-5]$"; then + echo "Bad challenge: $entry" >&2 + exit 1 + fi + + echo "$entry: $(echo "$keys" | tail -n+$(echo "$entry" | tail -c+2) | head -1 | cut -d' ' -f$((1 + $(echo "$entry" | head -c1 | tr 'a-jA-J' '0-90-9'))))" + done +} + +index_for_each "$(pass show any/bank/bcr/default | grep -A6 '^Clave dinĂ¡mica:$' | tail -5 | sed 's/^[0-9]\s\+//g')" "$@" diff --git a/pkgs/pass-bcr/completions/bash b/pkgs/pass-bcr/completions/bash new file mode 100644 index 0000000..8fe1887 --- /dev/null +++ b/pkgs/pass-bcr/completions/bash @@ -0,0 +1,8 @@ +# pass-update completion file for bash + +PASSWORD_STORE_EXTENSION_COMMANDS+=(bcr) + +__password_store_extension_complete_bcr() { + local args=() + COMPREPLY+=($(compgen -W "${args[*]}" -- ${cur})) +} diff --git a/pkgs/pass-bcr/completions/zsh b/pkgs/pass-bcr/completions/zsh new file mode 100644 index 0000000..9d120a5 --- /dev/null +++ b/pkgs/pass-bcr/completions/zsh @@ -0,0 +1,8 @@ +#compdef pass-bcr +#description Clave dinĂ¡mica BCR + +_pass-ubcr () { + _arguments : +} + +_pass-bcr "$@" diff --git a/pkgs/pass-bcr/default.nix b/pkgs/pass-bcr/default.nix new file mode 100644 index 0000000..6db814c --- /dev/null +++ b/pkgs/pass-bcr/default.nix @@ -0,0 +1,19 @@ +{ stdenv, ... }: +stdenv.mkDerivation { + pname = "pass-bcr"; + version = "1.0"; + + src = ./.; + + installPhase = '' + runHook preInstall + + mkdir -p $out/{lib/password-store/extensions,share/{bash-completion/completions,zsh/site-functions}} + cp bcr.bash $out/lib/password-store/extensions + cp completions/zsh $out/share/zsh/site-functions/_pass-bcr + cp completions/bash $out/share/bash-completion/completions/pass-bcr + chmod +x $out/lib/password-store/extensions/bcr.bash + + runHook postInstall + ''; +} -- cgit v1.2.3