clipf 0.5.2

Copy file contents to the clipboard, locally or over SSH via OSC 52
name: ci

on:
  push:
    branches:
      - main
  pull_request:

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
    steps:
      - uses: actions/checkout@v4
      - name: Install Rust
        shell: bash
        run: |
          rustup toolchain install stable --profile minimal
          rustup default stable
      - name: Test
        run: cargo test --locked
      - name: Build
        run: cargo build --release --locked

  shellcheck:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Shellcheck
        run: shellcheck install.sh

  no-dependencies:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Cargo.lock names exactly one package (clipf itself)
        run: |
          count=$(grep -c '^\[\[package\]\]' Cargo.lock)
          if [ "$count" -ne 1 ]; then
            echo "Cargo.lock has $count [[package]] entries, expected exactly 1." >&2
            echo "This crate is meant to stay dependency-free -- if a dependency" >&2
            echo "was genuinely needed, update this check, don't just silence it." >&2
            exit 1
          fi