diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | Makefile | 4 | ||||
l--------- | README.md | 2 | ||||
-rw-r--r-- | development.md (renamed from development.mdwn) | 0 | ||||
-rw-r--r-- | index.md (renamed from index.mdwn) | 0 | ||||
-rwxr-xr-x | keyringer | 2 | ||||
-rwxr-xr-x | lib/keyringer/actions/append | 1 | ||||
-rwxr-xr-x | lib/keyringer/actions/decrypt | 2 | ||||
-rwxr-xr-x | lib/keyringer/actions/find | 2 | ||||
-rwxr-xr-x | lib/keyringer/actions/pwgen | 2 | ||||
-rwxr-xr-x | lib/keyringer/actions/recipients | 4 | ||||
-rwxr-xr-x | lib/keyringer/actions/recrypt | 3 | ||||
-rwxr-xr-x | lib/keyringer/actions/sclip | 6 | ||||
-rwxr-xr-x | lib/keyringer/actions/teardown | 3 | ||||
-rwxr-xr-x | lib/keyringer/actions/tree | 7 | ||||
-rwxr-xr-x | lib/keyringer/functions | 13 | ||||
-rw-r--r-- | share/man/keyringer.1 | 30 | ||||
-rw-r--r-- | share/man/keyringer.1.md (renamed from share/man/keyringer.1.mdwn) | 0 |
18 files changed, 62 insertions, 27 deletions
@@ -1,3 +1,11 @@ +2017-11-03 - 0.5.2 - Silvio Rhatto <rhatto@riseup.net> + + Fixed incorrect exit statement on append, thanks jamie (#79) + + Fixed possible race condition on append-batch/decrypt, thanks jamie (#80) + + Various fixes for running keyringer on *BSD systems, thanks rysiek + 2017-05-31 - 0.5.1 - Silvio Rhatto <rhatto@riseup.net> Do not abort when keys are expired on actions that are @@ -34,7 +34,7 @@ install_bin: $(INSTALL) -D --mode=0755 keyringer $(DESTDIR)/$(PREFIX)/bin/keyringer install_doc: - $(INSTALL) -D --mode=0644 index.mdwn $(DESTDIR)/$(PREFIX)/share/doc/$(PACKAGE)/README.md + $(INSTALL) -D --mode=0644 index.md $(DESTDIR)/$(PREFIX)/share/doc/$(PACKAGE)/README.md $(INSTALL) -D --mode=0644 LICENSE $(DESTDIR)/$(PREFIX)/share/doc/$(PACKAGE)/LICENSE install_man: @@ -50,7 +50,7 @@ install: clean build_man: # Pipe output to sed to avoid http://lintian.debian.org/tags/hyphen-used-as-minus-sign.html # Fixed in http://johnmacfarlane.net/pandoc/releases.html#pandoc-1.10-2013-01-19 - pandoc -s -w man share/man/keyringer.1.mdwn -o share/man/keyringer.1 + pandoc -s -w man share/man/keyringer.1.md -o share/man/keyringer.1 sed -i -e 's/--/\\-\\-/g' share/man/keyringer.1 tarball: @@ -1 +1 @@ -index.mdwn
\ No newline at end of file +index.md
\ No newline at end of file diff --git a/development.mdwn b/development.md index 2349c84..2349c84 100644 --- a/development.mdwn +++ b/development.md @@ -140,7 +140,7 @@ function keyringer_dispatch { # Config NAME="keyringer" -KEYRINGER_VERSION="0.5.1" +KEYRINGER_VERSION="0.5.2" CONFIG_VERSION="0.1" CONFIG_BASE="$HOME/.$NAME" CONFIG="$CONFIG_BASE/config" diff --git a/lib/keyringer/actions/append b/lib/keyringer/actions/append index 905867a..ccb25fb 100755 --- a/lib/keyringer/actions/append +++ b/lib/keyringer/actions/append @@ -6,7 +6,6 @@ # Load functions LIB="`dirname $0`/../functions" source "$LIB" readwrite $* || exit 1 -exit # Get file keyringer_get_file "$2" diff --git a/lib/keyringer/actions/decrypt b/lib/keyringer/actions/decrypt index e17f0e0..7442b29 100755 --- a/lib/keyringer/actions/decrypt +++ b/lib/keyringer/actions/decrypt @@ -11,7 +11,7 @@ source "$LIB" read $* || exit 1 keyringer_get_file "$2" # Decrypt -$GPG --use-agent -d "$KEYDIR/$FILE" +cat "$KEYDIR/$FILE" | $GPG --use-agent -d - # Exit exit "$?" diff --git a/lib/keyringer/actions/find b/lib/keyringer/actions/find index 043e80d..45b4f11 100755 --- a/lib/keyringer/actions/find +++ b/lib/keyringer/actions/find @@ -15,5 +15,5 @@ shift ARGS="`echo "$*" | sed -e "s|^/*||"`" # Run find command -cd "$KEYDIR/$RELATIVE_PATH" && find | grep -i "$ARGS" | sed -e 's|^./||g' +cd "$KEYDIR/$RELATIVE_PATH" && find ./ | grep -i "$ARGS" | sed -e 's|^./||g' cd "$CWD" diff --git a/lib/keyringer/actions/pwgen b/lib/keyringer/actions/pwgen index 1ca3829..3c03681 100755 --- a/lib/keyringer/actions/pwgen +++ b/lib/keyringer/actions/pwgen @@ -32,4 +32,4 @@ elif [ ! -z "$SIZE" ] && ! echo $SIZE | egrep -q '^[0-9]+$'; then fi # Encrypt and store a randomly-generated secret -keyringer_pwgen $SIZE | keyringer_exec encrypt "$BASEDIR" "$FILE" +keyringer_pwgen $SIZE | keyringer_exec encrypt-batch "$BASEDIR" "$FILE" && echo "Secret generated and stored." diff --git a/lib/keyringer/actions/recipients b/lib/keyringer/actions/recipients index 3c18516..889f73e 100755 --- a/lib/keyringer/actions/recipients +++ b/lib/keyringer/actions/recipients @@ -38,7 +38,9 @@ elif [ "$COMMAND" == "edit" ]; then keyringer_exec git "$BASEDIR" add "$RECIPIENTS_FILE_BASE" else echo "Please specify one recipient to edit among the available:" - ls $RECIPIENTS | sed -e 's/^/\t/' + # \t is a GNU extension + # https://stackoverflow.com/questions/8400602/sed-replace-literal-tab + ls $RECIPIENTS | sed -e "`printf 's/^/\t/'`" exit 1 fi else diff --git a/lib/keyringer/actions/recrypt b/lib/keyringer/actions/recrypt index d88a749..0e2f6a0 100755 --- a/lib/keyringer/actions/recrypt +++ b/lib/keyringer/actions/recrypt @@ -9,6 +9,7 @@ source "$LIB" readwrite $* || exit 1 # Recrypt a single secret function keyringer_recrypt { + # Get file keyringer_get_file "$1" @@ -39,7 +40,7 @@ function keyringer_recrypt { if [ ! -z "$2" ]; then keyringer_recrypt $2 else - cd $KEYDIR && find | while read file; do + cd $KEYDIR && find ./ | while read file; do if [ ! -d "$KEYDIR/$file" ]; then keyringer_recrypt "$file" fi diff --git a/lib/keyringer/actions/sclip b/lib/keyringer/actions/sclip index 156762a..de9c3b5 100755 --- a/lib/keyringer/actions/sclip +++ b/lib/keyringer/actions/sclip @@ -13,12 +13,14 @@ keyringer $KEYRING xclip $* # Se window switch combo if [ -z "$XDOTOOL_NEXT_WINDOW" ]; then - XDOTOOL_NEXT_WINDOW="alt+Tab" + XDOTOOL_NEXT_WINDOW="Alt_L+Tab" fi # Move to the next window if which xdotool &> /dev/null; then - xdotool key $XDOTOOL_NEXT_WINDOW + # Use a smaller delay otherwise the window + # manager might ignore the key combo + xdotool key --delay 2 $XDOTOOL_NEXT_WINDOW fi # Sleep diff --git a/lib/keyringer/actions/teardown b/lib/keyringer/actions/teardown index 2e8725b..55de3d6 100755 --- a/lib/keyringer/actions/teardown +++ b/lib/keyringer/actions/teardown @@ -16,8 +16,9 @@ if [ -z "$CONFIRM" ] || [ "$CONFIRM" != "-y" ]; then echo "WARNING: This will irrevocably destroy $KEYDIR" echo "WARNING: the action cannot be undone!" - read -rep "Are you sure to WIPE keyring $KEYRING (type YES to confirm)? " key + read -rep "Are you sure to WIPE keyring $KEYRING (type uppercase YES to confirm)? " key if [ "$key" != "YES" ]; then + echo "CANCELLED!" exit 1 fi fi diff --git a/lib/keyringer/actions/tree b/lib/keyringer/actions/tree index 7bf173d..a877548 100755 --- a/lib/keyringer/actions/tree +++ b/lib/keyringer/actions/tree @@ -5,7 +5,7 @@ # Thanks http://www.centerkey.com/tree/ function keyringer_tree { - ls -R $* | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/' + find $* | sed -e 's/[^-][^\/]*\//| /g' | sed -r -e 's/\| ([^|])/|- \1/' } # Load functions @@ -19,6 +19,11 @@ CWD="`pwd`" shift ARGS="`echo "$*" | sed -e "s|^/*||"`" +# on *BSD, find expects at least one argument with the path +if [ "$ARGS" == "" ]; then + ARGS="./" +fi + # Check implementation if which tree &> /dev/null; then TREE="tree" diff --git a/lib/keyringer/functions b/lib/keyringer/functions index 0d96288..6f9a5e3 100755 --- a/lib/keyringer/functions +++ b/lib/keyringer/functions @@ -293,7 +293,7 @@ function keyringer_set_env { fi # Avoid viminfo, see https://keyringer.pw/trac/ticket/50 - if $EDITOR --help | grep -q -e "^VIM"; then + if $EDITOR --help 2>&1 | grep -q -e "^VIM"; then if ! echo $EDITOR | grep -q -- "-i NONE"; then EDITOR="$EDITOR -S $SHARE/editors/vim" fi @@ -537,7 +537,12 @@ function keyringer_show_actions { # Usage function keyringer_usage { - local keyrings="$(ls --color=never `dirname $CONFIG` | sed -e 's/config//' | xargs)" + # are we're using an `ls` that supports `--color`? + if ls --version > /dev/null 2>&1; then + local keyrings="$(ls --color=never `dirname $CONFIG` | sed -e 's/config//' | xargs)" + else + local keyrings="$(ls `dirname $CONFIG` | sed -e 's/config//' | xargs)" + fi printf "Keyringer $KEYRINGER_VERSION\n" printf "Usage: keyringer <keyring> <action> [arguments]\n\n" @@ -552,7 +557,9 @@ function keyringer_usage { if [ ! -z "$keyrings" ] && [ -z "$1" ]; then printf "\tinit <path> [remote]\n" $BASENAME fi - keyringer_show_actions | sed -e 's/^/\t/' + # \t is a GNU extension + # https://stackoverflow.com/questions/8400602/sed-replace-literal-tab + keyringer_show_actions | sed -e "`printf 's/^/\t/'`" printf "\n" } diff --git a/share/man/keyringer.1 b/share/man/keyringer.1 index 7b1b030..16cceb7 100644 --- a/share/man/keyringer.1 +++ b/share/man/keyringer.1 @@ -1,4 +1,7 @@ +.\" Automatically generated by Pandoc 1.17.2 +.\" .TH "KEYRINGER" "1" "Oct 25, 2013" "Keyringer User Manual" "" +.hy .SH NAME .PP keyringer \- encrypted and distributed secret sharing software @@ -186,7 +189,7 @@ variable and then re\-encrypting it. .RS .PP Please make sure to use an -\f[I]\f[I]E\f[]\f[I]D\f[]\f[I]I\f[]\f[I]T\f[]\f[I]O\f[]\f[I]R\f[] * \f[I]w\f[]\f[I]h\f[]\f[I]i\f[]\f[I]c\f[]\f[I]h\f[]\f[I]d\f[]\f[I]o\f[]\f[I]e\f[]\f[I]s\f[]\f[I]n\f[]\f[I]o\f[]\f[I]t\f[]\f[I]l\f[]\f[I]e\f[]\f[I]a\f[]\f[I]k\f[]\f[I]d\f[]\f[I]a\f[]\f[I]t\f[]\f[I]a\f[]\f[I]l\f[]\f[I]i\f[]\f[I]k\f[]\f[I]e\f[]\f[I]h\f[]\f[I]i\f[]\f[I]s\f[]\f[I]t\f[]\f[I]o\f[]\f[I]r\f[]\f[I]y\f[]\f[I]b\f[]\f[I]u\f[]\f[I]f\f[]\f[I]f\f[]\f[I]e\f[]\f[I]r\f[]\f[I]s\f[].\f[I]K\f[]\f[I]e\f[]\f[I]y\f[]\f[I]r\f[]\f[I]i\f[]\f[I]n\f[]\f[I]g\f[]\f[I]e\f[]\f[I]r\f[]\f[I]t\f[]\f[I]r\f[]\f[I]i\f[]\f[I]e\f[]\f[I]s\f[]\f[I]t\f[]\f[I]o\f[]\f[I]d\f[]\f[I]e\f[]\f[I]t\f[]\f[I]e\f[]\f[I]c\f[]\f[I]t\f[]\f[I]i\f[]\f[I]f\f[] * EDITOR\f[] +\f[I]\f[I]E\f[]\f[I]D\f[]\f[I]I\f[]\f[I]T\f[]\f[I]O\f[]\f[I]R\f[] * \f[I]w\f[]\f[I]h\f[]\f[I]i\f[]\f[I]c\f[]\f[I]h\f[]\f[I]d\f[]\f[I]o\f[]\f[I]e\f[]\f[I]s\f[]\f[I]n\f[]\f[I]o\f[]\f[I]t\f[]\f[I]l\f[]\f[I]e\f[]\f[I]a\f[]\f[I]k\f[]\f[I]d\f[]\f[I]a\f[]\f[I]t\f[]\f[I]a\f[]\f[I]l\f[]\f[I]i\f[]\f[I]k\f[]\f[I]e\f[]\f[I]h\f[]\f[I]i\f[]\f[I]s\f[]\f[I]t\f[]\f[I]o\f[]\f[I]r\f[]\f[I]y\f[]\f[I]b\f[]\f[I]u\f[]\f[I]f\f[]\f[I]f\f[]\f[I]e\f[]\f[I]r\f[]\f[I]s\f[].\f[I]K\f[]\f[I]e\f[]\f[I]y\f[]\f[I]r\f[]\f[I]i\f[]\f[I]n\f[]\f[I]g\f[]\f[I]e\f[]\f[I]r\f[]\f[I]t\f[]\f[I]r\f[]\f[I]i\f[]\f[I]e\f[]\f[I]s\f[]\f[I]t\f[]\f[I]o\f[]\f[I]d\f[]\f[I]e\f[]\f[I]t\f[]\f[I]e\f[]\f[I]c\f[]\f[I]t\f[]\f[I]i\f[]\f[I]f\f[]*EDITOR\f[] is set to VIM and disables the \f[I]\&.viminfo\f[] file. .RE .TP @@ -359,15 +362,22 @@ to the \f[C]$KEYRING_FOLDER/config/recipients/\f[] folder. .RE .RE .SH FILES -.PP -$HOME/.keyringer/config : User\[aq]s main configuration file used to map -alias names to keyrings. -.PP -$HOME/.keyringer/\f[I]keyring\f[] : User preferences for the keyringer -aliased \f[I]keyring\f[] keyring. -.PP -$KEYRING_FOLDER/config/options : Custom keyring options which will be -applied for all users that use the keyringer repository. +.TP +.B $HOME/.keyringer/config +User\[aq]s main configuration file used to map alias names to keyrings. +.RS +.RE +.TP +.B $HOME/.keyringer/\f[I]keyring\f[] +User preferences for the keyringer aliased \f[I]keyring\f[] keyring. +.RS +.RE +.TP +.B $KEYRING_FOLDER/config/options +Custom keyring options which will be applied for all users that use the +keyringer repository. +.RS +.RE .SH LIMITATIONS .PP Keyringer currently has the following limitations: diff --git a/share/man/keyringer.1.mdwn b/share/man/keyringer.1.md index 8acd747..8acd747 100644 --- a/share/man/keyringer.1.mdwn +++ b/share/man/keyringer.1.md |