/aws-codepipeline-status

Various bash utilities and scripts to keep track of aws code pipeline statuses (passing, failing, building etc)

Primary LanguageShellMIT LicenseMIT

aws-codepipeline-status

Various bash utilities and scripts to keep track of aws code pipeline statuses (passing, failing, building etc)

Starting Daemon:

aws-codepipeline-status-daemon <absolute path to config file>

Start daemon in background:

$(aws-codepipeline-status-daemon <absolute path to config file>&) &

Getting output for bash:

aws-codepipeline-status-plain | aws-codepipeline-format-bash

Getting output for polybar:

aws-codepipeline-status-plain | aws-codepipeline-format-polybar

View list of failing services:

aws-codepipeline-list-failing

To create a systemd service: note: be sure to replace user with the user you use for aws

[Unit]
Description=AWS Pipeline Status Daemon
[Service]
Type=simple
ExecStart=/bin/bash -c "HOME=/home/<user> PATH=/home/<user>/aws-codepipeline-status/bin:$PATH exec /usr/bin/bash aws-pipeline-status-daemon <path-to-config.json>"
User=<user>

Requirements:

  • aws credentials properly configured in ~/.aws/credentials and ~/.aws/config
  • jq package
  • json configuration file
  • add the binaries to your path

Schema for JSON config file:

{
  "definitions": {},
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "http://example.com/root.json",
  "type": "object",
  "title": "The Root Schema",
  "required": [
    "services"
  ],
  "properties": {
    "services": {
      "$id": "#/properties/services",
      "type": "array",
      "title": "The Services Schema",
      "items": {
        "$id": "#/properties/services/items",
        "type": "object",
        "title": "The Items Schema",
        "required": [
          "name",
          "region",
          "profile",
          "stage"
        ],
        "properties": {
          "name": {
            "$id": "#/properties/services/items/properties/name",
            "type": "string",
            "title": "The Name Schema",
            "default": "",
            "examples": [
              "aws-adapter"
            ],
            "pattern": "^(.*)$"
          },
          "region": {
            "$id": "#/properties/services/items/properties/region",
            "type": "string",
            "title": "The Region Schema",
            "default": "",
            "examples": [
              "us-east-1"
            ],
            "pattern": "^(.*)$"
          },
          "profile": {
            "$id": "#/properties/services/items/properties/profile",
            "type": "string",
            "title": "The Profile Schema",
            "default": "",
            "examples": [
              "eng-tooling"
            ],
            "pattern": "^(.*)$"
          },
          "stage": {
            "$id": "#/properties/services/items/properties/stage",
            "type": "string",
            "title": "The Stage Schema",
            "default": "",
            "examples": [
              "Development"
            ],
            "pattern": "^(.*)$"
          }
        }
      }
    }
  }
}