From d8aa76522cc078b5784c94843be37f2875ad5966 Mon Sep 17 00:00:00 2001 From: "Carpenter, Adam (CORP)" Date: Tue, 12 Oct 2021 14:22:20 -0400 Subject: ci: add github action, update readme --- .github/workflows/publish.yml | 81 +++++++++++++++++++++ README.md | 161 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 242 insertions(+) create mode 100644 .github/workflows/publish.yml create mode 100644 README.md diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..1f92c63 --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,81 @@ +name: Publish + +on: + push: + tags: + - "*" + +jobs: + publish: + name: ${{ matrix.target }} + runs-on: ${{ matrix.os }} + strategy: + matrix: + include: + - os: ubuntu-latest + target: x86_64-unknown-linux-gnu + use-cross: false + + - os: ubuntu-latest + target: x86_64-unknown-linux-musl + use-cross: false + + - os: windows-latest + target: x86_64-pc-windows-msvc + use-cross: false + + - os: macos-latest + target: x86_64-apple-darwin + use-cross: false + + steps: + - name: Checkout repository + uses: actions/checkout@v2 + with: + fetch-depth: 1 + + - name: Set the version + id: version + run: echo ::set-output name=VERSION::${GITHUB_REF#refs/tags/} + + - name: Install Rust + uses: actions-rs/toolchain@v1 + with: + toolchain: stable + profile: minimal + override: true + target: ${{ matrix.target }} + + - name: Build + uses: actions-rs/cargo@v1 + with: + use-cross: ${{ matrix.use-cross }} + command: build + args: + --target ${{ matrix.target }} --release --locked --bin angelsharkcli + + - name: Strip binary + if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' + run: strip target/${{ matrix.target }}/release/angelsharkcli + + - name: Upload nix binaries to release + if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest' + uses: svenstaro/upload-release-action@v1-release + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: target/${{ matrix.target }}/release/angelsharkcli + asset_name: + angelsharkcli-${{ steps.version.outputs.VERSION }}-${{ matrix.target + }} + tag: ${{ github.ref }} + + - name: Upload Windows binaries to release + if: matrix.os == 'windows-latest' + uses: svenstaro/upload-release-action@v1-release + with: + repo_token: ${{ secrets.GITHUB_TOKEN }} + file: target/${{ matrix.target }}/release/angelsharkcli.exe + asset_name: + angelsharkcli-${{ steps.version.outputs.VERSION }}-${{ matrix.target + }}.exe + tag: ${{ github.ref }} diff --git a/README.md b/README.md new file mode 100644 index 0000000..1b66410 --- /dev/null +++ b/README.md @@ -0,0 +1,161 @@ +# Altruistic Angelshark + +[![Conventional git style](https://img.shields.io/badge/git%20style-conventional%20commit-blue)](https://conventionalcommits.org/) + +Angelshark is a collection of programs that make automating over Communication +Managers (ACMs) easier. It uses the OSSI protocol over SSH to run user commands +on one or more configurable ACMs. This functionality is exposed as a developer +library (`libangelshark`), a command line application (`angelsharkcli`), and an +HTTP daemon (`angelsharkd`). + +## Detailed User Guides + +These guides give an overview of the end-user Angelshark programs, their +capabilities, and common use cases. It assumes the user has familiarity with +using a shell and the command line. Some of the commands may be formatted for +\*nix, others for Windows. They should all be directly translatable, just make +sure you're using (for example) `./angelsharkcli` for \*nix and +`./angelsharkcli.exe` for Windows. + +- [`angelsharkcli`](angelsharkcli/README.md): a command line application for + running OSSI-formatted commands on one or more ACMs and parses the output data + into useful formats (CSV, JSON, etc.) +- [`angelsharkd`](angelsharkd/README.md): a HTTP service for running + OSSI-formatted commands formatted in JSON on one or more ACMs, by one or more + clients + +## Installation + +`angelsharkcli` is available as a prebuilt binary for many platforms in the +GitHub releases. You may also build it from scratch with +[`cargo`](https://rustup.rs): + +```sh +cargo install --path angelsharkcli +``` + +To build and install `angelsharkd`: + +```sh +cargo install --path angelsharkd +``` + +## Quick Examples + +Get the numbers and names of all stations on a single ACM via the CLI. + +```sh +$ printf 'aCM01\nclist stat\nf8005ff00\nf8003ff00\nt\n' | angelsharkcli print +17571230001 Doe, Jane +17571230002 Doe, John +17571230003 Conference Rm. 1 +``` + +Check three ACMs for a station and print it as JSON via the CLI. + +```sh +$ angelsharkcli print < ^x: + rx_ =]~ `-' + _^**^**=` -V, X]*!=:,-`'-,,:=!~><<^^^^**^^^^<<~~!=:,,-'` !i H +5 `````.''-__,,,::" =.-q^*x +H :rrr>~!!==::,,,_--'.Z , y`6@= -e` r` +xr=**rr" n_ ??"!~]` !|? + .. `}r:` '(` ,Hx^^^^*- + -<***^^^^r(