Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mschout/toggl-invoicer
A "Contractor Style" monthly invoice generator for Toggl
https://github.com/mschout/toggl-invoicer
Last synced: about 1 month ago
JSON representation
A "Contractor Style" monthly invoice generator for Toggl
- Host: GitHub
- URL: https://github.com/mschout/toggl-invoicer
- Owner: mschout
- License: mit
- Created: 2018-06-28T17:39:08.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-05-31T19:38:50.000Z (7 months ago)
- Last Synced: 2024-05-31T20:57:41.942Z (7 months ago)
- Language: TeX
- Size: 940 KB
- Stars: 5
- Watchers: 4
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Toggl-Invoicer, A Contractor Style Monthly Invoice Generator for Toggl
This is a monthly style invoice generator for contractors who use
[Toggl](https://toggl.com) to track their time.When I started using [Toggl](https://toggl.com), I looked around at similar
projects to this one had done, and none of them quite fit what I was looking
for, so I decided to roll my own. I wanted something that would generate a
LaTeX style invoice which could be manually edited or adjusted, then compiled
the invoice to a PDF which could be sent to clients. Dockerizing the whole
thing was the easiest way to avoid requiring a massive set of texlive
dependencies to be installed.## Dependencies
Toggl-Invoicer runs in a docker container that includes all of its
dependencies. A wrapper script is installed as "toggle-invoicer" that runs the
command inside docker. Because of this, the only thing you need is docker.A Makefile is included ot build the image and install/uninstall the wrapper
script. You need "make" in order to use that. You could install the wrapper
script by hand as well.## Installation
Either run ```make build```, or, pull mschout/toggl-invoicer:latest from docker
hub to get the docker image.1. You should edit the CLI wrapper script in ```bin/toggl-invoicer-wrapper```
to reflect where you would like to store your invoices as well as where your
```config.ini``` is. I use Dropbox to sync my invoices and config across my
machines, so the default paths use Dropbox.2. Copy ```config.ini``` to the location you specified in the wrapper script
and edit it accordingly. At a minimum, you must set your
[Toggl](https://toggl.com) API key.3. Either copy the ```bin/toggl-invoice-wrapper``` to a location in your $PATH
of your choosing, or, run ```make install``` to install it to
/usr/local/bin.## Usage
The wrapper script mounts your config file and invoices directory into the
docker container when it runs. Because of this, you should not use the
```--invoice-dir``` option when running from the wrapper script. The usage
here assumes the wrapper script is in use.All commands include a ```--help``` option that explains their usage.
## Environment Variables
The wrapper script recognizes the following Environment Variables:
### `TOGGL_INVOICE_TEMPLATE`
If set and is the path to a file, this will be used as the XeLaTeX template
that your invoice will be generated from, instead of `template.tex` from this
distribution.E.g.:
```
TOGGL_INVOICE_TEMPLATE=$HOME/etc/toggl/custom-template.tex
```### `CONFIG_FILE`
The path to `config.ini` on your system.
### `INVOICE_DIR`
The path where invoices will ge stored.
## Example Usage
### Generate a new invoice for the current month
```
toggl-invoicer generate
```### Generate a new invoice for a specific month
You can generate an invoice for a specific month using YYYY-MM syntax to
specify the month name.```
toggl-invoicer generate 2018-02
```### Override the Invoice Number
The default is to generate the next invoice number in the sequence where the
invoice number is the current year and a three digit sequence number. If you
want to generate a specific invoice number you can use the
```--invoice-number``` option```
toggl-invoicer generate --invoice-number 123456
```### Compile a .tex Invoice to PDF
You only need to provide the invoice number for the invoice to compile. The
PDF will saved in the same directory as the .tex file.```
toggl-invoicer compile 2018001
```