freshbooks-cli-timetrap
v0.1.0
Published
Integrates the freshbooks-cli tools with timetrap time tracking
Downloads
11
Maintainers
Readme
freshbooks-cli-timetrap
Integrates the freshbooks-cli tools with timetrap time tracking
Overview
freshbooks-cli is a command-line interface to the FreshBooks API.
timetrap is a simple command line timetracker written in Ruby that can export JSON-formatted time entry data.
freshbooks-cli-timetrap
implements the timetrap
subcommand for
freshbooks-cli.
Simply pipe your timetrap data to this subcommand to adapt your timesheet entries for use within freshbooks.
Before you use this tool you need to map some timetrap sheets to the associated freshbooks projects and tasks.
# Install timetrap
$ gem install timetrap
# Switch to a new sheet (creating it unless it exists)
$ t sheet myproject
# Record some entries
$ t in "doing one thing"; t out
$ t in "doing another"; t out
# On your FreshBooks account, create a new Project and Task, and note
# the ID of each.
# Map your new timesheet to your new freshbooks project/task.
$ freshbooks config -k timetrap:sheets:myproject:project_id -v <your project id>
$ freshbooks config -k timetrap:sheets:myproject:task_id -v <your task id>
All done!
Usage
--lines, -l - Convert timetrap entries to JSON-formatted invoice lines
--data JSON - Time entry data for --create
--help, -h - Display this message
See http://developers.freshbooks.com/docs/invoices/#invoice.lines.add for more information.
Examples
# Converting timetrap entries into invoice line items
$ timetrap display -s saturday -e friday -f json | freshbooks timetrap --lines
[
{
"name":"Some task",
"description":"Did some work",
"unit_cost":"150",
"quantity":"3.2",
"type":"Item"
},
{
"name":"Some task",
"description":"Did some other work",
"unit_cost":"150",
"quantity":"0.0",
"type":"Item"
},
{
"name":"Some task",
"description":"Did some different work",
"unit_cost":"150",
"quantity":"0.5",
"type":"Item"
}
]
Contributing
The test suite is implemented with nodeunit and nixt.
To rebuild & run the tests
$ git clone https://github.com/logankoester/freshbooks-cli-timetrap.git
$ cd freshbooks-cli-timetrap
$ npm install
$ grunt test
You can use grunt watch
to automatically rebuild and run the test suite when
files are changed.
Use npm link
from the project directory to tell freshbooks-cli
to use
your modified freshbooks-cli-timetrap
during development.
To contribute back, fork the repo and open a pull request with your changes.
License
Copyright (c) 2014 Logan Koester Licensed under the MIT license.