2 # passman -- simple password manager
3 # Copyright (C) 2013-2024 Sergey Matveev (stargrave@stargrave.org)
5 # This program is free software; you can redistribute it and/or modify
6 # it under the terms of the GNU General Public License as published by
7 # the Free Software Foundation; version 3 of the License.
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
17 DB=${PASSMANDB:-$HOME/.passmandb}
26 %mandatory: Name Passwd
37 dd if=/dev/random bs=16 count=1 status=none | base64 | tr "+/" "-_" | tr -d =
41 xclip -in -selection $1
45 trap "rm -f $tmp ${DB}.tmp" HUP PIPE INT QUIT TERM EXIT
48 dec | recsel -e "Name ~ '$1'" >$tmp
49 [ $(recsel -c $tmp) -eq 1 ] || {
50 recsel -C -P Name $tmp
72 [ -n "$passwd" ] || passwd=$(generator)
74 dec | recins -t Credential -f Name -v "$dst" -f Passwd -v "$passwd" >$tmp
84 name=$(recsel -P Name $tmp)
86 data=$(recsel -P Data $tmp)
87 [ -z "$data" ] || echo "Associated data: $data"
88 echo -n $(recsel -P Passwd $tmp) | cliper clipboard
89 echo -n ${name##*/} | cliper primary
91 echo -n | cliper clipboard