cctui

Crates.iocctui
lib.rscctui
version1.2.0
sourcesrc
created_at2020-07-25 20:35:03.411706
updated_at2024-03-10 21:04:55.179148
descriptionCCTray TUI, a build monitoring dashboard for your terminal
homepage
repositoryhttps://github.com/TheKevJames/tools/tree/master/cctui
max_upload_size
id269557
size154,744
Kevin James (TheKevJames)

documentation

README

cctui

CCTUI is a CCTray implementation for your terminal -- a live-updating dashboard of any of your repos. In addition to supporting the standard CCTray protocol, it additionally can support CircleCI's new Pipelines feature.

It can also (optionally) display your Github notifications!

CCTUI sample screenshot

You Named It What?

Yeah, I know. Naming things is hard! I'd be happy to accept ideas :)

CircleCI's New Pipelines Feature?

Unfortunately, CircleCI's workflows/pipelines feature doesn't work nicely with the CCTray standard and returns the build status of whichever job happened to run last instead of the entire workflow. This project stemmed out of wishing CCMenu had a terminal UI and worked with CircleCI's workflows. Done and done!

Usage

$ cargo install cctui
$ cctui

The keybindings are "vaguely vim-like":

  • use <tab> to toggle active pane
  • scroll within a pane j/k
  • navigate to top/bottom of a pane with g/G
  • <enter> opens your browser to the highlighted item
  • J/K to resize the panes
  • / to enter filter mode:
    • enter text normally, that filter will be applied to all other panes
    • use ! as the first character for a negative search
    • <enter> to return to the app
  • r to refresh the given pane's data
  • q to quit

Configuration

This tool doesn't really make any sense with a default configuration, so you'll need to edit ~/.config/cctui/config.yml:

layout:
  visible_notifs: 5  # default: 5

notifs:
- service: Github
  token: qwerasdfzxcv12345678910

repos:
- name: TheKevJames/tools
  circleci:
    branch: cctui-dev
    token: qwer1234asdf5678zxcv
    workflow: run-jobs
- name: TheKevJames/gnome-shell-extension-transmission-daemon
  circleci:
    token: 1234asdf5678zxcv9101
    workflow: integration-tests
  refresh: 120
- name: coveralls-clients/coveralls-python
  cctray:
    url: https://circleci.com/cc.xml?circle-token=asdf5678zxcv9101tyui

Basically, repos accepts a list of items with the following schema:

field decription default?
name <username>/<repo>
refresh refresh interval between updates 30

And one of the following integration configs:

field decription default?
cctray.url url of CCTray config (with token)
circleci.branch name of branch to be tracked master
circleci.token personal access token
circleci.vcs VCS slug for your repo ("gh", "bb") gh
circleci.workflow name of CircleCI workflow to monitor

notifs accepts a list of items with the following schema:

field decription default?
service must be Github, for now (sorry!)
refresh refresh interval between updates 30
Commit count: 0

cargo fmt