Skip to content

asciimoo/coa

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coa

The coding assistant.

Coa is a local CI tool which can be easily integrated to any project to automatically act on code changes. With Coa you can run automated code linters, build tools, tests or any custom project related scripts when your code changes.

Coa screencast

How it works

Coa consists of two parts: a daemon and a command line interface for the daemon. The daemon is responsible for running each project's configured commands and sending notifications about the commands results.

Daemon can be started with the coa listen command.

See coa --help for detailed description of possible commands.

Configuration

Global settings

Coa has a global settings file where project independent settings can be specified. The location is $XDG_CONFIG_HOME/coa/settings.yml on Linux and ~/coa/settings.yml on other platforms. -c/--config switches can be used to load config from custom location.

Be sure settings.yml exists in the config directory, before you run Coa.

Example settings.yml
notifiers:
  - type: shell
    args:
        fail_command: notify-send -u critical {{.Title}} {{.Message}}
        pass_command: notify-send -u normal {{.Title}} {{.Message}}
  - type: log

The above config uses two notifiers to handle project events. First is a shell notifier which uses the notify-send Linux command to raise popup alert. Second is a simple logger notification backend. Logging backend logs to STDERR if no destination argument is specified.

Project configuration

Every project managed by Coa requires a project configuration file describing what Coa should do on that project. This file can be placed anywhere, but its directory will be the working directory of the project's commands.

Add new project to Coa by running coa add [path_to_project_config.yml].

Example .coa.yml (project based config)
name: searx
checkers:
    - name: Pep8
      paths: [searx/*py, searx/*/*py]
      command: ./manage.sh pep8_check

    - name: Babel
      paths: [searx/translations/*/LC_MESSAGES/*.po]
      command: ./env/bin/pybabel compile -d searx/translations

Installation and usage

$ go get github.com/asciimoo/coa
$ "$GOPATH/bin/coa" --help

Bugs

Bugs or suggestions? Visit the issue tracker

Releases

No releases published

Packages

No packages published

Languages