conjuror
v0.2.10
Published
A magical CSV data parsing and outputing wizard or witch
Downloads
27
Maintainers
Readme
Conjuror
Conjuror is magical wizard who knows how to do cool things with CSV data and dons an epic beard- kind of like Santa Claus, sans the whole naughty or nice bit. Conjuror is based on Data Packages, which are a nifty way to wrap simple CSV data in JSON, and was created by the OKFN.
Getting Started
- First install Conjuror
npm install -g conjuror
- Then set it up by running setup script
conjuror setup
- To use Conjuror to you will need to make copies of the following two data files:
data/_template.csv
data/_template.json
Rename these files something like clients.csv
or receipts.csv
or whatever suits your needs add modify the values of the JSON schema & CSV columns as you see it. Once the schema & CSV matches, you can start adding data items to the CSV such as:
date, time, description, client, location, rate
2015-02-07, 2, improved importing of files, conjuror, cafe, 0.00
2015-02-08, 2, updated commands & documentation, mailpile, home, 0.00
You can manually add items to the CSV, or you can use the rough implemenation of the time tracker tool by running a separate script called ctrack
read more about this below.
Conjuror Commands
conjuror
- shows a help screen with following commandsconjuror setup
- setups up Conjuror on a new machineconjuror view
- renders filtered data to CLI for quick checksconjuror track
- add a new entry to an existing projectconjuror output
- output a filtered report as PDF, HTML, and CSV
Flags (BROKEN AT THE MOMENT)
Normally the conjuror
command should accept flags to be run as a normal shell command, but I broke that recently!
Flag | Short Flag | Behavior
------------ | ------------- | -------------
--help | -h | shows list of commands
--input | -i | selects data.json
schema file to open up
--formats | -f | allows you to choose different output formats (cli, csv, html, pdf)
--output | -o | specify Name of File
to be output
--date | -d | filters by numerous date styles 'February, Feb, 02
read below
--search | -s | searches for a string like magic
contained within a longer string I love doing magic tricks
--trim | -t | filters by an item like 'client' (currently hardcoded value)
--price | -p | Override the calculated price with a fixed price
--currency | -c | what currency the thing is in
--extra | -e | Text that appears in extra
field of template (overrides field in config).
--details | -l | Affects visibility of the data_details
field in a template (show, hide)
--message | -m | Shows up as a data_message
in a template
--generated | -g | Allows specifying custom invoice date
Run either of the follow two examples from terminal command line
Example (trim)
node conjuror.js --input data/clients.json --trim client-name
This command should have printed data to your command line that matches your trim parameter.
Example (output & date)
node conjuror.js -i data/clients.json -o "Feb Invoice" -t client-name --date=Feb
The following examples are formats of dates values you can pass using the --date
flag
- Month -
February
orFeb
or02
which picks month of current year - Exact -
2015-09-04
gets all values since date - Range -
2015-09-04:to:2015-11-15
selects between two exact values
The above example should have outputted an HTML rendering of your the entries
parsed from your data. The output will be located in output/Feb Invoice.html
Note: regarding PDF export
To generate PDF outputs, you need to install
wkhtmltopdf for your operating system
on Debian that is done with sudo apt-get install wkhtmltopdf
Why The Magical Name & Terminology?
Well, there is that quote by Asimov about technology... there is also the Cyber Wizard Institute which you should check out... and I really wanted to use this icon of a magical bearded wizard.