pash/README.md

88 lines
2.2 KiB
Markdown
Raw Normal View History

2019-02-24 14:48:54 -06:00
# pash
A simple password manager using GPG.
2019-02-25 14:31:28 -06:00
```
pash
├─ dev/
│ ├─ github
├─ internet/
│ ├─ graalians
│ ├─ pixeljoint
│ ├─ nixers
└──┘
```
2019-02-25 00:55:10 -06:00
## Table of Contents
2019-02-25 00:54:14 -06:00
<!-- vim-markdown-toc GFM -->
* [Dependencies](#dependencies)
* [Usage](#usage)
* [FAQ](#faq)
2019-02-26 12:22:55 -06:00
* [How does this differ from `pass` or etc?](#how-does-this-differ-from-pass-or-etc)
2019-02-25 00:54:32 -06:00
* [Where are passwords stored?](#where-are-passwords-stored)
2019-02-25 00:54:14 -06:00
* [TODO](#todo)
<!-- vim-markdown-toc -->
2019-02-24 16:04:26 -06:00
## Dependencies
2019-02-25 01:04:16 -06:00
- `bash 4+`
- `gpg` or `gpg2`
2019-02-24 16:04:26 -06:00
2019-02-25 00:48:54 -06:00
**Clipboard Support**:
- `xclip` or `tmux`
2019-02-24 16:04:26 -06:00
## Usage
2019-02-24 16:05:02 -06:00
Examples: `pash add web/gmail`, `pash list`, `pash del google`, `pash show github`.
2019-02-24 16:04:26 -06:00
```
2019-02-25 00:48:54 -06:00
SYNOPSIS
2019-02-26 12:03:03 -06:00
pash [ add|del|show|list ] [name] [ -cqthv ] [ -l length ]
2019-02-25 00:48:54 -06:00
COMMANDS
2019-02-25 10:15:37 -06:00
[a]dd [name]: Create a new entry in the password store.
[d]el [name]: Delete an entry from the password store.
2019-02-25 00:48:54 -06:00
[s]how [name]: Show password from an entry in the password store.
[l]ist: List all entries from the password store.
OPTIONS
c Copy password to clipboard.
2019-02-25 13:49:31 -06:00
l Length of generated passwords.
2019-02-25 00:48:54 -06:00
q Don't print password to stdout.
2019-02-25 14:27:48 -06:00
-t Print list output as a tree.
2019-02-25 00:48:54 -06:00
h Show usage and exit.
v Show version and exit.
2019-02-24 16:04:26 -06:00
```
2019-02-25 00:53:48 -06:00
## FAQ
2019-02-26 12:22:55 -06:00
### How does this differ from `pass` or etc?
I was looking for a CLI password manager (*written in `bash`*) and wasn't happy with the options I had found. They either had multiple instances of `eval` (*on user inputted data*), lots of unsafe `bash` (*no where near being `shellcheck` compliant.*) or they were overly complex. The opposites for what I'd want in a password manager.
I decided to write my own. `pash` is written in pure `bash` (*minus `gpg`, `mkdir` and optionally `xclip`.*) and the codebase is minimal (*150~ lines*). `gpg` is used to generate passwords and store the generated passwords in encrypted files.
2019-02-25 00:54:32 -06:00
### Where are passwords stored?
2019-02-25 00:53:48 -06:00
The passwords are store in GPG encrypted files located at `${XDG_DATA_HOME:=$HOME/.local/share}/pash}`.
2019-02-24 14:48:54 -06:00
## TODO
2019-02-24 15:07:37 -06:00
- [x] Add support for not generating passwords.
2019-02-24 15:48:31 -06:00
- [x] Add support for categories.
2019-02-25 13:46:57 -06:00
- [x] Add an optional `tree` view.
2019-02-24 17:10:26 -06:00
- [x] Add support for both `gpg` and `gpg2`.
2019-02-25 00:49:19 -06:00
- [x] Man page.
- [x] Setup automatic linting.
- [x] Documentation.
2019-02-26 10:36:23 -06:00
- [ ] Add support for using a public key.