pax_global_header00006660000000000000000000000064141570516300014514gustar00rootroot0000000000000052 comment=912165f2460cfa1f216c109c37a07beb3a3efe5e obs-cli-0.4.0/000077500000000000000000000000001415705163000130455ustar00rootroot00000000000000obs-cli-0.4.0/.github/000077500000000000000000000000001415705163000144055ustar00rootroot00000000000000obs-cli-0.4.0/.github/workflows/000077500000000000000000000000001415705163000164425ustar00rootroot00000000000000obs-cli-0.4.0/.github/workflows/build.yml000066400000000000000000000011171415705163000202640ustar00rootroot00000000000000name: build on: [push, pull_request] jobs: build: strategy: matrix: go-version: [~1.11, ^1] os: [ubuntu-latest, macos-latest, windows-latest] runs-on: ${{ matrix.os }} env: GO111MODULE: "on" steps: - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.go-version }} - name: Checkout code uses: actions/checkout@v2 - name: Download Go modules run: go mod download - name: Build run: go build -v ./... - name: Test run: go test ./... obs-cli-0.4.0/.github/workflows/coverage.yml000066400000000000000000000013211415705163000207550ustar00rootroot00000000000000name: coverage on: [push, pull_request] jobs: coverage: strategy: matrix: go-version: [^1] os: [ubuntu-latest] runs-on: ${{ matrix.os }} env: GO111MODULE: "on" steps: - name: Install Go uses: actions/setup-go@v2 with: go-version: ${{ matrix.go-version }} - name: Checkout code uses: actions/checkout@v2 - name: Coverage env: COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | go test -race -covermode atomic -coverprofile=profile.cov ./... GO111MODULE=off go get github.com/mattn/goveralls $(go env GOPATH)/bin/goveralls -coverprofile=profile.cov -service=github obs-cli-0.4.0/.github/workflows/goreleaser.yml000066400000000000000000000007521415705163000213210ustar00rootroot00000000000000name: goreleaser on: pull_request: push: jobs: goreleaser: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: Set up Go uses: actions/setup-go@v2 with: go-version: "^1.16" - name: Run GoReleaser uses: goreleaser/goreleaser-action@v2 with: version: latest args: release --snapshot --skip-publish --skip-sign --rm-dist obs-cli-0.4.0/.github/workflows/lint.yml000066400000000000000000000010611415705163000201310ustar00rootroot00000000000000name: lint on: push: pull_request: jobs: golangci: name: lint runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: golangci-lint uses: golangci/golangci-lint-action@v2 with: # Optional: golangci-lint command line arguments. args: --issues-exit-code=0 # Optional: working directory, useful for monorepos # working-directory: somedir # Optional: show only new issues if it's a pull request. The default value is `false`. only-new-issues: true obs-cli-0.4.0/.gitignore000066400000000000000000000000161415705163000150320ustar00rootroot00000000000000obs-cli dist/ obs-cli-0.4.0/.golangci.yml000066400000000000000000000007121415705163000154310ustar00rootroot00000000000000run: tests: false issues: include: - EXC0001 - EXC0005 - EXC0011 - EXC0012 - EXC0013 max-issues-per-linter: 0 max-same-issues: 0 linters: enable: - bodyclose - dupl - exportloopref - goconst - godot - godox - goimports - goprintffuncname - gosec - ifshort - misspell - prealloc - revive - rowserrcheck - sqlclosecheck - unconvert - unparam - whitespace obs-cli-0.4.0/.goreleaser.yml000066400000000000000000000025251415705163000160020ustar00rootroot00000000000000env: - GO111MODULE=on - CGO_ENABLED=0 before: hooks: - go mod tidy builds: - binary: obs-cli flags: - -trimpath ldflags: -s -w -X main.Version={{ .Version }} -X main.CommitSHA={{ .Commit }} goos: - linux - freebsd - openbsd - darwin - windows goarch: - amd64 - arm64 - 386 - arm goarm: - 6 - 7 archives: - format_overrides: - goos: windows format: zip replacements: windows: Windows darwin: Darwin 386: i386 amd64: x86_64 nfpms: - builds: - obs-cli vendor: muesli homepage: "https://fribbledom.com/" maintainer: "Christian Muehlhaeuser " description: "OBS-cli is a command-line remote control for OBS" license: MIT formats: - apk - deb - rpm bindir: /usr/bin brews: - tap: owner: muesli name: homebrew-tap commit_author: name: "Christian Muehlhaeuser" email: "muesli@gmail.com" homepage: "https://fribbledom.com/" description: "OBS-cli is a command-line remote control for OBS" # skip_upload: true signs: - artifacts: checksum checksum: name_template: "checksums.txt" snapshot: name_template: "{{ .Tag }}-next" changelog: sort: asc filters: exclude: - "^docs:" - "^test:" obs-cli-0.4.0/LICENSE000066400000000000000000000020671415705163000140570ustar00rootroot00000000000000MIT License Copyright (c) 2020 Christian Muehlhaeuser Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. obs-cli-0.4.0/README.md000066400000000000000000000074701415705163000143340ustar00rootroot00000000000000# obs-cli [![Latest Release](https://img.shields.io/github/release/muesli/obs-cli.svg)](https://github.com/muesli/obs-cli/releases) [![Build Status](https://github.com/muesli/obs-cli/workflows/build/badge.svg)](https://github.com/muesli/obs-cli/actions) [![Go ReportCard](https://goreportcard.com/badge/muesli/obs-cli)](https://goreportcard.com/report/muesli/obs-cli) [![GoDoc](https://godoc.org/github.com/golang/gddo?status.svg)](https://pkg.go.dev/github.com/muesli/obs-cli) OBS-cli is a command-line remote control for OBS. It requires the [obs-websocket](https://github.com/Palakis/obs-websocket) plugin to be installed on your system. ## Installation ### Packages & Binaries On Arch Linux you can simply install the package from the AUR: yay -S obs-cli Or download a binary from the [releases](https://github.com/muesli/obs-cli/releases) page. Linux (including ARM) binaries are available, as well as Debian and RPM packages. ### Build From Source Alternatively you can also build `obs-cli` from source. Make sure you have a working Go environment (Go 1.11 or higher is required). See the [install instructions](https://golang.org/doc/install.html). To install obs-cli, simply run: go install github.com/muesli/obs-cli@latest ## Usage All commands support the following flags: - `--host`: which OBS instance to connect to - `--port`: port to connect to - `--password`: password used for authentication ### Streams Change the streaming state: ``` obs-cli stream start obs-cli stream stop obs-cli stream toggle ``` Display streaming status: ``` obs-cli stream status ``` ### Recordings Change the recording state: ``` obs-cli recording start obs-cli recording stop obs-cli recording toggle ``` Pause or resume a recording: ``` obs-cli recording pause enable obs-cli recording pause resume obs-cli recording pause toggle ``` Display recording status: ``` obs-cli recording status ``` ### Scenes List all scene names: ``` obs-cli scene list ``` Switch program to a scene: ``` obs-cli scene current ``` Switch preview to a scene (studio mode must be enabled): ``` obs-cli scene preview ``` Switch program (studio mode disabled) or preview (studio mode enabled) to a scene: ``` obs-cli scene switch ``` ### Scene Collections List all scene collections: ``` obs-cli scenecollection list ``` Show the current scene collection: ``` obs-cli scenecollection get ``` Switch to a scene collection: ``` obs-cli scenecollection set ``` ### Scene Items List all items of a scene: ``` obs-cli sceneitem list ``` Change the visibility of a scene-item: ``` obs-cli sceneitem show obs-cli sceneitem hide obs-cli sceneitem toggle ``` Center a scene-item horizontally: ``` obs-cli sceneitem center ``` ### Labels Change a FreeType text label: ``` obs-cli label text