bash-interop 0.1.0

Run bash under instrumentation and hear what it says: a session per run, a pipe and a task per shell, words a script speaks and answers it runs.
Documentation
name: CI

on:
  push:
    branches: [master, main]
  pull_request:
    branches: [master, main]

env:
  CARGO_TERM_COLOR: always

jobs:
  check:
    name: check + clippy + doc
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: clippy, rustfmt
      - uses: Swatinem/rust-cache@v2
      # Siblings are registry deps so this crate stays publishable; until they
      # are on crates.io, resolve them from their repositories. Written here
      # rather than committed, so a local build still uses the checkout beside
      # it.
      - name: resolve sibling crates
        run: |
          mkdir -p .cargo
          cat > .cargo/config.toml <<'EOF'
          [patch.crates-io]
          bash-strings = { git = "https://github.com/bashmgmt/bash-strings" }
          EOF
      - run: cargo fmt --check
      - run: cargo clippy --all-targets -- -D warnings
      - run: cargo doc --no-deps --document-private-items

  test:
    name: tests (bash 5, shells serialised)
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: Swatinem/rust-cache@v2
      # Siblings are registry deps so this crate stays publishable; until they
      # are on crates.io, resolve them from their repositories. Written here
      # rather than committed, so a local build still uses the checkout beside
      # it.
      - name: resolve sibling crates
        run: |
          mkdir -p .cargo
          cat > .cargo/config.toml <<'EOF'
          [patch.crates-io]
          bash-strings = { git = "https://github.com/bashmgmt/bash-strings" }
          EOF
      - run: bash --version
      - run: cargo test --lib -- --test-threads=1
      - run: cargo test --test proofs -- --test-threads=1
      - run: cargo test --doc
      - run: docs/sync-quotes.bash --check