summaryrefslogtreecommitdiff
path: root/pkgs/pass-bcr
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/pass-bcr')
-rwxr-xr-xpkgs/pass-bcr/bcr.bash25
-rw-r--r--pkgs/pass-bcr/completions/bash8
-rw-r--r--pkgs/pass-bcr/completions/zsh8
-rw-r--r--pkgs/pass-bcr/default.nix19
4 files changed, 60 insertions, 0 deletions
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 <challenge>..." >&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
+ '';
+}