An application tailored to help automating the creation of repetitive expenses which don't require a receipt, namely per diems, mileage and free-form expenses for everything else.
Using Brew it's certainly easiest:
brew tap Byron-TW/expend-rs https://github.com/Byron-TW/expend-rs
brew install expend
Without brew, you can download the latest release binary from the releases page, unzip the archive and
place the binary in your PATH
.
Please note that all following commands require some pre-requisites - they are documented further below.
You can create per-diems like this:
expend post perdiem weekdays fullday
To learn more, just use --help
expend post perdiem --help
In case there is no dedicated sub-command for your kind of expense, you can also post any JSON file content directly. It must be the object expected in the inputSettings
field of the typical payload - all other values are provided by
expend
.
expend post from-file ./payload-file.json
First of all, you should head over to the expensify integration documentation to
generate your set of credentials. With these equipped, the first time you run any expend post
sub-commands you will be prompted for said credentials - by
default they are stored in your systems keychain for safe-keeping.
Next you should create a default context, which identifies your e-mail address and project name. Said project name can be copied directly from the respective project field from expensify.com.
- Mileage sub-command
- add 'travel-billable' flag to the user context
- add 'country' to the user context, but default to germany
- add various per-diem types, like 'lunch/dinner'
- implement subtraction for per-diems
- support for custom comments in per-diems
- travic CI
- brew
- some docs
- On Linux, compilation currently fails as GMP and DBUS libraries are required for keychain support.
- On Windows compilation fails due to our dependency to Termion.
- Update the Roadmap so it's clear which new features are included.
- Update the
version
inCargo.toml
to match the new release and push the commit. - Create a tag with the new
version
, ideally without any prefix, and push it withgit push --tags
. - Travis will be busy generating the binary's archive, and you can run
make update-homebrew
right after pushing to update the respective brew file to match the new version. - Once the brew formula was updated, commit and push, ideally with the comment
[skip CI]
to avoid travis to run unnecessarily.