diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fc2ce0c..22a38e6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -96,85 +96,3 @@ jobs: dist/*.tar.gz \ dist/checksums.txt \ --clobber - - homebrew-nssh: - # Skip prerelease tags so the tap formula keeps tracking the stable release. - if: startsWith(github.ref, 'refs/tags/v') && !contains(github.ref_name, '-') - needs: release-create - runs-on: ubuntu-latest - steps: - - uses: actions/download-artifact@v4 - with: - pattern: nssh-* - merge-multiple: true - path: dist/ - - name: Calculate checksums - id: checksums - run: | - VERSION=${GITHUB_REF_NAME#v} - echo "version=${VERSION}" >> $GITHUB_OUTPUT - echo "darwin_amd64=$(sha256sum dist/nssh_${VERSION}_darwin_amd64.tar.gz | cut -d' ' -f1)" >> $GITHUB_OUTPUT - echo "darwin_arm64=$(sha256sum dist/nssh_${VERSION}_darwin_arm64.tar.gz | cut -d' ' -f1)" >> $GITHUB_OUTPUT - echo "linux_amd64=$(sha256sum dist/nssh_${VERSION}_linux_amd64.tar.gz | cut -d' ' -f1)" >> $GITHUB_OUTPUT - echo "linux_arm64=$(sha256sum dist/nssh_${VERSION}_linux_arm64.tar.gz | cut -d' ' -f1)" >> $GITHUB_OUTPUT - - name: Update homebrew tap - env: - TAP_GITHUB_TOKEN: ${{ secrets.TAP_GITHUB_TOKEN }} - run: | - VERSION=${{ steps.checksums.outputs.version }} - - git clone https://x-access-token:${TAP_GITHUB_TOKEN}@github.com/ntwrknrd/homebrew-nssh.git tap - cd tap - git config user.name "github-actions[bot]" - git config user.email "github-actions[bot]@users.noreply.github.com" - - mkdir -p Formula - cat > Formula/nssh.rb << 'EOF' - class Nssh < Formula - desc "SSH wrapper with credential management and session recording" - homepage "https://github.com/ntwrknrd/nssh" - license "GPL-3.0-only" - version "VERSION_PLACEHOLDER" - - on_macos do - on_intel do - url "https://github.com/ntwrknrd/nssh/releases/download/vVERSION_PLACEHOLDER/nssh_VERSION_PLACEHOLDER_darwin_amd64.tar.gz" - sha256 "SHA_DARWIN_AMD64" - end - on_arm do - url "https://github.com/ntwrknrd/nssh/releases/download/vVERSION_PLACEHOLDER/nssh_VERSION_PLACEHOLDER_darwin_arm64.tar.gz" - sha256 "SHA_DARWIN_ARM64" - end - end - - on_linux do - on_intel do - url "https://github.com/ntwrknrd/nssh/releases/download/vVERSION_PLACEHOLDER/nssh_VERSION_PLACEHOLDER_linux_amd64.tar.gz" - sha256 "SHA_LINUX_AMD64" - end - on_arm do - url "https://github.com/ntwrknrd/nssh/releases/download/vVERSION_PLACEHOLDER/nssh_VERSION_PLACEHOLDER_linux_arm64.tar.gz" - sha256 "SHA_LINUX_ARM64" - end - end - - def install - bin.install "nssh", "nssh-askpass" - end - - test do - system "#{bin}/nssh", "-V" - assert_predicate bin/"nssh-askpass", :executable? - end - end - EOF - - sed -i "s/VERSION_PLACEHOLDER/${VERSION}/g" Formula/nssh.rb - sed -i "s/SHA_DARWIN_AMD64/${{ steps.checksums.outputs.darwin_amd64 }}/g" Formula/nssh.rb - sed -i "s/SHA_DARWIN_ARM64/${{ steps.checksums.outputs.darwin_arm64 }}/g" Formula/nssh.rb - sed -i "s/SHA_LINUX_AMD64/${{ steps.checksums.outputs.linux_amd64 }}/g" Formula/nssh.rb - sed -i "s/SHA_LINUX_ARM64/${{ steps.checksums.outputs.linux_arm64 }}/g" Formula/nssh.rb - - git add Formula/nssh.rb - git commit -m "Update nssh to ${VERSION}" - git push diff --git a/README.md b/README.md index ea01283..2250488 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,6 @@ [![Build](https://github.com/ntwrknrd/nssh/actions/workflows/build.yml/badge.svg)](https://github.com/ntwrknrd/nssh/actions/workflows/build.yml) [![Go Version](https://img.shields.io/github/go-mod/go-version/ntwrknrd/nssh)](go.mod) [![Go Report Card](https://goreportcard.com/badge/github.com/ntwrknrd/nssh)](https://goreportcard.com/report/github.com/ntwrknrd/nssh) -[![Homebrew](https://img.shields.io/badge/homebrew-available-orange)](https://github.com/ntwrknrd/homebrew-nssh) ![Platforms](https://img.shields.io/badge/platform-macOS%20%7C%20Linux-blue) `nssh` is an SSH wrapper for operators who manage many hosts. It keeps host @@ -73,13 +72,12 @@ finishes; commands cannot read interactive input. See the ```bash curl -fsSL https://raw.githubusercontent.com/ntwrknrd/nssh/main/scripts/install.sh | sh -# or -brew install ntwrknrd/nssh/nssh - nssh self init nssh self status ``` +To update, run `nssh self reinstall`; it installs the latest GitHub release. + On first run, `nssh self init` creates the commented root config template and offers credential and inventory provider setup. If `config.yaml` already exists, bare init skips without changing it; use `nssh self reset` to start fresh. Add diff --git a/internal/cli/self/common.go b/internal/cli/self/common.go index 74b2850..620609b 100644 --- a/internal/cli/self/common.go +++ b/internal/cli/self/common.go @@ -22,8 +22,7 @@ func FindBinary() string { filepath.Join(home, ".local", "bin", "nssh"), filepath.Join(home, "bin", "nssh"), filepath.Join(home, "go", "bin", "nssh"), - "/opt/homebrew/bin/nssh", // Homebrew on Apple Silicon - "/usr/local/bin/nssh", // Homebrew on Intel Mac / manual install + "/usr/local/bin/nssh", // manual install } for _, loc := range locations {