#!/bin/bash # # Common functions. # # Setup main configuration and load preferences function keyringer_config_load { if [ -f "$HOME/.$NAME" ]; then echo "Converting legacy configuration scheme..." mv $HOME/.$NAME $HOME/.$NAME.tmp mkdir $HOME/.$NAME mv $HOME/.$NAME.tmp $CONFIG fi if [ ! -e "$CONFIG" ]; then echo "Creating $CONFIG..." mkdir `dirname $CONFIG` touch $CONFIG chmod 600 $CONFIG echo "# Keyringer config file." > $CONFIG echo "" >> $CONFIG fi keyringer_config_load_preferences } function keyringer_config_load_preferences { # Load custom keyring preferences if [ ! -z "$PREFERENCES" ] && [ -f "$PREFERENCES" ]; then source $PREFERENCES fi } # Load a parameter from config function keyringer_config { if [ -z "$CONFIG" ]; then echo "Your have to set CONFIG variable in the code" exit 1 elif [ -e "$CONFIG" ]; then grep -e "^$1=" $CONFIG | tail -n 1 | cut -d = -f 2 | sed -e 's/"//g' -e "s/'//g" | sed -e 's/ *#.*$//' else echo "Config file not found: $CONFIG" exit 1 fi } # Return the list of recipients function keyringer_recipients { grep -v '^#' $1 | grep -v '^$' | awk '{ print "-r " $2 }' | xargs } # Check if keyringer has a given action function keyringer_has_action { if [ -z "$ACTIONS" ]; then echo "Your have to set ACTIONS variable in the code" exit 1 fi if [ -e "$ACTIONS/$1" ]; then true else false fi } # Execute an action function keyringer_exec { # Setup action="$1" basedir="$2" shift 2 # Dispatch if keyringer_has_action $action; then $ACTIONS/$action $basedir $* fi } # Return a filename with correct extension function keyringer_filename { if [ -z "$1" ]; then return else echo `dirname $1`/`basename $1 .asc`.asc fi } # Check if a folder is inside a git repository function keyringer_is_git { if [ -z "$1" ]; then false elif [ ! -d "$1" ]; then false elif [ -d "$1/.git" ]; then true else cwd="`pwd`" cd $1 && git="`git status &> /dev/null`" && cd $cwd if [ "$git" != "128" ]; then true else false fi fi }