slck/README.md

42 lines
2.3 KiB
Markdown
Raw Normal View History

2022-03-17 21:11:26 +00:00
# slack-status-cli
:sparkle: Tooling to set your Slack status on the fly without having to click around
[![CICD](https://github.com/mcataford/slack-status-cli/actions/workflows/main.yml/badge.svg)](https://github.com/mcataford/slack-status-cli/actions/workflows/main.yml)
[![codecov](https://codecov.io/gh/mcataford/slack-status-cli/branch/main/graph/badge.svg?token=10VP1ZDBHR)](https://codecov.io/gh/mcataford/slack-status-cli)
[![python-support](https://img.shields.io/badge/python-%5E3.7-brightgreen)]()
[![latest-release](https://img.shields.io/github/v/release/mcataford/slack-status-cli?include_prereleases&label=latest%20release&sort=semver)]()
## Overview
Clicking around Slack to update statuses is not only annoying, but if you use statuses as part of your remote workflow
to broadcast what you are up to when jumping into new things, you quickly find yourself spending minutes of you day
clicking around and setting the same statuses over and over again since the UI isn't great at remembering them.
Enter `slack-status-cli`. With it, you can set statuses (with or without expiration dates) without leaving the terminal.
More importantly, you can also set presets and defaults to save time on statuses you reuse all the time.
## Configuration
You can use `slack-status-cli` without a configuration file and provide everything via arguments (see `slack-status-cli
-h` for the list of flags you can pass in), or set up a file under `~/.config/slack-status-cli` that follows the format:
```json
{
"presets": {
"pairing": { "text": "Pairing", "icon": ":pear:" }
},
"defaults": { "duration": "1h", "icon": ":calendar:" }
}
```
`presets` allows you to set up a map of labels (used to select the preset) to values (defining the status text, icon and
duration), `defaults` allows you to set up sane defaults used in all statuses if the specified fields are not provided
(in the above, all statuses would have a duration of one hour if not specified, and a default :calendar: icon -- presets
and/or CLI args will override these defaults if given).
## Installation
You can clone this repository and build from source. This project uses `poetry`, as such `poetry build` will prepare a
Wheel that you can install directly. Build artifacts for released versions are also available under
[releases](https://github.com/mcataford/slack-status-cli/releases).