2017-04-28 09:34:41 +00:00
|
|
|
# imag - [imag-pim.org](https://imag-pim.org)
|
2015-10-30 22:52:43 +00:00
|
|
|
|
2016-10-03 18:44:06 +00:00
|
|
|
`imag` is a commandline personal information management suite.
|
|
|
|
|
2016-08-28 21:30:57 +00:00
|
|
|
[![Build Status](https://travis-ci.org/matthiasbeyer/imag.svg?branch=master)](https://travis-ci.org/matthiasbeyer/imag)
|
|
|
|
[![Issue Stats](http://www.issuestats.com/github/matthiasbeyer/imag/badge/pr?style=flat-square)](http://www.issuestats.com/github/matthiasbeyer/imag)
|
|
|
|
[![Issue Stats](http://www.issuestats.com/github/matthiasbeyer/imag/badge/issue?style=flat-square)](http://www.issuestats.com/github/matthiasbeyer/imag)
|
2016-08-29 06:33:49 +00:00
|
|
|
[![license](https://img.shields.io/github/license/matthiasbeyer/imag.svg?maxAge=2592000?style=flat-square)]()
|
2016-08-28 21:30:57 +00:00
|
|
|
|
2016-10-27 09:12:20 +00:00
|
|
|
**This application is in early development. There are _some_ things that work,
|
|
|
|
but we do not consider anything stable or usable at this moment. Feel free to
|
|
|
|
play around anyways.**
|
|
|
|
|
2016-10-27 09:12:46 +00:00
|
|
|
## Goal / What is imag?
|
2016-03-08 14:43:08 +00:00
|
|
|
|
2016-10-03 18:44:06 +00:00
|
|
|
Our (long-term) goal is to
|
2016-03-08 14:43:08 +00:00
|
|
|
|
2016-10-03 18:44:06 +00:00
|
|
|
> Create a fast, reliable commandline personal
|
2016-03-08 14:43:08 +00:00
|
|
|
> information management suite which covers all aspects of personal information
|
|
|
|
> management, consists of reusable parts and integrates well with known
|
|
|
|
> commandline tools.
|
|
|
|
|
2016-10-27 09:12:46 +00:00
|
|
|
imag is a PIM _helper_. We do not actually implement the PIM functionality, but
|
|
|
|
try to interface with existing PIM tools (via their API or via some standard
|
|
|
|
format they use, e.g. vcard) to make the data they manage _linkable_
|
|
|
|
and _queryable_ in an uniform way.
|
|
|
|
|
2017-04-22 09:45:08 +00:00
|
|
|
imag consists of _modules_ (e.g. `imag-notes`, `imag-tag`, `imag-view`), where
|
|
|
|
each module covers one PIM aspect.
|
2016-10-27 09:12:46 +00:00
|
|
|
The initial approach is to use one PIM tool for one module.
|
2017-04-22 09:45:08 +00:00
|
|
|
So you can use `imag-todo` with [taskwarrior](https://taskwarrior.org/),
|
|
|
|
`imag-mail` with Maildirs and `imag-calendar` with
|
|
|
|
[icalendar](https://en.wikipedia.org/wiki/ICalendar) files.
|
2016-03-08 14:43:08 +00:00
|
|
|
|
2016-04-11 13:45:24 +00:00
|
|
|
## Building/Running
|
|
|
|
|
2016-10-27 11:03:02 +00:00
|
|
|
Here is how to try `imag` out.
|
2016-10-03 18:44:06 +00:00
|
|
|
|
2017-04-22 09:45:08 +00:00
|
|
|
`imag` is a _suite/collection_ of tools (like git, for example) and you can
|
|
|
|
build them individually.
|
|
|
|
All subdirectories prefixed with "`libimag"` are libraries.
|
2016-10-03 18:44:06 +00:00
|
|
|
All subdirectories prefixed with `"imag-"` are binaries and compiling them will
|
|
|
|
give you a commandline application.
|
2016-07-30 10:33:55 +00:00
|
|
|
|
2016-04-11 13:45:24 +00:00
|
|
|
### Building
|
|
|
|
|
2017-01-25 16:42:21 +00:00
|
|
|
We use `make` to automate the build process.
|
|
|
|
Make sure to _not_ include some `-j 8` arguments, this will _not_ work as you
|
|
|
|
might think!
|
2016-10-27 09:13:54 +00:00
|
|
|
|
|
|
|
There are several targets for each of the sub-crates in the Makefile:
|
|
|
|
|
2017-03-02 20:20:51 +00:00
|
|
|
| Target | Multi | Purpose | Example |
|
|
|
|
| :--- | ----- | :--- | :--- |
|
|
|
|
| all | | Build everything, debug mode | `make all` |
|
|
|
|
| bin | | Build all binaries, debug mode | `make bin` |
|
|
|
|
| lib | | Build all libraries, debug mode | `make lib` |
|
|
|
|
| lib-test | | Test all libraries | `make lib-test` |
|
|
|
|
| imag-bin | | Build only the `imag` binary, debug mode | `make imag-bin` |
|
|
|
|
| clean | | Remove build artifacts | `make clean` |
|
|
|
|
| update | | Run `cargo update` | `make update` |
|
|
|
|
| check-outdated | | Run `cargo outdated` | `make check-outdated`|
|
|
|
|
| check | * | Run `cargo check` | `make check` |
|
|
|
|
| install | * | Build everything, release mode, install | `make install` |
|
|
|
|
| release | * | Build everything, release mode | `make release` |
|
2016-10-27 09:13:54 +00:00
|
|
|
|
|
|
|
The `Multi` targets are callable for each sub-crate. For example you can call
|
2017-01-25 16:42:21 +00:00
|
|
|
`make imag-store-check` to run `cargo check` on the `imag-store` crate.
|
2016-06-04 02:14:09 +00:00
|
|
|
|
2016-04-11 13:45:24 +00:00
|
|
|
### Running
|
|
|
|
|
2016-10-27 09:19:33 +00:00
|
|
|
After you build the module you want to play with, you can simply call the binary
|
|
|
|
itself with the `--help` flag, to get some help what the module is capable of.
|
|
|
|
|
|
|
|
If you installed the module, you can either call `imag-<modulename>` (if the
|
|
|
|
install-directory is in your `$PATH`), or install the `imag` binary to call `imag
|
|
|
|
<modulename>` (also if everything is in your `$PATH`).
|
2016-04-11 13:45:24 +00:00
|
|
|
|
2016-10-07 15:16:45 +00:00
|
|
|
## Staying up-to-date
|
|
|
|
|
2017-04-28 09:34:41 +00:00
|
|
|
We have a [official website for imag](https://imag-pim.org), where I post
|
2016-10-27 09:19:44 +00:00
|
|
|
[release notes](http://imag-pim.org/releases/).
|
|
|
|
There is no RSS feed, though.
|
2016-10-07 15:16:45 +00:00
|
|
|
|
2017-04-28 09:34:41 +00:00
|
|
|
We also have a [mailinglist](https://imag-pim.org/mailinglist/) where I post
|
2016-10-27 09:19:44 +00:00
|
|
|
updates and where discussion and questions are encouraged.
|
|
|
|
|
2017-01-25 16:42:21 +00:00
|
|
|
There is a blog series which gets an update once a month on my blog, where
|
2017-04-22 09:45:08 +00:00
|
|
|
[entries are tagged "imag"](https://beyermatthias.de/tags/imag/).
|
2016-10-27 09:19:44 +00:00
|
|
|
I also post non-regular posts about imag things there.
|
2016-10-07 15:16:45 +00:00
|
|
|
|
|
|
|
I also post these blog posts
|
|
|
|
[on reddit](https://www.reddit.com/r/rust/search?q=What%27s+coming+up+in+imag&restrict_sr=on)
|
|
|
|
and submit them to [this-week-in-rust](https://this-week-in-rust.org/).
|
|
|
|
|
2016-03-08 14:43:08 +00:00
|
|
|
## Documentation
|
|
|
|
|
2016-10-27 09:21:22 +00:00
|
|
|
This is a hobby project, so sometimes things are not optimal and might go
|
|
|
|
unrecognized and slip through. Feel free to open issues about things you notice!
|
|
|
|
|
|
|
|
Though, we have some documentation in [the ./doc subtree](./doc/)
|
|
|
|
which can be compiled to PDF or a website.
|
|
|
|
These docs are not published anywhere and are not even integrated into our CI,
|
|
|
|
so it might be broken (though it's unlikely).
|
2016-08-27 12:05:02 +00:00
|
|
|
Developer documentation is also available
|
2017-01-25 16:42:21 +00:00
|
|
|
[online on github.io](https://matthiasbeyer.github.io/imag/imag_documentation/index.html)
|
|
|
|
and [on docs.rs](https://docs.rs/releases/search?query=imag), though they might
|
|
|
|
be a bit outdated.
|
2015-10-30 22:52:43 +00:00
|
|
|
|
2016-10-03 18:44:06 +00:00
|
|
|
## Please contribute!
|
|
|
|
|
2016-10-04 11:49:57 +00:00
|
|
|
We are looking for contributors!
|
2016-10-03 18:44:06 +00:00
|
|
|
|
|
|
|
There is always a number of
|
|
|
|
[complexity/easy tagged issues](https://github.com/matthiasbeyer/imag/issues?q=is%3Aopen+is%3Aissue+label%3Acomplexity%2Feasy)
|
|
|
|
available in the issue tracker you can start with and we are open to questions!
|
|
|
|
|
|
|
|
Feel free to open issues for asking questions, suggesting features or other
|
|
|
|
things!
|
|
|
|
|
|
|
|
Also have a look at [the CONTRIBUTING.md file](./CONTRIBUTING.md)!
|
|
|
|
|
2016-08-01 07:48:25 +00:00
|
|
|
## Contact
|
|
|
|
|
2017-04-28 09:34:41 +00:00
|
|
|
Have a look at [our website](https://imag-pim.org) where you can find some
|
2016-08-02 12:22:58 +00:00
|
|
|
information on how to get in touch and so on.
|
2016-08-01 07:48:25 +00:00
|
|
|
|
2016-08-02 12:22:58 +00:00
|
|
|
Feel free to join our new IRC channel at freenode: #imag
|
2017-04-28 09:34:41 +00:00
|
|
|
or our [mailinglist](https://imag-pim.org/mailinglist/).
|
2016-08-01 07:48:25 +00:00
|
|
|
|
2016-03-08 14:43:08 +00:00
|
|
|
## License
|
2015-11-30 15:30:20 +00:00
|
|
|
|
2016-03-08 14:43:08 +00:00
|
|
|
We chose to distribute this software under terms of GNU LGPLv2.1.
|
2015-11-08 16:35:11 +00:00
|
|
|
|