npm package: @saez-juan/authme
Description: Interfaz de consola para generar códigos A2F
Author: Juan Saez
Latest version: 1.0.0

# AuthMe

## :notebook: Tabla de contenidos

[[_TOC_]]

## :black_nib: Introducción
_AuthMe_ es una interfaz de consola que simplifica el uso y generación de OTPs (One Time Password). Solamente se deben configurar las cuentas en un archivo YAML y listo.

**Disponible para Linux**
Testeado solamente en Manjaro.


## :paperclip: Instalación
Hay tres formas te instalar _AuthMe_:
* Usando NPM
* Clonando este repositorio
* Descargando una AppImage

### Usando NPM
Probablemente la opción más fácil y la que yo recomiendo.

Teniendo instalado Node.js, desde la terminal hay que ejecutar este comando:
~~~bash
npm i -g authme
~~~

### Clonando este repositorio
Esta es la opción más complicada, y hay que tener en cuenta que con cada actualización habría que hacer un pull.

Para clonarlo en primer lugar, hay que tener Git instalado. Luego, en la terminal:
~~~bash
git clone git@gitlab.com:saez-juan/auth-me.git
cd auth-me
~~~

Seguido, hay que instalar las dependencias con NPM:
~~~bash
npm i
~~~

En teoría ya estaría, solamente habría que agregar el archivo `authme` al PATH o usarlo directamente desde la carpeta donde se clonó.

Con este método también podes contribuir al código, modificandolo y haciendo Merge Requests.

### Descargando una AppImage
Para más adelante...

## :book: Modo de uso
Usar _AuthMe_ es sencillo porque solo tiene 2 acciones:
* `list`: muestra todas las cuentas configuradas con sus OTPs.
* `search`: busca entre todas las cuentas un patrón y filtra la salida en base a este.

Los siguientes comandos son sinónimos
~~~bash
# Para listar todo
authme list
authme -l
authme --list

# Para filtrar en base a un patrón
authme search <patrón>
authme -s <patrón>
authme --search <patrón>
~~~

El patrón de búsqueda puede ser cualquier secuencia de caracteres y los campos a considerar son:
* Nombre de la página/aplicación
* Dominio de la página/aplicación
* Usuarios/correos electrónicos de todas las cuentas

### Configuración
La configuración de _AuthMe_ también es bastante sencilla, solo hay que crear un archivo en `$HOME/.config/auth-me` llamado `accounts.yml`.

**Es importante que la extensión sea .yml**

Dentro de este archivo van a estar todas las cuentas y sus datos.
El formato a seguir es el siguiente:

~~~yaml
GitLab:
  domain: gitlab.com
  accounts:
    - username: alguien@mail.com
      secret: XXXX XXXX XXXX XXXX XXXX

Github:
  domain: github.com
  accounts:
    - username: alguien@mail.com
      secret: XXXX XXXX XXXX XXXX XXXX
~~~

Intenté que la aplicación sea lo más específica y amigable posible cuando se encuentra un error.

## :scroll: Licencia
Básicamente, sos libre de hacer lo que quieras con el proyecto.
Se agradecen todo tipo de colaboraciones.

~~~
MIT License

Copyright (c) 2021 Juan Saez

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
~~~