https://github.com/pimalaya/comodoro
CLI to manage time using timers
https://github.com/pimalaya/comodoro
cli pimalaya pomodoro pomodoro-technique pomodoro-timer tcp tcp-client tcp-server timer
Last synced: about 2 months ago
JSON representation
CLI to manage time using timers
- Host: GitHub
- URL: https://github.com/pimalaya/comodoro
- Owner: pimalaya
- License: mit
- Created: 2020-12-11T22:44:09.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2024-08-29T07:44:37.000Z (about 1 year ago)
- Last Synced: 2024-08-29T09:10:51.130Z (about 1 year ago)
- Topics: cli, pimalaya, pomodoro, pomodoro-technique, pomodoro-timer, tcp, tcp-client, tcp-server, timer
- Language: Rust
- Homepage: https://github.com/pimalaya
- Size: 244 KB
- Stars: 41
- Watchers: 6
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# ⏱ Comodoro [](https://github.com/pimalaya/comodoro/releases/latest) []("https://repology.org/project/comodoro/versions) [](https://matrix.to/#/#pimalaya:matrix.org)
CLI to manage timers.
## Features
- Centralized server timer controllable by multiple clients at the same time
- **Multi protocols** (*Unix sockets* and *TCP* only supported for now)
- Cycles customizable via config file (**Pomodoro** style, **52/17** style, custom)
- Server and timer hooks customizable via config file (send system notification or run shell command)*Comodoro CLI is written in [Rust](https://www.rust-lang.org/), and relies on [cargo features](https://doc.rust-lang.org/cargo/reference/features.html) to enable or disable functionalities. Default features can be found in the `features` section of the [`Cargo.toml`](./Cargo.toml#L18), or on [docs.rs](https://docs.rs/crate/comodoro/latest/features).*
## Installation
*The `v1.0.0` is currently being tested on the `master` branch, and is the prefered version to use. Previous versions (including GitHub beta releases and repositories published versions) are not recommended.*
### Pre-built binary
Comodoro CLI `v1.0.0` can be installed with a pre-built binary. Find the latest [`releases`](https://github.com/pimalaya/comodoro/actions/workflows/releases.yml) GitHub workflow and look for the *Artifacts* section. You should find a pre-built binary matching your OS.
### Cargo (git)
Comodoro CLI `v1.0.0` can also be installed with [cargo](https://doc.rust-lang.org/cargo/):
```bash
$ cargo install --locked --git https://github.com/pimalaya/comodoro.git
```### Other outdated methods
These installation methods should not be used until the `v1.0.0` is finally released, as they are all (temporarily) outdated:
Pre-built binary
Comodoro CLI can be installed with a prebuilt binary:
```bash
# As root:
$ curl -sSL https://raw.githubusercontent.com/pimalaya/comodoro/master/install.sh | sudo sh# As a regular user:
$ curl -sSL https://raw.githubusercontent.com/pimalaya/comodoro/master/install.sh | PREFIX=~/.local sh
```These commands install the latest binary from the GitHub [releases](https://github.com/pimalaya/comodoro/releases) section.
*Binaries are built with [default](https://github.com/pimalaya/comodoro/blob/master/Cargo.toml#L18) cargo features. If you want to enable or disable a feature, please use another installation method.*
Cargo
Comodoro CLI can be installed with [cargo](https://doc.rust-lang.org/cargo/):
```bash
$ cargo install comodoro# With only IMAP support:
$ cargo install comodoro --no-default-features --features imap
```You can also use the git repository for a more up-to-date (but less stable) version:
```bash
$ cargo install --git https://github.com/pimalaya/comodoro.git comodoro
```Nix
Comodoro CLI can be installed with [Nix](https://serokell.io/blog/what-is-nix):
```bash
$ nix-env -i comodoro
```You can also use the git repository for a more up-to-date (but less stable) version:
```bash
$ nix-env -if https://github.com/pimalaya/comodoro/archive/master.tar.gz# or, from within the source tree checkout
$ nix-env -if .
```If you have the [Flakes](https://nixos.wiki/wiki/Flakes) feature enabled:
```bash
$ nix profile install comodoro# or, from within the source tree checkout
$ nix profile install# you can also run Comodoro directly without installing it:
$ nix run comodoro
```Sources
Comodoro CLI can be installed from sources.
First you need to install the Rust development environment (see the [rust installation documentation](https://doc.rust-lang.org/cargo/getting-started/installation.html)):
```bash
$ curl https://sh.rustup.rs -sSf | sh
```Then, you need to clone the repository and install dependencies:
```bash
$ git clone https://github.com/pimalaya/comodoro.git
$ cd comodoro
$ cargo check
```Now, you can build Comodoro:
```bash
$ cargo build --release
```*Binaries are available under the `target/release` folder.*
## Configuration
The wizard is not yet available (it should come soon), so the only way to configure Comodoro CLI is to copy the [sample config file](./config.sample.toml) then edit it by commenting or uncommenting the options you want.
## FAQ
How to debug Comodoro CLI?
The simplest way is to use `--debug` and `--trace` arguments.
The advanced way is based on environment variables:
- `RUST_LOG=`: determines the log level filter, can be one of `off`, `error`, `warn`, `info`, `debug` and `trace`.
- `RUST_BACKTRACE=1`: enables the full error backtrace, which include source lines where the error originated from.Logs are written to the `stderr`, which means that you can redirect them easily to a file:
```
comodoro server start --debug 2>/tmp/comodoro.log
```## Sponsoring
[](https://nlnet.nl/)
Special thanks to the [NLnet foundation](https://nlnet.nl/) and the [European Commission](https://www.ngi.eu/) that helped the project to receive financial support from various programs:
- [NGI Assure](https://nlnet.nl/project/Himalaya/) in 2022
- [NGI Zero Entrust](https://nlnet.nl/project/Pimalaya/) in 2023
- [NGI Zero Core](https://nlnet.nl/project/Pimalaya-PIM/) in 2024 *(still ongoing)*If you appreciate the project, feel free to donate using one of the following providers:
[](https://github.com/sponsors/soywod)
[](https://ko-fi.com/soywod)
[](https://www.buymeacoffee.com/soywod)
[](https://liberapay.com/soywod)
[](https://thanks.dev/soywod)
[](https://www.paypal.com/paypalme/soywod)