Skip to content

Commit

Permalink
Merge pull request #2 from AntonVanAssche/develop
Browse files Browse the repository at this point in the history
BashPass version 2.0
  • Loading branch information
AntonVanAssche authored Apr 23, 2022
2 parents fb84bd5 + 6f62e41 commit 28a7fa0
Show file tree
Hide file tree
Showing 11 changed files with 556 additions and 330 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
sign-releases.sh
49 changes: 27 additions & 22 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,42 +1,47 @@
# Contributing to BashPass

Your contributions are always welcome, whether it's:

- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features
- Reporting a bug
- Discussing the current state of the code
- Submitting a fix
- Proposing new features

## In case you want to contribute code changes

Pull requests are the best way to propose changes to the codebase.

1. Fork the repo and create your branch from `master`.
2. If you've added code that should be tested, add tests.
3. Make sure all tests pass.
4. Make sure your code works.
5. Issue a new pull request.
1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request.

## Report bugs using Github's [issues](https://github.com/TuX-sudo/BashPass/issues)
If you come across a bug, feel free to report it by opening a new [issue](https://github.com/TuX-sudo/BashPass/issues).

If you come across a bug, feel free to report it by opening a new [issue](https://github.com/TuX-sudo/BashPass/issues).

## Write bug reports with detail, background, and sample code

When you decide to open an issue, please use the appropriate template provided.

**Great Bug Reports** tend to have:

- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can. Includes sample code that *anyone* with a base R setup can run to reproduce what I was seeing
- What you expected would happen
- What actually happens
- The version of the software
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)
- A quick summary and/or background
- Steps to reproduce
- Be specific!
- Give sample code if you can. Includes sample code that _anyone_ with a base R setup can run to reproduce what I was seeing
- What you expected would happen
- What actually happens
- The version of the software
- Notes (possibly including why you think this might be happening, or stuff you tried that didn't work)

## Use a Consistent Coding Style

- Tabs are 3 spaces long.
- Use CamelCasing for variables.
- Use PascalCasing for function name.
- Tabs are 3 spaces long.
- Use CamelCasing for variables.
- Use PascalCasing for function name.

## License
By contributing, you agree that your contributions will be licensed under its [MIT License](http://choosealicense.com/licenses/mit/). Feel free to contact me if that's a concern.

By contributing, you agree that your contributions will be licensed under the [MIT License](./LICENSE.md).
File renamed without changes.
199 changes: 75 additions & 124 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,128 +1,79 @@
# BashPass
BashPass is a simple password manager written in Bash. It uses GPG to encrypt/decrypt the files where the passwords are stored (default: `~/.local/share/bashpass/`). This means the password are 100% stored locally, so you don't have to trust a third party to store your passwords.
<div align="center">
<h1>
BashPass
</h1>
<p align="center">
A command-line based password manager written in Bash.
<br/>
<a href="https://github.com/AntonVanAssche/BashPass/wiki"><strong>Explore the docs »</strong></a>
<br/>
<br/>
<strong>·</strong>
<a href="https://github.com/AntonVanAssche/BashPass/issues">Report Bug</a>
<strong>·</strong>
<a href="https://github.com/AntonVanAssche/BashPass/issues">Request Feature</a>
</p>
<p align="center">
<a href="https://github.com/AntonVanAssche/BashPass/graphs/contributors">
<img src="https://img.shields.io/github/contributors/AntonVanAssche/BashPass.svg?style=for-the-badge">
</a>
<a href="https://github.com/AntonVanAssche/BashPass/releases/latest/">
<img src="https://img.shields.io/github/release/AntonVanAssche/BashPass.svg?style=for-the-badge">
</a>
<a href="https://github.com/AntonVanAssche/BashPass/network/members">
<img src="https://img.shields.io/github/forks/AntonVanAssche/BashPass.svg?style=for-the-badge">
</a>
<a href="https://github.com/github_username/AntonVanAssche/BashPass">
<img src="https://img.shields.io/github/stars/AntonVanAssche/BashPass.svg?style=for-the-badge">
</a>
<a href="https://github.com/github_username/AntonVanAssche/BashPass">
<img src="https://img.shields.io/github/issues/AntonVanAssche/BashPass.svg?style=for-the-badge">
</a>
<a href="https://github.com/AntonVanAssche/BashPass/blob/master/LICENSE">
<img src="https://img.shields.io/github/license/AntonVanAssche/BashPass.svg?style=for-the-badge">
</a>
</div>

<img src="./assets/bashpass.gif" alt="Preview GIF" width="500px" align="right">

## About BashPass

BashPass is a command-line based password manager written in Bash. It uses GPG to encrypt/decrypt the files where the passwords are stored . This means the passwords are 100% stored locally, so you don't have to trust a third party to store your passwords.

## Features

- Generating passwords
- Saving passwords
- Encrypting/decrypting the password files
- Copying the password to the clipboard
- Syncing the passwords with another computer
- And much more!

## Documentation

- **[Getting started](https://github.com/AntonVanAssche/BashPass/wiki/Getting-Started)**
- **[Usage](https://github.com/AntonVanAssche/BashPass/wiki/Usage)**
- **[Configuring](https://github.com/AntonVanAssche/BashPass/wiki/Configuring)**

## Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag `enhancement`.
Don't forget to give the project a star! Thanks again!

1. Fork the Project
2. Create your Feature Branch (`git checkout -b feature/AmazingFeature`)
3. Commit your Changes (`git commit -m 'Add some AmazingFeature'`)
4. Push to the Branch (`git push origin feature/AmazingFeature`)
5. Open a Pull Request

See [`CONTRIBUTING.md`](./CONTRIBUTING.md) for more information.

## Table of contents

- [Dependencies](#dependencies)
- [Usage](#usage)
- [Installing BashPass](#installing-bashpass)
- [Updating BashPass](#updating-bashpass)
- [Uninstalling BashPass](#uninstalling-bashpass)
- [Updating the config](#updating-the-config)
- [Updating the location where passwords are stored](#updating-the-location-where-passwords-are-stored)
- [Updating the email address](#updating-the-e-mail-address)
- [Updating the clipboard timer](#updating-the-clipboard-timer)
- [Feedback](#feedback)

## Dependencies
- gpg (Encrypt the password files)
- xclip (Copy the password to the clipboard)

## Usage
Note: the `[name]` is optional.

```
bashpass [option] [name] - Basic command structure.
Options:
--help or -h - Show this help message.
--version or -v - Show the version number
--add or -a [name] - Add a password.
--update or -u [name] - Update a password.
--delete or -d [name] - Delete a password.
--show or -s [name] - Show a password.
--copy or -c [name] - Copy a password to the clipboard.
--list or -l - List all password.
```

Examples:
- `bashpass --add gmail`
- `bashpass --delete gmail`
- `bashpass --show gmail`
- `bashpass --list`

## Installing BashPass
First you'll have to generate a GPG key. Run the following command to do so, and your key will be generated (you can use the defaults for most questions).

```bash
$ gpg --full-generate-key
```

Now it's time to install BashPass. Just run the `setup.sh` script and you'll be good to go.

```bash
$ ./setup.sh --install
```

After installation, you'll have to add `.local/bin` to your PATH to use BashPass. Add the following line in your `.bashrc` file.

```bash
export PATH="$HOME/.local/bin:$PATH"
```

When you start BashPass for the first time you'll be prompted with the question to enter an e-mail address. You must enter the same e-mail address that you've used to generate the GPG key.

```
Enter the email address you created the gpg key with:
```

## Updating BashPass
To update BashPass to the latest version, just run the `setup.sh` script and you'll be good to go.

```bash
$ ./setup.sh --update
```

## Uninstalling BashPass
To uninstall BashPass, just run the `setup.sh` script.

```bash
$ ./setup.sh --uninstall
```

## Updating the config
### Updating the location where passwords are stored
By default BashPass stores the passwords the following directory `~/.local/share/bashpass/`. In case you want to change the location you'll have to change the following line in the config file located at `~/.config/bashpass/bashpass.conf`.

```
location:.local/share/bashpass
```

**Example**: if you want to store the passwords in `.bashpass/passwords/`. You'll have to update the line to:

**Note**: The new location has to be located inside **your home** (`~`) directory.

```
location:.bashpass/passwords/
```

### Updating the e-mail address
Changing the e-mail address isn't recommended but in case you need to do this here you go. To update the e-mail address you'll have to update the following line in the config file located at `~/.config/bashpass/bashpass.conf`.

```
email:email@gmail.com
```

**Example**: if you want to update the e-mail address to `newemail@gmail.com`. You'll have to update the line to:

**Note**: when you update the e-mail address you'll have to generate a new GPG key. You will also be unable to read your passwords you have stored with the old e-mail address.

```
email:newemail@gmail.com
```

### Updating the clipboard timer
By default BashPass has a timer of `10` seconds. This can be changed in the config file located at `~/.config/bashpass/bashpass.conf`. To change this edit the following line.

```
timer:10
```
## Feedback

**Example**: if you want to update the timer to `15` seconds. You'll have to update the line to:
This project isn't perfect, therefore suggestions/improvements are always [welcome](https://github.com/AntonVanAssche/BashPass/issues)!

```
timer:15
```
## License

## Feedback
This project isn't perfect, therefore suggestions/improvements are always [welcome](https://github.com/TuX-sudo/BashPass/issues)!
Distributed under the MIT License. See [`LICENSE.md`](./LICENSE.md) for more information.
Binary file added assets/bashpass.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading

0 comments on commit 28a7fa0

Please sign in to comment.