/conductor2

Revised version of conductor

Primary LanguageJavaScript

Conductor 2 - BETA

This is the new improved version of https://github.com/backslashbuild/conductor

New features:

  • YAML based configurations
  • Easier to specify scripts
  • Event system - trigger the start and restart of scripts based on changes to the filesystem and exits of other scripts
    • exit events
    • specific exit codes
    • file changes using watchers
  • New UI - now entirely in the terminal using https://github.com/chjj/blessed
  • Controllable via keys in the terminal
    • Left and Right arrows to change selected task
    • Up and Down arrows to scroll the logs view
    • K to kill selected task
    • R to restart or start selected process
    • T to toggle tailing or scrolling mode
    • Indicate tailing mode by changing the border colour
    • Displaying list of key bindings

Possible future extended features

  • Interpretation and mapping of JSON logs
    • Extraction of Message
    • Ability to select a log to see details of JSON properties

Usage:

$ npm install -g https://github.com/backslashbuild/conductor2
# cd to directory containing conductor.yml
$ conductor2
# or specify a different filename:
$ conductor2 ./example.yml

Example configuration:

tasks:
  services/hi:
    script: node ./test_server.js
    cwd: ./src
    auto_start: false
    start_on:
      - exit: services/init
    restart_on:
      - changes: ./src/test_server.js

  services/init:
    script: echo 'init.'