From e93ff0ee9e4234fb9c67f2314c88fc9b92ab893e Mon Sep 17 00:00:00 2001 From: "koizumi.aoi" Date: Thu, 13 Oct 2022 15:02:40 +0000 Subject: [PATCH] Add `kanakomenu` and `kanakototp` addons, etc. Signed-off-by: Aoi K git-svn-id: file:///srv/svn/repo/kanako/trunk@9 62e5d677-aa6e-8c4a-b8cb-b9416171cb8e --- README.md | 11 +++++++++++ config.mk | 2 ++ kanako | 2 +- kanako.conf.example | 4 ++-- kanakomenu | 14 ++++++++++++++ kanakomenu.conf.example | 4 ++++ kanakototp | 12 ++++++++++++ mkfile | 27 ++++++++++++++++++++------- 8 files changed, 66 insertions(+), 10 deletions(-) create mode 100755 kanakomenu create mode 100644 kanakomenu.conf.example create mode 100755 kanakototp diff --git a/README.md b/README.md index d3b3b2b..dcd54ac 100644 --- a/README.md +++ b/README.md @@ -11,6 +11,17 @@ the adaptable password manager. * `ls(1)` or `tree(1)` for printing a list * `mandoc(1)` for documentation +## Add-ons + +### kanakomenu +quick graphical front-end for kanako, works with either of `dmenu(1)` +or `bemenu(1)`, useful for copying passwords to clipboard. it's configured +through kanakomenu.conf + +### kanakototp +time-based one time password addon for kanako, requires `oathtool(1)` +from oath-toolkit. + ## License * [Discordian Public License, version 2.3](https://gt.kalli.st/novaburst/discordian-public-license/src/branch/discordia/DPL-2.3) diff --git a/config.mk b/config.mk index a67a797..6f2c1f4 100644 --- a/config.mk +++ b/config.mk @@ -1 +1,3 @@ +EXEC_MODE=0755 +FILE_MODE=0600 PREFIX=/usr/local diff --git a/kanako b/kanako index d6dd5ac..0baa0f5 100755 --- a/kanako +++ b/kanako @@ -16,7 +16,7 @@ if test -f "${conf_dir}/kanako.conf"; then . "${conf_dir}/kanako.conf"; else echo "Configuration file has not been found!" - echo "Copy kanako.conf.example from the repository," + echo "Copy kanako.conf from the examples directory," echo "and edit accordingly." exit 1 fi diff --git a/kanako.conf.example b/kanako.conf.example index b961fe2..c28ce61 100644 --- a/kanako.conf.example +++ b/kanako.conf.example @@ -1,9 +1,9 @@ -# [General] +# Configuration file for kanako(1) + #clip="xclip -i" #clip="wl-copy --primary" #list_cmd="tree" -# [Encryption] ## age #encrypt_cmd="age" #encrypt_args="-e -R ${key_dir}/pub.age --armor" diff --git a/kanakomenu b/kanakomenu new file mode 100755 index 0000000..596085c --- /dev/null +++ b/kanakomenu @@ -0,0 +1,14 @@ +#!/bin/sh -e +readonly conf_dir="${conf_dir:-$HOME/.config/kanako}" +readonly store_dir="${store_dir:-$HOME/.kanako-store}" + +if test -f "${conf_dir}"/kanakomenu.conf; then + . "${conf_dir}"/kanakomenu.conf +else + echo "Configuration file has not been found!" + echo "Copy kanakomenu.conf from the examples directory," + echo "and edit accordingly" + exit 1 +fi + +find . -name '*.enc' | sort | sed 's,^\./,,;s,\.enc$,,' | ${menu_prog} | xargs $(which kanako) -c diff --git a/kanakomenu.conf.example b/kanakomenu.conf.example new file mode 100644 index 0000000..1ed9752 --- /dev/null +++ b/kanakomenu.conf.example @@ -0,0 +1,4 @@ +# Configuration file for kanakomenu(1) + +#menu_prog="bemenu -p kanako" +#menu_prog="dmenu -p kanako" diff --git a/kanakototp b/kanakototp new file mode 100755 index 0000000..8eba861 --- /dev/null +++ b/kanakototp @@ -0,0 +1,12 @@ +#!/bin/sh -e +# extracted from https://rgz.ee/bin/pass + +totp_seed="$(kanako -v "$@" | grep 'totp: ' | head -n1 | cut -d' ' -f2)" +if ! [ -z "$totp_seed" ]; then + if command -v oathtool >/dev/null 2>&1; then + oathtool --totp -b "$totp_seed" + else + echo 'oathtool(1) should be installed' + exit 1 + fi +fi diff --git a/mkfile b/mkfile index 9be4141..1703cd1 100644 --- a/mkfile +++ b/mkfile @@ -1,9 +1,22 @@